추석 연휴 회고

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

추석 연휴 회고

긴 연휴 동안 김영한 스프링 MVC 강의를 예습과 복습을 겸하여서 들었다. 서블릿에서 시작해 JSP와 MVC, 프론트 컨트롤러, 스프링 MVC 구조까지 한 흐름으로 연결해 보았다.


Spring 복습

Servlet 기본

  • 컨테이너가 init, service, destroy 생명주기 관리한다.
  • web.xml과 애노테이션 기반 매핑의 차이와 주의점
  • 전역과 개별 초기 파라미터 구분 관리한다.

Servlet Method

  • GET은 쿼리스트링, POST는 바디를 전달한다.
  • POST는 파라미터 조회 전에 인코딩 지정이 필요하다.
  • Request, Response 핵심 메서드 사용처 정리
  • forward와 redirect 선택 기준과 PRG 패턴
  • Cookie는 클라이언트에 저장, Session은 서버에 저장된다.
  • Cookie 보안 옵션 설정과 세션 범위 관리
  • 세션 타임아웃 우선순위와 무효화 처리

Filter와 Wrapper

  • 공통 전후 처리 로직은 필터 체인으로 구성한다.
  • Wrapper로 요청 파라미터나 응답 동작을 선택적 재정의한다.
  • 인코딩 필터, 비밀번호 해시 래핑 같은 전형 패턴 확인

IoC 컨테이너

  • BeanFactory와 ApplicationContext 역할 차이
  • XML, 자바 설정, 컴포넌트 스캔 세 방식의 장단점
  • 자동 등록과 수동 등록의 경계 기준 정리

Spring MVC 강의 핵심

  • 단일 진입점 패턴의 효과
    공통 로직을 한곳에서 처리할 수 있어 로깅, 에러 처리, 인증같은 관심사를 일관되게 적용할 수 있다.

  • 뷰와 컨트롤러의 역할 분리
    컨트롤러는 모델 준비와 흐름 제어에 집중하고, 뷰는 화면 렌더링에만 집중한다. 뷰 경로 하드코딩 대신 뷰 리졸버로 논리 이름을 물리 경로로 치환한다.

  • 핸들러 어댑터를 통한 확장성
    컨트롤러 모양이 달라도 어댑터가 중개하면 구조를 바꾸지 않고 확장할수 있다.

  • HTTP 의존 최소화
    요청과 응답 객체에 직접 의존하는 코드를 줄이면 테스트가 단순해진다.

  • 포워드와 리다이렉트의 기준
    조회 계열은 포워드, 상태 변경 후에는 리다이렉트를 사용하면 흐름과 사용자 경험이 명확해진다.

  • 서블릿 기본기 정리
    요청 인코딩, 콘텐츠 타입, 헤더와 쿠키, 세션 흐름을 코드 전에 먼저 설정한다.

  • JSP와 MVC 적용
    뷰는 보호 경로 아래에 두고, 컨트롤러는 모델을 채워 포워드한다. 뷰는 EL과 JSTL로 렌더링만 담당한다.

  • 프론트 컨트롤러 구조
    핸들러 매핑과 어댑터, 뷰 리졸버로 공통 처리를 표준화한다.

  • 스프링 MVC 요청 처리 단계
    디스 패처 서블릿이 핸들러를 찾고, 어댑터가 실행을 중개하며, 모델과 뷰 정보를 바탕으로 리졸버와 뷰가 최종 렌더링한다.

  • 애노테이션 기반 컨트롤러
    메서드 단위 매핑, 모델 파라미터 주입, 논리 뷰명 반환으로 컨트롤러 코드를 단순하게 유지한다.


아쉬운 점

  • 추석 동안 본가에 내려갔다 오니 생각보다 공부할 시간이 많지 않았던 것 같다. 특히나 공모전 준비를 한다고 복습이나 예습에 투자한 시간이 부족했던 것이 아쉬웠다.
  • 원래 계획은 김영한 MVC 강의를 추석동안 다 듣고 싶었지만, 6강까지 밖에 듣질 못 했다. 나머지 내용은 개인적으로 따로 강의를 들어야 할 것 같다.

마무리

서블릿에서 시작해 MVC 패턴과 프론트 컨트롤러, 스프링 MVC 구조까지 이어지는 설계 의도를 확인할 수 있었다.
아직 스프링은 이해되지 않는 부분이 많은 것 같아서, 해당 내용은 다시 수업을 병행해 가면서 다듬어 나가야 할 것 같다.
다음주부터는 새로운 조가 정해지고 본격적으로 벡엔드 프로젝트가 시작된다는데 기대 반, 걱정 반인 것 같다.
특히, 공모전 프로젝트와 같이 진행되는 만큼, 많이 힘들어질 것 같다.

profile
개발자 희망자

0개의 댓글