
스프링 프레임워크는 단순히 하나의 도구가 아니라, 엔터프라이즈 급 애플리케이션 개발을 위한 방대한 생태계(Ecosystem)입니다. 주요 모듈들이 각각 어떤 역할을 하는지 정리했습니다.스프링의 가장 근간이 되는 부분입니다.스프링 컨텍스트 (Spring Context):

오늘은 스프링의 핵심 심장부인 스프링 컨텍스트가 무엇인지, 그리고 그 안에 객체(빈)를 등록하는 세 가지 방법에 대해 공부했습니다.스프링 컨텍스트는 사용자가 정의한 인스턴스(객체)를 스프링이 대신 생성하고, 의존성을 주입하며, 수명 주기를 제어할 수 있게 해주는 매커니

3장 <스프링 컨텍스트: 빈 작성>두 @Bean 메서드 간 직접 메서드를 호출하는 빈 작성와이어링-구성클래스에서 한 메서드에서 다른 메서드를 직접 호출(컨텍스트에 빈이 이미 있다면 컨텍스트에서 빈 메소드를 가져온다.)매개변수로 정의하여 관계를 설정할 수 도 있다.

객체지향 설계의 꽃인 추상화를 스프링 컨텍스트에서 어떻게 활용하고, 의존성 주입과 결합하여 유연한 코드를 만드는지 정리했습니다.추상화로 구현을 분리하는 것은 클래스 설계의 핵심입니다.객체 분리의 장점: 특정 구현체에 의존하지 않으므로, 애플리케이션의 다른 부분에 영향을

Spring 05. 스프링 컨텍스트: 빈의 스코프 및 수명주기오늘 공부한 내용은 스프링 컨테이너가 빈(Bean)을 어떻게 생성하고, 그 수명을 어떻게 관리하는지에 대한 핵심 개념입니다.빈 스코프(Bean Scope)란?스코프(Scope)는 빈이 생성되고 존재하며, 수명

Spring 06. 스프링 AOP로 애스펙트(Aspect) 사용하기오늘은 스프링의 핵심 중 하나인 AOP(관점 지향 프로그래밍)에 대해 공부했습니다. 비즈니스 로직과 공통 로직(로깅, 트랜잭션 등)을 분리하여 유지보수성을 극대화하는 마법 같은 기술입니다.AOP 핵심 용

Spring 07. 스프링 부트와 스프링 MVC의 이해스프링을 사용해 실제 웹 애플리케이션을 만들 때 가장 많이 접하게 되는 스프링 부트(Spring Boot)와 스프링 MVC의 핵심 원리를 정리했습니다.웹 애플리케이션의 구조웹 앱은 크게 두 영역으로 나뉩니다.클라이언

MVC 흐름도에서 컨트롤러는 단순히 뷰의 이름만 반환하는 것이 아니라, 뷰에서 보여줄 데이터도 함께 전송합니다.컨트롤러에서 뷰로 데이터를 쉽게 전송하고, 전송받은 데이터를 특정 방식으로 화면에 표시할 수 있게 해주는 의존성입니다.예시: 타임리프(Thymeleaf), 자

배운 내용을 바탕으로 제품을 관리하는 앱을 설계할 때, 다음과 같이 메서드를 구분하여 사용합니다.제품 목록 조회: 모든 제품의 리스트를 불러오는 작업이므로 HTTP GET을 사용합니다.제품 추가: 서버의 데이터베이스나 리스트에 새로운 정보를 넣는 작업이므로 HTTP P

웹 애플리케이션 환경에서 빈(Bean)의 생명주기를 결정하는 웹 스코프(Web Scopes)의 종류와 특징을 정리했습니다.@RequestScope: 찰나의 순간을 위한 객체메커니즘: 각 HTTP 요청마다 새로운 빈 인스턴스가 생성됩니다.특징:효율적인 메모리 관리: 요청

앱 간의 데이터 교환을 위한 REST 엔드포인트를 구축하고, 효율적인 응답 및 예외 관리 방법을 정리했습니다.두 앱 간 통신을 구현하는 방법으로, 한 앱이 HTTP를 통해 접근 가능하도록 기능을 노출한 지점입니다.웹 프로토콜을 따르기 때문에 '웹 서비스'라고도 부릅니다

실제 백엔드 솔루션 구축 시, 하나의 백엔드 앱이 다른 백엔드 앱이 노출한 엔드포인트를 호출해야 하는 경우가 빈번합니다. 이를 구현하기 위한 스프링의 주요 방법론을 정리했습니다.OpenFeign: 스프링 클라우드(Spring Cloud) 프로젝트에서 제공하는 도구입니다

애플리케이션의 데이터를 영구적으로 저장하기 위한 데이터 소스(DataSource)의 개념과 JdbcTemplate을 이용한 DB 연동 방법을 정리했습니다.데이터베이스와의 연결을 효율적으로 관리하는 핵심 구성 요소입니다.개념: DBMS에 대한 커넥션(연결)을 관리하는 객

데이터의 무결성을 보장하기 위한 필수 개념인 트랜잭션(Transaction)의 정의와 스프링 프레임워크에서의 동작 방식을 정리했습니다.트랜잭션은 정해진 가변 작업(데이터를 변경하는 작업)의 집합으로, "전부 실행되거나, 아예 실행되지 않아야 한다"는 원칙을 따릅니다.커

비즈니스 로직의 원자성을 보장해야 하는 대표적인 사례인 '계좌 이체' 기능을 통해 리포지토리, 서비스, 컨트롤러의 구현 방법을 정리했습니다.출금: 원본 계좌에서 지정된 금액을 차감합니다.입금: 대상 계좌에 해당 금액을 추가합니다.핵심: 두 연산은 반드시 하나의 트랜잭션

스프링 데이터는 반복되는 CRUD 코드를 획기적으로 줄여주고, 다양한 영속성 기술(RDBMS, NoSQL 등)을 공통된 방식으로 다룰 수 있게 해주는 강력한 라이브러리입니다.정의: 영속성 기술에 맞는 구현을 제공하여, 최소한의 코드 작성만으로 리포지터리를 정의할 수 있

발신인 계좌에서 지정된 금액을 인출한다.수취인 계좌에 해당 금액을 입금한다.변동성 있는 서비스 메서드에 @Transactional 애너테이션을 붙여 애스펙트를 사용한다.Spring Data에서 기본적으로 findById(), findAll() 등의 메서드를 제공한다.I