10월 월간 회고록 | 한화 SW 캠프 3개월차
1) 도입
10월은 백엔드 프로젝트를 새 팀과 시작하고, 공모전 중간발표까지 준비하느라 시간이 훅 지나갔다. 프로젝트와 공모전을 병행하다 보니 일정 압박이 컸지만, 한 달을 돌아보니 그래도 뼈대와 필수 기능들을 꽉 채워 달린 느낌이다.
2) 프로젝트 개요

백엔드 프로젝트(ADHD)
- 유형: Spring 기반 백엔드 프로젝트(MSA 지향)
- 팀명: ADHD(광고당했대)
- 주제: 광고 큐레이션/모음 서비스
- 내 역할: 알림 전반, MSA 구조 설계·구현(SSE 포함)
- 분위기: 새로운 멤버들과 기대 반 걱정 반으로 시작 → 빠르게 호흡 맞춰 진도 확보
공모전
- 유형: 지도/데이터 시각화 중심의 웹 서비스
- 내 역할: 백엔드 전반, 쓰레기 데이터 입력 처리, DB 연동, 사진 EXIF 기반 위·경도 추출, 역지오코딩, 히트맵·버블맵 구현
- 목표: DB 데이터를 지도로 직관적으로 표현하는 사용자 경험 완성
3) 프로젝트 흐름
(1) 주제·팀 구성

- 광고를 모아 보여주는 서비스라는 아이디어에서 출발했다.
- 난 알림 기능 전반과 알림 기능에 대한 MSA 구현을 맡았다.
(2) 아키텍처·설계(ERD/CQRS/MSA)

- ERD 초안 → 피드백 반영하며 연관관계 정리
- CQRS 기본 원칙 수립
GET 계열 조회 = Query 사이드, 생성/수정/삭제 = Command 사이드로 구분
- API Gateway, Service Discovery(Eureka), 각 서비스 경계 설정 및 시큐리티 전략 초안 수립
(3) 구현(알림/SSE/인증·인가)


- 알림 서비스 분리, SSE 기반 실시간 알림 스트림 시도
- Spring Security로 인증·인가 흐름 구성(JWT 기반), 게이트웨이 통과 전략 테스트
- 서비스 간 통신은 REST 우선, 내부 식별/권한 전달 규약 정리
(4) 공모전 지도 기능

- 사진 메타데이터(EXIF)에서 위·경도 추출 → 역지오코딩으로 주소 매핑
- DB 좌표를 바탕으로 핀 표시, 개수에 따른 버블 크기 조절, 밀집도 히트맵 구현
- 기본 인터랙션(줌/이동)과 필터링 동작 점검
(5) 중간 점검
- 백엔드 프로젝트: 알림·인증 골격 완성, 서비스 경계와 데이터 흐름 재점검
- 공모전: 중간발표 준비 완료(데모 시나리오/핵심 화면/데이터 시각화 흐름)
4) 트러블 슈팅
1) MSA로 나누면서 인증 문제 발생
- 증상: core 서비스와 notification 서비스 간에 인증 오류 발생
- 해결: 두 서비스 간 같은 키를 설정해줘서 해결
2) Gateway 보안 설정 난도
- 증상: 경로별 인증 예외 처리와 권한 매핑에서 혼선 발생
- 해결: 임시로 SecurityFilterChain 규칙을 우선 모두 통과하게 하고, 인증 및 인가에 대해선 내부 서비스마다 별도로 설정(추가 보완 예정)
3) CQRS 경계 불명확
- 증상: 조회용 DTO와 도메인 엔티티 혼용, 커맨드 핸들러에서 조회 로직 혼재
- 해결: 조회 전용 매퍼/DAO로 분리, 커맨드는 순수 상태 변경으로 제한
4) 지도 시각화 성능·데이터 누락
- 증상: EXIF 누락 이미지 처리 미흡
- 해결: EXIF 없을 때 수동 좌표 입력/지오코딩 대체 경로 추가
5) 느낀 점
- 인증/인가는 이론보다 실전 난도가 높았다. 게이트웨이와 각 서비스의 역할 분리를 명확히 해야 혼란이 줄었다.
- 알림을 별도 서비스로 떼어내 MSA 형태로 운영해 보니, 수업 때 반쯤만 잡히던 개념들이 실제로 손에 익었다. 완벽하진 않지만 어디까지 쪼개고 무엇을 내부에서 맡길지에 대한 감이 생겼다.
- 공모전은 지도/좌표/메타데이터 처리를 통해 데이터에서 화면까지 흐름을 끝까지 타 봤다는 점이 큰 수확. 필수 기능이 돌아가기 시작해 한시름 덜었다.
- 백엔드 프로젝트와 공모전을 병행하니 시간이 늘 모자랐다. 일정 버퍼와 우선순위 관리의 필요성을 체감했다.
6) 다음 프로젝트를 위한 다짐
- 게이트웨이 보안 규칙 정리 및 예외 처리 보완
- SSE 연결 안정화(재연결 정책·타임아웃·백프레셔)와 관측 가능성 추가(로그)
- CQRS 경계 유지: 조회 전용 경로와 커맨드 경로를 코드·폴더 레벨로 더 명확히 분리
7) 마무리
새 팀과 새 주제를 안고, 서비스 분리와 실시간 기능까지 건드린 한 달이었다. 불확실했던 부분이 구현을 거치며 어느정도 알게 되었고, 배운것이 많은 한달이었다. 11월에는 안정화와 완성도에 더 집중해, 이어지는 프론트엔드 프로젝트 또한 무사히 끝내겠다.