Gradle: Implementation과 RuntimeOnly의 차이점 및 활용 방법
·
Spring 기초/Spring 설정
SpringBoot 프로젝트의 build.gradle 파일에서 'implementation'과 'runtimeOnly' 설정의 차이점과 사용법을 알아보자 📌 서론 Gradle의 빌드 스크립트인 build.gradle에서 의존성을 관리할 때 runtimeOnly와 implementation은 자주 사용되는 구성이야. 각각의 키워드가 어떤 목적으로 사용되는지, 그리고 차이점은 무엇인지 알아보자. 글의 이해를 위해 가장 먼저 스프링의 "모듈"을 알아보자 1. 스프링 부트의 모듈 이해하기 1-1. 메인 모듈 (Main Module) 애플리케이션의 핵심 기능을 담당한다. 주요 비즈니스 로직, 데이터베이스 연결, 웹 컨트롤러 등을 포함한다. 프로젝트의 src 폴더 내에 위치한 Java 패키지들, applicatio..
Spring Boot 생성자 주입 알아보기1: @ComponentScan 동작원리
·
Spring 기초/Spring 기초 지식
이번 포스트에서는 내가 궁금해서 알아본 생성자 주입이 이루어지는 과정에 대해서 설명할 것이다. 📌 서론 이번 포스트는 총 2편으로 나뉜다. 지금부터 설명할 1편에서는 @ComponentScan이 빈 등록을 어떻게 하는지 알아보고 2편에서는 이 등록된 빈을 활용하여 생성자 주입을 진행하는 것을 상세히 알아본다. 이번 포스트의 내용은 스프링에서 가장 중요하게 사용되는 Bean을 등록하는 과정을 상세하게 설명하도록 하겠다. 1. 생성자 주입과 컴포넌트 스캔 간략하게 알아보기 1-1 생성자 주입 과정 알아보기 1. SpringApplication.run() 스프링 부트 애플리케이션을 시작하는 주요 진입점이다. 이 메서드가 호출되면 내부적으로 여러 설정과 초기화 작업이 진행된다. 2. ApplicationCont..
SpringBoot: 리소스 관리하기 (resource)
·
Spring 기초/Spring 기초 지식
스프링 부트는 내부적으로 리소스를 어떻게 로딩할까? 📌 서론 길을 걸어가던 도중 스프링, 스프링부트에서는 어떻게 application.yml이나 js, css 같은 파일들을 읽어 들여서 사용하는지에 대한 궁금증이 생겼다. 그래서 당장 조사를 했고 이를 정리해 봤다. 지금부터 그 내용을 공유한다. 1. 리소스 로딩의 중요성과 기본 개념 스프링 어플리케이션의 성능과 개발 효율성 향상을 위해서는 다양한 외부 리소스(파일, 이미지 등)를 효율적으로 로딩하는 것이 중요하다. Resource 인터페이스는 다양한 리소스 유형에 대해 일관된 API를 제공하며, 리소스 존재 여부 확인, 파일/URL 접근 등 다양한 기능을 제공한다. 리소스 로딩의 중요성 스프링 어플리케이션에서 리소스 로딩은 핵심적인 부분이다. 외부 리소..
Spring Boot 3 및 Spring Batch 5에서 배치 테이블 자동 생성 문제 해결하기
·
Spring 기초/Spring 오류해결
SpringBoot3에서 배치를 사용할 때 왜 테이블을 자동으로 만들어 주지 않을지 알아보고 이것을 해결해 보자 1. 배치를 사용할 때 자동으로 테이블을 생성해 주지 않는 문제 1-1. 테이블이 생성되지 않는 원인 파악하기 Spring Boot 3에서 Spring Batch를 사용할 때 'application.yml'에 batch.jdbc.initialize-schema: ALWAYS와 job.enabled: true를 설정했는데도 불구하고 자동으로 DB 테이블이 생성되지 않는 문제가 있다. 이 문제의 원인은 Spring Boot 3에서 일부 자동 구성 변경 사항 때문이다. batch: jdbc: initialize-schema: ALWAYS job: enabled: true 원인1: 자동 구성 방법의 ..
[Spring] AOP: 횡단 관심사 쉽게 이해하기
·
Spring 기초/Spring 기초 지식2
이번 시간에는 횡단 관심사 (AOP)에 대해서 알아보자 횡단 관심사(Aspect-Oriented Programming, AOP)는 프로그래밍에서 자주 등장하는 개념이다. 이 개념의 핵심은 애플리케이션의 여러 부분에서 반복되는 기능들을 하나의 장소에 모아 관리하는 것이다. 예를 들어보면 로깅, 보안, 트랜잭션 처리 같은 기능들이 횡단 관심사에 해당한다. 횡단 관심사(Aspect-Oriented Programming, AOP)란? 1. AOP란 무엇인가? AOP, 즉 Aspect-Oriented Programming은 프로그래밍에서 매우 중요한 개념 중 하나로, 주로 반복되는 코드와 관심사를 분리하는 데 초점을 맞추고 있다. 이 방식은 소프트웨어 개발에서 흔히 접하는 문제인 코드의 중복을 줄이고, 모듈성을 ..
[Spring] @Component와 @Bean의 차이점
·
Spring 기초/Spring 기초 지식
Spring에서 @Bean과 @Component의 차이와 최적의 활용 방법을 알아보자 아래의 포스트를 통해 @Bean과 @Component의 기본 지식을 보충하고 오시는것을 추천합니다! Spring 빈 등록: @Bean의 기본과 활용 이번 포스트에는 스프링에서 가장 중요한 빈 등록 방식 @Bean에 대해 소개한다. 📌 서론 Spring Framework에서 @Bean은 매우 중요한 개념이다. 이는 개발자가 직접 제어할 수 없는 외부 라이브러리나 복 curiousjinan.tistory.com Spring의 빈 등록: @Component 이번 포스트에서는 @Component를 사용하여 스프링 빈 등록하는 방법을 알아보자 📌 서론 Spring Framework의 @Component 어노테이션은 클래스 인스턴..
[Spring] @Component로 스프링 빈 등록하기
·
Spring 기초/Spring 기초 지식
이번 포스트에서는 @Component를 사용하여 스프링 빈 등록하는 방법을 알아보자 📌 서론 Spring Framework의 @Component 어노테이션은 클래스 인스턴스를 스프링 빈으로 자동 등록한다. 이는 의존성 주입과 빈 생명주기 관리를 효율적으로 만들며, 스프링의 다양한 기능과도 잘 통합된다. @Component의 사용은 애플리케이션 구성을 간소화하고, 유지보수와 테스트가 쉬운 코드를 만드는 데 중요한 역할을 한다. 이를 통해 스프링 애플리케이션 개발이 더욱 간편하고 효과적이 된다. 1. @Component 사용법 및 특징 기본 사용법 @Component 어노테이션은 스프링 프레임워크에서 클래스를 자동으로 빈으로 등록하기 위해 클래스 레벨에서 사용된다. 이는 스프링 컨테이너가 애플리케이션 시작 ..
[Spring] @Bean을 사용한 스프링 빈 등록
·
Spring 기초/Spring 기초 지식
이번 포스트에는 스프링에서 가장 중요한 빈 등록 방식 @Bean에 대해 소개한다. 📌 서론 Spring Framework에서 @Bean은 매우 중요한 개념이다. 이는 개발자가 직접 제어할 수 없는 외부 라이브러리나 복잡한 구성이 필요한 객체를 스프링의 관리하에 두기 위해 사용되는 어노테이션이다. @Bean을 이해하고 올바르게 사용하는 것은 Spring 기반 애플리케이션의 효율적인 관리와 유연한 구성을 위해 필수적이다. 이를 통해 개발자는 스프링 컨테이너가 관리하는 빈(Bean) 객체를 생성하고, 이를 애플리케이션 전반에서 재사용할 수 있다. @Bean의 이해는 Spring의 의존성 주입(Dependency Injection) 기능을 깊이 이해하는 데에도 중요하며, 이는 애플리케이션의 결합도를 낮추고 유지..