~/tech-blog/tag/Spring — zsh

#Spring 42 posts

카테고리를 가로질러 Spring를 다룬 글을 모았습니다.

테스트

@Mock, @MockBean, @Spy, @SpyBean, @InjectMocks

Mockito의 @Mock, @MockBean, @Spy, @SpyBean, @InjectMocks 애노테이션의 차이와 단위·통합 테스트에서의 활용법을 예제 코드로 정리합니다.

2024.10.25 · efa5056 · 테스트 — 1 min
SPRING

실무에서 잘못 사용하고 있던 Transaction

실무 프로젝트 전반에 REQUIRES_NEW가 남용되던 원인을 프록시 패턴과 롤백 시점 이해 부족에서 찾아 분석한 경험을 공유합니다.

2024.09.21 · efa5056 · Spring — 5 min
SPRING

Spring Annotation 그리고 Custom Annotation

Spring이 @Component, @Service 같은 어노테이션을 인식하는 원리와 Target, Retention 등 메타 어노테이션의 의미를 정리합니다.

2024.09.13 · efa5056 · Spring — 1 min
DATABASE

커넥션 풀과 데이터소스 이해하기

DB 커넥션을 매번 새로 맺을 때의 문제와 커넥션 풀, DataSource 추상화가 이를 어떻게 해결하는지 정리합니다.

2023.08.12 · ea0f709 · Database — 1 min
SPRING

@Transactional try ~ catch 롤백 안 되는 원인

@Transactional 안에서 try ~ catch로 예외를 감쌀 때 롤백이 동작하지 않는 원인을 TransactionAspectSupport 내부 동작으로 분석하고 해결 방법을 정리합니다.

2023.07.29 · efa5056 · Spring — 2 min
SPRING

RestTemplate 이란, 메소드, 사용예시

Spring이 제공하는 HTTP 클라이언트 RestTemplate의 개념과 주요 메서드, 실전 사용 예시를 정리합니다.

2023.03.09 · c31d7cd · Spring — 2 min
SPRING

테스트에서 만난 NoUniqueBeanDefinitionException

여러 개의 트랜잭션 매니저 빈이 등록된 환경에서 테스트 코드가 NoUniqueBeanDefinitionException을 던진 원인과 해결 과정을 정리합니다.

2022.12.22 · ea0f709 · Spring — 1 min
스프링 데이터 JPA · 3/6

공통 인터페이스 기능

순수 JPA로 기본 CRUD 리포지토리를 만들어본 뒤, 스프링 데이터 JPA의 공통 인터페이스 JpaRepository로 대체하는 과정을 정리합니다.

2022.05.03 · c31d7cd · Spring JPA — 3 min
스프링 데이터 JPA · 6/6

스프링 데이터 JPA는 어떻게 동작하는가

스프링 데이터 JPA 공통 인터페이스 구현체 SimpleJpaRepository의 동작과 save() 메서드의 신규 엔티티 판단 로직을 정리합니다.

2022.05.10 · ea0f709 · Spring JPA — 2 min
자바 ORM 표준 JPA · 8/13

즉시 로딩과 지연 로딩

지연 로딩과 즉시 로딩의 동작 차이를 프록시 조회 관점에서 정리하고, 실무에서 지연 로딩을 써야 하는 이유를 짚습니다.

2022.04.29 · ea0f709 · Spring JPA — 1 min
스프링 입문 · 2/12

회원 관리 예제 — 백엔드 개발 (1)

회원 도메인과 메모리 기반 리포지토리를 인터페이스로 설계하고, JUnit으로 저장/조회 기능을 검증하는 과정을 정리합니다.

efa5056 · Spring — 2 min
스프링 입문 · 3/12

회원 관리 예제 — 백엔드 개발 (2)

회원가입 중복 검증 로직을 담은 Service 계층을 구현하고, given-when-then 패턴으로 정상 케이스와 예외 케이스를 테스트합니다.

c31d7cd · Spring — 1 min
스프링 입문 · 6/12

회원 웹 기능 — 등록, 출력

Thymeleaf로 홈, 회원 등록 폼, 회원 목록 화면을 구성하고 HomeController에서 등록·조회 요청을 처리하는 과정을 정리합니다.

c31d7cd · Spring — 2 min
스프링 입문 · 8/12

순수 JDBC 사용과 연동

순수 JDBC로 MemberRepository를 구현하고, SpringConfig의 빈 설정만 바꿔서 메모리 저장소를 DB로 교체하는 과정을 정리합니다.

c31d7cd · Spring — 1 min
스프링 입문 · 10/12

스프링 JPA 통합 테스트

JPA 엔티티 매핑과 EntityManager 기반 리포지토리를 구현하고, SpringConfig의 빈 설정만 바꿔 JDBC 구현체를 JPA로 교체하는 과정을 정리합니다.

c31d7cd · Spring — 2 min
스프링 핵심 원리 · 1/18

객체 지향 설계와 스프링

스프링을 배우기에 앞서 다형성과 역할-구현 분리, SOLID 5원칙이 왜 좋은 객체 지향 설계의 토대가 되는지 정리합니다.

ea0f709 · Spring — 4 min
스프링 핵심 원리 · 2/18

예제 만들기

회원 조회와 주문 할인 정책 예제를 구현하며 DIP 위반 문제를 발견하고, AppConfig로 관심사를 분리하는 과정을 정리합니다.

efa5056 · Spring — 3 min
스프링 핵심 원리 · 3/18

AppConfig 리팩터링

중복이 있던 AppConfig를 리팩터링해 역할과 구현이 한눈에 드러나도록 정리하고, 그 과정에서 지켜지는 SOLID 원칙을 살펴봅니다.

ea0f709 · Spring — 1 min
스프링 핵심 원리 · 4/18

스프링 빈으로 전환하기

순수 자바 코드로 작성했던 AppConfig를 @Configuration과 @Bean으로 전환해 스프링 컨테이너에 빈을 등록하는 과정을 정리합니다.

efa5056 · Spring — 1 min
스프링 핵심 원리 · 5/18

BeanFactory와 ApplicationContext

스프링 컨테이너의 최상위 인터페이스인 BeanFactory와, 이를 상속해 다양한 부가 기능을 제공하는 ApplicationContext의 역할을 정리합니다.

ea0f709 · Spring — 2 min
스프링 핵심 원리 · 6/18

XML로 스프링 빈 설정하기

자바 코드 대신 XML로 스프링 빈을 설정하는 방법과, 다양한 설정 형식을 가능하게 하는 BeanDefinition 추상화를 정리합니다.

ea0f709 · Spring — 2 min
스프링 핵심 원리 · 7/18

웹 애플리케이션과 싱글톤

매번 new로 객체를 생성하던 AppConfig의 문제를 직접 구현한 싱글톤 패턴과 스프링 컨테이너로 각각 해결해 봅니다.

ea0f709 · Spring — 2 min
스프링 핵심 원리 · 8/18

싱글톤 방식의 주의점

싱글톤 빈은 상태를 공유하기 때문에 무상태로 설계해야 한다는 점을 StatefulService 예제로 확인합니다.

ea0f709 · Spring — 1 min
스프링 핵심 원리 · 9/18

싱글톤 컨테이너와 @Configuration

AppConfig가 여러 번 호출되어도 싱글톤이 보장되는 이유를 @Configuration과 CGLIB 바이트코드 조작을 통해 분석합니다.

ea0f709 · Spring — 3 min
스프링 핵심 원리 · 10/18

컴포넌트 스캔

설정 정보 없이 스프링 빈을 자동으로 등록하는 컴포넌트 스캔과 @Autowired 의존관계 자동 주입의 동작 방식을 정리합니다.

efa5056 · Spring — 4 min
스프링 핵심 원리 · 11/18

생성자 주입을 선택해야 하는 이유

수정자 주입 대신 생성자 주입을 권장하는 이유와, 롬복의 @RequiredArgsConstructor로 생성자 코드를 줄이는 방법을 정리합니다.

ea0f709 · Spring — 2 min
스프링 핵심 원리 · 12/18

조회 빈이 2개 이상 충돌할 때

스프링에서 @Autowired로 조회한 빈이 2개 이상일 때 발생하는 충돌을 필드명 매칭, @Qualifier, @Primary로 해결하는 방법을 정리합니다.

ea0f709 · Spring — 4 min
스프링 핵심 원리 · 13/18

의존관계 주입 애노테이션 직접 만들기

문자열 기반 @Qualifier의 오타 위험을 없애기 위해 전용 애노테이션을 직접 만들어 타입 안전하게 의존관계를 주입하는 방법을 정리합니다.

ea0f709 · Spring — 1 min
스프링 핵심 원리 · 14/18

자동과 수동, 실무에서의 판단 기준

스프링 빈을 자동 등록과 수동 등록 중 어떤 기준으로 선택해야 하는지, 업무 로직과 기술 지원 로직을 나누어 정리합니다.

efa5056 · Spring — 2 min
스프링 핵심 원리 · 15/18

빈 생명주기 콜백

스프링 빈의 생명주기와 초기화·소멸 콜백을 인터페이스, 설정 정보, @PostConstruct/@PreDestroy 세 가지 방식으로 비교해 정리합니다.

efa5056 · Spring — 4 min
스프링 핵심 원리 · 16/18

프로토타입 스코프와 싱글톤 빈

싱글톤과 프로토타입 빈 스코프의 차이를 살펴보고, 싱글톤 빈이 프로토타입 빈을 주입받을 때 발생하는 문제를 예제로 정리합니다.

efa5056 · Spring — 4 min
스프링 핵심 원리 · 18/18

웹 스코프

웹 스코프와 request 스코프의 동작 방식을 살펴보고, ObjectProvider와 CGLIB 프록시로 스코프 문제를 해결하는 방법을 정리합니다.

efa5056 · Spring — 5 min
스프링 입문 · 4/12

컴포넌트 스캔과 자동 의존관계 설정

@Component 애노테이션이 붙은 클래스를 스프링 빈으로 자동 등록하고, 생성자를 통해 의존관계를 자동으로 주입받는 컴포넌트 스캔 방식을 정리합니다.

efa5056 · Spring — 1 min
스프링 입문 · 5/12

자바 코드로 스프링 빈 직접 등록하기

아직 데이터베이스가 정해지지 않은 상황에서 SpringConfig 자바 클래스로 스프링 빈을 직접 등록하는 방법을 정리합니다.

ea0f709 · Spring — 1 min
스프링 입문 · 7/12

H2 데이터베이스 설치와 연동

H2 데이터베이스를 설치하고 build.gradle과 application.properties를 설정해 스프링 프로젝트와 연동하는 과정을 정리합니다.

efa5056 · Spring — 1 min
스프링 입문 · 9/12

스프링 통합 테스트

@SpringBootTest와 @Transactional로 회원 서비스의 회원가입, 중복 검증, 조회 기능을 통합 테스트하는 과정을 정리합니다.

ea0f709 · Spring — 1 min
스프링 입문 · 11/12

스프링 데이터 JPA와 통합 테스트

JpaRepository를 상속하는 인터페이스만으로 리포지토리 구현체를 자동 생성하는 스프링 데이터 JPA 사용법을 정리합니다.

ea0f709 · Spring — 1 min
스프링 입문 · 12/12

AOP가 필요한 상황, 사용법

함수 실행 시간 측정을 예로 삼아 핵심 로직과 공통 관심사를 분리하는 AOP의 필요성과 사용법을 정리합니다.

ea0f709 · Spring — 1 min
● main 214 posts UTF-8 LF © 2026 코징 RSS · GitHub