본문 바로가기

Backend3

Node.js 동작 원리 Node.js 배경 원래 JS는 브라우저 위에서만 작동이 가능했다. 이게 싫어서 브라우저 말고도 다른 환경에서도 돌려보고자 노력을 하였지만 JS의 실행속도 때문에 사실상 불가능 했다고 한다. 그러나 구글이 V8엔진을 사용하면서 크롬을 공개하자, 180도 달라지기 시작하였다. 오픈소스에 엄청난 속도를 보여주는 V8엔진이 나오자마자 이 V8엔진을 기반으로하는 노드 프로젝트를 시작했다! 그래서 Node.js는 JS기반으로 만들어졌다. JavaScript이름으로 유추하다 싶이 스크립트 언어이기에, 즉 특정한 프로그램 내에서 동작하는 프로그램이어서 Node나 브라우저 같은 프로그램이 필요로 하다. 그래서 저번 글에서 브라우저 기반을 설명을 드렸고, Node 기반을 이번에 설명할 것이다 Node는 자체에 내장된 웹.. 2022. 12. 26.
JS 동작원리 이 글은 이 사이트에서 많은 배움을 얻어 정리해서 작성한 글입니다. 주저리 주저리 다들 아시다시피 JS는 싱글 스레드이다. 이것이 의미하는 바는 한번에 딱 하나의 일만을 수행한다는 것이다. 그러나 JS가 Express, NestJS같은 서버에도 사용되는 언어라는 사실이 놀랍지 않은가? 그 이유는 비동기, 동시성, 논블로킹 I/O 같은 개념들을 이해하면 이해가 된다. 자 그러면 싱글 스레드가 어떻게 동시성을 가질 수 있는지에 대해 정리를 해보자 JS는 어떻게 돌아가는가? JS의 런타임은 메모리 힙과 콜 스택으로 구성되어 있다. 메모리 힙 : 메모리 할당 콜 스택 : 코드가 호출되면 스택으로 쌓이는 곳 콜스택? 스레드에서 호출되는 함수들이 이 콜스택에 차곡차곡 쌓이고, 스택이니 LIFO 형태로 실행이 된다... 2022. 12. 25.
[NestJS] 네이버 클라우드 플랫폼 Out bound Mailer with Module [NestJS] - 메일 보내기 기능 개발 작성일시: 2022년 12월 23일 오후 8:13 최종 편집일시: 2022년 12월 24일 오전 3:01 저희 팀이 회원가입관련 기능을 만들어야 하는 중, 메일을 보내 인증을 하는 절차가 있었다. 이 전까지는 새로운 네이버 아이디를 하나 만든 후, nodemailer를 이용하여 메일을 보냈는데, 이 경우 관리하기가 조금 귀찮다는 문제가 있었다. 그래서 NCP를 사용하는 프로젝트이므로, NCP에서 지원하는 Out bound Mailer를 이용해서 개발해 보자. 당연하게도 nodemailer같은 쉽고 간단한 패키지는 존재하지 않는다… 그래서 내가 직접 만들어 보기로 결정했다. 그냥 Service단에다가 다 넣는 방식도 있겠지만, 이것을 동적 모듈로 만든다면 재활용하.. 2022. 12. 24.
728x90