Nodejs express로 에어비앤비 클론코딩 해보기 1.

에어비앤비 클론코딩 해보기 1.

Nodejs를 학습하고 학습한 내용을 바탕으로 무언가를 만들어봐야 겠다는 마음 하나로 무턱대고 혼자 진행했던 프로젝트입니다.
실제 서비스까지의 구현을 목표로 하지 않고 node.js와 express를 이용한 앱을 만들어보고자 진행했던 프로젝트라 많이 힘들었고 좋은 결과물이 나오지는 못했지만 처음으로 스스로 처음부터 만들어본 것 이기 때문에 이후 다른 어떤 프로젝트에서도 기본적인 개념을 알고 진행하는데 있어 충분한 학습 효과가 있었던 프로젝트 입니다.

Github : https://github.com/hanjuren/Node

프로젝트의 전체적인 구조

  • Nodejs기반 express앱
  • mysql 데이터 베이스 사용 및 sequelize 사용
  • view를 위해 nunjucks 템플릿 엔진 사용
  • passport를 통한 사용자 인증 기능 구현

완성 결과

사용한 패키지

  • express
  • express-session
    • express-mysql-session
  • passport
    • passport-local
    • passport-kakao
    • passport-naver
    • passport-facebook
  • bcrypt
  • cookie-parser
  • dotenv
  • morgan
  • multer
  • nunjucks
  • mysql2
  • sequelize
    • sequelize-cli
  • nodemon

프로젝트를 진행하며 느낀점

node.js의 기본적인 학습만 진행하고 바로 작업을 진행하며 하나씩 붙여나가는 과정이 스스로 무언가를 만들어낸다는 것에 의미가 큰 과정이였습니다.
비록 작업을 계속 해나가며 프로젝트의 과정이 설계를 하지 않고 혼자 추가해보고 싶은 기능을 구현하다보니 두서 없는 과정으로 진행되었지만 기능 하나하나 스스로 만들며
막히는 부분을 해결해 나가는 과정이 의미있었습니다.
하지만 이 과정을 겪고서 작고 사소한 프로젝트라도 시작 전 설계의 중요성과 구조를 잡고 시작해야하는 중요성을 크게 느끼게 되었고 무턱대고 작업을 한다고 해서 그저 돌아가기만 하는 기능을 만드는 것이
무의미 하다는 것도 느끼게된 프로젝트 였습니다.
아쉬웠던 점은 클론코딩을 하다보니 스스로 생각해내는 기능은 적고 클론코딩의 대상이 된 웹의 기능을 어떤식으로 구현해볼지에 대해 고민을 하던 시간이 대부분이였던 것에 아쉬움을 느꼈습니다.
스스로 만들어나가는 과정은 뿌듯했지만 새로운 것을 만들어 낸다는 느낌보다는 기능을 가능한 수준에서 모방하기만 한다는 느낌이 컷던 만큼 이후 프로젝트에서는 하나의 기능을 만들더라도
많은 고민과 보다 좋은 기능을 만들 수 있는 측면까지 고민하며 작업해야겠다라고 생각하게 되었습니다.

또한 이 프로젝트의 결과물에 대해 다시 한번 글을 작성하며 이런 부분은 지금보니 이렇게 개선하면 되겠다는 부분을 생각을 많이 하게되었던 프로젝트 입니다.
이 프로젝트에서 했던 내용을 기록하며 다시 공부한다는 마음으로 진행 부분을 기록하려 합니다.

Passport(passport-local)

👍Passport 사용해보기

passport는 Node.js의 인증 미들웨어로 요청에 대한 인증을 위한 패키지이다. 소셜네트워크 서비스의 발전으로 인해 OAuth 인증 방식의 사용이 보편화 되면서 API를 이용하기 위한 방식을 구축해주는 패키지이다.

자세히 보기

Nodejs Middleware

Node.js Middleware 알아보기


👉Middleware란?

미들웨어란 요청(req), 응답(res)의 사이에서 목적에 맞게 구현한 함수를 실행하게 되는 거쳐가는 함수라는 의미이다.
docs에서는 미들웨어를 다음과 같이 정의하고 있다.

자세히 보기

NodeJs Router

Node.js Router 알아보기.

라우팅이란

라우팅은 애플리케이션 엔드 포인트(URI)의 정의, 그리고 URI가 클라이언트 요청에 응답하는 방식을 의미하고 있습니다.
예를 들어 다음과 같은 라우터가 있다면

1
2
3
4
5
6
7
const express = require('express');
const app = express();

// respond with "hello world" when a GET request is made to the homepage
app.get('/', function(req, res) {
res.send('hello world');
});
자세히 보기

NodeJs express

Node.Js를 알게 된지 반년이 넘어가는데 이제야 깃 블로그를 시작한 본인이 너무 바보 같지만 지금까지 공부한 것들을 블로그를 통해 기록하려한다.. 너무 많은게 문제지만 하나하나
정리해 나가야 겠다.

NodeJs express 시작하기

npm init 명령어 실행 후 터미널에서 express 패키지를 install 한다.

1
npm install express\
자세히 보기