설문 관리 서비스 구현 사례
백엔드
설문 관리 서비스 구현 사례
두줄요약
의료 설문 플랫폼에서 설문 정의와 수집을 담당하는 서비스를 헥사고날 구조와 CQRS로 설계했습니다. Master/Snapshot, Kafka, Outbox 등을 적용해 정합성과 운영 안정성을 확보했습니다.
핵심 내용
- 의료 설문 플랫폼의 설문 데이터 정의·발송·응답 수집을 담당하는 서비스를 단일 책임으로 설계
- 헥사고날 멀티 모듈, CQRS, 멀티 테넌시, 소프트 삭제로 정합성과 확장성 확보
- Master/Snapshot 패턴으로 설문 서식 버전 관리와 응답 정합성 보장
- Kafka, Outbox, ShedLock, Redis로 이벤트 기반 연동과 운영 안정성 강화
구조와 흐름
- domain, store-jpa, proxy, feature, facade, client/event, scheduler, boot로 모듈 분리
- 명령 모델과 조회 모델을 분리해 쓰기 트랜잭션과 화면 조회 요구를 각각 최적화
- 외부 EMR 연동은 ACL과 Strategy 패턴으로 격리하고 계약 기반 아티팩트로 배포
성능/운영 포인트
- Redis 캐싱과 비동기 이벤트로 조회 부하와 서비스 간 결합도 완화
- ShedLock과 Outbox로 스케줄 중복 실행과 이벤트 유실 방지
- OAuth2, Keycloak, Jasypt로 인증·권한·설정 보안 강화
