본문 바로가기

Spring Framework

(28)
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..
서비스 추상화와 트랜잭션 서비스 추상화의 필요성: 애플리케이션 개발에서 비즈니스 로직은 종종 복잡하고 다양한 데이터 조작과 상호작용을 포함하며, 이로 인해 코드가 길고 복잡해집니다. 이로 인해 유지보수가 어려워지고 코드 재사용성이 떨어질 수 있습니다. 이러한 문제를 해결하기 위해 서비스 추상화가 필요합니다. 서비스 추상화는 비즈니스 로직을 독립적이고 재사용 가능한 단위로 분리하여 개발하고자 하는 목적을 가지고 있습니다. 이를 통해 비즈니스 로직의 가독성과 유지보수성을 향상시킬 수 있습니다. 스프링은 서비스 추상화를 위한 다양한 기능과 패턴을 제공하여 개발자들이 더 나은 소프트웨어를 구현할 수 있도록 지원합니다. 스프링의 서비스 추상화: 스프링은 서비스 추상화를 지원하기 위해 주로 빈(Bean)과 의존성 주입(Dependency ..
Jdbc Template JDBC (Java Database Connectivity) JDBC는 Java 프로그램에서 데이터베이스와 연결하여 데이터베이스 작업을 수행하기 위한 자바 API입니다. JDBC를 사용하면 Java 애플리케이션과 다양한 데이터베이스 시스템 간에 표준화된 방법으로 상호작용할 수 있습니다. 하지만 JDBC를 사용하는 과정에서 여러 반복적인 코드와 예외 처리 등을 직접 구현해야 하는 불편함이 있었습니다. JdbcTemplate의 등장 Spring 프레임워크에서는 JDBC를 더 편리하고 유연하게 사용할 수 있도록 JdbcTemplate을 도입하였습니다. JdbcTemplate은 Spring JDBC 모듈에서 제공하는 클래스로서, JDBC를 사용하는 과정에서 발생하는 반복적인 작업들을 대신 처리해주고, 예외 처리..
템플릿 메서드 패턴 & 콜백 패턴 템플릿 메서드 패턴 (Template Method Pattern) 템플릿 메서드 패턴은 객체 지향 디자인 패턴으로, 알고리즘의 구조를 정의하고 중간 단계를 서브클래스에서 구현할 수 있도록 하는 패턴입니다. 알고리즘의 전체적인 구조는 부모 클래스에서 미리 정의되지만, 중간 단계의 구체적인 구현은 서브클래스에서 이루어집니다. 이를 통해 알고리즘의 구조와 개별 단계를 분리하여 코드의 재사용성과 유지보수성을 높일 수 있습니다. 구성 요소 Abstract Class (추상 클래스): 알고리즘의 뼈대를 정의하는 클래스로서, 추상 메서드와 일반 메서드를 포함합니다. 추상 메서드는 서브클래스에서 반드시 구현해야 합니다. 일반 메서드들은 템플릿 메서드에서 사용되며, 알고리즘의 구조를 정의합니다. Concrete Clas..
junit5 - 단위 테스트 프레임워크 JUnit은 자바의 가장 인기 있는 테스트 프레임워크 중 하나이며, 버전 5에서는 이전 버전과 비교해 더욱 강력하고 유연한 기능을 제공합니다. JUnit 5 소개 JUnit 5는 JUnit 팀에 의해 개발되고 유지보수되며, 스프링 프레임워크와 함께 가장 널리 사용되는 테스트 프레임워크입니다. JUnit 5는 이전 버전과는 달리 모듈화되어 있으며, 각 모듈은 특정 기능을 위해 분리되어 있습니다. 주요 모듈로는 다음과 같습니다. junit-jupiter: JUnit 5의 주요 기능을 제공하는 모듈로, @Test, @BeforeEach, @AfterEach와 같은 애너테이션을 포함합니다. junit-vintage: JUnit 4 및 JUnit 3과의 호환성을 제공하는 모듈입니다. junit-platform: ..
싱글톤 레지스트리 Spring 싱글톤 레지스트리 Spring IoC Container는 기본적으로 생성한 객체들을 싱글톤으로 관리하는데, 이를 Spring 싱글톤 레지스트리라고 합다. Spring은 기본적으로 하나의 빈(Bean) 정의에 대해 단 하나의 객체 인스턴스만 생성하고, 이를 컨테이너 내에서 공유하여 사용합니다. 싱글톤 패턴은 객체 생성 비용이 큰 경우나 동일한 인스턴스를 여러 곳에서 공유해야 하는 경우에 사용됩니다. Spring 싱글톤 레지스트리는 이러한 패턴을 자동으로 구현하여 빈(Bean)들을 효율적으로 관리합니다. Spring 싱글톤 레지스트리의 특징은 다음과 같습니다: 1. 기본적인 싱글톤 방식 Spring IoC Container는 기본적으로 모든 빈(Bean)들을 싱글톤으로 관리합니다. 따라서 동일한..
IoC, DI, Spring IoC Container 소프트웨어 개발에 있어서 객체 지향 프로그래밍은 매우 중요한 개념입니다. 객체 지향 프로그래밍은 코드의 재사용성, 유지보수성, 확장성 등을 높여주는 강력한 패러다임으로서 개발자들이 많이 사용하고 있습니다. 그 중에도 IoC (Inversion of Control)와 DI (Dependency Injection)는 스프링 프레임워크에서 필수적인 개념입니다. 1. IoC (Inversion of Control) IoC란 "제어의 역전"이라는 뜻으로, 기존의 컨트롤 흐름을 개발자가 아닌 프레임워크 또는 컨테이너가 가져가는 것을 의미합니다. 기존의 어플리케이션 개발에서는 개발자가 객체의 생성과 관리를 직접 수행하는 경우가 많았습니다. 하지만 IoC에서는 이러한 객체의 생명주기와 의존성 관리를 프레임워크에 위임합..