
스프링의 AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)는 말 그대로 어떠한 기능을 관점에 따라 분리하여 설계하는 기술이다.쉽게 설명하면, 핵심 비즈니스 로직(회원가입, 주문 등)과 그 핵심 로직을 돕는 공통 부가기능(로깅, 보안, 트

스크린샷 2026-02-08 오후 12.31.49.png자바 기반의 프레임워크로 좋은 객체지향적인 개발을 할 수 있게 해주는 프레임워크핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타웹 기술: 스프링MVC, 스프링 WebFlux데이터 접근 기술: 트랜잭션, J

순수 자바를 활용해서 좋은 객체지향이란 무엇인가에 대해 예제를 통해서 알아보자.요구사항을 보면 당장 결정하지 못하는 부분들이 존재한다. 객체지향은 이러한 문제를 어떻게 해결하는 지 살펴보자.먼저 회원 도메인 설계를 해보자.여기서 집중해야 할 것은 인ㅌ터페이스와 구현체의
JDBC는 Java가 H2, MySQL 같은 데이터베이스와 통신하는 기본 API다.순수 JDBC를 사용하면 연결을 얻고, SQL을 준비하고, 실행 결과를 객체로 바꾸고, 연결을 닫는 일을 직접 해야 한다. JdbcTemplate은 이 반복 작업을 대신 처리하고, 개발자
JPA(Java Persistence API)는 Java 객체와 관계형 DB 테이블을 연결해 주는 표준 규칙이다.JPA 자체는 인터페이스와 규칙이고, 현재 Spring Boot에서는 보통 Hibernate가 JPA의 실제 구현체로 동작한다.JdbcTemplate에서는
Spring Data JPA는 JPA를 더 적은 코드로 사용하게 해 주는 Spring 프로젝트다.JPA만 사용할 때는 EntityManager로 Repository 구현 클래스를 직접 작성한다.Spring Data JPA는 Repository 인터페이스만 선언하면, 실
Spring이 객체를 생성하고 보관하며, 객체 사이의 의존관계를 연결해 주는 공간이다.ApplicationContext가 Spring 컨테이너의 대표적인 인터페이스다.Spring 컨테이너가 생성하고 관리하는 객체를 Spring Bean이라고 한다.다음 두 방법 모두 결
스프링은 여러 사용자가 동시에 접속하는 웹 애플리케이션을 주로 만든다. 순수 자바 DI 방식처럼 요청마다 필요한 객체를 새로 만들면, 같은 기능의 객체가 계속 중복 생성된다.new AppConfig()를 직접 사용한 순수 DI 환경에서는 memberService()를
처음에는 AppConfig에 @Bean 메서드를 하나씩 작성해서 빈을 직접 등록했다.이 방식은 객체의 생성과 의존관계를 한눈에 볼 수 있다는 장점이 있다. 하지만 서비스, 리포지토리, 정책 클래스가 수십 개 이상 늘어나면 다음 문제가 생긴다.모든 클래스를 설정 파일에
컴포넌트 스캔으로 스프링 빈을 자동 등록했다면, 빈끼리 필요한 객체를 연결하는 일도 스프링에 맡길 수 있다. 이것이 의존관계 자동 주입(DI, Dependency Injection) 이다.스프링은 OrderServiceImpl 빈을 만들 때 생성자 파라미터 타입을 보고
애플리케이션은 시작할 때 외부 자원을 준비하고, 종료할 때 안전하게 정리해야 하는 경우가 있다.DB 커넥션 풀 연결·정리네트워크 소켓 연결·해제외부 API 클라이언트 준비파일, 스레드 풀, 캐시 같은 자원 정리강의의 NetworkClient는 URL을 받은 뒤 네트워크
빈 스코프(scope) 는 스프링 빈이 생성되고 유지되며 소멸되는 범위다.지금까지 주로 사용한 스프링 빈은 기본값인 싱글톤 스코프였다.스프링은 다음과 같은 대표 스코프를 지원한다.스코프는 컴포넌트 스캔과 @Bean 등록 모두에 지정할 수 있다.스프링 컨테이너는 싱글톤