본문 바로가기

전체 글63

블록체인 부트캠프 후기 (코드스테이츠) 후기 1차 작성은 작년 4월에, 2차 작성은 11월에 하고 내가 봐도 부족한 글솜씨 때문에 올리지 못했던 후기를 새해를 시작하며 정리를 하게 됐다 2022년 11월 ~ 2023년 4월, 지인의 추천으로 수강을 결심한 이후로 지금까지 많은 걸 배웠고 동료들과 함께 성장하는 기회가 되었다 작년까진 바라기만 했던 나와 잘 맞는 개발자 동료들이 현재에도 서로 좋은 영향을 주고 받고 있기 때문에, 이런 게 부트캠프가 주는 가장 큰 자산이라고 생각한다 수강을 선택한 이유 졸업 후 가족 회사를 다니며 코딩을 틈틈히 공부하며 만드는 재미를 느끼던 시기였다. 이미 개발자를 평생의 직업으로 생각했고 취업을 하기보단 배운 것을 사용하며 재미를 찾는 것에 의미를 뒀다. 혼자 공부하는 게 익숙해 졌지만 점점 혼자서는 모든 걸 .. 2024. 1. 14.
선택정렬 알고리즘 구현 (Python) 선택 정렬 위키에 있는 이미지인데 보면서 뭔가 뿌듯하다 정렬 알고리즘 비교 정렬 알고리즘 평균 시간 복잡도 공간 복잡도 특징 선택 정렬 O(N^2) O(N) 아이디어가 간단함 삽입 정렬 O(N^2) O(N) 데이터가 거의 정렬되어 있을 때 가장 빠름 퀵 정렬 O(NlogN) O(N) 대부분의 경우 가장 적합함 충분히 빠름 계수 정렬 O(N+K) O(N+K) 데이터 크기가 한정된 경우에만 사용 가능 매우 빠름 알고리즘 코딩테스트를 준비하면서 기본이 되는 정렬 알고리즘을 비교해 보았다. 선택 정렬은 O(N^2)의 시간 복잡도이므로 N이 증가할수록 제곱으로 증가한다 장점: 구현이 쉽고, 데이터가 이미 정렬된 경우 빠르게 정렬 단점: 입력 데이터가 역순으로 정렬되어 있을 때, 최악의 경우 O(N^2)의 성능 (.. 2023. 12. 11.
Promise.all VS Promise.allSettled (유사 멀티 스레딩) 면접에서 직접 들은 질문인 Promise.all과 Promise.allSettled에 대해 정리를 하려고 한다. 내가 들었던 질문은 “Node.js는 싱글 스레드인가요, 멀티 스레드인가요?”에 대한 꼬리 질문으로 “자바스크립트는 Promise.all, Promise.allSettled로 멀티 스레딩을 흉내 내는데 그 차이를 알고 있습니까?” 였었다. Promise 객체가 3가지 상태가 있고 resolve, reject 정도만 준비 해왔던 나는 간단하게 모른다는 답변을 하고 넘어갔다. 면접은 탈락했지만 이 질문이 얼마나 비중이 있는지는 알 수 없으니, 다른 동기 분들에게 물어봤는데 역시 처음 듣는다고 하였다. 나중에 알았지만 비교적 최근인 ES2020에서 추가된 문법이고, 그 회사의 특성상 비동기 요청을 .. 2023. 11. 28.
[mysql] Connetion RefusedError(Sequelize 설정) 상황 MySQL, Node.js, Sequelize 기반 프로젝트를 6개월 만에 리팩토링을 하는데 시작부터 DB에서 오류가 생겼다 Express 서버에서 Sequelize를 통해 DB를 읽어와야 하는데 거부되었다는 오류 메시지가 뜸 원인 분석 및 시도 서버나 sequelize문이 아닌 mysql의 권한 문제로 생각하였다 생각해 보니 초기 설정할 때 mysql에서 권한 설정하는 명령어를 쳤던 것 같다 GRANT ALL PRIVILEGES ON "프로젝트명" TO 'root'@'localhost'; FLUSH privileges; // 권한 적용 해당 프로젝트에 대한 root 사용자의 모든 권한을 주는 명령어이다 하지만 여전히 작동하지 않았다 🔑해결 이틀 동안 헤매다가 에러 메시지에 주목하였다 인터넷에 다른.. 2023. 11. 24.
스타트업 풀스택 개발자 면접 후기 원티드에서 지원한 회사와 면접 미팅이 잡혔다 ( 저번 회사와 다른 회사임 ) 응답률 높은 순서 정렬로 지원을 넣어 봤더니 빠른 피드백이 왔다. 역시 이게 답이었나? 면접에 자신이 없었기 때문에 선택 가능한 날짜 중에 가장 나중 날짜를 선택하고 준비했다 모든 상황을 준비하려고 했지만 역시 예측 불가능한 일은 어쩔 수 없는 듯 분위기 공유 오피스로 보이는 장소의 회의실에서 진행했고 생각보다 가까운 거리여서 작은 목소리로 대 화했다. 오는데 얼마나 걸리는지와 같은 간단한 질문으로 시작했다 면접 형식 CTO님, 인사담당자님과 2대1 미팅으로 진행 두 분 노트북 가져오셔서 질문 체크 리스트, 이력서 보면서 하심 먼저 오신 CTO님이 기술 질문을 하셨고 이어서 인사담당자님이 인성 질문을 하셨다 이력서 기반으로 적혀.. 2023. 11. 16.
[TIL] axios 모듈화하기 with Typescript 모듈화 하는 이유? 코드량이 많아질 수록 중복되는 코드가 많아져서 유지보수가 힘들어지고 개발 편의성이 떨어짐 how? 리액트 프로젝트일 경우 src 안에 api폴더를 생성, core.ts 파일을 생성한다 이곳에 인스턴스를 위한 객체를 선언하고 다른 파일에서 import하여 사용한다 src/api/core.ts import axios, { AxiosInstance } from "axios" export const api: AxiosInstance = axios.create({ baseURL: "/api", timeout: 500000, }) 인터셉터라는 것을 사용하면 에러 처리나 res = res.data와 같은 동작을 미리 적용할 수 있다 인터셉터 네트워크 요청, 응답을 가로채어 처리하거나 수정하는데 사.. 2023. 11. 14.
스타트업 신사업팀 과제전형 후기 2023.10.15 - [TIL] - 스타트업 신사업팀 코테 후기 얼마 전 스타트업 코테 후기를 작성하였는데 이 글은 다음 채용 과정인 면접전형에 대한 후기이다. 결과적으로는 탈락했지만 아쉬운 마음은 뒤로하고 정리해 보고자 한다. 😢 코테 합격 후 오랜만에 보는 코테에 합격한 당시의 컨디션은 매우 좋지 않았다. 금요일에 과제전형이 시작됐고 기간은 일주일이었다. 코테에 에너지를 쏟아부어서 통과는 할 수 있었지만, 주말이 되자 컨디션이 무너졌다. 내 성격상 이력서 작성도 매우 힘들어서 코테, 이력서 2연타를 맞은 상태, 주말과 월요일이 통째로 사라진 느낌이었다 평일부터라도 시작하려 했지만 화요일 커리어 코칭님과 상담 이후 잠들어서 하루가 날아갔다. 과제 시작 3일 남은 상황에 과제를 펼쳤다. (속으로는 그동.. 2023. 11. 13.
Github에 실수로 이미 올린 파일 삭제(history 삭제) 깃허브로 프로젝트를 진행하다 보면 꼭 한 번쯤은 파일을 잘못 올리게 됩니다. 팀프로젝트 때 팀원 한분이. env를 올린 적도 있었고, 배포 파일, log파일, 빌드파일 등등 같이 올려놓고 몰랐던 적도 있었죠.. git reset, revert 같이 커밋이 하나인 경우가 아닌, 이력에 쌓여있을 경우 해결책으로 repository를 다시 만들 수 없을 때 최후의 수단입니다 1. .gitignore 생성 루트 폴더에 .gitignore 파일을 만든 후, git이 추적에서 제외할 폴더나 파일을 입력합니다 직접 작성한 소스 파일, package.json 등 프로젝트를 나타내는 파일을 제외하고 모든 파일을 적으면 됩니다. 구글에 .gitignore + [사용 스택]으로 검색하면 template도 많습니다. 2. 로.. 2023. 11. 11.
일렉트론 시작하기 일렉트론이란? 일렉트론은 HTML, CSS, javascript를 사용하여 데스크톱 애플리케이션을 빌드하는 프레임워크입니다. 프론트엔드 개발자라면 당연히 잘 다뤄야할 언어로 데스크톱 어플리케이션도 만들 수 있으니 프론트엔드 개발자에겐 매우 유리합니다. Jquery, React, Angular 등 웹 프론트 개발에 씌였던 라이브러리들을 사용할 수 있기 때문입니다. 대표적인 일렉트론으로 개발한 프로그램으로는 Discord, Slack, VSCode 등이 있습니다. 웹 개발용 언어가 데스크탑 애플리케이션에서 작동할 수 있는 이유는 크롬의 오픈소스 버전인 크로미움을 사용했기 때문입니다. 크로미움과 Node.js를 각각 웹에서 프론트엔드와 백엔드의 역할을 해줍니다. 또한 크로스플랫폼이 가능한 이유이기도 합니다. .. 2023. 10. 30.
스타트업 신사업팀 코테 후기 1. 서류 합격 커리어 코치님과 지인들에게 받은 피드백으로 이력서를 기존보다 더 눈에 들어오게끔 수정했다. 10곳 정도 이력서를 넣었는데 감사하게도 한 이름 있는 스타트업에서 연락이 왔다. (주변 현업 지인들 3명한테 말했더니 다 알고 있었음) 문제 수는 6문제에 240분의 시험이었다. 다른 코테는 1~2시간으로 기억하는데 4시간? 문제당 40분이고 복붙이 안 돼서 직접 타이핑해야 하는데.. 시간도 부족한데 집중이나 할 수 있을지 걱정됐다. 부트캠프 때 매일 한 문제씩 풀어서 자신이 있었는데 오랜만에 풀어보니 다 까먹은 것 같았다. 2. 코테 준비 a. 레벨 2 도전 듣기로는 레벨 2~3을 무난하게 풀 정도면 합격한다길래 레벨2 중에 정답률이 가장 낮은 문제부터 풀자 생각했는데 도무지 어떻게 풀지 감이 .. 2023. 10. 15.
n진법으로 변환하는 함수 10진법 -> n진법 구현 10보다 작은 n진법으로 변화하는 함수는 다음과 같습니다. # n이 10보다 작을 때 def to_nbase(num, n): s = "" while num != 0: s = str(num % n) + s num //= n return s n으로 나눈 나머지를 앞쪽부터 쌓아 올립니다. 몫이 0이 될 때까지 진행한 값을 반환하면 n진법으로 변환한 숫자가 됩니다. 하지만 10보다 큰 n진법으로 변환할 때에는 다른 함수가 필요합니다. 10진법 표현으로는 11,12와 같은 숫자를 한자리 수로 표현할 수 없기 때문에 알파벳을 추가하여 나타내게 됩니다. # n이 10보다 클 때(36까지) def to_nbase(num, n): chars = "0123456789ABCDEFGHIJKLMNOP.. 2023. 10. 1.
OSI 7 계층 모델 OSI 7 계층 이란? 네트워크 통신이 일어나는 과정을 7단계로 나눈 것입니다. 물리계층 0과 1의 나열을 아날로그 신호로 바꾸어 전선으로 흘려보내고(인코딩) 아날로그 신호가 들어오면 0과 1의 나열로 해석하여(디코딩) 물리적으로 연결된 두 대의 컴퓨터가 0과 1의 나열을 주고받을 수 있게 해주는 모듈입니다 1 계층 모듈은 하드웨어적으로 구현되어 있습니다. PHY칩, 더미 허브, 리피터(증폭기), 랜, 선로 Data Link 계층 같은 네트워크에 있는 여러 대의 컴퓨터들이 데이터를 주고받기 위해서 필요한 모듈입니다 framing은 data-link layer에 속하는 작업들 중 하나로 1111 0000 등으로 데이터를 감싸는 작업입니다. 1 계층 모듈과 마찬가지로 하드웨어적으로 구현되어 있습니다. (랜카.. 2023. 9. 24.