본문 바로가기

MSA

[KEUPANG] MSA Root Project 생성

다음 페이지: config server 생성

개요

프로젝트 최종 목표

  • Docker를 활용한 MSA(Microservices Architecture) 환경에서 E-Commerce 플랫폼 구축
  • 유연하고 확장 가능한 시스템을 통해 사용자 경험 최적화 및 효율적인 서비스 운영
  • CQRS 패턴과 Eventually Consistency를 활용하여 데이터 일관성과 성능 개선

기술 스택

  1. Backend
    • Spring Boot: 각 마이크로서비스의 핵심 프레임워크
    • Spring Cloud: Eureka, Config Server, Gateway 등 MSA 지원
    • MySQL: 관계형 데이터베이스
    • MongoDB: 유연한 옵션(카테고리에 따른 옵션) 관리
    • Kafka: 메시지 브로커 (이벤트 기반 데이터 통합)
    • Redis: 세션 관리 및 캐싱
    • Swagger: API 문서화
  2. DevOps
    • Docker: 컨테이너화 및 배포 자동화
    • Docker Compose: 네트워크 구성 및 서비스 관리
    • Jenkins: CI/CD 자동화 (향후 추가 예정)
  3. Cloud
    • Naver Cloud Platform (추후 예정)
  4. 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