일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- @Spring-Test
- AOP
- Ubunt
- Spring JDBC
- XML
- 마이바티스
- unix
- SpringJDBC
- java spring
- 프로퍼티
- spring
- Linux
- @AspectJ
- spring aop
- myBatis
- Dependency Injection
- POJO
- STS
- @test
- JdbcTemplate
- java
- @JUnit
- JDBC TEMPLATE
- Di
- 리눅스
- spring framework
- 컨테이너
- Spring Boot
- Framework
- pointcut
- Today
- Total
목록토비의 스프링 부트 - 이해와 원리/섹션4 - 독립 실행형 서블릿 애플리케이션 (7)
개키우는개발자 : )
결론 및 요약FrontController 패턴을 적용하여, 모든 웹 요청을 중앙에서 처리하고 이를 개별 로직으로 위임하는 방식으로 코드를 개선했습니다. 이를 통해 로직을 분리하고 재사용성을 높였으며, 웹 요청과 관련된 공통 기능을 처리하는 구조를 확립했습니다. 또한, 스프링 없이 순수 서블릿을 사용하여 독립적으로 실행 가능한 프론트 컨트롤러 시스템을 구축했습니다.주요 내용 요약FrontController와 로직 분리:모든 요청을 FrontController가 받아 처리하는 구조를 만들었습니다. 기존의 /hello와 같은 요청을 단일 서블릿에서 처리하던 방식에서, 요청을 처리할 핸들러로 분리하여 로직을 관리하는 방식으로 전환했습니다.HelloController와 같은 로직은 독립적으로 분리되었으며, Fro..
결론 및 요약프론트 컨트롤러 패턴을 적용하여 중앙에서 모든 요청을 관리하고, 각 요청을 적절한 핸들러로 전달하는 방식을 구현했습니다. 기존의 개별 서블릿 방식에서 벗어나, URL과 HTTP 메소드에 따라 요청을 처리할 수 있도록 프론트 컨트롤러가 요청을 분기하는 역할을 맡습니다. 이를 통해 공통된 작업을 중앙에서 처리하고, 더 유연한 요청 처리 로직을 구현할 수 있게 되었습니다.주요 내용 요약프론트 컨트롤러 도입:기존에는 각각의 서블릿이 특정 URL에 맵핑되어 그 요청을 직접 처리했으나, 프론트 컨트롤러를 도입함으로써 중앙에서 모든 요청을 받아 처리하게 되었습니다. 이를 위해 슬래시("/") 이하의 모든 요청을 프론트 컨트롤러가 처리하도록 설정합니다.요청의 분기 처리:프론트 컨트롤러는 요청을 받아 URL..
결론 및 요약프론트 컨트롤러 패턴은 여러 개의 서블릿을 일일이 관리해야 하는 불편함을 줄이고, 중복된 코드 문제를 해결하기 위해 등장한 패턴입니다. 이를 통해 각 서블릿에 분산되어 있는 공통 작업을 중앙에서 처리하고, 각기 다른 요청을 적절한 핸들러로 위임하여 응답을 생성하는 방식으로 웹 애플리케이션을 효율적으로 관리할 수 있습니다.주요 내용 요약서블릿 관리의 복잡성 해결:서블릿을 이용한 개발에서는 각 요청에 대해 별도의 서블릿을 등록하고 맵핑해야 하는데, 이 과정에서 공통적으로 반복되는 코드가 많이 발생합니다. 특히, 여러 서블릿에서 중복된 작업을 처리할 때 이를 효율적으로 관리하는 데 한계가 있습니다.프론트 컨트롤러 패턴의 등장:프론트 컨트롤러는 요청의 공통된 처리를 중앙에서 담당하는 컨트롤러입니다...
결론 및 요약:Servlet에서 응답을 처리하는 방식을 개선했습니다. 하드코딩된 문자열 대신, 스프링에서 제공하는 상수와 enum을 활용해 코드의 안정성과 가독성을 높였습니다. 또한, URL의 쿼리 스트링 파라미터를 이용해 동적인 응답을 생성하는 방법을 배웠습니다.주요 내용 요약:코드 개선:문자열을 직접 입력하는 대신 스프링의 상수와 enum을 사용해 코드의 안전성을 강화했습니다. 예를 들어, Content-Type 헤더는 HttpHeaders.CONTENT_TYPE 상수를 사용하고, 상태 코드는 HttpStatus.OK.value()로 처리했습니다.응답 생성:응답에 포함되는 세 가지 요소는 상태 코드, 헤더, 본문입니다. 상태 코드는 200 OK로 설정하고, 헤더에는 Content-Type: text/..
Spring Boot의 내장형 톰캣 서버를 이용해 Servlet을 등록하고, 이를 통해 서블릿 컨테이너에서 웹 요청을 처리하는 방법을 다루었습니다. 이를 통해 톰캣 서버를 설치하지 않고 간단한 Java 코드로 서블릿을 구현하는 방법을 학습할 수 있었습니다.주요 내용 요약:Servlet 컨테이너 설정:TomcatServletWebServerFactory를 사용하여 임베디드 톰캣 서버를 시작했습니다. 이 클래스는 톰캣 서버를 생성하고 구성하는 작업을 도와주는 팩토리 클래스로, 톰캣 외에도 다른 서블릿 컨테이너를 쉽게 교체할 수 있도록 추상화된 방식으로 작동합니다.서버가 정상적으로 동작하는지 확인하기 위해 8080 포트로 서버를 실행하고, 톰캣이 정상적으로 뜨는지 테스트했습니다. 404 에러는 기본적인 서버 ..
스프링 부트의 컨테이너리스 서블릿 컨테이너 동작 원리를 이해하고, 이를 코드로 구현하는 내용을 다룹니다. 복잡한 서블릿 컨테이너 설치 및 설정 과정을 자동화하고, 개발자가 서블릿에 집중할 수 있게 해주는 스프링 부트의 특징을 설명합니다. 아래는 이 내용을 요약한 설명입니다.주요 내용 요약:서블릿 컨테이너리스 구조:서블릿 컨테이너(Tomcat 등)를 별도로 설치하지 않고도, 애플리케이션 내에서 자동으로 실행할 수 있는 방법을 설명합니다.개발자는 서블릿 컨테이너 설정이나 배포를 신경 쓸 필요 없이, 애플리케이션 코드(빈, 컴포넌트) 작성에 집중할 수 있습니다.Tomcat을 코드로 시작하기:Tomcat을 메인 메소드에서 직접 시작하는 방법을 설명하며, 이를 통해 서블릿 컨테이너를 코드로 실행합니다.Embedd..
스프링 부트의 컨테이너리스 애플리케이션 구조와 동작 원리에 대해 다룹니다. 컨테이너리스를 통해 서블릿 컨테이너와 관련된 복잡한 작업을 자동화하고, 개발자가 애플리케이션 개발에만 집중할 수 있도록 합니다. 아래는 이 내용을 요약한 설명입니다.주요 내용 요약:컨테이너리스(Spring Boot의 특징):스프링 부트는 서블릿 컨테이너와 관련된 복잡한 작업(Tomcat 설치, 배포 설정 등)을 자동으로 처리하여, 개발자가 애플리케이션 코드에만 집중할 수 있도록 돕습니다.서블릿 컨테이너를 설치하거나 XML 설정을 작성하지 않고도, 간단히 메인 메소드 실행으로 스프링 애플리케이션을 구동할 수 있습니다.HelloController 예제:HelloController를 통해 /hello 경로로 요청을 받아 name 파라미..