Nest 본 강의는 'john ahn'님의 강의를 정리한 내용입니다. https://www.youtube.com/watch?v=3JminDpCJNE 1. 데이터베이스 연동을 위해 정리 이전에 만들었던 소스코드 부분들을 정리하고, 이제 실제 DB를 붙여보도록 하자 board.model.ts의 board interface는 더 이상 필요하지 않으므로, status만 남기고 삭제해준다. 이제 BoardStatus 만 남으므로 파일명도 board.model.ts에서 board-status.enum.ts로 바꾸어 주도록 하자 controller를 비롯해서 여러군데에서 에러가 발생할텐데 board를 사용하는 곳은 다 주석처리하고, status를 import하는 부분은 import 경로를 바뀐 위치로 바뀌어주자 이제..
Nest 본 강의는 'john ahn'님의 강의를 정리한 내용입니다. https://www.youtube.com/watch?v=3JminDpCJNE 이번 강의는 PostgresSQL과 TypeORM에 대한 내용을 다룬다. 1. PostgresSQL 설치하기 이제부터는 진짜 DB를 사용하여 개발을 진행해보자 필요한 것은 두가지이다. PostgresSQL pqAdmin ( 데이터베이스를 보는 tool) 설치 방법은 다음에서 진행하면 된다. window에서 설치하기 https://www.postgresql.org/download/ Mac에서 PostgresSql 설치하기 https://postgresapp.com/downloads.html pgAdmin 설치하기 https://www.pgadmi..
Nest 본 강의는 'john ahn'님의 강의를 정리한 내용입니다. https://www.youtube.com/watch?v=3JminDpCJNE 1. 커스텀 파이프 이전 시간에는 pipe에 대해서 알아보았다. 이전에는 빌트인 파이프만을 사용했다면 이번에는 커스텀 파이프를 구현해볼 것이다. 우선 커스텀 파이프를 구현하기 위해서는 PipeTransform이라는 인터페이스를 새롭게 만들 커스텀에 implements 해주어야 한다. 이 PipeTransform 인터페이스는 모든 파이프에서 구현해주어야 하는 인터페이스로, transform() 메서드를 구현해주어야 한다. transform() 메서드가 바로 pipe가 라우팅 핸들러로 인자를 보내기전에 작업을 메서드라고 생각하면 된다. 다음과 같은..
Nest 파이프와 예외처리 본 강의는 'john ahn'님의 강의를 정리한 내용입니다. https://www.youtube.com/watch?v=3JminDpCJNE 1. Nestjs Pipes 파이프란 무엇인가? @Injectable()데코레이터로 주석이 달린 클래스이다. 또한, 파이프는 컨트롤러 경로 처리기에 의해 처리되는 인수에 대해서 작동하는데 data transformation과 data validation를 위해서 사용된다. 다음과 같이 URL 요청이 왔을 때, 먼저 해당 URL에 대한 데이터들을 처리해주는 것이다. 만약 문제가 생기면 통과하지 못하고 Error 처리되며, 통과한다면 데이터를 처리해준 채로 handler에게 가게 된다. Data Transformation 입력 데..
Nest 본 강의는 'john ahn'님의 강의를 정리한 내용입니다. https://www.youtube.com/watch?v=3JminDpCJNE 1. Data Transfer Object(DTO) DTO는 무엇인가?? 계층 간 데이터 교환을 위한 객체이다. DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체를 말한다. DTO는 데이터가 네트워크를 통해 전송되는 방법을 정의하는 객체이다. interface나, class를 이용해서 정의할 수 도 있다. nest에서는 클래스를 이용하는 것을 추천하고 있다. 좀 더 간단한 예시를 들어서 설명하자면, DTO는 하나의 디자인 패턴으로 데이터를 포맷(형식)화 하여 계층 간에 전송된다. 만약 A계층과 B계층이 데..
Nestjs 본 강의는 'john ahn'님의 강의를 정리한 내용입니다. https://www.youtube.com/watch?v=3JminDpCJNE 이제 게시물을 만들고 없애고, 변경하는 CRUD 작업을 해보도록 하자 바로 DB랑 연동하기보다는 local 메모리에 담아서 처리해보도록 하자 1. 모든 Boards 정보 불러오기 클라이언트에서 요청을 보내면 컨트롤러로 가며, 컨트롤러에서 알맞은 요청 경로에 라우팅해서 해당 핸들러로 가게 해준다. 그런 후에 요청을 처리해주기 위해서 서비스로 들어가며 해당 요청에 맞는 로직을 서비스에서 처리해준 후에 컨트로럴에 리턴값을 보내준 후, 컨트롤에서 클라어언트로 결과값을 보내준다. 그래서 컨트롤러에서는 요청을 처리하고 결과값을 리턴해주는 역할을 하는 ..
Nestjs 1. Provider , Service 란? 프로바이더는 Nest의 기본 개념이다. 대부분의 기본 Nest 클래스는 서비스, 리포지토리, 팩토리, 헬퍼 등 프로바이더로 취급될 수 있다. 프로바이더의 주요 아이디어는 종속성으로 주입될 수 있다는 것이다. 즉, 객체는 서로 다양한 관계를 만들 수 있으며 객체의 인스턴스를 연결하는 기능 대부분은 Nest 런타임 시스템에 위임될 수 있다. [이미지1] 위와 같이 컨트롤러가 필요로 하는 컴포넌트들이 기능 별로 존재할 때, 컨트롤러가 해당 컴포넌트를 필요할 때 주입시켜주는 것을 주입이라고 한다. 여기서 각 요소들은 프로바이더가 되는 것이다. 우리는 이전에 service를 controller에 주입시켰다. 즉, service는 큰 의미로 provider인..
Nestjs 2강 본 포스팅은 유튜브 'john ahn'님 강의를 정리한 것입니다. https://www.youtube.com/watch?v=3JminDpCJNE 모두 구독하세욧 1. Nestjs 모듈이란? 모듈은 @Module() 데코레이터로 주석이 달린 클래스이다. Nestjs의 각 응용 어플리케이션에는 하나 이상의 모듈(루트 모듈)이 있다. 루트 모듈이 Nest가 사용하는 시작점이 된다. 모듈은 밀접하게 관련된 기능 집합으로 구성 요소를 구성하는 효과적인 방법을 제공한다. 즉, 기능별로 모듈을 구성하면 된다. ex) 유저 모듈, 주문 모듈, 챗 모듈 ... 같은 기능에 해당하는 것들은 하나의 모듈 폴더 안에 넣어서 사용한다. (UserController, UserService , Us..