2025/09/05 2

헥사고날 아키텍처에서 신고(Report) 엔티티의 도메인 위치 딜레마

1. 상황 비밀로그(BimilLog) 프로젝트를 헥사고날 아키텍처로 설계하면서 신고 기능을 구현하게 되었다. 현재 시스템은 7개의 주요 도메인(admin, auth, comment, notification, paper, post, user, common)으로 구성되어 있으며, 각 도메인은 명확한 책임과 경계를 가지고 있다. 신고 기능의 요구사항은 다음과 같았다: - 글 신고: 부적절한 게시글 신고 - 댓글 신고: 부적절한 댓글 신고 - 건의사항: 사용자가 시스템에 대한 건의사항 제출 - 신고 관리: 관리자가 신고 내역을 조회하고 처리 자연스럽게 각 기능은 관련 도메인에 배치되었다: - 신고 하기→ user 도메인의 in 어댑터 (UserCommandController) - 신고 조회 →..

TestContainers로 MySQL + Redis 통합 테스트

이번 글에서는 CommentClosureQueryAdapter 통합 테스트와 PostCacheSyncAdapter 테스트를 TestContainers 기반으로 통합 테스트 환경으로 바꾸면서 겪은 삽질과 해결 과정을 정리해보겠습니다.1. 시작: 댓글 테스트에서 MySQL만 사용처음에는 댓글 테스트에서 MySQL 컨테이너만 사용했습니다.@Containerstatic MySQLContainer mysql = new MySQLContainer("mysql:8.0") .withDatabaseName("testdb") .withUsername("test") .withPassword("test");@DynamicPropertySourcestatic void dynamicPrope..

개발 2025.09.05