2025/07/02 4

LSP - 리스코프 치환 원칙

『스프링입문을 위한 자바 객체지향의 원리와 이해』로 공부한 내용을 정리한 글입니다. "서브 타입은 언제나 자신의 기반 타입(Base Type)으로 교체할 수 있어야 한다."— 로버트 C. 마틴즉, 자식 클래스가 부모 클래스 타입으로 교체되더라도 프로그램의 동작에 아무런 문제가 없어야 한다는 뜻입니다. 상속의 의미객체 지향에서의 상속은 단순한 "계층" 또는 "조직"이 아니라, 분류의 관계여야 함.상속받는 하위 클래스는 부모 클래스의 역할을 온전하게 수행할 수 있어야 한다. 예시 ①: “아버지 = new 딸;”아버지 참조 변수에 딸 인스턴스를 넣은 상황을 예시로 듬.아버지 역할은 예를 들면 가족 부양, 돈 벌기, 권위 행사 등이 있을 수 있는데,딸 클래스가 이 역할을 온전히 수행할 수 없다면, 이는 리스코프..

OCP - 개방 패쇄 원칙

『스프링입문을 위한 자바 객체지향의 원리와 이해』로 공부한 내용을 정리한 글입니다. 개방 폐쇄 원칙 (Open-Closed Principle) 이란?"소프트웨어 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다."— 로버트 C. 마틴 (Robert C. Martin)이 말은 즉, 기존 코드를 수정하지 않고도 기능을 확장할 수 있어야 한다는 뜻입니다. 즉, 변경이 필요한 상황이 오더라도 기존 코드를 뜯어고치지 않고 새 코드를 추가해서 해결할 수 있어야 합니다. 잘못된 설계 예시: 자동차 운전 습관 클래스다음과 같은 예를 보겠습니다.한 남자가 수동 변속기 차량(기어 조작과 창문 수동 조작 포함)을 운전한다고 가정해봅시다. 이 남자 클래스는 수동운전()이라는 메서드를 ..

SRP - 단일 책임 원칙

『스프링입문을 위한 자바 객체지향의 원리와 이해』로 공부한 내용을 정리한 글입니다. “어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다.”이 말은 하나의 클래스는 하나의 책임만 가져야 하며, 변경 사유도 하나여야 한다는 원칙입니다. 책임이 둘 이상이면, 여러 가지 이유로 그 클래스가 자꾸 바뀌게 되며, 유지보수와 확장이 어려워집니다. 사례 1: 책임이 너무 많은 클래스예를 들어, 남자라는 클래스가 있다고 가정합시다.이 클래스는 다양한 사람들과의 관계 속에서 다양한 역할을 수행하고 있습니다:여자친구 입장에서: 남자친구 역할어머니 입장에서: 아들 역할직장 상사 입장에서: 사원 역할소대장 입장에서: 소대원 역할이 클래스 하나에 다음과 같은 행동들이 포함되어 있다면?기념일 챙기기키스하기효도하기출근하기사..

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

『스프링입문을 위한 자바 객체지향의 원리와 이해』로 공부한 내용을 정리한 글입니다.SOLID가 등장하게 된 배경과거에는 절차지향적인 설계가 중심이었지만,점점 소프트웨어 규모가 커지고 유지보수가 중요해지면서객체 지향 설계(Object Oriented Design)라는 방법론이 각광받게 되었습니다.그 흐름 속에서 로버트 C. 마틴(Robert C. Martin)이라는 유명한 소프트웨어 엔지니어가2000년대에 좋은 객체 지향 설계를 위한 5가지 원칙을 정리했는데,그 다섯 가지의 첫 글자를 따서 만든 것이 바로 SOLID입니다.그리고 이 원칙들은 마이클 페더스(Michael Feathers)라는 또 다른 엔지니어가 명명했다고 되어 있습니다. SOLID의 구성 5가지 원칙SSingle Responsibility ..