spring8 Spring의 멀티스레드와 Blocking I/O Spring Framework는 기본적으로 Blocking I/O 방식으로 사용자의 요청을 처리한다.Blocking I/O란 입출력 작업(Input/Output)시에 동기식으로 해당 작업이 완료될때까지 해당 스레드가 대기하고있는 방식이다.스프링에서의 Blocking I/O 작업이란 파일 I/O, 데이터베이스 I/O , 네트워크 I/O와 같은 작업에서Blocking I/O 방식을 사용한다. 그런데, 스프링은 Blocking I/O방식으로 어떻게 다중 사용자의 요청을 처리할까? Tomcat의 멀티스레드 + Spring Blocking I/O 방식 Spring 프레임워크가 Blocking I/O 방식으로 사용자의 요청을 처리한다면, 예를 들어서 10명의 사용자가 요청을 보내오면Spring은 순차적으로 10명.. 2025. 3. 12. JAVA TCP 소켓을 사용하여 HTTP통신이 가능한 WAS 직접 구현하기 -1 Spring 프레임워크를 사용하여 웹개발을 하면서 요청을 꺼내쓸때는 request 객체를 사용해야한다는 '최종적인' 수단만 공부해오다보니, 정작 서블릿 컨테이너가 정확히 무얼하는지도 모를만큼 Web에 대한 기본기가 부족한것이었다.그동안 당연하게 사용해왔던 WAS인 tomcat에 대해 알아보고 tomcat없이도 내가만든 Web Application이 클라이언트와 원활하게 HTTP 통신을 주고받을수있는 WAS를 직접 구현해보기로 하였다. Web Service의 전반적인 처리과정 웹 서비스의 전반적인 처리과정은 다음의 아키텍처와 같다. 위의 처리과정에서 WAS가 담당하고있는 부분은 아래의 과정이다. 1. 브라우저를 통해 사용자가 HTTP 요청을 보낸다.2. WAS(Tomcat)의 Connector에서 .. 2024. 9. 12. static 메소드와 스프링 IoC Singleton 기존의 레거시 코드를 유지보수하던중 의문점이 드는 코드를 발견하였다.전자정부프레임워크와 Mybatis를 기반에서 전역적으로 사용하는 공통 클래스가 abstract public class로 구현되어있고,그 내부의 메소드는 static 형태로 존재하여 전역적으로 해당 method를 사용한다. 그런데, 해당 static 메소드 내부에서 Spring Bean에서 관리하는 @Service 객체를 직접 인스턴스를 생성하여 관련 처리를 하고있는것이다. 만약 위 static 메소드가 단순히 해당 메소드 내부에서 다른 어떠한 의존성을 가지지않는다면 static메소드로서 남아있으면 문제없겠지만, 해당 메소드가 Service 메소드와 의존성을 가진다면, 즉 스프링 컨테이너의 통제를 받는 다른 클래스와 연관을 가진다면 해당 .. 2024. 8. 14. [Spring] 스프링 시큐리티 사용하기 디펜던시 설정 스프링 시큐리티를 사용하기위해 pom.xml 디펜던시를 추가한다. 추가로, Spring FrameWork Version을 4.2.5 RELEASE로 올려준다. web-xml 파일에 스프링 시큐리티 보안설정을 위한 태그를 추가한다. springSecurityFilterChain은 스프링 시큐리티의 핵심기능을 사용할수있게 해주는 필터로 이를 통해 스프링 시큐리티의 DelegatingFilterPro xy 필터를 사용할수있다. 또한 의 param-value에 기존의 root-context.xml 외 추가로 appServlet의 security-context.xml을 추가해준다. 해당 경로에 xml파일을 생성해주면 appServlet(DispatcherServlet)이 security-contex.. 2024. 1. 25. 이전 1 2 다음