Spring/스프링입문을 위한 자바객체지향의 원리와 이해

객체 지향 설계의 품질을 높이기 위한 SOLID 원칙

1space 2025. 7. 2. 22:15

스프링입문을 위한 자바 객체지향의 원리와 이해』로 공부한 내용을 정리한 글입니다.

SOLID가 등장하게 된 배경

  • 과거에는 절차지향적인 설계가 중심이었지만,
  • 점점 소프트웨어 규모가 커지고 유지보수가 중요해지면서
  • 객체 지향 설계(Object Oriented Design)라는 방법론이 각광받게 되었습니다.

그 흐름 속에서 로버트 C. 마틴(Robert C. Martin)이라는 유명한 소프트웨어 엔지니어가
2000년대에 좋은 객체 지향 설계를 위한 5가지 원칙을 정리했는데,
그 다섯 가지의 첫 글자를 따서 만든 것이 바로 SOLID입니다.

그리고 이 원칙들은 마이클 페더스(Michael Feathers)라는 또 다른 엔지니어가 명명했다고 되어 있습니다.

 

SOLID의 구성 5가지 원칙

S Single Responsibility Principle 단일 책임 원칙
O Open/Closed Principle 개방 폐쇄 원칙
L Liskov Substitution Principle 리스코프 치환 원칙
I Interface Segregation Principle 인터페이스 분리 원칙
D Dependency Inversion Principle 의존 역전 원칙
 

 

결합도와 응집도

응집도(Cohesion)

  • 하나의 클래스/모듈이 하나의 책임 또는 목적에 집중할수록 응집도가 높다고 말합니다.
  • 즉, 클래스가 한 가지 일에만 충실하다면 그건 좋은 설계입니다.
  • 응집도가 높을수록 좋습니다. (High Cohesion)

결합도(Coupling)

  • 모듈/클래스가 서로 얼마나 의존하고 연결되어 있는지를 나타내는 척도입니다.
  • 다른 클래스의 변경이 이 클래스에 영향을 미친다면 결합도가 높다는 뜻입니다.
  • 결합도는 낮을수록 좋습니다. (Low Coupling)

 

SOLID 원칙의 중요성

  • SOLID 원칙을 지키면:
    • 유지보수하기 좋고
    • 테스트하기 쉬우며
    • 기능을 확장하기 쉬운 소프트웨어 구조를 만들 수 있습니다.
  • 특히, 시스템이 커질수록 코드가 변화에 유연하고, 의존성을 줄이며,
    역할이 분명한 구조로 만들기 위한 설계 전략으로 SOLID가 매우 유용합니다.

 

비유

“건물 짓기 전에 설계도가 중요하듯이, 소프트웨어도 좋은 설계가 있어야 한다.”

  • SOLID는 단순히 문법적인 테크닉이 아니라, 철학이며 사상입니다.
  • 코딩 실력이 늘어날수록 결국 다시 돌아오는 주제가 바로 이 SOLID입니다.

'Spring > 스프링입문을 위한 자바객체지향의 원리와 이해' 카테고리의 다른 글

OCP - 개방 패쇄 원칙  (0) 2025.07.02
SRP - 단일 책임 원칙  (0) 2025.07.02
인터페이스  (0) 2025.07.01
instanceof 연산자  (0) 2025.07.01
final 키워드  (0) 2025.07.01