🌈 프로그래밍/Nest JS
[ NestJS ] CSR, SSR MVC 패턴에 대해서 알아보자
들어가면서 .. 프로그래밍을 하다보면 한 번 쯤은 MVC 패턴에 대하여 들어보거나 접해보았을 것이다. 더 나아가 MVVM, MVP 등등 다양한 것이 존재한다고 하는데 가장 기본이되는 MVC에 대해서 알아보려고 한다. 그리고 CSR과 SSR에 대해 정리를 해보려고 한다. 많은 회사들이 다양한 디자인 패턴에 대한 이해를 필요로 하여 나도 나름대로 정리하면 좋겠다 해서 정리를 해보려고 한다. CSR과 SSR? 우선 MVC에 알아보기 전에 간략하게 Client Side Rendering과 Server Side Rendering에 대해서 알아보자. SSR : Server측에서 html 파일을 렌더링하여 브라우저에게 전송 CSR : Client측에서 html 파일을 렌더링하여 브라우저에게 전송 즉, 쉽게 말해서 브..
[ NestJS ] Interceptor와 AOP 패턴에 대해서 알아보자
이번 포스팅에서는 Nest에서 Interceptor에 대해서 알아보려고 한다. 그전에 AOP와도 연관이 있으니 먼저 AOP 패턴에 대해서 알아보려고 한다. 왜냐하면 Nest에서 Intercepto가 AOP(Aspect-oriented programming)에서 영감을 받았기 때문이다. AOP(Aspect-oriented programming) 란? 우리말로 관점(측면) 지향 프로그래밍이라고 한다. 목적으로는 모듈성을 높이는 것을 목표로 하는 프로그래밍 패러다임이다. 여기서 말하는 관점은 교차 관심사 혹은 수평적 관심사라고 하는데 말이 너무 어렵다. 아래의 그림을 보면서 추가적인 설명을 해보려고 한다. 위의 그림을 보면 핵심기능 3가지가 있고 이 핵심 기능이 애플리케이션의 각각의 컨트롤러라고 생각해보자. ..
[ NestJS ] 파이프 디자인 패턴에 대해서 알아보자
이번 포스팅에서는 지난번에 간략하게 파이프 패턴에 대해서 알아보았었는데 좀 더 자세하게 알아보려고 한다. 우선 NestJS에서 정의하고 있는 파이프에 대해한 내용은 다음과 같다. 파이프의 정의? NestJS에서의 파이프는 클라이언트 요청에서 들어오는 데이터를 유효성 검사 및 변환을 수행하여 서버가 원하는 데이터를 얻을 수 있도록 도와주는 역할을 합니다. 그렇다면 여기서 드는 의문점이 있다. 바로 파이프라는 이름에 대한 의문점이다. 아니, 클라이언트의 요청에 대한 데이터를 유효성 검사와 변환을 하기 위한 것인데.. Data Transform 또는 Data Validation이라고 이름을 짓지 않은 이유가 뭘까?? 우선, 왜 이름이 파이프인지 생각하기 이전에 상상을 해보자. 클라이언트의 요청이 데이터와 함께..
[ NestJS ] Repository Pattern에 대하여 알아보자
안녕하세요? 수구리입니다. 이번 포스팅에서는 Nest의 Repository pattern에 대해서 알아보려고 합니다. 디자인 패턴에 대해서 공부하는 것은 굉장히 중요하다고 생각합니다. 어떤 패턴을 쓰냐에 따라서 코드의 유지보수와 관리의 난이도가 결정되기 때문입니다. Repository Design Pattern ? 한 줄로 요약하자면 비즈니스 로직이 있는 Service Layer와 Data Source Layer 사이에서 중재자 역할을 하는 또 다른 하나의 Layer을 말합니다. Service Layer에는 비즈니스 로직 즉, 서비스의 핵심이 되는 로직이 존재합니다. 만약 Repository 패턴을 적용하지 않는다면, 비즈니스 로직에서 데이터베이스에 직접 접근을 하게 됩니다. 이런 경우 문제점이 발생합니..
[ NestJS + mongoose ] virtual field에 대하여 알아보자
안녕하세요? 수구리입니다. 정말 오랜만에 또 포스팅을 하게 되었습니다! 이번 포스팅에서는 NestJS와 mongoose에서 virtual field에 대하여 알아보려고 합니다. 우선 간단하게 설명하자면,, 예를 들어 어떤 한 유저가 SignUp을 한다고 가정해봅시다. 그러면 이 유저는 ID, PW 등등 자신의 정보를 입력하고 DB에 Save를 하게 됩니다. Save 이후, 성공적으로 Data를 저장했다면 입력된 정보를 return 해주는 경우가 있다고 해봅시다. Save 성공 이후, 만약 이 유저의 ID를 비롯한 모든 정보가 다시 return이 된다면 큰일이 나겠죠?? 따라서 이러한 문제를 해결하기 위해서 mongoose에서는 virtual field를 제공합니다. DB의 collection에는 존재하지..
[ Nest ] postgresDB를 이용한 CRUD 앱 만들기 (3)
안녕하세요? 수구리입니다. 이번 포스팅에서는 원래는 CRUD를 구현하기 이전에 소개를 했어야 했는데 뒤늦게나마 postgres와 Nest를 연결하는 방법을 소개하도록 하겠습니다. 우선, 이전 게시물 중에서 TypeORM을 Nest Framework위에 적용하기 위해서 필요한 설치 과정은 아래의 포스팅에서 확인해주시기 바랍니다! 2021.11.17 - [프로그래밍/Nest JS] - [ Nest JS ] TypeORM & pg module 설치 명령어 [ Nest JS ] TypeORM & pg module 설치 명령어 안녕하세요? 수구리입니다. 저번 포스팅에서는 Nest 애플리케이션에 DB를 적용하기 위해서 Postgre와 pgAdmin을 설치하였다. 이전 글 참고! [ Nest JS ] Postgres..
[ Nest ] postgresDB를 이용한 CRUD 앱 만들기 (2)
안녕하세요? 수구리입니다. 이번 포스팅에서는 지난 포스팅에 이어서 CRUD 앱 만들기를 이어가 보도록 하겠습니다. 이전에 지난 포스팅에서 DTO라는 것을 잠깐 알아보았었는데요~ 좀 더 자세히 짚고 넘어가 보도록 하겠습니다. [ DTO 란 ? ] Data Transfer Object라고 하며, 객체와 Eneity를 매핑해 주는 것을 의미합니다. 즉, 계층간 데이터 교환을 위한 객체를 의미하며 DB에서 데이터를 얻어 Controller 또는 Service에게 전달하는 객체를 의미합니다. 예를 들어, 회원 가입을 위해서 사용자가 id, password, email, address, phone 등등 다양한 정보를 POST 요청을 보낸다고 생각해봅시다. 그러면 Controller에서는 대충 아래와 같이 코드가 구..
[ Nest ] postgresDB를 이용한 CRUD 앱 만들기 (1)
안녕하세요? 수구리입니다. 지난 Nest 포스팅에서 postgres 설치를 하고, pgAdmin을 통해서 Server와 DB까지 생성해보았으며, 프로젝트에서 postgres 모듈을 사용하기 위해 설치까지 진행해보았습니다! 지난 포스팅을 참조해주세요! 2021.11.16 - [프로그래밍/Nest JS] - [ Nest JS ] PostgreSQL 설치 pgAdmin으로 Server와 DB를 구축해보자 [ Nest JS ] PostgreSQL 설치 pgAdmin으로 Server와 DB를 구축해보자 안녕하세요? 수구리입니다. 이번 포스팅에서는 PostgresSQL 이라는 DB를 소개하고 설치법과 Nest 프로젝트에 연동하는 방법에 대해서 알아 보자! 어느 곳에서든지 DataBase는 필수이다. MongoDB라..
[ Nest JS ] TypeORM & pg module 설치 명령어
안녕하세요? 수구리입니다. 저번 포스팅에서는 Nest 애플리케이션에 DB를 적용하기 위해서 Postgre와 pgAdmin을 설치하였다. 이전 글 참고! [ Nest JS ] Postgres 설치 pgAdmin으로 Server와 DB를 구축해보자 안녕하세요? 수구리입니다. 이번 포스팅에서는 PostgresSQL 이라는 DB를 소개하고 설치법과 Nest 프로젝트에 연동하는 방법에 대해서 알아 보자! 어느 곳에서든지 DataBase는 필수이다. MongoDB라는 비정 tasddc.tistory.com 이번 포스팅에서는 아직 DB와 Nest App과 연동 짓기 전에 필요한 작업이 하나 더 있다. Nest 프로젝트에서 사용할 typeORM 모듈과 pg 모듈을 설치해야 한다! typeORM은 한번 강의를 들어서 공..
[ Nest JS ] PostgreSQL 설치 pgAdmin으로 Server와 DB를 구축해보자
안녕하세요? 수구리입니다. 이번 포스팅에서는 PostgresSQL 이라는 DB를 소개하고 설치법과 Nest 프로젝트에 연동하는 방법에 대해서 알아 보자! 어느 곳에서든지 DataBase는 필수이다. MongoDB라는 비정형 DB와 MySQL이라는 정형 DB는 많이 보기도 하고, 익숙한데, Postgres는 처음 사용해보는 DB라서 어떨지 매우 궁금한 상태로 포스팅을 작성하는 중이다. 우선, 설치할 두 가지는 다음과 같다. 1. PostgresSQL 2. pgAdmin 여기서 pgAdmin은 DB를 보는 도구이다. [ Windows 에서 PostgresSQL 설치 ] PostgreSQL: Windows installers PostgreSQL: Windows installers Windows installe..