node 4

Nest.js와 TypeORM 그리고 Prisma ORM

현재 회사(2020년 시점)에서 Nest.js에 TypeORM이라는 걸 붙여 프로젝트를 시작하였고, 한 달 정도 부분적으로 참여하며 느낀 장단점, 심경을 얘기해보고자 한다. Nest.js를 선택한 배경 기존 프로젝트는 Django와 React를 사용하였다. CTO가 떠나고 새로온 PL이 환기차원에서 이것 저것 바꾸고 있었는데, 그중 하나이다. 환기차원도 있었겠지만, 조금 더 큰 이유는 크게 두 가지로 보인다. Django 2.2.x버전에선 비동기 통신을 지원하지 않아 `channels`를 이용하여야 한다 프론트엔드를 Angular로 대체함에 따라 프론트엔드 개발자가 백엔드 코드를 볼 수 있다 그 밖의 부수적인 이유 타입이 있다(유지보수, 자동완성 등에 강점, 개발자의 대체 가능성에 유연) 보편적인 클린 ..

IT 2023.01.29

Node Engine 수정하기

배경: 나는 http/3를 쓰고 싶었다 나는 nestjs에서 http/3을 사용하고 싶었다. 하지만 현재 node에서 http/3를 지원하지 않으므로 express나 fastify 역시 http/3를 쓸 수 없다. 어쩔 수 없다. 현시점(2022.12.10) http/3를 원하는 경우, Nginx나 Netty외엔 선택지가 없다. 이 이슈가 해결이 된다면, node(express든 fastify든 어디서든)에서도 http/3를 사용할 수 있을 것이다. Node Engine Customization 실무에서 고작 http/3를 위해 node engine을 수정하고 있을 순 없다. 하지만 개인적으론 욕심이 났다. 나는 node에서 http/3를 쓰고 싶다. 이번에 http/3와 node engine에 대해 자..

IT 2022.12.10

EC2 deploy server: 프로세스를 백그라운드에서 실행시키기

EC2에 원격 접속하여 sudo node app.js 등의 명령어로 서버를 켜둬봐야 원격접속을 끊는 순간 서버가 꺼지기 일쑤다. 어떻게 해결해야할까? node라면 pm2 등을 이용한다 node의 경우는 forever, pm2 등 다양한 패키지를 제공한다. 이를 사용하면 프로세스가 충돌나서 뒤져도 다시 실행시킬 수 있는 안정성을 보장 받기 때문에, 가장 올바른 방법이다. 해당 패키지들은 sudo npm install -g "패키지 이름"으로 설치가 가능하다. 해당 패키지로 앱을 실행시킨 뒤, exit 명령어를 입력해 원격접속을 종료하면 아마 프로세스가 계속 살아있을 것이다. 패키지 없이 실행하기 하지만 npm 업데이트 등의 이슈 발생 혹은 node가 아닌 다른 서버의 경우라면 어쩔텐가?(물론 버전 호환 문..

IT 2019.10.15