Day2 - 기본 구조 세팅

RINM·2022년 12월 24일
0

NextJS - Reddit Clone

목록 보기
2/9

구조

client 와 server를 별도의 폴더에서 작업

Client

npx create-next-app@latest --typescript client

Server

  • server.ts: entry point
  • tsconfig.json: typescript 코드를 javascript로 컴파일(tsc)할 때의 옵션 설정

모듈

  • express: nodejs 웹 프레임 워크
  • nodemon: 코드 변경시 서버 자동 재시작
  • morgan: nodejs 로그 관리 미들웨어
  • ts-node: node.js에서 컴파일러 없이 typescript 실행
  • @types/node, @types/express, @types/morgan: 모듈 별 type 정의

postgres

Docker로 생성 및 실행: docker-compose.yml

version : '3'
services:
  db:
    image: postgres:latest
    container_name: postgres
    restart: always
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: "${DB_USER_ID}"
      POSTGRES_PASSWORD: "${DB_USER_PASSWORD}"
    volumes:
      - ./data:/var/lib/postgresql/data

관련 모듈

  • typeORM: Typescript로 쓸 수 있는 nodejs ORM
  • pg: PostgreSQL DB와 인터페이스하기 위한 nodejs 모듈
  • reflect-metadata: runtime 타입 분석을 바탕으로 TypeORM의 decorator 사용을 돕는 모듈

TypeORM

nodejs에서 실행되는 Typescript 작성 객체 관계형 mapper 라이브러리
MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL 지원

ORM (Object Relational Mapping)

객체와 관계형 DB의 데이터를 자동으로 연결

0개의 댓글