Tech Blog of Pinomaker
[Node JS] typescript + sequelize + passport로 유저 API 개발 - Sequelize 셋팅
B.E/Node JS 2022. 9. 29. 11:39

해당 포스트는 Typescript가 셋팅 되어있어야 합니다. [Node JS] Node.js를 Typescript 프로젝트로 셋팅하기. 1. Node Project 초기화 작업할 폴더를 생성하고 아래의 명령어로 Node Project로 초기화를 해준다. npm init -y 2. Module 설치 프로젝트를 위한 모듈을 설치한다. 이제 배포 할 때 사용하지 않는 모듈은 --save pinomaker.com 해당 포스트 시리즈는 typescript, passport, sequelize를 이용하여, Local 로그인, Kakao 로그인, Naver Login과 JWT까지 다룰 예정 입니다. 1. 필요한 모듈 설치 먼저 sequelize와 유저 관련 API 개발을 위해 필요한 모듈을 아래와 같이 설치하자. d..

[Node JS] Node.js를 Typescript 프로젝트로 셋팅하기.
B.E/Node JS 2022. 9. 29. 10:39

1. Node Project 초기화 작업할 폴더를 생성하고 아래의 명령어로 Node Project로 초기화를 해준다. npm init -y 2. Module 설치 프로젝트를 위한 모듈을 설치한다. 이제 배포 할 때 사용하지 않는 모듈은 --save-dev 옵션을 사용하여 설치하는 데, 주로 typescript의 모듈을 그렇게 설치한다. Typescript로 Node를 진행하기 위해서는 기존의 모듈을 설치하고, @types의 모듈도 배포용으로 설치를 해줘야한다. 따라서 아래와 같이 모듈을 설치한다. npm install typescript express ts-node npm install --save-dev @types/express nodemon 3. 폴더 구조 생성, index.ts 생성 위의 폴더 구..

[Spring] 싱글톤 패턴
B.E/Spring 2022. 8. 29. 23:34

해당 글은 김영한님의 스프링 핵심 원리 강좌를 정리한 글 입니다. Spring은 기업용 온라인 서비스 기술을 지원하기 위해서 만들어졌고, 대부분의 스프링 어플리케이션은 웹이다. 웹은 주로 여러 개의 클라이언트로부터의 요청이 동시에 발생하게 되고, 요청이 올 때 마다 객체를 생성하게 되는 데 고객 트래픽이 1초에 100이라면 1초에 100개의 객체가 생성 되는 심각한 메모리 낭비가 발생하게 되었다. 해당 문제를 해결 하기 위해서 하나의 객체를 생성하고, 이 객체를 공유하도록 설계를 하여 효율적인 개발을 하게 되는 데 이를 싱글톤 패턴이라고 한다. 싱글톤 패턴 싱글톤 패턴은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다. 그러기에 객체 인스턴스를 2개 이상 생성하지 못 하도록 막아야하..

[Nest JS] 전화번호부 API 개발하기(2) - DTO, PIPE, Module
B.E/Nest JS 2022. 8. 24. 11:25

전 게시글에서 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)
B.E/Nest JS 2022. 8. 24. 10:51

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] 구조에 대해서 알아보자.
B.E/Nest JS 2022. 8. 24. 10:05

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] 스프링 컨테이너 생성
B.E/Spring 2022. 8. 22. 21:58

해당 게시글은 김영한님의 스프링 핵심 원리 - 기본편의 강좌 정리 입니다. 내용 및 소스 출처 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 사용하기
B.E/Node JS 2022. 8. 21. 12:04

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 프로젝트 배포
B.E/Spring 2022. 8. 21. 10:47

해당 강좌는 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 시작하기.
B.E/Nest JS 2022. 8. 19. 14:03

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..