Node.js
-
Node.js 이벤트 루프카테고리 없음 2022. 3. 16. 23:54
Node.js? 대부분의 노드 책을 펴자마자 알 수 있는 것은 Node.js는 V8 엔진 기반의 event-driven, 논블로킹, 싱글스레드 js 런타임 이다. 라고 말을 한다. Spring Boot 혹은 Spring MVC 같은 경우에는 멀티스레드 기반이다. 새로운 request가 올때마다 새로운 스레드를 하나씩 polling 한다. 하지만 Node 같은 경우에는 하나의 스레드 만으로 여러 비동기 작업을 블로킹 없이 수행할 수 있고 그 기반은 event-loop 가 존재 한다. 위 사진은 Node.js 의 구성도 인데 Node.js 는 C++로 작성된 런타임이고 그 내부에 V8 엔진과 libuv를 가지고 있다. libuv? libuv는 C++로 작성되었고, Node.js 가 사용하는 비동기 I/O 라..
-
AWS ECS 개념 및 Node 서버 배포 - 3카테고리 없음 2022. 3. 10. 17:10
저번글에선 ecs에 백엔드 코드를 배포하는 것 까지 완료 하였다. 이번엔 깃헙에서 push 했을 때 자동으로 도커로 빌드하여 ECS에 배포하는 프로세스를 만들어 보겠다. Task definition 생성 및 기존 Iam 권한 변경 ECS에 들어가서 작업 정의 > sample-definition > sample definition:1 로 가면 JSON 탭을 클릭하면 해당 내용이 보인다. 해당 내용을 복사해서 프로젝트 루트에 definition.json 파일을 만들고 해당 json 을 붙혀넣기 해준다. { "ipcMode": null, "executionRoleArn": "arn:aws:iam::464086861459:role/ecsTaskExecutionRole", "containerDefinitions"..
-
AWS ECS 개념 및 Node 서버 배포 - 1카테고리 없음 2022. 2. 26. 00:46
이번 포스팅에서는 ECS의 개념을 먼저 잡아보려 한다. AWS 공식 문서를 보면 다음과 같이 소개를 해준다. 컨테이너를 실행하는 고도로 안전하고, 안정적이고, 확장 가능한 방식 Amazon Elastic Container Service(Amazon ECS)는 컨테이너화된 애플리케이션의 손쉬운 배포, 관리 및 조정에 도움이 되는 완전관리형 컨테이너 오케스트레이션 서비스입니다. 여기서 핵심 단어는 완전관리형 컨테이너 오케스트레이션 서비스 이다. 완전관리형 컨테이너 오케스트레이션 서비스 사실 컨테이너라는 말은 익숙 할 것이다. 도커를 기본적으로 사용한다면 다 이해를 하고 있을것이니 컨테이너에 대한 설명은 생략 하도록 하겠다. 그러면 남은 부분은 오케스트레이션 서비스인데 오케스트레이션 서비스가 해주는 역할은 컨..
-
AWS EB Docker 배포카테고리 없음 2022. 2. 17. 16:17
이번엔 개발한 백엔드를 aws elastic beanstalk에 Docker 로 배포 해보는 방법에 대하여 포스팅 해보려 한다. 필자는 Macos 기준으로 하였다. AWS CLI 설정 먼저 aws cli 를 설치하여 로컬 pc에 기본적인 환경을 셋팅 한다. brew install awscli 그 다음으론 AWS 콘솔에 Iam 탭에서 새로운 사용자를 프로그래밍 방식 엑세스로 추가 한다. 권한 설정은 AWSElasticBeanstalk 관리자 권한을 주어 생성 한다. 태깅영역은 건너뛰어도 되고 추가적으로 작업이 필요하면 작업을 해도 된다. 이렇게 엑세스키와 비밀 엑세스키를 주는데 잘 보관을 하도록 한다. eb-deploy 계정을 생성 했으면 터미널에서 aws iam user 값을 셋팅 해준다. AWS Acc..
-
Nest.js 개요와 라이프 사이클카테고리 없음 2022. 2. 9. 17:33
Nest.js 개요 Nest.js는 Node.js의 프레임 워크이다. 확장이 쉬우며, rest-api, graphql, microservice(non-http), websocket 의 템플릿을 cli 를 통해 자동으로 생성 해준다. Express/Fastify 기반의 서버를 제공한다. IoC를 구현 하는 프레임 워크로, 객체를 관리하고 생성을 책임지고 의존성을 관리하는 컨테이너이다. IoC란 제어의 역전 이란 말인데, 메서드나 객체의 호출작업을 개발자가 결정하는 것이 아니라 제어권을 제 3자(컨테이너) 에게 위임하는 것이다. DI와 밀접하게 관련이 되어있는데 아래 사진을 참고하면 될듯 하다. Nest.js 라이프 사이클 기본적인 순서는 다음과 같다. Middleware => Guards => Pre-In..