Smart (Spring Modular Architecture Research Team)
Modular Monolithic
아키텍처의 원리를 이해하고 이를 효과적으로 활용하기 위해Spring Modulith
를 중심으로 설계 및 구현한다.- Payment 도메인을 예제로 사용하여
Spring Modulith
의 주요 기능과 모듈 설계를 심화 학습하고, 이를 기반으로 실제 애플리케이션을 구현한다.
차윤범 | 김재영 | 문준용 | 조상준 | 최윤한 |
---|---|---|---|---|
- 커머스팀 레포지토리가 궁금하다면 여기를 클릭하세요!
김우재 | 김희동 | 허정화 | 서영학 | 장준환 | 유지예 |
---|---|---|---|---|---|
- 모듈러 모놀리스(Modular Monolith) 아키텍처의 기본 원리 이해
- Spring Modulith를 활용한 모듈화된 애플리케이션 설계 및 구현
- 공통 관심사의 분리와 모듈 간 의존성 효과적인 관리
- 기존 모놀리스와 MSA의 차이점 및 장단점 분석
- 모듈 간 리소스 격리와 장애 격리 또는 대체 방안 탐구
- 모듈러 모놀리스와 스프링 모듈리스의 기본 개념 학습
- 도메인별 팀 구성 및 요구사항 설계
- 커머스팀과 핀테크팀으로 구분
- Monolithic Architecture와 MSA의 Trade-Off 분석
- Modular Monolith Architecture의 기본 구조와 개념 학습
- Spring Modulith의 주요 기능 학습
- 각 팀원의 모듈 설계 진행 및 의존성 검증
- 유스케이스를 기반으로 모듈별 요구사항에 맞는 기능 구현
- 계좌, 지갑: 상준
- 결제: 준용
- 송금: 재영, 윤한, 윤범
- 학습 배경, 목적, 결과를 중심으로 발표 자료(PPT) 제작
- 6주간의 스터디에 대한 회고와 개선점 논의
- 각 모듈 통합 테스트 및 검증
- 모듈 단위별 부하 테스트 수행 및 성능 분석
- 장애 전파 여부 측정 및 장애 내결함성 검증
- 기존 모놀리스와 비교: 코드 복잡성, 테스트 용이성, 성능 분석
- 모듈 설계와 구현에 대한 피드백 및 개선
- 주차별 단위로 Branch 생성
- 1주차:
week1/{github-name}-{title}
- 2주차:
week2/{github-name}-{title}
- 3주차:
week3/{github-name}-{title}
- 4주차:
week4/{github-name}-{title}
- 5주차:
week4/{github-name}-{title}
- 문서 추가/수정:
docs/{github-name}-{title}
- 1주차:
브랜치 유형 | 설명 |
---|---|
main | 운영 브랜치, 완료된 기능을 메인 서버에 merge |
develop | 개발 브랜치, 개발된 기능을 테스팅 서버에 merge |
feature | 새로운 기능 개발 브랜치 생성 |
fix | 버그 수정 브랜치 생성 |
hotfix | 운영 중 긴급 버그 수정 브랜치 생성 |
- 각 작업 단위로 하나의 Commit 작성
- 메시지 형식:
{유형}: {작업 내용}
작업 유형 | 작업 내용 |
---|---|
feat | 신규 기능 개발 |
refactor | 기존 기능 개선 및 코드 리팩토링 |
fix | 버그 수정 |
docs | 문서 추가, 수정, 삭제 관련 작업 |
chore | 환경 설정, 빌드 관련 작업 등 |
- Spring Modulith 공식 문서
- Spring Modulith GitHub
- Spring Tips: Spring Modulith (영상)
- Modular Monoliths with Spring Modulith (블로그)
- Modular Monolithic Architecture와 Spring Modulith (블로그)