- 숙소 목록 제공
- 숙소 필터링(날짜, 숙소 유형, 가격)
- 숙소 예약 기능 제공
중요 디렉토리
-
src: server 관련 소스
-
controllers: Request(요청)을 받아 Service에게 비즈니스 로직 처리를 위임하고, 처리의 결과를 Response(응답)하는 역할과 관련된 소스 모음
-
services: repository를 사용하여 비즈니스 로직을 처리하고, controller에게 결과를 반환하는 역할과 관련된 소스 모음
-
repositories: model(entity)를 사용하여 데이터베이스 작업을 수행하고 결과물을 service에게 반환하는 역할과 관련된 소스 모음
-
models: orm을 사용하여 table과 object 맵핑을 위한 Entity 소스 모음
-
middlewares: 미들웨워 관련 소스 모음
부가적인 디렉토리
- database: Entity 기반 seed 데이터 생성 관련 파일 모음
- custom: orm table 및 filed 네이밍 전략 관련 파일
- TypeScript: javascript super set
- typedi: @Service 어노테이션을 활용하여 Container에 dependency loading 기능을 제공하는 라이브러리
- routing-controllers: @Controller 어노테이션 기반 라우팅 기능을 제공하는 라이브러리
- typeorm: @Entity 어노테이션 기반
테이블 - 객체
매핑 - faker: 임시/랜덤 데이터 제공해주는 라이브러리
git clone https://github.com/chsch911028/airbnb-clone.git
## express server app 실행
cd airbnb-clone
npm install
npm start
## client react app static 파일 빌드
cd client
npm install
npm run build
- ORM Entity를 직접 반환하지 않고, DTO 계층을 만들어서 필요한 정보만 json 형태로 반환하도록 개선
- 현재는 Ncloud 서버 1대에서 DB, STATIC SERVER, API SERVER가 모두 실행되고 있다. 추후에 개별 서버로 분리하여 Nginx를 사용하여 reverse proxy 형태로 서비스 하도록 구성하고 싶다.
- 현재는 수동으로 배포하고 있지만 추후에 Travis, Github Webhook 등을 사용하여 Auto CI/CD를 구현해야 겠다.