https://github.com/jin-sungdae/truedoc
분산 시스템 기반으로 설계된 EMR 신청 플랫폼으로, 회원가입 및 구독 관리 기능을 제공합니다. 사용자가 EMR 서비스를 신청하고, 구독 상태를 조회 및 관리할 수 있도록 구축되었습니다.
https://github.com/jin-sungdae/truedoc
mybatis mysql nginx spring-boot tomcat vue webflux
Last synced: 3 months ago
JSON representation
분산 시스템 기반으로 설계된 EMR 신청 플랫폼으로, 회원가입 및 구독 관리 기능을 제공합니다. 사용자가 EMR 서비스를 신청하고, 구독 상태를 조회 및 관리할 수 있도록 구축되었습니다.
- Host: GitHub
- URL: https://github.com/jin-sungdae/truedoc
- Owner: jin-sungdae
- Created: 2025-03-03T14:18:11.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-03T15:28:05.000Z (3 months ago)
- Last Synced: 2025-03-03T15:30:01.510Z (3 months ago)
- Topics: mybatis, mysql, nginx, spring-boot, tomcat, vue, webflux
- Homepage: https://mental.truedoc.it/
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

주소 : [트루닥](https://mental.truedoc.it)
---
# ☑️ 프로젝트 소개
분산 시스템 기반으로 설계된 EMR 신청 플랫폼으로, 회원가입 및 구독 관리 기능을 제공합니다. 사용자가 EMR 서비스를 신청하고, 구독 상태를 조회 및 관리할 수 있도록 구축되었습니다.
- 프로젝트명 : 트루닥
- 진행 기간 : 2023.5 ~ 2024.5 (12 개월)
- 💡 **기여도** : 해당 프로젝트의 개발 업무 중 **80%의 할당량**이 단독으로 저에게 주어졌으며, 이를 기한 내에 완수했습니다.
- 주요 업무 : 프로젝트 메인 개발자
- 활용 기술 : Spring Boot, Spring WebFlux, Vue, MySQL💡 분산 시스템을 기반으로 제작된 프로젝트
---
# ☑️ 프로젝트 진행과정 및 나의 역할
### 1. 아키텍처 설계
- 서비스 아키텍처 설계 단계부터 참여하여 프론트엔드 및 백엔드 메인 MVP를 담당
- EMR API를 활용하여 API 설계 및 테이블 설계### 2. 서비스 구축
![]()
![]()
![]()
- Tomcat 리소스 블로킹을 방지하기 위해 스트리밍 방식을 활용한 파일 업로드 서비스 구축
- Spring WebFlux의 WebClient를 사용하여 서버 간 REST API를 비동기 논블로킹 방식으로 호출
- 다량의 데이터 처리 과정에서 일부 실패를 복구할 수 있도록 재시도 및 보상 메커니즘을 적용
- 비동기 재시도 과정에서 무한 재귀로 빠질 가능성을 방지하기 위해 타임아웃 메커니즘을 적용, 일정 시간 내 응답이 없을 경우 강제 종료하도록 설계
- ISMS-P 대응을 위한 개인정보 암호화 및 접근 관리 통제### 3. 서버 안정화 및 유지보수
- 톰캣 모니터링을 위한 로그 관리
- 운영 이슈 대응---
### ☑️ 프로젝트 성과 및 배운점
> 성과 :
>
- WebClient를 활용한 비동기 API 호출을 통해, 각 요청을 독립적인 트랜잭션으로 관리하고, 롤백 메커니즘을 적용하여 데이터 정합성을 유지하며 평균 응답 시간을 60% 단축
- 부분 실패 처리(Partial Failure Handling) 메커니즘을 도입하여, 실패한 작업들을 선별적으로 수집하고 오류의 영향을 최소화.
- 실패한 요소들은 독립된 스레드와 트랜잭션 내에서 고립된 오류 처리(Fault Isolation) 방식으로 관리하였으며, 보상 트랜잭션(Compensating Transaction)을 적용하여 데이터 무결성을 확보. (Error Rate = 0, MTTR = 7.9)
- 다중 이미지 업로드 시간을 감소시키기 위해서 파일 업로드 진행을 병렬 처리로 구현하였고, 다중 파일 업로드 시 업로드 효율을 2배 증가> 배운점:
>
- 비동기 API 호출 시 트랜잭션을 독립적으로 관리하고, 롤백 메커니즘을 적용하여 데이터 정합성을 유지하는 전략을 배웠습니다.
- 독립된 스레드와 트랜잭션 내에서 고립된 오류 처리를 구현하면서, 마이크로서비스 및 분산 시스템에서의 오류 복구 전략을 습득하였습니다.
- Tomcat 리소스 블로킹을 방지하기 위해 스트리밍 방식의 파일 업로드 서비스를 설계하면서, 서버의 안정적인 리소스 활용 기법을 배웠습니다.