SOLID - D: 의존 역전 원칙 (Dependency Inversion Principle)
객체지향 프로그래밍(OOP)에서는 더 나은 코드 구조와 유지 보수를 위해 SOLID 원칙을 따른다.SOLID 원칙의 마지막인 D - 의존 역전 원칙(DIP)를 알아보자."세부사항이 아닌 추상화(인터페이스) 에 의존하라."📌 의존 역전 원칙(DIP)이란?Dependency Inversion PrincipleDIP는 다음 2가지 핵심 개념을 담고 있다.1. 상위(고수준) 모듈은 하위(저수준) 모듈에 의존하면 안 된다.2. 둘 다 추상화(인터페이스나 추상 클래스)에 의존해야 한다.즉, 구현에 의존하지 말고 “추상화”에 의존하라는 원칙이다.💡 고수준 모듈과 저수준 모듈이 뭘까?고수준 모듈:의미있는 단일 기능을 제공하는 모듈 (interface, 추상 클래스)비즈니스 로직을 담은 핵심 모듈 (ex. 주문 서비..
SOLID - I: 인터페이스 분리 원칙 (Interface Segregation Principle)
객체지향 프로그래밍(OOP)에서는 더 나은 코드 구조와 유지 보수를 위해 SOLID 원칙을 따른다.SOLID 원칙 중 네 번째인 I -인터페이스 분리 원칙 (ISP)를 알아보자.📌 인터페이스 분리 원칙(ISP)이란?Interface Segregation Principle"클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않아야 한다."“하나의 일반적인 인터페이스보다, 구체적인 여러 개의 인터페이스가 낫다.”클라이언트(사용자)가 필요한 기능만 사용하게 해야 한다. 💡 인터페이스 분리의 기준하나의 거대한 인터페이스를 쪼개서, 필요한 기능만 포함된 인터페이스를 각각 제공하자작고 응집도가 높은 인터페이스를 여러 개 만드는 것이 더 좋은 설계다예시 `Cat`은 `bark` 메서드를 구현할 필요가 없으며, `..
SOLID - L: 리스코프 치환 원칙 (Liskov Substitution Principle)
객체지향 프로그래밍(OOP)에서는 더 나은 코드 구조와 유지 보수를 위해 SOLID 원칙을 따른다.SOLID 원칙의 세 번째, L - 리스코프 치환 원칙(LSP) 을 알아보자.“자식 클래스는 언제나 부모 클래스의 역할을 대체할 수 있어야 한다.”📌 리스코프 치환 원칙(LSP)이란?Liskov Substitution Principle“하위 클래스는 상위 클래스로 교체해도 프로그램의 정확성이 유지되어야 한다.”즉, 하위 타입은 상위 타입을 대체할 수 있어야 한다는 의미이다.상속받은 자식 클래스는 부모 클래스의 기능을 대체하거나 확장할 수 있어야지, 변경하거나 위반해서는 안 된다.💡 핵심서브클래스가 부모 클래스의 동작을 변경해서는 안 된다.하위 클래스가 상위 클래스의 규약(계약)을 위반하면 LSP 위반이다..
SOLID - O: 개방/폐쇄 원칙 (Open/Closed Principle)
객체지향 프로그래밍(OOP)에서는 더 나은 코드 구조와 유지 보수를 위해 SOLID 원칙을 따른다.SOLID 원칙의 두 번째, OCP - 개방/폐쇄 원칙을 알아보자📌 계방폐쇄 원칙, OCP(Open/Closed Principle)란?“소프트웨어 요소(클래스, 모듈, 함수 등)는 확장에는 열려(Open) 있어야 하고,수정에는 닫혀(Closed) 있어야 한다.”즉, 기존 코드를 수정하지 않고도 새로운 기능을 추가할 수 있도록 설계해야 한다는 뜻이다.새 요구사항이 생길 때마다 기존 클래스를 매번 수정하게 되면, 오류가 발생할 확률도 늘게 되고, 유지보수 비용도 늘게 된다.💡 핵심!코드 수정 없이 기능을 추가할 수 있어야 함조건 분기(if, switch)로 기능을 추가하기보다 다형성과 추상화를 통해 확장💡..
SOLID 원칙 - S: 단일 책임 원칙(SRP)
Intro객체지향 프로그래밍(OOP)에서는 더 나은 코드 구조와 유지 보수를 위해 SOLID 원칙을 따른다.이번 시리즈에서는 SOLID의 각 원칙을 하나씩 알아보려 한다.먼저, S - 단일 책임 원칙 (SRP: Single Responsibility Principle) 을 살펴보자!! 📌 단일 책임 원칙(Single Responsibility Principle)이란?“하나의 클래스는 하나의 책임만 가져야 한다.”단일 책임 원칙(SRP)는 클래스는 하나의 책임만 가져야 한다는 객체지향 설계 원칙이다.실생활의 물체로 SRP 원칙을 이해해보자면, 아래의 이미지로 예시를 들 수 있다.오른쪽은 가위, 커터칼 등을 따로 따로 사용하는 것이고, 왼쪽은 하나의 다용도 공구로 합쳐져 다재다증하게 사용할 수 있다.겉보기..
객체지향 프로그래밍(OOP)의 5가지 핵심 원칙 - SOLID
Intro좋은 객체지향 프로그래밍(OOP)이란 무엇일까?코드가 잘 동작하는 것만으로는 부족하다.변화에 유연하고, 유지보수가 쉬우며, 확장이 가능한 구조여야 한다.이를 위한 대표적인 원칙이 바로 SOLID 원칙이다.이번 글에서는 SOLID의 다섯 가지 원칙을 간단히 소개할 예정이다!(각 원칙은 별도 포스팅으로 상세히 다룰 예정입니다!)🔤 SOLID란?SOLID는 객체지향 설계에서 지켜야 할 5가지 원칙의 앞 글자를 딴 약어다.`S` - Single Responsibility Principle단일 책임 원칙: 클래스는 하나의 책임만 가져야 한다.`O` - Open/Closed Principle개방/폐쇄 원칙: 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다.`L` - Liskov Substituti..