본문 바로가기

Spring Study

[스프링 핵심 원리] - 기본편 #2

섹션 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

- 외부에서 메서드를 통해 필드에 접근해서 값을 바꿀 수 있는 메서드

- 필드값을 설정해야하기 때문에 매개변수 필요