섹션 3 : 스프링 핵심 원리 이해 1
객체 지향 설계와 스프링
스프링은 다형성을 기반으로 OCP(Open-Closed Principle)와 DIP(Dependency Inversion Principle)를 지원하여 유연하고 확장 가능한 설계를 가능하게 한다.
DI(Dependency Injection): 의존성 주입
- 클라이언트 코드의 변경 없이 기능을 확장할 수 있도록 지원
- 부품을 교체하듯이 쉽게 개발 가능
좋은 객체 지향 설계란?
- 역할과 구현을 철저히 분리하는 설계
- 공연을 설계하듯이 배역(역할)을 먼저 정하고, 배우(구현)는 언제든지 유연하게 변경 가능하도록 설계
- 이를 위해 다형성뿐만 아니라 OCP와 DIP 원칙을 준수해야 함
스프링 컨테이너는 이러한 설계를 효과적으로 지원
인터페이스 우선 설계의 장점
- 인터페이스를 먼저 설계하면 구현 기술이 변경되더라도 다른 부분에 영향을 주지 않음
- 변경 범위가 작아지고 설계가 유연해짐
인텔리제이 단축키
⌘ + N -> Generate
⌘ + ⌥ + V -> 변수 추출
생성자
- 객체가 생성될 때 자동으로 호출되는 특수 목적의 멤버함수(메서드)로 객체의 초기화를 위해 사용
- new 연산자를 통해서 인스턴스를 생성할 때 반드시 호출이 되고 제일 먼저 실행되는 초기화 메서드
Getter와 Setter
- 객체지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는다. (객체의 무결성을 유지하기 위해)
클래스의 멤버 변수를 public으로 선언하면, 해당 변수는 어디서든 직접 접근이 가능하고 외부에서 멤버 변수의 값을 변경할 수 있다.
Getter
- 외부에서 객체의 데이터를 읽을 때 사용하는 메서드
- 필드값을 반환해야 하기 때문에 return이 필요
Setter
- 외부에서 메서드를 통해 필드에 접근해서 값을 바꿀 수 있는 메서드
- 필드값을 설정해야하기 때문에 매개변수 필요
'Spring Study' 카테고리의 다른 글
[스프링 핵심 원리] - 기본편 #4 (1) | 2025.03.14 |
---|---|
[스프링 핵심 원리] - 기본편 #3 (0) | 2025.03.11 |
[스프링 핵심 원리] - 기본편 #1 (1) | 2025.03.02 |
[스프링 입문] -코드로 배우는 스프링 부트 # 2 (0) | 2025.02.19 |
[스프링 입문] -코드로 배우는 스프링 부트 # 1 (0) | 2025.02.12 |