B.E

B.E

    [Nest JS] 전화번호부 API 개발하기(2) - DTO, PIPE, Module

    전 게시글에서 Controller와 Service를 이용해서 API를 개발 했는 데, 이번에는 DTO, PIPE와 Module에 대해서 알아보자 DTO Dto란 Data Trasfer Object의 약자로, 계층간 데이터를 교환하기 위해 사용하는 로직을 가지지 않는 데이터 객체다. Client(Brower)에서 Controller로, Service로 계속 계층을 이동할 때는 DTO를 사용한다. 전화번호를 생성할 때 계층간 이동에 사용할 DTO를 생성해보자. [/src/phonebook/dto/phonebook.req.dto] export class CreatePhoneBookDTO{ name : string phone : string } DTO를 생성하는 방법은 간단하다. 계층 간 이동에 필요한 필드를 ..

    [Nest JS] 전화번호부 API 개발하기(1)

    Nest JS를 이용해서 전화번호 API를 개발하자. 전화번호부를 생성하거나, 목록 조회, 단일 조회를 할 수 있고, 수정, 삭제, 이미지, JWT까지 시간이 되면 작성할 예정이다. Entity 생성 먼저 Entity를 생성하자. Entity는 하나의 객체라고 생각하면 되고, 해당 프로젝트에선 전화번호라고 생각하자. [phonebook.entity.ts] export class Phonebook { idx: number name: string phone: string } Service 생성 아래의 명령어로 쉽게 Service를 생성할 수 있다. nest g s 목록 조회, 단일 조회, 생성 즉 비즈니스 로직을 처리할 Service를 생성하자. 아직 DB 연결을 하지 않기에, 가상 저장소인 배열을 만들어서..

    [Nest JS] 구조에 대해서 알아보자.

    Nest JS Project를 생성하면 아래의 구조를 가지게 된다. Main.ts Main.ts는 AppModule를 추출해서, 3000번 포트에 실행 시키는 역할을 하며, 함수 이름은 변경해도 되지만, 파일 명은 변경해서는 안 된다. import { NestFactory } from '@nestjs/core' import { AppModule } from './app.module' async function bootstrap() { const app = await NestFactory.create(AppModule) await app.listen(3000) } bootstrap() AppModule.ts AppModule에서는 우리가 만드는 Service, Controller나 추가로 생성한 Modul..

    [Spring] 스프링 컨테이너 생성

    해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Appconfig.class) ApplicationContext는 스프링 컨테이너라고 하며, 인터페이스다. 스프링 컨테이너는 XML 혹은 애노테이션 기반의 자바 설정 클래스를 만들 수 있지만 요즘은 애노테이션을 많이 사용한다. 스프링 컨테이너를 생성 ..

    [Node JS] Body-parser 사용하기

    body-parser는 Node.JS의 모듈 중 하나로, 클라이언트가 보내는 Request Data의 Body로부터 파라미터를 편리하게 추출 할 수 있다. method : post url : http://localhost:8080 data : { id : "admin", pw : "1234" } 위의 요청을 처리하는 코드를 짜보자. const express = require("express") const app = express() app.post("/", (req,res) => { const {id, pw} = req.body console.log(id, pw) }) const port = 8080 app.listen(port, () => console.log(`SERVER ON PORT : ${por..

    [Spring] Spring Boot 프로젝트 배포

    해당 강좌는 EC2 혹은 개인 서버가 있다는 가정하에 진행 합니다. 0. 프로젝트 Java : 11 Gradlew Project GitHub - pino-hoo/RockPaperScissors Contribute to pino-hoo/RockPaperScissors development by creating an account on GitHub. github.com 1. Git Clone 배포를 희망하는 프로젝트를 Git에 업로드하고, clone 받는다. # git clone [주소] git clone https://github.com/pino-hoo/RockPaperScissors.git 2. Java 설치 프로젝트 버전에 맞는 JDK를 설치한다. sudo apt-get install openjdk-1..

    [Nest JS] Nest JS 시작하기.

    Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac docs.nestjs.com NestJS NestJS는 Node.JS 기반의 웹 API Framework로 Express 혹은 Fastify Frame..

    [Spring] Ioc, DI, 컨테이너

    해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 Ioc 제어의 역전(Inversion of Control) 기본 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결을 했다. 즉 구현 객체가 프로그램의 제어 흐름을 조종한 것이다. 하지만 AppConfig(조립, 설정자)가 있으면, 구현 객체는 자신의 로직을 실행하는 역할만 담당하며, 모든 제어 흐름을 AppConfig가 가져간다. 즉 AppConfig가 어떤..

    [Spring] 좋은 객체 지향 설계의 5가지 원칙

    해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 SOLID 클린코드로 유명한 로버트 마틴이 정리한 좋은 객체 지향 설계의 5가지 원칙 SRP: 단일 책임 원칙(single responsibility principle) OCP: 개방-폐쇄 원칙 (Open/closed principle) LSP: 리스코프 치환 원칙 (Liskov substitution principle) ISP: 인터페이스 분리 원칙 (Interface segregatio..

    [Spring] 객체 지향 프로그래밍이란?

    해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 Spring은 객체 지향 언어인 Java의 프레임워크로, 객체 지향 언어의 특징을 살려내고, 좋은 객체 지향 프로그램을 개발 할 수 있게 도와주는 프레임워크다. 객체 지향 프로그래밍이란? 프로그래밍을 명령어의 목록으로 보는 것이 아닌, 독립된 단위 "객체"들의 모임으로 파악하는 것으로, 각 객체는 메세지를 주고 받고 데이터를 처리 할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변..