
프로젝트 소개
삼성 청년 SW 아카데미 9기에서 진행한 자율(자유 주제) 프로젝트로, 팀원과 기획부터 운영까지 모두 직접 진행한 프로젝트입니다.
최근 극심한 악성 민원으로 인한 교직원분들의 안타까운 소식이 잇따라 전해지면서 사회적으로 큰 이슈가 되었습니다. 악성 민원으로 부터 교사 인권을 보호하고 학교와 가정의 원활한 소통 창구 역할을 하는 서비스입니다.
🏆 삼성 청년 SW 아카데미 자율 프로젝트 우수상
프로젝트 기간
2023.10.10 ~ 2023.11.17 (39일)
다운로드 링크
팀 구성
Back-End 3명 / Front-End 3명
사용 기술
Untitled
인프라 아키텍처

ERD

프로젝트 진행 내용
1. 테스트 주도 개발(TDD) 적용 및 테스트 성능 개선
문제 상황
- 도메인의 복잡도가 올라가면서 코드의 중복도가 올라는 문제가 발생했습니다.
- 또한, ApplicationContext 재활용으로 인해 테스트의 속도가 느려지는 문제가 발생했습니다.
해결 과정
- 빌더 패턴 도입
- 각 도메인에 빌더 패턴을 도입하여 도메인을 데이터베이스에 저장하는 로직의 가독성을 올리고 클래스 간의 의존도를 낮추었습니다.
- 컨텍스트 캐싱이 무조건 되는 것은 아니고, 특정 조건들을 만족해야 같은 컨텍스트라 인식하여 ApplicationContext를 재활용하게 된다는 것을 알게 되었고, 회원 마이크로서비스의 경우 총 12번의 ApplicationContext를 띄우는 과정을 거치고 있었습니다.
- 같은 성격의 테스트들을 abstract class로 추출하여 묶었고, 각각의 테스트들이 이를 상속하게 하여 컨텍스트 캐싱을 적극 활용할 수 있도록 수정하여 총 12번의 ApplicationContext를 띄우는 과정을 3번 띄우게끔 최적화 하였고 결과적으로 7.913 → 2.773초로 테스트 실행 속도를 개선했습니다.
- abstract class로
IntegrationTestSupport
, ControllerTestSupport
, RestDocsSupport
를 생성하여 사용했습니다.
2. 데이터 동기화를 위한 메세지 큐 Kafka 적용
문제 상황
- 학교 마이크로서비스에서 학급 등록 승인 이벤트가 발생하면 회원 마이크로서비스에 있는 데이터에 학급 정보 업데이트가 발생해야 했습니다.