typeorm remove()와 delete() 차이 (NestJS)
BE/NestJS2023. 11. 21. 21:41typeorm remove()와 delete() 차이 (NestJS)

데이터를 지우는 메소드는 remove()와 delete()가 있습니다. 본 글에서는 2개의 메소드의 차이를 소개합니다. remove() service에 repository.remove() 메소드를 이용하여 데이터를 지우는 메소드를 생성하겠습니다. remove() 메소드는 entity를 인자로 넘겨줘야하기 때문에, id를 통해 board를 가지고 오는 메소드도 추가하였습니다. @Injectable() export class BoardsService { constructor( @InjectRepository(Boards) private boardsRepository: BoardsRepository, ) {} /** * 특정 게시글을 가지고 옴 * @param id */ async getBoardById(id..

NestJS + postgres + typeorm 연동하기 (서버 DB 연결)
BE/NestJS2023. 11. 21. 00:09NestJS + postgres + typeorm 연동하기 (서버 DB 연결)

NestJS와 postgres, typeorm을 연동하기 위한 방법을 소개합니다. 연동하기 전에 postgres을 먼저 실행해줍니다. postgres 실행 꼭 도커를 띄울 필요는 없지만, docker로 띄우는것이 편해서 본 글에서는 docker로 postgres를 띄우고 연동하는 방법에 대해 소개합니다. 도커로 띄우는 방법은 아래 글 참고바랍니다. Postgres DB를 Docker 컨테이너로 띄우기 (docker-compose 사용) 재미로 만들어보고 있는 개인 프로젝트에 Postgres DB를 연결하기 위해 PostgresDB를 띄우려고 합니다. 직접 맥북에 설치를 할 수도 있지만, 더럽혀지는걸 싫어해서 사용하다가 필요없어지면 편하게 bluemiv.tistory.com 의존성 설치 postgres를 ..

NestJS Pipe를 이용하여 데이터 변환 및 검증
BE/NestJS2023. 11. 20. 22:43NestJS Pipe를 이용하여 데이터 변환 및 검증

파이프(Pipes) NestJS에서는 파이프(pipe)를 이용하여 요청의 데이터를 변환(transformation)하거나 검증(validation)을 할 수 있습니다. 파이프도 서비스와 같이 @Injectable() 데코레이터를 사용해서 구현합니다. 변환(Transformation): 입력 데이터를 원하는 형태로 변환합니다. (예: 문자열을 정수 형태로 변환) 유효성 검사(Validation): 입력 데이터를 유효성 검사를 하고, 검사를 통과하면 controller로 전달하고 그렇지 않으면 예외를 발생합니다. 파이프는 Controller의 요청(Request)의 arguments에 적용할 수 있고, 파이프를 통해 데이터 변환 및 검증을 하고 Controller가 실행됩니다. 아래 그림을 보면 이해하기 더..

NestJS에서 서비스(Service) 개념 및 서비스 생성하기
BE/NestJS2023. 11. 19. 18:33NestJS에서 서비스(Service) 개념 및 서비스 생성하기

서비스(Service)란 서비스는 NestJS에서만 사용하는 개념은 아니고, 소프트웨어 개발시 공통적으로 사용하는 개념입니다. 서비스는 보통 복잡한 비지니스 로직 또는 데이터베이스 관련된 로직을 처리할때 사용합니다. 정답은 없겠지만 종종 Controller에서 비지니스 로직을 처리하는 경우를 종종 보게 되는데, 컨트롤러는 라우팅을 정의하는 목적으로만 사용하고 복잡한 비지니스 로직은 서비스로 분리하는 것이 유지 보수 측면에서도 좋을거 같다고 생각합니다. NestJS에서의 서비스 NestJS에서 서비스를 정의할때는 @Injectable 데코레이터를 사용합니다. (Injectable 영어 단어로만 보더라도, "주입할 수 있는"로 해석할 수 있는데, Spring에서 DI와 동일한 개념) 해당 데코레이터에 의해,..

NestJS 컨트롤러(Controller) 개념 및 정의하기
BE/NestJS2023. 11. 17. 23:30NestJS 컨트롤러(Controller) 개념 및 정의하기

NestJS의 컨트롤러(Controller) NestJS에서 controller는 다른 서버 프레임워크와 동일하게, 클라이언트로부터 들어오는 요청(Request)을 라우팅하고 응답(Response)하는 역할을 합니다. 컨트롤러를 정의하기 위해서는 @Controller라는 데코레이터를 사용합니다. 그리고 HTTP Method를 표현하기 위해 @Get, @Post, @Put, @Delete 와 같은 데코레이터를 사용합니다. 해당 데코레이터를 이용하여 Restful API를 쉽게 개발할 수 있습니다. Controller 생성하기 module을 만들때와 같이 nestcli를 이용해서 controller를 생성할 수 있습니다. nest g controller --no-spec --no-spec: 테스트 코드 생성..

NestJS의 모듈(module) 개념 및 module 정의하기
BE/NestJS2023. 11. 17. 23:15NestJS의 모듈(module) 개념 및 module 정의하기

NestJS에서 Module이란 @Module 데코레이터가 붙어있는 class이며, NestJS에는 반드시 1개 이상의 module이 필요합니다. 모듈은 밀접하게 관련되어 있는 기능들을 모아둔 것으로, 보통 기능(feature) 별로 모듈을 생성합니다. 예를들어, UserModule, BoradModule 등... 그리고, 모듈은 싱글톤(Singleton)으로 만들어지기 때문에 여러 모듈간에 쉽게 동일한 인스턴스를 공유할 수 있습니다. Module 정의하기 NestJS는 재밌는게 파일을 직접 만들고 타이핑하지 않아도, 손쉽게 NestJS cli로 모듈을 만들 수 있습니다. nest g module 명령어를 사용해봅시다. nest g module boards 그리고, 루트 모듈인 AppModule의 imp..

NestJS로 프로젝트 생성 및 서버 개발하기
BE/NestJS2023. 11. 17. 22:16NestJS로 프로젝트 생성 및 서버 개발하기

NestJS란? node.js 를 사용하여 쉽게 서버 개발을 할 수 있도록 도와주는 Back-end 프레임워크입니다. Javascript 뿐만 아니라 Typescript로도 완벽하게 지원합니다. (프로젝트를 생성하면 기본적으로 Typescript 기반으로 생성됨) 또한 OOP(Object Oriented Programming), FP(Functional Programming), FRP(Funtional Reactive Programming) 를 같이 사용할 수 있습니다. - OOP: 객체지향 프로그래밍 - FP: 함수형 프로그래밍 - FRP: 함수형 반응형 프로그래밍 프로젝트 생성 사전준비 - node 설치 nestjs는 node 기반의 서버 프레임워크이므로, node 설치가 필요합니다. node 설치는..

반응형
image