nest js 와 type orm
- [Nestjs] database (maria db)와 연결
- [Nestjs] entity/module/controller/service/repository/dto
- [Nestjs] sign up / sign in (login)
- [Nestjs] typeorm CRUD (one to many, map)
- [Nestjs] left join and select (get)
- [Nestjs] error handling
- [Nestjs] Test Code (Jest)
- [Nestjs] AWS Deploy
NODE JS 기반의 Framework Nest js
비동기 실시간 처리가 가능함. single thread & event loof
🔎 구성
entity : 객체 (테이블) app module에서 synchronize : true 를 설정하면 해당 entity (table) 들을 reload한다. 만약 db value가 이미 존재하는 column이라면 데이터가 모두 삭제된다. 가끔 type orm join이 꼬인 경우 이 옵션을 사용해서 정리하고는 했다. 실 서버라면 정말 주의해야되는 옵션이기는 하다.
controller : 라우터 역할. service를 불러온다.
service : 실제 기능을 정의한다. create, find, get, delete, update 등
module : app module <= a, b, c module <= 각 module에 controller, service 가 존재한다. 중복 import를 하게 되면 error가 발생할 수 있기에 주의해야 한다.
guard : 권한 (주로 관리자/일반 회원 관리 시 사용된다.)
dto : 데이터 전송 객체 (테이블은 기본적으로 생성하되 가입 시에 필요한 정보가 return시에 필요한 정보가 다를 수 있다. 그럴 때 create-000-dto / response- 000-dto 이렇게 분리해서 parameter 와 return 값을 보다 효율적으로 관리할 수 있다.
promise<결과값 형태> : promise< User>라고 하면 회원 정보 값들을 결과 값으로 받기로 약속하는 것. promise< any>를 사용하면 모든 형태의 값들이 올 수 있는 것. 만약 delete처럼 return 값이 필요 없다면 promise< void>를 쓰면 된다.
async .. await : db 값들이 모두 transcation 되고 결과 값을 호출한다.
😃 최근 익히고 있는 것
공식 문서 는 정말 중요하다. 답이 보이지 않던 것도 공식 문서를 꼼꼼히 읽어보며 참조하니 도움이 되는 부분이 많았다.
개념 : application을 빠르게 build, test, deploy 할 수 있는 s/w 플랫폼
특성 : docker 는 컨테이너 기반 / img 를 repository에 저장 / 배포 시간의 절감
CI : Continuous Integration (지속적인 통합)
CD : Continuous Deployment (연속 배포)
🍉 mac 에서 개발자 도구 보는 법 : alt(option key) + command + i
웹 서버 상에서 error가 어떤 이유로 발생했는지 가장 쉽게 알 수 있다.
🍉 end point
API가 서버에서 resource에 접근 가능하도록 하는 URL
🍉 port forwarding
공유기에게 이정표를 달아주는 것
네트워크에서 패킷이 라우터나 방화벽 등을 통과하는 동안 네트워크 주소를 변환해주는 것. 그래서 외부에서 접속이 가능하도록 하는 것!