서버/Nest 3

NestJS Module

NestJS Module 특정한 기준(도메인)으로 쪼개진 코드 집합이며 @Module 데코레이터가 달린 클래스를 의미한다. 기능별로 코드를 모듈화(쪼개는) 하는 이유는 책임을 나누고 응집도를 높여 코드의 이해도와 유지 보수가 용이한 이점을 가져가기 위해서다. 하나의 애플리케이션은 하나 이상의 Root 모듈이 존재하고 Root 모듈 아래 여러 개의 하위 모듈로 구성된다. 모듈은 기본적으로 프로바이더를 캡슐화하며 현재 모듈에 속해있지 않거나 가져온 모듈에서 export 하지 않는 프로바이더는 주입할 수 없다. Root Module 프로젝트 main.ts 진입 파일에서 NestFactory에 create 메서드 인수로 들어가는 모듈을 의미한다. @Module 데코레이터는 다음 코드와 같은 ModuleMetad..

서버/Nest 2022.12.12

NestJS Controller Versioning

NestJS Controller 애플리케이션의 관문이며 기본적으로 클래스와 데코레이터를 사용한다. 클라이언트로부터 특정 요청을 수신하고 그에 대한 응답을 반환하는 인터페이스 역할을 수행한다. 서버에서 정의한 리소스를 클라이언트와 어떤 식으로 주고받을지에 대한 정보와 데이터의 구조를 정의한다. 각각의 컨트롤러는 하나 이상의 경로(/user, /user/:userId)가 있고 각기 다른 로직을 실행할 수 있다. - 컨트롤러 클래스 작성 후 @Controller 데코레이터를 사용해 Prefix를 명시한다. - @Get, @Post 등 HTTP Method 데코레이터 인수로 경로(Path)를 명시한다. 다음 사용자 컨트롤러의 getUserList 메서드의 경로는 /user/user-list와 같다. import..

서버/Nest 2022.12.06

NestJS

NestJS NodeJS에 Decorator와 Reflection 기능을 기반으로 작동하는 서버 사이드 프레임워크다. IoC, DI를 채용한 객체 지향 프로그래밍으로 프로젝트 유지 보수성이 뛰어나며 모듈과 컴포넌트 기반의 코드 작성으로 재사용성과 복잡한 프로젝트 폴더 관리에 용이하다. 타입스크립트가 기본 언어지만 바벨을 사용해 자바스크립트로 작성 가능하다. 내부적으로 Express 또는 Fastify 프레임워크를 Rapping 한다. 기본적으로 Express를 사용하는데 이는 범용적 측면과 미들웨어 호환성을 고려한 이유다. Express와 Nest Express는 미니멀 리스트다. Nest와 다르게 웹 프레임워크가 기본적으로 제공해야 할 대부분의 기능을 사용자가 직접 구현해야 한다. 장점으로는 특정 아키..

서버/Nest 2022.11.19
1