Skip to content

반려견 출장목욕 서비스 몽글몽글 서버

License

Notifications You must be signed in to change notification settings

PBTP/mongle-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fd89ad0 · Feb 28, 2025
Apr 14, 2024
Oct 18, 2024
Jan 10, 2025
Oct 17, 2024
Oct 18, 2024
Feb 28, 2025
Feb 28, 2025
Apr 4, 2024
Oct 17, 2024
Apr 4, 2024
Apr 10, 2024
Apr 4, 2024
Nov 18, 2024
Oct 17, 2024
Apr 4, 2024
Nov 17, 2024
Oct 18, 2024
Apr 4, 2024
Oct 26, 2024
Nov 17, 2024

Repository files navigation

🐶 Mongle-Server

- 반려견 디지털 플랫폼 프로젝트의 일환인 Mongle의 서버 저장소입니다.

🌟 프로젝트 목표

우리 팀은 기술의 탐구와 공부를 통해 창의적인 서비스를 제작하고자 합니다. 이 과정에서 서비스 배포 및 운영을 넘어, 실제 상용화에 도전하여 반려견 산업에 혁신을 가져오고자 합니다.

🚀 미션 및 비전

  • 현재 상황: 전세계적으로 반려견 산업의 매출이 지속적으로 증가하고 있습니다. 다양한 반려견 관련 사업이 등장하고 있지만, 디지털 분야에서의 활용은 상대적으로 미약합니다.

  • 우리의 비전: 저희는 반려견 산업에 특화된 디지털 플랫폼을 통해 고객에게 편리성, 안정성, 효율성을 제공하고자 합니다. 이를 통해 고객들이 더욱 풍부한 경험을 할 수 있게 하며, 반려견과의 삶을 더욱 행복하게 만들고자 합니다.

👐 팀원 소개

고지훈
@emibgo2

🛠️ 기술 스택

Application

Nestjs TypeScript TypeORM
v10.3.2
v5.4.3
v0.3.2

Database & Storage

PostgreSQL Redis OpenSearch
v16.3
v7.1.0
v2.13

DevOps

EC2 Lambda SQS CloudFront ParameterStore
Nginx Grafana GitHub Actions Docker

📄 개발 문서

🗄️ ERD

🌐 AWS 인프라 구조

CI/CD 프로세스

  • CD

image

Git 커밋 메시지 가이드라인 📝

커밋 메시지는 한국어와 영어를 편하게 섞어 사용할 수 있습니다. 커밋 컨벤션 규칙은 아래 태그를 참고해주세요.

자주 사용하는 태그 종류

  • Feat: 새로운 기능을 추가하는 경우
  • Fix: 버그를 고친 경우
  • Docs: 문서를 수정한 경우
  • Style: 코드 포맷 변경, 세미콜론 누락 등 코드 수정이 없는 경우
  • Refactor: 코드 리팩토링
  • Test: 테스트 코드 추가 또는 리팩토링 테스트 코드 추가
  • Chore: 빌드 업무 수정, 패키지 매니저 수정
  • Design: CSS 등 사용자가 UI 디자인을 변경한 경우
  • Rename: 파일명 또는 폴더명을 수정한 경우
  • Remove: 코드(파일)를 삭제한 경우. "Clean", "Eliminate"를 사용하기도 함

기타 태그

  • Add: 코드나 테스트, 예제, 문서 등의 추가 생성
  • Improve: 향상된 기능 추가. 호환성, 검증 기능, 접근성 등이 포함됨
  • Implement: 코드가 추가된 정도보다 더 주목할만한 구현체를 완성했을 때
  • Move: 코드 이동이 있는 경우
  • Updated: 계정이나 버전 업데이트 시 사용. 주로 코드보다는 문서나 리소스, 라이브러리 등에 사용
  • Comment: 필요한 주석 추가 및 변경

브랜칭 전략 (Git Flow) 🌿

브랜치 관리의 명확성

  • Feature, Develop, Release, Hotfix, Master 등의 명확한 브랜치 구조를 제공

배포 안정성

  • Release 브랜치에서의 테스트와 QA 과정을 통해 안정성이 검증된 기능들이 Master 브랜치로 병합되어 배포되므로 안정성이 높음

안정성

  • Main 브랜치에서는 직접 푸시를 막아서 안정성을 고려

브랜치 종류

  • main: 최상위 브랜치로, 최종 배포 버전 소스가 저장
  • dev: 릴리즈 준비가 된 브랜치. 모든 Feature 브랜치는 Develop에 병합
  • feature: 개별 기능 구현과 버그 해결 시 사용하는 브랜치. Master 브랜치에는 직접 접근 불가

브랜치 작업 순서

  • Feat → dev → Main 순서

PR 통해 소스 코드 병합

  • 리뷰어가 서로의 코드를 확인

Merge 전략

  • feature → dev: Squash and Merge
  • 여러 개의 커밋을 하나의 커밋으로 합쳐서 기록
  • feature 브랜치는 dev 브랜치에 병합 후 제거
  • dev → main: Rebase And Merge

GitHub Branch Rule 추가

  • Require a pull request before merging: Merge 전 코드 리뷰 필요
  • 최소 인원 1명 설정
  • Require status checks to pass before merging: 테스트 실패 시 Merge 불가 (현재는 체크하지 않음)

환경 변수 관리 🔐

  • 오픈소스이기 때문에 민감한 정보는 코드에 삽입 금지
  • 환경 변수는 AWS Parameter Store를 사용하여 관리
  • 타 파트에서 사용할것을 고려하여 환경변수를 등록할 때는 /mgmg/server/{환경}으로 등록
  • 현재 PrameterStore에 있는 환경변수를 서버 환경변수로 등록하되 우선순위에 의거하여 서버 환경변수로 등록됨
    • 우선순위
      1. 현재 NODE_ENV에 속하는 파라미터
      2. prod
      3. dev
      4. local

Get Started 🚀

  • 보안을 위하여 RDS 및 Redis의 연결은 Bastion Host만으로 제한됩니다.
  • 때문에 EC2 인스턴스와 SSH Tunneling 연결이 우선되어야 합니다.

SSH Tunneling 예시

$ ssh -N -L  your-db-port:your-rds-endpoint:your-rds-port ec2-user@your-ec2-endpoint -i your-key.pem

Installation

$ yarn install

Running the app

# NODE_ENV setting
$ export NODE_ENV=dev

# development
$ yarn run start

# watch mode
$ yarn run start:dev

# production mode
$ yarn run start:prod

Test

# unit tests
$ yarn run test

# e2e tests
$ yarn run test:e2e

# test coverage
$ yarn run test:cov

About

반려견 출장목욕 서비스 몽글몽글 서버

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published