<aside> ❗ 본 문서는 초기 개발 환경을 설정하는 방법을 안내합니다.
</aside>
본 문서는 Toduck Backend 프로젝트 로컬 개발 환경 설정에 대한 전반적 이해를 돕는 것을 목적으로 합니다.
<aside> ❗ 해당 문서는 항상 최신 상태를 유지해야 합니다. 초기 개발환경 설정에 영향을 주는 경우가 있는 경우 해당 문서를 업데이트해 주세요. 각 단계에서 문제가 발생하면, 해당 단계의 명령어와 설정 파일을 다시 확인하고, 필요한 경우 팀원에게 문의하세요.
</aside>
아래 명령어를 통해 리포지토리를 클론합니다.
git clone <https://github.com/toduck-App/toduck-backend.git>
<aside> ❗ 해당 섹션을 수행하기 위해서는 toduck-backend-private 리포지토리에 대한 접근 권한이 있어야 합니다. 권한이 필요한 경우 관리자에게 요청하세요. 리포지토리의 민감 정보가 외부로 노출되지 않도록 유의해주세요.
</aside>
본 프로젝트는 데이터베이스 암호, 엔트리포인트와 같은 민감정보를 submodule
을 통해 관리합니다.
빌드 시점에서 모듈 내의 application.properties
파일을 사용합니다.
submodule 리포지토리명은 toduck-backend-private 이며, private 권한을 가집니다.
초기 설정에서는 submodule
사용을 위한 초기화 작업이 필요합니다.
아래 명령어를 통해 submodule
을 초기화 합니다.
git submodule init
git submodule update
본 프로젝트는 코드 품질을 높이고 일관성을 유지하기 위해 Lint 도구를 적극적으로 사용합니다.
Checkstyle은 코드 스타일 가이드를 준수하도록 돕는 도구입니다. IntelliJ IDEA에서 CheckStyle-IDEA 플러그인을 설치하고 설정하는 방법을 안내합니다. 이를 통해 본 프로젝트의 코드 스타일을 일관성 있게 유지할 수 있습니다. 본 프로젝트는 네이버 캠퍼스 핵데이 Java 코딩 컨벤션
을 준수합니다.
IntelliJ IDEA에서 CheckStyle-IDEA
플러그인을 찾아 Install
버튼을 클릭합니다.
Settings
-> Checkstyle
로 이동하여 아래와 같이 설정합니다.
Configuration File
의 +
버튼을 누른 뒤, naver-checkstyle-rules.xml 파일을 아래와 같이 설정합니다.
참고: Checkstyle
파일 경로는 현재 프로젝트 내의 toduck-backend/rule-config/naver-checkstyle-rules.xml입니다.
해당 파일의 원본은 https://github.com/naver/hackday-conventions-java/tree/master/rule-config에 있습니다.
Next
를 누르면 위와 같은 창이 뜨고, 프로퍼티 설정의 Value 부분을 이전에 받았던 naver-checkstyle-suppressions.xml로 작성합니다.저장 시 코드 포맷팅을 자동으로 수행하여 코드 일관성을 유지하도록 합니다.
Editor
-> Code Style
-> Java
에서 IntelliJ IDEA code style XML을 클릭합니다.
이후에 toduck-backend/rule-config/naver-intellij-formatter
경로의 파일을 선택합니다.
설정→ 저장 시 액션에서 위에 두 항목 체크 후 저장한다.
Husky는 Git 훅을 쉽게 관리할 수 있게 해주는 도구입니다. 이를 통해 커밋, 푸시 등의 Git 이벤트 전에 Lint 검사를 자동으로 수행할 수 있습니다.
Husky 설정은 프로젝트 루트 디렉토리의 .husky
폴더를 참조합니다. 아래 명령어를 통해 husky 관련 의존성을 설치합니다.
npm install
현재 다음과 같은 경우에 Commit
을 금지하고 있습니다.
Commit
조건은 ./.husky/pre-commit
파일에서 관리합니다.
<aside> ❗ Docker Compose 관련 설정은 반드시 Entity 정의 및 Database 사용을 위한 사전 설정이 완료된 이후에 진행해야 합니다.
</aside>
Docker Compose를 사용하여 애플리케이션과 필요한 모든 서비스를 정의하고 실행할 수 있습니다. ./docker-infra/docker-compose.yml
파일을 사용하여 다음 명령어로 Docker Compose를 실행하세요:
cd docker-infra
REDIS_PASSWORD="abcd1234@" MYSQL_HOST_PORT=3308 MYSQL_ROOT_PASSWORD="abcd1234@" MYSQL_USER="user" MYSQL_PASSWORD="abcd1234@" REDIS_HOST_PORT=6380 RABBITMQ_USER=user RABBITMQ_PASSWORD=abcd1234@ docker-compose up -d
이 명령어는 MySQL과 Redis 서비스를 정의된 파일을 기반으로 실행합니다.
처음 설정이 진행될 때, ./sql/init.sql
에 정의된 DDL을 기준으로 데이터베이스를 정의합니다.
개발환경 MySQL의 포트는 3308
, 개발환경 Redis의 포트는 6380
입니다.
본 프로젝트는 다양한 프로필을 사용하여 환경별 설정을 관리합니다. 로컬 개발 환경에서는 local
프로필을 활성화 해야 합니다.
빌드 구성 설정에서 프로필 local 설정
변경 이력:
Version # | Revision Date | Description | Author |
---|---|---|---|
v0.0.1 | 2024.07.19 | 기본 설명서 작성 | 설진영 |
v0.0.2 | 2024.07.26 | formatter 설정 오류 해결 | 설진영 |