다음 페이지: config server 생성
개요
프로젝트 최종 목표
- Docker를 활용한 MSA(Microservices Architecture) 환경에서 E-Commerce 플랫폼 구축
- 유연하고 확장 가능한 시스템을 통해 사용자 경험 최적화 및 효율적인 서비스 운영
- CQRS 패턴과 Eventually Consistency를 활용하여 데이터 일관성과 성능 개선
기술 스택
- Backend
- Spring Boot: 각 마이크로서비스의 핵심 프레임워크
- Spring Cloud: Eureka, Config Server, Gateway 등 MSA 지원
- MySQL: 관계형 데이터베이스
- MongoDB: 유연한 옵션(카테고리에 따른 옵션) 관리
- Kafka: 메시지 브로커 (이벤트 기반 데이터 통합)
- Redis: 세션 관리 및 캐싱
- Swagger: API 문서화
- DevOps
- Docker: 컨테이너화 및 배포 자동화
- Docker Compose: 네트워크 구성 및 서비스 관리
- Jenkins: CI/CD 자동화 (향후 추가 예정)
- Cloud
- Naver Cloud Platform (추후 예정)
- Frontend
- React: E-Commerce UI 개발 (다른 person이 develop)
루트 프로젝트 소개
- 단순히 기능별로 구현된 모듈을 담아두는 gradle 프로젝트
- build.gradle 이나 .env, .gitignore 과 같은 파일에서 각 모듈에 대한 공통 처리가 가능
git 설정
- main, develop, featrue 브랜치로 분리
- keupang 프로젝트의 1번 이슈인 root project 생성을 해결 하기 위한 feature#1-root-project-create 브랜치를 develop 브랜치에서 생성
- feature 브랜치로 전환(checkout) 하고 작업을 수행.
프로젝트 생성
- intellij에서 gradle 프로젝트 생성
- 생성된 프로젝트에서 src는 필요없으므로 제거
- 자동으로 만들어진 .gitignore 를 보면 이미 많은 내용을 걸러주고 있음.
.gradle build/ !gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ !**/src/test/**/build/ ### IntelliJ IDEA ### .idea/modules.xml .idea/jarRepositories.xml .idea/compiler.xml .idea/libraries/ *.iws *.iml *.ipr out/ !**/src/main/**/out/ !**/src/test/**/out/ ### Eclipse ### .apt_generated .classpath .factorypath .project .settings .springBeans .sts4-cache bin/ !**/src/main/**/bin/ !**/src/test/**/bin/ ### NetBeans ### /nbproject/private/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ ### VS Code ### .vscode/ ### Mac OS ### .DS_Store
모듈 추가하는 방법
- 이후에 이 프로젝트안에는 다양한 프로젝트들이 들어올 예정임.
- 아래 과정을 따라하면됨
- 원래 진행 하던 프로젝트가 있다면 프로젝트를 루트 프로젝트안에 복붙해서 넣고, settings.gradle 수정하는 부분만 보면됨.
위 사진처럼 루트프로젝트(필자는 keupang)를 오른쪽 클릭하고 New -> Module을 클릭
이런식으로 나오면 프로젝트 만들어 주면 됨. intellij에서 spiring initializr가 안열리는 분들은 그냥 https://start.spring.io/에서 만들고 복붙하세요.
루트 프로젝트의 settings.gradle 수정
추가한 프로젝트를 인식할 수 있도록 해주는 과정
rootProject.name = 'keupang'
include 'keupang-config-server'
include 'keupang-user'
include 'keupang-product'
include 'keupang-eureka-server'
include 'keupang-gateway'
이런 식으로 추가한 프로젝트 이름을 루트 프로젝트의 settiongs.gradle에 똑같이 넣어주면 됨.
마무리
- feature 브랜치에서 push
- develop에 pull request 후 병합
'MSA' 카테고리의 다른 글
[KEUPANG] API Gateway 생성 (2) | 2024.11.26 |
---|---|
[KEUPANG] EurekaClient 설정 (0) | 2024.11.26 |
[KEUPANG] Eureka Server 생성 (0) | 2024.11.25 |
[KEUPANG] User service project 생성 (0) | 2024.11.25 |
[KEUPANG] config server 생성 (0) | 2024.11.25 |