프로그래밍/프로그래밍 이론12 SOLID 원칙 SOLID는 객체지향 설계에서 유지보수성, 확장성, 코드에 대한 이해도를 높이기 위해 제안된 5가지 핵심 원칙이다로버트 C. 마틴이 제안했다 S: SRP - 단일 책임 원칙 (Single Responsibility Principle)하나의 클래스는 하나의 변경 이유만 가져야 한다 클래스나 모듈은 하나의 역할만 책임져야 하며, 이 책임이 변경되는 이유가 분리되어 있어야 한다여러 책임이 하나의 클래스에 몰려 있으면, 그 중 하나만 변경되어도 나머지 동작이 영향을 받을 수 있다 예를 들어 UserService가 사용자 정보 저장과 UI 출력 모두를 담당한다면 SRP 위반이다저장 책임은 UserRepository, 출력 책임은 UserView로 분리해야 한다 SRP를 지키면 코드 변경의 범위가 명확해지기 때문에.. 2025. 3. 24. 추상화(Abstraction)란? 추상화는 복잡한 시스템으로부터 핵심적인 개념이나 동작만을 선별, 단순화해 표현하는 프로그래밍 원칙이다다시 말해, 필요한 정보만 보여주고 불필요한 세부사항은 감추는 것이 추상화이다추상화를 통해 사용자는 무엇을 할 수 있는지만 알면 되고, 어떻게 작동하는지 몰라도 되는 것이다 ReferenceAbstraction (computer science) - Wikipedia 2025. 3. 24. 다형성(Polymorphism)이란? 다형성은 동일한 인터페이스나 함수 호출 방식으로 다양한 동작을 수행할 수 있게 하는 객체지향의 핵심 개념이다즉, 객체를 추상화된 관점에서 다루되, 실제 동작은 객체의 타입에 따라 달라지는 유연한 구조를 구현하게 해준다 다형성은 확장성 있는 설계, 유지보수 쉬운 코드, 개방-폐쇄 원칙을 실현하는 핵심 요소이다 ReferencePolymorphism (computer science) - Wikipedia 2025. 3. 24. 상속(Inheritance)이란? 상속은 부모 클래스의 속성과 동작을 자식 클래스가 물려받아 재사용하고 확장하는 객체 지향 프로그래밍 개념이다 상속을 이용하면 동일한 기능을 반복 구현하지 않고 재사용할 수 있으며, 시스템의 책임과 구조를 일관된 계층 구조로 표현 할 수 있다 ReferenceInheritance (object-oriented programming) - Wikipeida 2025. 3. 24. 캡슐화(Encapsulation)란? 캡슐화는 객체 지향 프로그래밍의 핵심 개념 중 하나이다데이터와 해당 데이터를 조작하는 메서드를 하나의 단위로 묶고 외부로부터의 접근을 제어하는 기법이다 직접적인 접근을 제한하고, 제어된 방식으로만 상호작용을 허락함으로써 객체의 내부 데이터를 보호하고 불변성과 사용에 대한 일관성을 유지할 수 있다 즉, 변경에 대한 저항력을 높이고 예측 가능한 방식으로만 객체를 다룰 수 있게 된다 ReferenceEncapsulation (computer programming) - Wikipedia 2025. 3. 24. 옵저버(Observer) 패턴 옵저버 패턴이란?객체간 1:N 관계를 정의하며, 한 객체의 상태 변화가 다른 객체들에게 자동으로 전달되도록 하는 디자인 패턴이다 즉, 주체(Subject) 객체가 상태를 변경하면 구독자(Observer)들이 감지하고 반응하는 것이다 옵저버 패턴의 구성 요소Subject (주체, 관찰 대상)상태 변화를 감지해야 하는 객체옵저버(Observer) 목록을 관리하며, 상태가 변경되면 모든 옵저버에게 알림을 보낸다Observer (옵저버, 구독자)Subject의 상태 변화를 감지하고, 이에 반응하는 객체Subject가 변경될 때 알림을 받아 필요한 작업을 수행한다 예시 동작 흐름Observer가 Subject를 구독(Subscribe) 한다Subject의 상태가 변경되면 모든 Observer에게 자동으로 알림이 .. 2025. 3. 21. 이전 1 2 다음 반응형