분류 전체보기290 2024.08.12(월) { 템플릿 메서드 패턴, 콜백, RowMapper, Stream, Properties } 템플릿 메서드 패턴(Template Method Pattern) 템플릿 메서드 패턴(Template Method Pattern)은 객체 지향 설계 패턴 중 하나로, 상위 클래스에서 알고리즘의 구조를 정의하고, 하위 클래스에서 알고리즘의 특정 단계를 구현하는 패턴입니다. 이 패턴은 알고리즘의 뼈대를 상위 클래스에서 정의하고, 하위 클래스에서 세부적인 동작을 재정의하거나 확장할 수 있도록 설계되어 있습니다.템플릿 메서드 패턴의 구성 요소AbstractClass(추상 클래스):알고리즘의 구조를 정의하는 추상 클래스입니다.전체적인 알고리즘 흐름을 구현한 템플릿 메서드를 포함하고 있습니다.알고리즘의 일부 단계는 추상 메서드로 정의되며, 이 메서드들은 하위 클래스에서 구체적인 구현을 제공합니다.ConcreteCla.. 2024. 8. 12. "Eager"(즉시 모드)와 "Lazy"(지연 모드) "Eager"(즉시 모드)와 "Lazy"(지연 모드)는 객체의 초기화 시점을 제어하는 개념입니다. 이 개념들은 주로 객체가 생성되거나 초기화되는 시점을 조절하는 데 사용됩니다. 특히 스프링 프레임워크나 JPA 같은 기술들에서 자주 사용되며, 애플리케이션 성능 최적화나 메모리 사용 효율성을 높이는 데 중요한 역할을 합니다.1. Eager (즉시 모드)정의: 즉시 모드는 객체가 즉시 초기화되거나 로드됨을 의미합니다. 스프링에서 빈을 즉시 모드로 설정하면, 애플리케이션 컨텍스트가 로드될 때 모든 빈이 즉시 생성되고 초기화됩니다.특징:초기화 시점: 객체나 빈이 애플리케이션 시작 시점에 즉시 생성 및 초기화됩니다.메모리 사용: 모든 객체가 즉시 생성되기 때문에 초기 메모리 사용량이 증가할 수 있습니다.성능: 초기.. 2024. 8. 11. 스프링 프레임워크에서의 메타데이터 스프링 프레임워크에서 메타데이터는 애플리케이션의 설정과 관련된 정보를 말하며, 이를 통해 스프링 컨테이너는 애플리케이션에서 어떤 빈(Bean)을 생성하고 관리할지 결정합니다. 스프링에서는 메타데이터를 여러 방식으로 정의할 수 있습니다. 그 중 자바 기반의 설정과 어노테이션 기반의 설정은 주요한 두 가지 방식입니다.1. 자바 기반의 Configuration 메타데이터자바 기반의 설정은 XML 기반의 설정을 대체하거나 보완하는 방법으로, 스프링 3.0부터 지원되었습니다. 이 방식에서는 자바 클래스를 사용하여 스프링 빈을 정의하고, 애플리케이션 컨텍스트를 설정할 수 있습니다.자바 기반의 설정에서 메타데이터는 주로 @Configuration과 @Bean 애노테이션을 사용하여 정의됩니다.주요 어노테이션@Confi.. 2024. 8. 11. 빈 팩토리(BeanFactory)와 팩토리 빈(FactoryBean) 1. 빈 팩토리 (BeanFactory)정의**빈 팩토리(BeanFactory)**는 스프링의 IoC (Inversion of Control) 컨테이너의 최상위 인터페이스입니다. 빈 팩토리는 스프링 애플리케이션에서 빈(Bean)을 생성하고 관리하는 책임을 맡고 있습니다.ApplicationContext는 BeanFactory를 확장한 인터페이스로, 대부분의 경우 스프링 애플리케이션에서 ApplicationContext를 사용하여 빈을 관리하지만, 기본적인 빈 관리 기능은 BeanFactory에서 제공됩니다.주요 기능의존성 주입: 빈 팩토리는 빈 간의 의존성을 관리하고, 주입하는 역할을 합니다.지연 초기화: 기본적으로 빈 팩토리는 요청 시점에 빈을 초기화하는 지연 초기화(Lazy Initialization.. 2024. 8. 11. 스프링 프레임워크의 핵심 3대 요소 스프링 프레임워크의 핵심 3대 요소는 다음과 같습니다. 이 세 가지 요소는 스프링 프레임워크의 기본 개념이자, 스프링이 제공하는 주요 기능들을 이해하는 데 중요한 역할을 합니다.1. 의존성 주입 (Dependency Injection, DI)설명: 의존성 주입은 객체 간의 의존 관계를 설정하는 방법으로, 객체가 필요한 의존성을 스스로 생성하지 않고 외부에서 주입받도록 하는 설계 패턴입니다. 스프링은 DI를 통해 객체 간의 결합도를 낮추고, 코드의 재사용성과 테스트 가능성을 높입니다.작동 원리: 개발자가 클래스 내에서 객체를 직접 생성하는 것이 아니라, 스프링 컨테이너가 객체의 의존성을 주입해줍니다. 이를 통해 객체 간의 결합도가 줄어들고, 코드의 유연성이 향상됩니다.사용 예시:위 예시에서 MyServic.. 2024. 8. 11. 2024.08.09 (금) { 싱글턴패턴, 애노테이션에서의 속성, registerSingleton, AnnotationConfigApplicationContext, 어노테이션 } 싱글턴 패턴 적용 단계자기 자신을 참조하는 스태틱 필드를 선언하고 초기화:클래스 내부에서 자신의 인스턴스를 참조하는 정적(스태틱) 필드를 선언하고, 초기화합니다.생성자를 프라이빗으로 변경:생성자를 private으로 선언하여, 외부에서 new 키워드를 통해 인스턴스를 생성하지 못하도록 막습니다.외부에서 인스턴스에 접근할 수 있도록 스태틱 메서드 제공:인스턴스를 반환하는 정적 메서드를 정의합니다. 이 메서드를 통해 외부에서 유일한 인스턴스에 접근할 수 있습니다.public class Singleton { // 1. 자기 자신을 참조하는 스태틱 필드를 선언하고 초기화 private static final Singleton instance = new Singleton(); // 2. 생성자를 프.. 2024. 8. 11. 이전 1 ··· 28 29 30 31 32 33 34 ··· 49 다음