MSA(Microservice Architecture)를 기반으로 설계된 중고거래 플랫폼입니다.
각 서비스는 gRPC 기반 통신 및 Docker 환경에서 구성되어 있습니다.
현재 프로젝트는 개발 진행 중이며, 핵심 기능부터 점차 구현해나갈 예정입니다.
- 전체 서비스에 대한 이벤트 스토밍 진행
- 이를 바탕으로 마이크로서비스 단위로 도메인 및 책임 분리
- 회고록 작성 및 팀 내 공유 완료
- 유저 스토리 기반 플래닝 포커 진행
- 스크럼 방식을 도입하여 주간 단위 진행
- INVEST 원칙 기반으로 유저 스토리 작성
- 도메인 모델 식별 및 도메인 간 연관 관계 설계
- ERD 설계 및 시각화 완료
| 전체 서비스 흐름 이벤트 스토밍 | 도메인 모델링 | ERD |
|---|---|---|
![]() |
|
|
| 주제 | 담당자 | 관련 문서 |
|---|---|---|
| gRPC 통신 방식 | 허민영 | 바로가기 🔗 |
| Docker & Compose 환경 구축 | 김민주 | 바로가기 🔗 |
| React Native (Expo) 환경 구성 | 남지연 | 바로가기 🔗 |
| React Native + TypeScript를 활용한 홈화면 구성 (with Expo Router) | 선지오 | 바로가기 🔗 |
| 프로젝트 초기 세팅 | 허민영 | 바로가기 🔗 |
| AWS 기초 + CI/CD | 김가현 | 바로가기 🔗 |
현재까지의 스터디 내용은 위 표에 정리되어 있으며,
추가 세션이 진행되는 대로 내용을 계속 업데이트할 예정입니다.
모든 정적 리소스(이미지 등)는 Amazon S3에 저장됩니다.
S3에 저장된 파일은 CloudFront를 통해 전 세계 엣지 서버에서 빠르게 제공됩니다.
사용자 요청은 API Gateway를 통해 각 백엔드 서비스로 전달됩니다.
모든 백엔드 서비스는 AWS ECS 클러스터의 Private Subnet 환경에서 실행됩니다.
ECS는 ECR에 저장된 Docker 이미지를 자동으로 가져와 컨테이너로 구동합니다.
서비스 간 통신은 gRPC 프로토콜을 기반으로 이루어집니다.
Zipkin을 통해 서비스 간 호출 및 요청 흐름을 분산 추적(Distributed Tracing)합니다.
Prometheus가 메트릭 데이터를 수집하며, 이를 Grafana로 시각화하여 실시간으로 시스템 상태를 모니터링합니다.
| 문제 | 설명 | 해결 방법 |
|---|---|---|
| Config-Service와 Discovery-Service 간 순환 참조 | Config-Service가 설정 정보를 가져오기 전에 Eureka에 접근하려고 시도 | EUREKA_ENABLED=false 조건 분기로 해결 |
| gRPC 호출 시 Metadata 누락 | API Gateway → User-Service 호출 시 JWT가 전달되지 않아 NullPointerException 발생 |
보안 그룹에 gRPC 포트(50051) 열고, Metadata 전달 코드 보완 |
기록 링크 : https://www.notion.so/23660b1c7f7780118f0fd3f7180324aa
- Java 21, Spring Boot 3.2.4 (Security, JPA, Validation)
- MapStruct, Lombok, Hibernate Types
- MySQL (운영)
- H2 (테스트)
- gRPC + Protocol Buffers
- Spring Cloud 2023.0.0 (Eureka Client)
- grpc-spring-boot-starter
- JJWT (JWT 인증)
- Docker / Docker Compose
- Eureka Server
- DevTools, JUnit (useJUnitPlatform)


