스프링 심화(챕터1)

최길중·2026년 2월 6일

✅ SOLID 원칙

Single Responsibility Principle(단일 책임 원칙)

"클래스는 단 하나의 책임만 가져야 한다”

Open/Closed Principle(개방/폐쇄 원칙)

"클래스는 확장에는 열려있고, 수정에는 닫혀있어야 한다”

Liskov Substitution Principle(리스코프 치환 원칙)

"자식 클래스는 부모 클래스를 대체할 수 있어야 한다”

Interface Segregation Principle(인터페이스 분리 원칙)

"클라이언트는 자신이 사용하지 않는 메서드에 의존하면 안 된다”

Dependency Inversion Principle(의존 역전 원칙)

"고수준 모듈은 저수준 모듈에 의존하면 안 된다. 둘 다 추상화에 의존해야 한다”



IoC/DI

IoC: Spring이 객체의 생성을 제어
DI: Spring이 관리 하는 객체를 가져와서 의존성 주입



Bean

스프링 IoC 컨테이너가 관리하는 객체를 의미합니다.

스프링 IoC Container

  • Bean의 생성 및 생명주기 관리
  • 의존성 주입 (DI)
  • Bean 설정 정보 관리
  • Bean 간의 의존 관계 설정

IoC/DI 사용 전 (BF)

@Service
public class UserService {
    private final UserRepository userRepository = new UserRepository(...);
}

IoC/DI 사용 후 (AF)

@Service
@RequiredArgsConstructor
public class UserService {
    private final UserRepository userRepository;
}

놀랍게도 이미 사용하고 있었던 거임 ㄷㄷ

Spring에서 IoC/DI vs new 사용 기준

기준: "재사용되거나 교체 가능한 비즈니스 로직/인프라"
// ✅ Spring Bean으로 관리
@Service
public class UserService { }  // 비즈니스 로직
------------------------------------------------
기준: "매번 새로운 상태를 가지는 데이터 객체"
// ❌ Bean으로 만들면 안 됨!
public class User {
    private String name;
    private int age;
}

@Component

@RestController는 @Controller와 @ResponseBody를 합친 어노테이션이므로, @Component 클래스입니다.



1-4,5 챕터는 이해가 잘 가지 않아서 나중에 작성



Validation

특정 데이터(주로 클라이언트의 요청 데이터)의 값이 유효한지 확인하는 단계를 의미합니다.

profile
취준생

0개의 댓글