티스토리 뷰

반응형

객체 지향 요소

  • 추상화 
  • 캡슐화
  • 상속
  • 다형성 ex) 자바 언어의 overriding

  → 다형성은 클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있도록 한다.

  → 스프링은 다형성을 극대화해 이용할 수 있게 도와준다.

 

 

객체 지향 프로그래밍

컴퓨터 프로그램을 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. (출처: 위키백과)

 


객체 지향 설계 5원칙: SOLID 원칙 

1. SRP: 단일 책임 원칙 (Single Responsibility Principle)

- 모든 클래스는 각각 하나의 책임만 가져야 한다.

- 즉, 어플리케이션에 변경이 있을 때 전체적으로 파급 효과가 적으면 SRP 원칙을 잘 따른 것이다.

 


2. OCP: 개방-폐쇄 원칙 (Open/Closed Principle)

- 확장에는 열려 있으나 변경에는 닫혀 있는 설계가 이루어져야 한다.

- 다형성을 활용하면 OCP를 지킬 수 있다. (인터페이스로 설계하고, 상세한 구현을 하위 클래스에게 맡긴다.)

- 역할과 구현의 분리!

 

 

3. LSP: 리스코프 치환 원칙 (Liskov Substitution Principle)

- 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야 한다.

- 다형성에서 하위 클래스는 인터페이스 또는 부모 클래스의 규약(책임)을 다 지켜야 한다는 것이다.

 


4. ISP: 인터페이스 분리 원칙 (Interface Segregation Principle)

- 특정 클라이언트를 위한 인터페이스 여러 개가 범용적인 인터페이스 하나보다 낫다.

- 인터페이스를 분리하면 각각의 역할이 명확해지고, 대체 가능성이 높아진다.

 

 

5. DIP: 의존관계 역전 원칙 (Dependency Inversion Principle)

- 추상화에 의존하며 구체화에 의존하지 않도록 설계해야 한다.

- 구체적인 클래스보다 추상적인 인터페이스에 의존해야 한다.

 

→ 스프링에서는 다형성 만으로 OCP, DIP를 지킬 수 없다. 그래서 DI와 IoC 컨테이너가 필요한 것!

 

반응형