본문 바로가기
728x90
반응형

스프링187

[Spring] 웹 서버, 웹 애플리케이션 서버 웹 서버와 웹 애플리케이션 서버에 대한 비교 웹 서버(Web Server)는 HTTP 기반으로 동작한다. 정적인 리소스를 제공하고, 기타 부가기능을 제공한다. 정적(파일) HTML, CSS, JS, 이미지, 영상 등을 제공한다. 웹 서버 종류로는 예) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작한다. 웹 서버의 기능을 포함한다. (정적인 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직을 수행한다. → 동적 HTML, HTTP API(JSON) → 서블릿, JSP, 스프링 MVC 등 웹 애플리케이션 서버 종류로는 예) 톰캣(Tomcat), Jetty, Underrow 웹 서버, 웹 애플리케이션 서버(WAS) 차이 .. 2023. 5. 15.
[Spring] 스코프와 프록시 이번에는 프록시 방식을 사용해보자. MyLogger.java @Component @Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) public class MyLogger { private String uuid; private String requestURL; public void setRequestURL(String requestURL) { this.requestURL = requestURL; } public void log(String message) { System.out.println("[" + uuid + "]" + "[" + requestURL + "] " + message); } @PostConstruct public vo.. 2022. 3. 7.
[Spring] 스코프와 Provider 첫번째 해결 방안은 앞서 배운 Provider를 사용하는 것이다. 간단히 ObjectProvider를 사용해보자. LogDemoController.java package hello.core.web; import hello.core.common.MyLogger; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.ObjectProvider; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotat.. 2022. 3. 7.
[Spring] request 스코프 예제 만들기 웹 환경 추가 웹 스코프는 웹 환경에서만 동작하므로 web 환경이 동작하도록 라이브러리를 추가하자 "build.gradle에 추가" // web 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-web' 이제 CoreApplication.java에서 main 메서드를 실행하면 다음과 같이 나온다 이제 주소창에 "localhost:8080"을 입력하면 다음과 같은 오류 페이지가 뜨면 된다 "참고" : spring-boot-starter-web 라이브러리를 추가하면 스프링 부트는 내장 톰켓 서버를 활용해서 웹 서버와 스프링을 함께 실행시킨다. "참고" : 스프링 부트는 웹 라이브러리가 없으면 우리가 지금까지 학습한 'Annotatio.. 2022. 3. 7.
[Spring] 웹 스코프 지금까지 싱글톤과 프로토타입 스코프를 학습했다. 싱글톤은 스프링 컨테이너의 시작과 끝까지 함께하는 매우 긴 스코프이고, 프로토타입 생성과 의존관계 주입, 그리고 초기화까지만 진행하는 특별한 스코프이다. 이번에는 웹 스코프에 대해서 알아보자. "웹 스코프의 특징" 웹 스코프는 웹 환경에서만 동작한다. 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 따라서 종료 메서드가 호출된다. "웹 스코프 종류" "request" : HTTP 요청 하나가 들어오고 나갈 때까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고, 관리된다. "session" : HTTP Session과 동일한 생명주기를 가지는 스코프 "application" : 서블릿 컨텍스트("Ser.. 2022. 3. 7.
[Spring] 프로토타입 스코프 - 싱글톤 빈과 함께 사용 시 Provider로 문제 해결 싱글톤 빈과 프로토 타입 빈을 함께 사용할 때, 어떻게 하면 사용할 때마다 항상 새로운 프로토타입 빈을 생성할 수 있을까? 스프링 컨테이너에 요청 가장 간단한 방법은 싱글톤 빈이 프로토타입을 사용할 때마다 스프링 컨테이너에 새로 요청하는 것이다. package hello.core.scope; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext;.. 2022. 3. 6.
728x90
반응형