
스프링 프로젝트를 생성하기 위해 Spring Initializr를 실행하면 의존성 (Dependencies)을 이라는 걸 설정하는 파트가 나온다. 그냥 지나칠 수도 있지만 해당 개념이 뭔지 정확히 알아보자. 의존성 (Dependencies)은 간단히 말해, 프로젝트가

1. build.gradle 파일이란? 이전 글에서 잠깐 살펴보았듯 build.gradle이란 Gradle 빌드 도구를 사용하는 프로젝트의 빌드 설정과 의존성 관리를 정의하는 핵심 파일이다. 해당 파일은 주로 Groovy DSL(Domain-Specific Langu

Spring Boot 애플리케이션에서 SpringApplication.run() 호출 시 내장 톰캣이 실행되는 과정은 의존성 관리 (Dependency Management), 자동 구성 (Auto-Configuration), 그리고 애플리케이션 컨텍스트 (Applica

해당 게시글에서는 Spring 프로젝트의 디렉토리 구조와 각 디렉토리가 무엇을 의미하고 어떠한 파일들을 저장하는지에 대해 알아본다.1\. Domain/Model애플리케이션의 핵심 비즈니스 로직과 데이터를 표현하는 객체들이 모여 있음.예: Entity, VO, Domai

스프링을 이해하는데 필수적인 개념인 빈 (Bean)과 컨테이너 (Container)에 대해서 알아보자. 1. 빈 (Bean)이란? 1.1. 빈 (Bean)의 개념 빈 (Bean)은 스프링 프레임워크에서 관리하는 객체를 말한다. 쉽게 말해, 애플리케이션에서 사용

해당 게시글에서는 빈 (Bean)에 대해 좀 더 자세히 알아본다. 이 글에서는 빈의 생명주기 (Lifecycle)와 범위 (Scope)에 대해서 알아볼 것이다. 1. 빈의 생명주기 (Lifecycle)란? 1.1. 생명주기 (Lifecycle)란? 빈의 생명주

이번 글에서는 예제 코드를 활용해서 빈의 생명주기를 관찰 할 것이다.예제 코드는 다음과 같다.✍️ 작성예제에 나타난 MyBean클래스는 스프링 컨테이너에 의해 빈으로 등록되고 사용되고 소멸하는 과정에서 해당 메서드들을 순서대로 실행한다. 각 메서드들을 하나하나 살펴보

Spring Boot에서 사용되는 각종 어노테이션 (Annotation)이 굉장히 많은데 이 글에서 다양한 어노테이션을 정리해보려고 한다. 1. 스프링의 기본 어노테이션 1.1. @Component 스프링이 관리하는 일반적인 빈 (Bean)을 정의할 때 사용

이전글에서 이어지는 내용이다.@ControllerAdvice는 스프링 MVC에서 전역으로 예외나 바인딩, 모델 속성 등을 처리할 수 있게 해주는 클래스 레벨 어노테이션.클래스에만 사용 : 이 어노테이션은 오직 클래스에 붙여서 해당 클래스가 모든 컨트롤러에 적용될 공통

오토 와이어링 (Autowiring)은 스프링이 DI (의존성 주입)를 자동으로 해주는 기능이다. 자바 기반 설정 방식에서 @Bean 메소드를 사용하거나 XML 기반 설정 방식에서 <bean> 요소를 사용하는 것처럼 명시적으로 빈을 정의하지 않고도 DI 컨테이너에

application.properties 파일은 스프링 부트 프로젝트의 src/main/resources 폴더 안에 기본적으로 들어있는 설정 파일로 스프링 부트가 애플리케이션을 구동할 때 자동으로 로딩하는 파일이다. 이 파일은 애플리케이션이 실행될 때 필요한 각종 설정

Spring Boot의 자동 에러 페이지 처리 기능을 비활성화하고, 사용자 정의 에러 페이지를 활성화하기 위해 application.yml에 다음 설정을 추가할 수 있다. 멋쟁이사자처럼 강의자료

관점 지향 프로그래밍 (Aspect Oriented Programming, AOP)이란 쉽게 말하면 비즈니스 로직 (핵심관심) 과 공통으로 필요한 기능 (예를 들면 로깅, 트랜잭션, 보안 등의 횡단관심)을 분리해서 관리하는 방법이다.기존에는 비즈니스 로직 코드 안에

Spring MVC는 모델-뷰-컨트롤러 (Model-View-Controller, MVC) 패턴을 기반으로 하는 웹 어플리케이션 프레임워크이다. Spring 프레임워크의 일부로, 이걸 쓰면 웹 애플리케이션을 MVC(Model, View, Controller) 아키텍처에

이번 글에서는 HTML 폼(Form)에 입력한 데이터가 어떻게 자바 객체에 자동으로 쏙 들어가는지, 그 원리에 대해 간략히 정리해 보았다.✍️ 작성여기서 가장 중요한 속성은 바로 <input> 태그의 name 속성이다. 사용자가 폼을 제출하면, 브라우저는 name

1. Spring MVC의 요청-응답 처리 흐름 |과정|설명| |-|-| |1. Client -> DispatcherServlet (HTTP GET /greeting)|클라이언트(브라우저)는 /greeting 엔드포인트로 GET 요청을 보냄. 톰캣(혹은 다른 W

BindingResult는 @Valid나 @Validated로 검증을 실행한 후, 데이터 바인딩이나 검증 과정에서 발생한 오류들을 저장하고 관리하는 객체이다.예를 들어, 폼 데이터를 객체에 바인딩하고 나서 해당 객체의 필드 값이 유효성 제약 (예: @NotNull, @

ViewResolver는 스프링 MVC에서 컨트롤러가 반환한 단순한 뷰 이름 (예: "home")을 실제 뷰 객체로 변환해 주는 핵심 인터페이스이다. 즉, 컨트롤러가 어떤 뷰 이름을 리턴하면, DispatcherServlet은 등록된 ViewResolver들을 통해 해

CommandLineRunner는 스프링 부트에서 애플리케이션이 완전히 구동된 후에 특정 코드를 실행할 수 있도록 해주는 함수형 인터페이스이다. ✍️ CommandLineRunner 인터페이스CommandLineRunner는 run(String... args) 메서드만

JPAUtil 클래스는 JPA를 사용할 때 핵심이 되는 EntityManagerFactory (EntityManager를 생성성)관리하는 유틸리티 클래스로 EntityManagerFactory 싱글톤 관리 / 리소스 정리 / 코드 중복 제거 등의 역할을 담당✍️ 작성싱
특정 데이터베이스 기능이나 구문을 직접 사용해야 할 필요가 있는데 이러한 경우, Spring Data JPA에서는 네이티브 SQL 쿼리를 작성하고 실행할수 있는 기능을 지원한다.네이티브 쿼리의 필요성은 다음과 같다.1\. 특정 데이터베이스 기능 사용네이티브 쿼리를 쓰면