Spring Framework(138)
-
Service
Apache Tomcat의 Service는 톰캣 서버의 핵심 구성 요소 중 하나로, 여러 Connector와 하나의 Engine을 결합하여 클라이언트 요청을 처리하는 역할을 합니다. Service는 요청이 들어오는 여러 포트 또는 프로토콜(예: HTTP, AJP 등)에서 클라이언트의 요청을 수신하고 이를 Engine으로 전달하여 처리한 후 응답을 반환합니다.톰캣 Service 컴포넌트는 전체 서버 구조에서 중요한 위치를 차지하며, 이를 통해 여러 프로토콜을 지원하는 다양한 요청 처리 방식과 하나의 엔진을 통해 여러 웹 애플리케이션을 처리할 수 있게 합니다.1. Service의 주요 역할Service는 톰캣 서버 내에서 Connector와 Engine을 결합하여 클라이언트의 요청을 처리하는 기본 단위입니다..
2023.06.06 -
Host
Apache Tomcat의 Host는 톰캣 서버 내에서 가상 호스트(Virtual Host)를 나타내는 구성 요소로, 하나의 Engine 내에서 여러 개의 Host를 정의할 수 있습니다. Host는 주로 하나의 도메인 또는 서브도메인에 대응하며, 해당 도메인에 대한 웹 애플리케이션을 관리하고, 클라이언트의 요청을 적절한 Context(웹 애플리케이션)로 라우팅하는 역할을 합니다.톰캣의 Host는 웹 서버에서의 가상 호스팅(Virtual Hosting) 기능과 유사합니다. 여러 도메인을 한 대의 서버에서 운영할 때 각 도메인에 대해 별도의 애플리케이션을 제공할 수 있도록 도와줍니다.1. Host의 주요 역할Host는 톰캣 서버의 Engine 내에서 특정 도메인 이름에 대해 웹 애플리케이션을 실행하고 관리하..
2023.06.06 -
Context
Apache Tomcat에서 Context는 단일 웹 애플리케이션에 대한 실행 환경을 나타내는 컴포넌트로, 하나의 웹 애플리케이션에 대한 모든 설정과 동작을 관리합니다. Context는 톰캣 내에서 웹 애플리케이션을 배포하고 관리하는 단위이며, 하나의 Host 안에서 여러 개의 Context가 존재할 수 있습니다. 즉, Context는 웹 애플리케이션을 특정 경로에 매핑하여, 클라이언트가 해당 경로로 요청을 보낼 때 해당 Context가 이를 처리하게 합니다.1. Context의 주요 역할Context는 하나의 웹 애플리케이션에 대한 실행 환경을 정의하며, 여러 가지 설정을 통해 애플리케이션의 동작 방식을 결정합니다. 다음과 같은 주요 역할을 합니다:웹 애플리케이션 매핑: Context는 특정 URL 경..
2023.06.04 -
Using AspectJ with Spring Applications
이전까지 다룬 내용은 순수한 Spring AOP에 대한 것이었습니다. 이 섹션에서는 AspectJ 컴파일러나 위버(weaver)를 Spring AOP 대신 또는 함께 사용하여, Spring AOP가 제공하는 기능 이상이 필요한 경우 이를 어떻게 활용할 수 있는지 살펴보겠습니다.1. 스프링에서 AspectJ 소개Spring AOP vs. AspectJ: Spring AOP는 더 넓은 AspectJ 프레임워크의 하위 집합입니다. Spring AOP는 기업 애플리케이션의 일반적인 문제를 해결하도록 설계되었지만, 메서드 수준의 인터셉션에만 한정되며 필드 수준이나 생성자 수준의 인터셉션을 지원하지 않습니다. 반면에 AspectJ는 이를 지원합니다.왜 AspectJ를 사용해야 하는가: AspectJ는 더 강력하고 ..
2023.05.26 -
Thread Pool
아파치 톰캣(Apache Tomcat) 서버의 스레드 풀(Thread Pool)은 서버가 동시에 여러 클라이언트의 요청을 효율적으로 처리할 수 있도록 하는 중요한 메커니즘입니다. 웹 서버는 다수의 클라이언트로부터 들어오는 요청을 처리해야 하는데, 스레드 풀을 사용하면 요청이 올 때마다 새로운 스레드를 생성하는 대신 미리 생성된 스레드들을 재사용함으로써 시스템 자원을 절약하고 성능을 최적화할 수 있습니다.스레드 풀의 개념스레드 풀(Thread Pool)은 일정 수의 스레드를 미리 생성해두고 요청이 발생할 때 이 스레드를 할당하여 요청을 처리한 후, 다시 스레드 풀로 반환하는 방식으로 동작합니다. 이를 통해 새로운 스레드 생성과 소멸에 따른 오버헤드를 줄일 수 있으며, 동시에 처리 가능한 요청의 수를 제한하..
2023.05.25 -
LockMin
다음은 Spring 테스트 스위트의 예시로, 한 개 이상의 객체에 다음 인터페이스를 도입한다고 가정합니다:public interface Lockable { void lock(); void unlock(); boolean locked(); }이는 믹스인(mixin)을 나타냅니다. 어드바이스된 객체를 Lockable로 캐스팅하고, 객체의 타입에 관계없이 lock 및 unlock 메서드를 호출할 수 있기를 원합니다. lock() 메서드를 호출하면 모든 setter 메서드가 LockedException을 던지도록 하고 싶습니다. 따라서 객체가 이를 전혀 인지하지 못한 상태에서 객체를 불변으로 만드는 기능을 추가할 수 있습니다. 이것은 AOP의 좋은 예입니다.먼저, 무거운 작업을 수행할 Intr..
2023.05.24