나만의 Mini-Project

csongin·2023년 1월 12일
0

developer

목록 보기
15/15

나만의 Mini-Project 소개

docker 기반의 express, mongodb 서버를 구축해서 회원가입, 회원 목록 조회, 토큰 인증 요청, 토큰 인증 완료, 스타벅스 커피 목록 조회 총 5개의 API를 만들어 보기로 했다.

초기세팅

  1. yarn init 명령어를 통해 package.json, yarn.lock 파일을 생성한다.
  2. export, import를 통해 파일을 내보내고 불러올 것이기 때문에 package.json 파일에 "type": "module" 추가한다.
  3. yarn add 명령어를 통해 프로젝트에 사용할 라이브러리를 설치한다.
    설치한 라이브러리

docker 기반의 express, mongodb 서버 구축

  1. docker 컨테이너 이미지 빌드를 위해 Dockerfile를 생성한다.

  2. Dockerfile 내에 컨텐츠 추가
    - FROM = docker에 설치할 서버와 버전
    - WORKDIR = docker에 생성할 폴더명
    - COPY = 복사할 파일 / 파일을 생성할 위치
    - RUN = package 설치 명령어
    - CMD = 서버 실행 명령어

  3. docker-compose.yaml 파일 생성(express와 mongodb의 다중 컨테이너를 구축하기 위해 필요)

  4. docker-compose.yaml 내에 컨텐츠 추가

    • 서버 컴퓨터와 데이터베이스 컴퓨터에 대한 컨텐츠 작성
    • volumes안에 있는 폴더 or 파일에 수정사항이 생기면 docker가 build된 이후에도 수정사항이 자동으로 반영된다.
      docker-compose-yaml
  5. .dockerigonore 파일 생성

  6. .dockerignore 내에 프로덕션과 관련없는 파일들을 추가해 이미지를 빌드할 때 제외시킬 수 있다.
    특정 파일이나 디렉토리를 제외할 수 있고, *를 사용해 특정 확장자를 가진 모든 파일을 제외할 수도 있다.
    .dockerignore파일을 잘 활용하면 이미지 크기도 줄일 수 있고 빌드 속도도 향상 시킬 수 있다.

mongoDB schema 생성

  1. models 폴더 생성
  2. models 폴더 안에 mongodb에 생성할 collection naming과 type 정의
    schema

api 만들기

여러 함수들을 조합하여 회원가입 기능 구현
주민등록번호 뒷자리 마스킹, 이메일 검증, 가입환영 템플릿 만들어서 이메일로 보내기 등
app.post/users

crawler를 이용해 데이터 가져오기

스타벅스 홈페이지에 있는 음료 이미지와 이름 가져오기
puppteer 라이브러리를 이용하여 구현하고 해당 데이터를 mongodb에 저장하였다.
crawler

swagger api 문서 만들기

swagger
swagger에 문법에 맞게 URI, HTTP method, summary, description, content, requset type, response type 등을 작성하면 된다.
참고로 들여쓰기에 매우 민감하기 때문에 들여쓰기 규칙을 잘 적용해야 한다.
swagger-api-documents

기타 구현사항

coolsms-node-sdk 라이브러리를 이용한 인증번호 전송 기능 구현
nodemailer 라이브러리를 이용한 메일 전송 기능 구현

github repository

profile
Backend Developer

0개의 댓글