Nest.js는 백엔드 서버를 구축하기 위한 Node.js 프레임 워크이다. TypeScript를 지원하며, 순수 JavaScript로도 사용 가능하다.
Nest.js에서 컨트롤러는 클라이언트에서 들어오는 요청을 처리하고, 클라이언트에 맞는 값을 전달하는 역할을 한다.
Nest.js에서 서비스단은 서버가 돌아가는 로직을 구현하는 곳이다. 데이터를 가공해 DB에 넣거나, DB의 데이터를 꺼내 가공 후 클라이언트에게 전달하기 전 작업과 같은 일을 한다.
TypeORM은 nodeJs환경에서 사용할 수 있는 ORM 중 하나다. TypeORM을 제외하고 많이 사용되는 ORM에는 Sequelize, Prisma가 있다.
Nest.js에서 권한을 인가하기 위해선 Guards 클래스가 필요하다. Guards는 기존 Express에선 미들웨어를 통해 관련된 로직을 실행 했으나, Nest.js는 Guards를 통해 인가를 시켜준다. Guard는 Express의 미들웨어와는 본질적으로 다르다.
테스트 코드는 프로그래밍에 있어 매우 중요하며, 큰 비중을 차지하고 있다. 테스트 코드에는 크게 유닛 테스트, 기능 테스트, 통합 테스트 3가지로 나뉜다. 오늘은 테스트 단위 중에 가장 작은 유닛 테스트를 알아보고자 한다.
GraphQL은 Facebook에서 만든 API용 쿼리 언어이다.클라이언트는 API서버에 GraphQL 쿼리를 전송해 내가 필요한 정보를 선택해 가져올 수 있다. 웹개발을 처음 시작하면 REST API를 먼저 접하게 된다.
GraphQL은 Schema를 통해 각 필드의 데이터 타입을 정의하고 해당 필드를 쿼리를 통해 주고 받는다.Schema First는 개발자가 직접 Schema를 생성하고 해당 Schema를 이용하고, Code First는 resolve와 class의 코드를 기반으로 자