일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- spring
- @AspectJ
- Ubunt
- unix
- XML
- 마이바티스
- pointcut
- Framework
- Linux
- Dependency Injection
- SpringJDBC
- myBatis
- Spring Boot
- POJO
- Di
- spring framework
- 컨테이너
- 프로퍼티
- Spring JDBC
- @JUnit
- 리눅스
- spring aop
- @Spring-Test
- java
- AOP
- java spring
- @test
- JdbcTemplate
- STS
- JDBC TEMPLATE
Archives
- Today
- Total
개키우는개발자 : )
프론트 컨트롤러로 전환 본문
반응형
결론 및 요약
프론트 컨트롤러 패턴을 적용하여 중앙에서 모든 요청을 관리하고, 각 요청을 적절한 핸들러로 전달하는 방식을 구현했습니다. 기존의 개별 서블릿 방식에서 벗어나, URL과 HTTP 메소드에 따라 요청을 처리할 수 있도록 프론트 컨트롤러가 요청을 분기하는 역할을 맡습니다. 이를 통해 공통된 작업을 중앙에서 처리하고, 더 유연한 요청 처리 로직을 구현할 수 있게 되었습니다.
주요 내용 요약
프론트 컨트롤러 도입:
- 기존에는 각각의 서블릿이 특정 URL에 맵핑되어 그 요청을 직접 처리했으나, 프론트 컨트롤러를 도입함으로써 중앙에서 모든 요청을 받아 처리하게 되었습니다. 이를 위해 슬래시("/") 이하의 모든 요청을 프론트 컨트롤러가 처리하도록 설정합니다.
요청의 분기 처리:
- 프론트 컨트롤러는 요청을 받아 URL과 HTTP 메소드에 따라 적절한 로직으로 분기합니다. 예를 들어,
/hello
URL로 들어온 요청 중 GET 메소드만 처리하고, 그 외의 메소드는 404 에러를 반환하는 방식으로 로직을 구현했습니다. 이를 통해 요청에 따라 각기 다른 로직을 실행할 수 있습니다.
- 프론트 컨트롤러는 요청을 받아 URL과 HTTP 메소드에 따라 적절한 로직으로 분기합니다. 예를 들어,
HTTP 메소드와 URL 처리:
- 요청의 URL뿐만 아니라 HTTP 메소드(GET, POST 등)를 활용하여 요청을 세부적으로 처리합니다.
/hello
URL로 들어온 GET 요청은 처리하지만, POST 요청이 들어올 경우 이를 처리할 수 없다는 404 응답을 반환하는 방식입니다.
- 요청의 URL뿐만 아니라 HTTP 메소드(GET, POST 등)를 활용하여 요청을 세부적으로 처리합니다.
프론트 컨트롤러의 역할 확장:
- 프론트 컨트롤러는 단순히 요청을 분기할 뿐만 아니라, 보안, 인증, 다국어 처리 등의 공통적인 작업도 처리할 수 있습니다. 이를 통해 각 핸들러가 중복된 작업을 하지 않고, 효율적으로 요청을 처리할 수 있습니다.
추후 개선 사항:
- 요청을 처리하는 로직은 최종적으로 다른 컨트롤러나 핸들러로 위임하는 방식으로 발전할 수 있습니다. 이를 통해 프론트 컨트롤러는 공통 작업과 요청 분기만 담당하고, 실제 비즈니스 로직은 별도의 클래스에서 처리하는 구조를 갖출 수 있습니다.
결론:
프론트 컨트롤러 패턴을 통해 모든 요청을 중앙에서 관리하고, HTTP 메소드와 URL에 따라 분기 처리함으로써 더 유연하고 효율적인 웹 애플리케이션 구조를 구축할 수 있습니다. 이는 특히 보안, 인증 등의 공통 로직을 관리하는 데 유용하며, 향후 각 요청의 처리 로직을 별도의 핸들러로 위임함으로써 코드의 유지보수성을 높일 수 있습니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션4 - 독립 실행형 서블릿 애플리케이션' 카테고리의 다른 글
Hello 컨트롤러 매핑과 바인딩 (0) | 2024.10.06 |
---|---|
프론트 컨트롤러 (0) | 2024.10.06 |
서블릿 요청 처리 (0) | 2024.10.06 |
서블릿 등록 (0) | 2024.10.06 |
서블릿 컨테이너 띄우기 (0) | 2024.10.06 |
Comments