유지보수성향상 4

전략, 옵저버, 커맨드 패턴

1. 행동 패턴이 필요한 이유1-1. 생성과 구조만으로는 부족하다 객체지향 설계에는 생성(Creational), 구조(Structural), 행동(Behavioral)이라는 세 가지 패턴 분류가 있다. 대부분의 초보 설계자들은 생성과 구조 패턴에 집중하는 경향이 있다. 하지만 객체가 생성되고 관계가 설정된 후, 실제 동작 방식의 유연성을 확보하는 것이 진짜 설계의 완성이다. 행동 패턴은 객체 간의 협력과 메시지 흐름을 설계하는 데 초점을 맞춘다. 이는 단순한 로직 분리 수준을 넘어, 시간에 따라 변화하거나 전략적으로 대체 가능한 행동을 추상화하는 방식으로 시스템의 복잡성을 줄인다. 특히 사용자 인터페이스, 이벤트 처리, 명령 실행 등에서 매우 유용하게 활용된다. 행동 패턴이 없다면 모든 행동은 if-..

컴퓨터공학 2025.05.23

팩토리 vs 추상 팩토리 패턴

1. 객체 생성의 유연성을 위한 패턴들1-1. 생성 패턴이 중요한 이유 객체 지향 프로그래밍에서 가장 먼저 부딪히는 설계 과제가 바로 객체 생성이다. 언뜻 보면 단순한 new 연산자만으로 충분해 보이지만, 규모가 커질수록 이 단순한 생성 방식이 구조를 경직시키고 테스트를 어렵게 만든다. 예를 들어, 어떤 객체를 생성하려면 내부 구성 객체들도 같이 생성해야 하고, 그에 따른 환경 설정도 초기화해야 한다면, 생성자가 너무 복잡해지고 객체 간의 의존성이 코드 깊숙이 박히게 된다. 이런 상황에서 등장하는 것이 팩토리 패턴이다. 객체 생성 자체를 캡슐화하고, 클라이언트는 객체를 사용하는 데만 집중할 수 있도록 설계한다. 팩토리 패턴은 특히 확장 가능한 구조, 느슨한 결합, 의존성 주입의 유연성이라는 측면에서 필수..

컴퓨터공학 2025.05.22

SOLID 원칙 완전정복

1. SOLID 원칙이란?1-1. 소프트웨어 설계의 5대 원칙 소프트웨어 개발에서 “잘 설계된 코드”란 과연 어떤 것일까? 유지보수가 쉽고, 변경에 유연하며, 재사용성이 높은 코드가 바로 그 기준이다. 이러한 이상적인 구조를 현실에서 구현하기 위해 등장한 개념이 바로 SOLID 원칙이다. SOLID는 객체지향 설계의 다섯 가지 핵심 원칙을 묶은 약어로, 각각의 원칙은 객체 간의 관계, 클래스의 역할, 모듈의 구조 등 전반적인 시스템의 견고함을 높이는 데 기여한다. 이 다섯 가지는 다음과 같다.S (SRP): 단일 책임 원칙 (Single Responsibility Principle)O (OCP): 개방-폐쇄 원칙 (Open/Closed Principle)L (LSP): 리스코프 치환 원칙 (Liskov..

컴퓨터공학 2025.05.21

Clean Architecture 원칙

1. Clean Architecture란 무엇인가?1-1. 정의와 철학 Clean Architecture는 2012년 Robert C. Martin(‘Uncle Bob’)이 공식적으로 소개한 소프트웨어 설계 아키텍처다. 핵심 개념은 시스템의 핵심 비즈니스 규칙을 외부로부터 완전히 독립시켜, 변화에 유연하면서도 테스트 가능한 구조를 만드는 데 있다. 그는 레이어드 아키텍처나 헥사고날 아키텍처 등 기존 구조의 장점들을 통합해 더 정제된 구조를 제시했으며, Clean Architecture는 클린 코드의 연장선으로서 “변화에 강한 소프트웨어”를 위한 철학으로 자리 잡았다. 이 아키텍처는 단순히 코드를 정리하는 기술이 아니라, 소프트웨어 시스템의 생존력, 확장성, 그리고 협업 구조를 어떻게 설계할 것인가에 대..

컴퓨터공학 2025.05.21