SSAFY 7기 학습 회고: 알고리즘 평가와 레거시 Spring MVC 복습

반응형

2022년 4월 22일은 그 주에 배운 내용을 정리하던 날이었다. 다음 주 알고리즘 평가를 앞두고 있었고, 정보처리기사 실기와 Spring 학습도 함께 진행하고 있었다.

평가가 알고리즘 중심이라 조금 여유롭다고 적었지만 쉽다는 뜻은 아니었다. 주말에는 지금까지 풀어 본 문제를 다시 보고, 틀린 접근을 정리할 계획이었다.

당시 복습하려던 Spring MVC 구성

수업에서는 전통적인 Servlet 배포 방식의 Spring MVC 환경 설정을 다뤘다. 약어만 나열했던 초고를 역할 중심으로 다시 정리하면 다음과 같다.

  • ContextLoaderListener: 여러 Servlet이 공유할 루트 WebApplicationContext를 초기화한다.
  • DispatcherServlet: 요청을 받는 Front Controller이며, 보통 웹 계층 전용 자식 컨텍스트를 가진다.
  • CharacterEncodingFilter: 요청과 응답의 문자 인코딩을 설정하는 Servlet Filter다.
  • root-context.xml: 데이터 접근·서비스처럼 여러 웹 컴포넌트가 공유할 Bean을 두던 구성 파일이다.
  • servlet-context.xml: Controller, ViewResolver 등 해당 DispatcherServlet의 웹 계층 Bean을 두던 구성 파일이다.

Spring 공식 문서에서 설명하듯 루트와 자식 컨텍스트를 반드시 둘로 나눠야 하는 것은 아니다. 단일 컨텍스트로도 구성할 수 있고, Spring Boot는 내장 Servlet 컨테이너와 자동 설정 때문에 초기화 흐름이 다르다. 2022년의 이 공부는 현재 모든 Spring 프로젝트의 정답이 아니라, XML 기반 Spring MVC를 이해하기 위한 학습 맥락이었다.

다음 학습과 배포 계획

당시 계획은 5월 7일까지 정보처리기사 실기와 Spring 기본을 공부하고, 5월 8일부터 만들고 싶었던 웹사이트를 구현해 배포하는 것이었다. 다음 주 수업에서는 REST API, AJAX와 Spring Boot 진도를 예상했다.

이전에 Gunicorn과 Nginx로 서비스를 배포했다가 예상하지 못한 소액 요금이 발생한 경험도 적어 두었다. 다음 배포에서는 사용하지 않는 DB 인스턴스를 반드시 제거하겠다는 체크 항목으로 남겼다. 실제로 계획을 완료했는지는 이 글에 기록되어 있지 않으므로 결과를 덧붙이지 않는다.

반응형
KEEP READING
카테고리 전체 보기 →

댓글