BEYOND SW 캠프 20기 12주차

배창민·2025년 11월 10일
post-thumbnail

12주차 회고록

1) 12주차를 시작하며

백엔드 프로젝트랑 공모전을 동시에 진행하다 보니 시간이 많이 부족했다. 그러다 보니 주간 회고록도 제때 정리를 못 하고 뒤늦게 쓰게 됐다. 그래도 저번 주는 수업에서는 Spring Security와 MSA를 집중적으로 다뤘고, 실습은 거의 전부 실제 백엔드 프로젝트에 바로 적용하는 느낌으로 진행했다. 공모전 쪽도 지도 기반 기능을 마무리하면서 어느 정도 윤곽이 잡힌 한 주였다.


2) 학습 요약

2-1) Spring Security

  • 시큐리티 필터 체인 구조와 UsernamePasswordAuthenticationFilter, FilterSecurityInterceptor 역할
  • 인증과 인가 흐름 정리
    아이디/비밀번호 → AuthenticationManager → AuthenticationProvider → UserDetailsService → SecurityContext 저장
  • 세션 기반 로그인과 토큰 기반 로그인(JWT) 비교
    각각의 장단점과 적용 시 주의점 정리
  • JWT 구조(header, payload, signature)와 기본 개념 정리
    만료 시간, 클레임, 서명 검증 흐름
  • 스프링 시큐리티 설정 방식 정리
    SecurityFilterChain, HttpSecurity로 인증/인가 규칙 설정

2-2) MSA

  • Monolithic 구조와 MSA 구조 비교
    배포, 확장, 장애 전파 측면에서 차이 정리
  • 마이크로서비스 간 통신 방식 정리
    REST, 서비스 디스커버리, 로드 밸런싱 개념
  • Spring Cloud 기반 MSA 구성 요소 복습
    Eureka, API Gateway, Config Server, Actuator, 로드 밸런싱
  • 서비스 분리 기준과 “무조건 잘게 쪼개는 게 답은 아니다”라는 점 다시 확인
  • 인증/권한을 MSA에서 어디에 둘지에 대한 고민
    게이트웨이에서 토큰 검증 후 내부 서비스로 헤더 전달하는 방식 vs 각 서비스에서 재검증하는 방식 비교

3) 공모전 진행 사항

  • DB에 저장된 좌표 정보를 기반으로 지도 화면에 위치 핀 표시
  • 폐기물 개수에 따라 버블 형태로 시각화
  • 데이터 밀집도를 표현하기 위한 히트맵 구현
  • 기본적인 지도 인터랙션(줌, 이동)과 함께 표시되는지 동작 점검

필수 기능이라고 생각했던 “DB → 지도 → 시각화”의 큰 흐름은 이제 어느 정도 구현된 상태다.


4) 느낀 점

  • 실제로 백엔드 프로젝트에서 인증/인가를 직접 붙여보니 확실히 어렵다는 생각이 들었다. 단순 로그인 수준이 아니라, 서비스 간 호출과 토큰 처리까지 고려하다 보니 설정도 길어지고 신경 쓸 부분이 많았다.
  • 내가 맡은 쪽이 알림 기능이다 보니, 이 부분을 따로 떼어서 MSA 형태로 분리하는 시도를 해봤다. 알림 서비스를 별도 모듈로 두고, 다른 서비스에서 REST 호출로 알림을 요청하는 구조로 설계했다. 완전히 거대한 MSA는 아니지만, 나름대로 서비스 분리와 통신 구조를 구현해본 셈이라 어느 정도 MSA 맛은 본 것 같다.
  • 수업에서 들었을 때는 잘 와닿지 않았던 부분들이 실제로 구현해보니 이해가 됐다. 예를 들어, 게이트웨이에서 인증을 처리하고 내부 서비스는 인가와 도메인 로직에 집중하게 하는 구조나, 서비스 간 호출에 Circuit Breaker 같은 내결함성을 어디에 둘지 같은 것들이다.
  • 공모전 쪽은 지도 표시와 버블/히트맵 같은 필수 기능이 어느 정도 돌아가기 시작해서 조금은 마음이 편해졌다. 이제는 기능 추가보다는 안정화와 화면 정리 쪽으로 비중을 옮길 수 있을 것 같다.

5) 다음 계획

  • 공모전

    • 지도 화면 UI 다듬기
      필터, 범례, 툴팁 등 사용자 입장에서 보기 좋게 정리
    • 데이터 검증과 예외 케이스 처리
      좌표 없는 데이터, 값 이상치 처리
    • 전체 플로우 점검과 데모용 시나리오 만들기

공모전 발표가 있기 때문에 일정 관리가 더 중요할 것 같다. 우선순위를 정리해 두고 한 번에 너무 많은 걸 하려고 하지 않으면서, 끝까지 밀어붙여 보려고 한다.
또한, 16일에 sqld 자격증 시험도 있기 때문에 그것 또한 공부하면서 준비를 해야할 것 같다.

profile
개발자 희망자

0개의 댓글