본문 바로가기

분류 전체보기

(68)
InvocationHandler InvocationHandler는 자바의 java.lang.reflect 패키지에 있는 인터페이스로, Java의 다이나믹 프록시(dynamic proxy) 메커니즘의 핵심 부분입니다. 다이나믹 프록시는 런타임에 특정 인터페이스를 구현하는 클래스의 인스턴스를 생성하는 기능을 제공합니다. 이 과정에서 InvocationHandler는 핵심적인 역할을 담당합니다. InvocationHandler의 기능과 역할 메소드 호출의 중앙 처리: InvocationHandler 인터페이스는 단 하나의 메소드 invoke를 가지고 있습니다. invoke 메소드는 프록시 인스턴스의 메소드가 호출될 때마다 자동으로 실행됩니다. 즉, InvocationHandler는 프록시를 통해 호출된 모든 메소드를 중앙에서 처리합니다. 동..
서비스 추상화 서비스 계층 자바 웹 애플리케이션에서 Service 계층은 일반적으로 비즈니스 로직을 처리하는 부분을 의미합니다. 이 계층은 사용자의 요청을 받아들이고 처리하는 Controller 계층과, 데이터를 저장하고 관리하는 Repository 또는 DAO(Data Access Object) 계층 사이에 위치합니다. Service 계층의 주요 역할은 다음과 같습니다: 1. 비즈니스 로직 처리: 사용자로부터 받은 데이터를 가공하거나, 특정 비즈니스 규칙에 따라 계산하고 처리합니다. 2. 트랜잭션 관리: 여러 데이터베이스 연산을 하나의 작업 단위로 묶어서 처리합니다. 예를 들어, 한 작업 내에서 데이터베이스의 여러 테이블에 데이터를 추가하거나 수정할 때, 모든 작업이 성공적으로 완료되거나 실패할 경우 롤백하는 등의 ..
Service Layer 자바 웹 애플리케이션에서 ‘Service 계층’은 일반적으로 비즈니스 로직을 처리하는 부분을 의미합니다. 이 계층은 사용자의 요청을 받아들이고 처리하는 Controller 계층과, 데이터를 저장하고 관리하는 Repository 또는 DAO(Data Access Object) 계층 사이에 위치합니다. Service 계층의 주요 역할은 다음과 같습니다: 1. 비즈니스 로직 처리: 사용자로부터 받은 데이터를 가공하거나, 특정 비즈니스 규칙에 따라 계산하고 처리합니다. 2. 트랜잭션 관리: 여러 데이터베이스 연산을 하나의 작업 단위로 묶어서 처리합니다. 예를 들어, 한 작업 내에서 데이터베이스의 여러 테이블에 데이터를 추가하거나 수정할 때, 모든 작업이 성공적으로 완료되거나 실패할 경우 롤백하는 등의 처리를 합..
템플릿 콜백 패턴(Template Callback Pattern) 템플릿 콜백 패턴(Template Callback Pattern)은 소프트웨어 개발에서 많이 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 알고리즘의 전체적인 구조는 유지하면서, 일부분은 서브클래스에서 구현되도록 하는 것을 목적으로 합니다. 템플릿 콜백 패턴은 주로 Template Method 디자인 패턴과 함께 사용됩니다. Template Method 패턴은 알고리즘의 구조를 정의하고, 이 구조에서 일부분은 추상 메서드로 선언하여 서브클래스에서 구현하도록 합니다. 이때, 템플릿 콜백 패턴은 추상 메서드에서 콜백 메서드를 호출하여, 서브클래스에서 구현한 기능을 실행합니다. 이제, 템플릿 콜백 패턴을 사용한 간단한 예제 코드를 작성해보겠습니다. 여기서는 파일을 읽어들여, 파일 내용을 처리하는 프로그램을 ..
전략 패턴 전략 패턴(Strategy pattern)은 소프트웨어 개발에서 일반적으로 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 객체 지향 프로그래밍에서 다양한 알고리즘을 정의하고 각각을 캡슐화하여 이들을 서로 교환 가능하도록 만듭니다. 전략 패턴을 사용하면 런타임 시에 알고리즘을 선택할 수 있으며, 이를 통해 다양한 알고리즘을 쉽게 추가하거나 변경할 수 있습니다. 이 패턴은 알고리즘을 호출하는 클라이언트와 알고리즘을 구현하는 클래스를 분리하여 유연성을 제공하며, 재사용 가능한 코드를 작성할 수 있도록 도와줍니다. 전략 패턴은 일반적으로 인터페이스를 사용하여 알고리즘을 정의하고, 이 인터페이스를 구현하는 다양한 클래스를 만듭니다. 클라이언트는 이러한 클래스 중 하나를 선택하여 알고리즘을 실행할 수 있습니다. ..
@Import @Import 어노테이션을 사용하는 것은 Spring Framework에서 애플리케이션의 구성(Configuration) 메타데이터를 추가하는 방법 중 하나입니다. 이 어노테이션을 통해 다양한 방식으로 구성 클래스를 가져와 애플리케이션 컨텍스트에 등록할 수 있습니다. @Import를 사용하는 방법은 크게 정적 방법과 동적 방법으로 나눌 수 있습니다. 정적 방법(Static Method) 정적 방법은 가장 기본적인 @Import 사용 방식으로, 한 개 또는 여러 개의 구성 클래스를 직접 명시합니다. 이 방식은 컴파일 시점에 결정되므로 정적이라고 합니다. 예를 들어, @Configuration 어노테이션이 붙은 Java 클래스에 @Import 어노테이션을 사용하여 다른 구성 클래스들을 명시적으로 지정할 수 ..
SOLID(객체 지향 설계 원칙) http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod ArticleS.UncleBob.PrinciplesOfOod The Principles of OOD What is object oriented design? What is it all about? What are it's benefits? What are it's costs? It may seem silly to ask these questions in a day and age when virtually every software developer is using an object oriented language butunclebob.com SOLID는 객체 지향 프로그래밍에서의 다섯 가지 원칙을 의미합..
OCP(Open-Closed Principle) OCP(Open-Closed Principle)는 소프트웨어 개발에서 객체지향 설계 원칙 중 하나로, "개방-폐쇄 원칙"이라고도 불리며, 소프트웨어 개발에서 확장성을 고려하여 설계를 할 때 적용되는 원칙입니다. OCP는 소프트웨어 개발에서 변경에 대한 비용과 위험을 최소화하기 위해, 기존의 코드를 수정하지 않고도 기능을 추가하거나 변경할 수 있도록 하는 것을 목표로 합니다. OCP는 다음과 같은 내용을 담고 있습니다. 개방(O): 모듈은 확장에 대해 열려 있어야 합니다. 즉, 새로운 요구사항이나 기능이 추가되어도 기존 코드의 수정 없이도 새로운 코드를 추가할 수 있어야 합니다. UserDao는 DB 커넥션 기능을 확장하는 데는 열려 있습니다(DConnectionMaker, NConnectionMaker)..
Spring Resource Java Resource 자바에서 리소스(Resource)라는 개념은 주로 애플리케이션의 실행에 필요한 추가적인 데이터나 자산을 의미합니다. 이러한 리소스는 코드 외부에 존재하며, 일반적으로 애플리케이션의 실행 파일과는 분리되어 있습니다. 자바의 리소스는 다양한 형태로 존재할 수 있으며, 주요 특징과 활용 방법에 대해 살펴보겠습니다. 자바 리소스의 종류 1. 정적 파일: 이미지, 텍스트 파일, XML 파일, 속성 파일(properties) 등과 같이 애플리케이션 실행에 필요한 다양한 형태의 파일들을 포함합니다. 2. 클래스 파일과 자바 아카이브(JAR): 자바 애플리케이션의 클래스 파일들과 이들을 묶은 JAR 파일도 일종의 리소스로 볼 수 있습니다. 3. 외부 설정 파일: 데이터베이스 접속 정보, 구성 ..
Spring legacy Project(feat. Maven) 생성 Spring legacy Project를 빌드할 때, 메이븐 또는 그레이들의 도움을 받아 프로젝트를 빌드하도록 하겠습니다. (그렇지 않으면 프로젝트에 import하는 라이브러리를 직접 다운받아 프로젝트 디렉토리내에서 관리해야 하는 번거러움이 발생합니다) 이제 Spring Tool 3 (Standalone Edition)을 Spring Tool 4에서 더 이상 사용할 수 없습니다. https://marketplace.eclipse.org/content/spring-tools-3-standalone-edition?mpc=true&mpc_state= Spring Tools 3 (Standalone Edition) Spring Tools 3 (Standalone Edition) Attention - End of..