개발

    [네이버 부스트캠프] 네이버 부스트캠프 웹・모바일 8기 챌린지 4주차 회고 + 수료

    내용에 문제가 있는 경우 삭제 또는 수정하겠습니다. 네이버 부스트캠프 챌린지의 모든 과정이 끝났다. 4주가 어떻게 지나갔는지도 모를 만큼 빠르게 지나간 것 같다. 그 과정에 어려움도 있었지만 돌아보니 많은 성장을 할 수 있었던 것 같다. ✨ 좋았던 점(잘한 점) 이번 주는 내 코드에 새로운 기능을 더 쉽게 추가할 수 있도록 확장성있는 코드를 작성하려 노력했다. 더 세밀하게 분리할 수 있는 코드도 가독성과 직관적인 이해를 위해 그냥 두기도 했다. (단, 맞는 방법인지는 모르겠다. 본인의 경우 그렇게 했다) 그 결과 각 기능들에 일정한 규칙이 생기게 되었고 새로운 기능이 추가되는 경우도 이 규칙에 맞게 추가하면 되기 때문에 쉽게 기능을 추가할 수 있었다. 새롭게 추가할 수 있는 기능을 스스로 생각해볼 수 있..

    [네이버 부스트캠프] 네이버 부스트캠프 웹・모바일 8기 챌린지 3주차 회고

    내용에 문제가 있는 경우 삭제 또는 수정하겠습니다. 네이버 부스트캠프 챌린지에 참여한지 벌써 3주가 지났다. 첫 주만 해도 한 달을 어떻게 버티지라는 생각을 했었는데 벌써 한 주 밖에 남지 않았다. ✨ 좋았던 점(잘한 점) 저번 주와 마찬가지로 학습을 먼저하고 미션을 수행했다. 저번 주와 다르게 시도한 점은 학습을 미션에 어떻게 적용할지 고민하는 것이었다. 학습의 내용이 어떻게 미션에 응용되고 미션과 실제 개념은 어떤 차이가 있는지 고민하게 되었다. 미션의 내용이 실제 개념과 다른 경우에는 어떤 방식을 따라야 할 지 스스로 고민하게 되었다. 미션의 편의성을 위한 것 또는 미션을 수행하면서 스스로 생각하도록 만들어 둔 장치 등등을 염두에 뒀다. 또한, 저번주에 했던 난이도 분류에 이어 "전문가"가 되기 위..

    [NodeJS] 싱글 스레드와 이벤트 루프

    NodeJS의 주요 특징은 다음과 같다. 싱글 스레드 Event Driven Non-blocking I/O NodeJS는 싱글 스레드 기반으로 작동하는데 어떻게 Non-blocking이 가능한 것일까? 1️⃣ NodeJS의 구조 NodeJS의 공식문서에 따라 NodeJS의 구조를 그림으로 나타내면 다음과 같다. NodeJS는 JS엔진(V8)과 함께 다양한 기능들이 함께 존재하는 것을 볼 수 있다. 여기서 싱글 스레드 기반의 NodeJS에서 비동기 처리가 가능하게 해주는 역할을 담당하는 것이 libuv이다. JS엔진(V8)은 구글에 의해 개발된 JS엔진으로 메모리 할당, 콜 스택 실행, GC 등의 기능을 수행한다. libuv는 비동기 I/O를 지원하는 C언어 기반의 라이브러리로 커널의 비동기 API로 할 ..

    [JavaScript] 싱글 스레드와 비동기

    function test1() { console.log(1); } function test2() { console.log(2); } function test3() { console.log(3); } function test4() { console.log(4); } test1() Promise.resolve().then(test2); setTimeout(test3, 0); test4() 위 코드의 실행 결과는 어떻게 될까? setTimeout에서 타이머가 0이니까 1, 2, 3, 4로 출력될까? 1️⃣ 싱글 스레드 JS는 한 번에 하나의 작업만 실행할 수 있다. 다시 말해 단 하나의 실행 컨텍스트 스택을 갖는다. 이러한 JS의 특징은 JS가 "싱글 스레드" 방식이라는 것이다. 한 함수의 처리에 시간이 오래..