Tech Blog of Pinomaker
article thumbnail
Express + routing-controllers + typedi를 사용한 서버 구축하기(1) - Routing Controller
B.E/Node JS 2023. 10. 12. 00:16

0. 들어가기 전에 NodeJS + Express를 이용하여 백엔드를 구축하면 일반적으로는 Func을 기반으로 라우터와 컨트롤러로 구성하는 계층 구조를 많이 볼 수 있다. 하지만 Express에서도 Spring boot나 NestJS와 같이 controller를 구성하여 controller-service-repository 계층 구조로 구성하고 싶은 개발자가 많을 거다. Class를 기반으로 Express를 Controller, Service, Repository로 계층을 구성하게 되면 비교적 Spring boot나 NestJS 개발자들도 쉽게 접근할 수도 있다는 장점이 있다. 이번에는 routing-controllers와 typedi를 이용하여 Express로 해당 계층을 구현할 예정이다. (1) Ro..

[Node JS] Node JS란?
B.E/Node JS 2022. 11. 14. 13:29

Node.js 확장성 있는 네트워크 애플리케이션(특히 Server Side) 개발에 사용 되는 소프트퉤어 플랫폼으로, Javascript를 활용하여 논 블로킹 I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 내장 HTTP 서버 라이브러리를 포함하고 있어서 웹 서버에서 아파치 등의 별도 소프트웨어 없이 동작이 가능하여 서버의 동작에 있어서 더 많은 통제를 가능하게 한다. Node.JS는 2009년에 Ryan Dahl이 Inangural JSConf EU conference에서 발표하였는 데, Node.js의 탄생 전까지의 Javascript는 Frontend에서만 사용 되는 언어였습니다. 단순하게 HTML과 CSS로만 구성된 웹 서비스에서 동적 페이지를 다루는 용도로 사용 되었고,..

[Node JS] typescript + sequelize + passport로 유저 API 개발 - Passport로 Local 로그인하기
B.E/Node JS 2022. 9. 29. 12:32

전 게시글 확인! [Node JS] typescript + sequelize + passport로 유저 API 개발 - Local User 생성 전 게시글을 확인하고 읽어주시기 바랍니다:) [Node JS] typescript + sequelize + passport로 유저 API 개발 - Sequelize 셋팅 해당 포스트는 Typescript가 셋팅 되어있어야 합니다. [Node JS] Node.js를 Typescr.. pinomaker.com passport는 Node에서 로그인을 처리하기 위한 모듈이다. 간단하게 생각해서 여권이라고 생각하면 되는 데, 서비스를 개발하면 로컬 유저만 있는 경우도 있지만, 구글과 카카오 등 oauth를 이용한 다양한 종류의 유저를 처리해야할 때가 있는 데 이 때 pa..

[Node JS] typescript + sequelize + passport로 유저 API 개발 - Local User 생성
B.E/Node JS 2022. 9. 29. 11:58

전 게시글을 확인하고 읽어주시기 바랍니다:) [Node JS] typescript + sequelize + passport로 유저 API 개발 - Sequelize 셋팅 해당 포스트는 Typescript가 셋팅 되어있어야 합니다. [Node JS] Node.js를 Typescript 프로젝트로 셋팅하기. 1. Node Project 초기화 작업할 폴더를 생성하고 아래의 명령어로 Node Project로 초기화를 해준다. n.. pinomaker.com 전에 열심히 셋팅한 Sequelize를 이용하여 이제 Local User를 생성하는 즉 로컬 회원가입을 개발해보자. 폴더 구조는 src에 api 폴더를 만들고, user api를 수행할 user 폴더 안에 라우팅을 처리할 index.ts와 비즈니스 로직을 ..

[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 생성 위의 폴더 구..

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

[Node JS] Connection Pool로, Mysql 연결하기
B.E/Node JS 2022. 5. 31. 09:48

Node JS의 MySQL 모듈로 Connection Pool 방식으로 DB에 접근을 해보자. POSTMAN을 이용하여 데이터가 잘 들어가는 지에 대한 확인도 진행한다. Postman API Platform | Sign Up for Free Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster. www.postman.com 폴더 구조는 아래와 같다. 개발을 진행하기 위한 모듈을 아래와 같이 설치한다. npm install express mysql bod..

[Node JS] 1. API Server 구축하기 - express
B.E/Node JS 2022. 5. 27. 11:25

01. npm 모듈을 이용하여, Node 환경을 셋팅한다. NPM은 Node Package Module을 의미하는 모듈이다. 본인이 원하는 곳에 폴더를 생성 후 폴더를 VSCODE를 통하여 열어준다. 아래의 명령어로 프로젝트 폴더를 Node JS 프로젝트 환경으로 구축한다. npm init -y 위와 같은 화면이 나온 후, 폴더에 Package.json 파일이 생성된 것을 확인 할 수 있다. package.json은 해당 프로젝트의 대한 정보가 들어간 중요한 파일로, 모듈을 설치하면 해당 모듈 정보도 여기에 담긴다. { "name": "node-js", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo..

[Node JS] http 모듈
B.E/Node JS 2022. 5. 5. 09:04

Http 모듈을 이용하여 서버를 활성화 하자 http 모듈은 내장 모듈로, 별도의 설치 없이 이용 가능하다. //http 모듈 추출 const http = require("http") //http.createServer 이용하여 서버 객체 생성 const server = http.createServer((req, res) => { //Get반응으로 "/" 경로 요청시 Hello Node JS 반환 if (req.url === "/" && req.method === "get") { res.statusCode = 200 res.end("Hello Node JS") } }) const port = 8080 server.listen(port, () => console.log(`Server on port : ${..