반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

Hello 컨트롤러 매핑과 바인딩 본문

토비의 스프링 부트 - 이해와 원리/섹션4 - 독립 실행형 서블릿 애플리케이션

Hello 컨트롤러 매핑과 바인딩

DOGvelopers 2024. 10. 6. 14:35
반응형

결론 및 요약

FrontController 패턴을 적용하여, 모든 웹 요청을 중앙에서 처리하고 이를 개별 로직으로 위임하는 방식으로 코드를 개선했습니다. 이를 통해 로직을 분리하고 재사용성을 높였으며, 웹 요청과 관련된 공통 기능을 처리하는 구조를 확립했습니다. 또한, 스프링 없이 순수 서블릿을 사용하여 독립적으로 실행 가능한 프론트 컨트롤러 시스템을 구축했습니다.

주요 내용 요약

  1. FrontController와 로직 분리:

    • 모든 요청을 FrontController가 받아 처리하는 구조를 만들었습니다. 기존의 /hello와 같은 요청을 단일 서블릿에서 처리하던 방식에서, 요청을 처리할 핸들러로 분리하여 로직을 관리하는 방식으로 전환했습니다.
    • HelloController와 같은 로직은 독립적으로 분리되었으며, FrontController는 중앙에서 요청을 처리하고, 이를 적절한 핸들러로 위임하는 역할을 맡습니다.
  2. 맵핑과 바인딩:

    • 맵핑: 들어오는 요청의 URL과 HTTP 메소드를 분석하여 적절한 핸들러로 연결합니다. 예를 들어, /hello와 같은 요청이 GET 메소드로 들어왔을 때, 해당 요청을 HelloControllerhello 메소드로 전달하여 처리합니다.
    • 바인딩: 웹 요청에서 파라미터를 추출하고, 이를 핸들러가 사용할 수 있도록 변환합니다. 이 과정에서 웹 요청을 평범한 자바 데이터 타입으로 변환하여 핸들러에 전달하는 작업이 이루어집니다.
  3. 핸들러 호출 및 응답 생성:

    • FrontController는 핸들러(예: HelloController)에게 작업을 위임하고, 핸들러의 결과를 받아 응답을 생성합니다. 이때 응답의 상태 코드와 컨텐츠 타입을 설정하며, 텍스트 형식의 응답을 반환하는 구조로 설계되었습니다.
    • 응답이 성공적으로 생성되었을 경우 200 OK 상태 코드를 반환하며, 별도의 에러가 발생하지 않으면 자동으로 이 코드가 설정됩니다.
  4. 테스트 및 검증:

    • FrontController가 HelloController로 요청을 적절히 전달하고, 해당 핸들러에서 작업이 처리된 후 응답이 정상적으로 반환되는지 확인했습니다. 테스트 결과, GET 요청에서는 정상적인 응답이 반환되었고, POST 요청과 같은 잘못된 요청에서는 404 에러가 발생하는 것을 확인했습니다.

결론:
FrontController 패턴을 통해 요청 처리의 중앙화와 로직의 분리를 효과적으로 구현했습니다. 이를 통해 각기 다른 요청을 처리하는 로직을 핸들러로 분리하고, 공통적인 작업을 FrontController에서 처리하여 코드의 재사용성과 유지보수성을 크게 개선했습니다. 앞으로 스프링 프레임워크를 도입하여 이 구조를 더욱 발전시킬 예정입니다.

반응형
Comments