Spring Framework(138)
-
Mixin 디자인 패턴
보호되어 있는 글입니다.
2023.12.10 -
Thread Pool
아파치 톰캣(Apache Tomcat) 서버의 스레드 풀(Thread Pool)은 서버가 동시에 여러 클라이언트의 요청을 효율적으로 처리할 수 있도록 하는 중요한 메커니즘입니다. 웹 서버는 다수의 클라이언트로부터 들어오는 요청을 처리해야 하는데, 스레드 풀을 사용하면 요청이 올 때마다 새로운 스레드를 생성하는 대신 미리 생성된 스레드들을 재사용함으로써 시스템 자원을 절약하고 성능을 최적화할 수 있습니다.스레드 풀의 개념스레드 풀(Thread Pool)은 일정 수의 스레드를 미리 생성해두고 요청이 발생할 때 이 스레드를 할당하여 요청을 처리한 후, 다시 스레드 풀로 반환하는 방식으로 동작합니다. 이를 통해 새로운 스레드 생성과 소멸에 따른 오버헤드를 줄일 수 있으며, 동시에 처리 가능한 요청의 수를 제한하..
2023.09.21 -
Fine-tuning Annotation-based Autowiring with @Primary
자동 주입 시 타입에 의해 여러 후보가 생길 수 있기 때문에, 종종 선택 과정을 더 잘 제어할 필요가 있습니다. 이를 해결하는 한 가지 방법은 Spring의 @Primary 어노테이션을 사용하는 것입니다. @Primary는 특정 빈이 자동 주입을 위한 단일 값 의존성에 여러 후보가 있을 때 우선적으로 선택되도록 지정합니다. 후보 중에 정확히 하나의 @Primary 빈이 존재하면, 해당 빈이 자동 주입됩니다.다음은 firstMovieCatalog을 MovieCatalog의 기본 빈으로 정의한 구성 예시입니다:Java@Configurationpublic class MovieConfiguration { @Bean @Primary public MovieCatalog firstMovieCatalo..
2023.07.08 -
Tomcat 서버에서 정적 페이지를 처리하는 방법
Tomcat 서버에서 정적 페이지를 처리하는 방법은 기본적으로 간단하며, Tomcat은 정적 리소스(HTML, CSS, JavaScript, 이미지 등)를 기본적으로 처리할 수 있도록 설계되어 있습니다. Tomcat 서버는 Servlet 기반의 동적 웹 애플리케이션뿐만 아니라, 정적 리소스를 서빙하는 기능도 제공하므로 별도의 설정 없이도 정적 페이지를 제공할 수 있습니다.정적 페이지 처리 과정웹 애플리케이션 디렉토리 구조:Tomcat 서버는 웹 애플리케이션을 WAR(Web Application Archive) 형식으로 배포하거나, 특정 폴더 구조로 배포된 애플리케이션을 서빙합니다. 정적 페이지는 다음과 같은 디렉토리 구조에서 위치할 수 있습니다:여기서 webapps는 Tomcat 서버의 기본 배포 디렉토..
2023.06.13 -
Java Instrument API vs ASM(Abstract Syntax Manipulation)
Java Instrumentation API와 ASM은 모두 Java 바이트코드 조작을 가능하게 하는 도구이지만, 그 목적과 사용 방식이 다릅니다. 이 둘은 서로 보완적으로 사용될 수 있으며, Instrumentation API는 ASM과 같은 라이브러리와 함께 사용되어 바이트코드를 런타임에 조작할 수 있습니다.Java Instrumentation API주요 목적: Instrumentation API는 Java 애플리케이션에서 런타임 시 클래스의 바이트코드를 조작할 수 있는 기능을 제공합니다. 주로 Java Agent를 통해 사용되며, JVM에서 클래스가 로드되기 전이나 이미 로드된 후에 바이트코드를 수정할 수 있습니다.역할: Instrumentation API는 클래스 로딩 과정에 개입할 수 있는 메커..
2023.06.10 -
UML(Unified Modeling Language)
[참고] UML은 다이어그램을 사용하여 시스템이나 데이티베이스를 시각화하는 방법입니다.소프트웨어 개발에서 소프트웨어 시스템을 계획하기 위해 자주 사용됩니다. UML Diagram Type UML Class Diagram UML (Unified Modeling Language) 클래스 다이어그램은 소프트웨어 시스템의 클래스들과 그들 간의 관계를 시각적으로 표현하는 도구입니다. UML 클래스 다이어그램은 주로 객체 지향 소프트웨어 개발 과정에서 사용되며, 시스템의 구조를 분석하고 설계하는 데 중요한 역할을 합니다. 클래스 다이어그램은 시스템의 초기 설계 단계에서 매우 유용하며, 개발자들이 시스템의 구조를 명확하게 이해하고, 객체 간의 상호작용을 쉽게 파악할 수 있게 도와줍니다. 또한, 클래스 다이어그램은..
2023.06.10