설계원칙 2

SRP vs OCP, 실제 적용 사례

1. 이론과 현실 사이의 간극1-1. SRP와 OCP는 언제 충돌하는가 SOLID 원칙은 객체지향 설계에서 이상적인 구조를 안내해주는 나침반 같은 존재다. 그러나 이상은 이상일 뿐, 실무에서는 그 원칙들이 충돌하거나 현실과 괴리되는 순간들이 적지 않다. 특히 SRP(단일 책임 원칙)과 OCP(개방-폐쇄 원칙)은 애초에 지향하는 방향 자체가 다르기 때문에 실제 개발 현장에서는 둘 사이의 갈등이 빈번히 발생한다. SRP는 책임을 명확하게 나누라고 하고, OCP는 기존 코드를 수정하지 말고 확장하라고 요구한다. 그런데 책임을 나누다 보면 단일 클래스가 너무 작아지고, 그 조합을 위한 코드가 중첩되며, 새로운 기능이 들어올 때마다 확장을 고려해야 하는 OCP와 상충하게 된다. 반대로, 확장을 위해 공통된 인터..

컴퓨터공학 2025.05.22

아키텍처란 무엇인가?

1. 소프트웨어 아키텍처의 정의와 본질1-1. 소프트웨어 아키텍처란 무엇인가? 소프트웨어 아키텍처는 단순한 코드 구조를 넘어서, 시스템을 구성하는 주요 요소와 이들 간의 관계, 그리고 시스템의 설계와 진화를 이끄는 원칙들을 의미한다. 아키텍처는 시스템을 만들기 전 가장 먼저 고려되는 기술적 설계의 골격이다. 이는 기능 구현 이전에 전체 시스템의 형태를 결정짓는 핵심 단계이며, 개발뿐 아니라 운영, 유지보수, 확장성에도 큰 영향을 준다.1-2. 아키텍처의 구성 요소 아키텍처는 컴포넌트, 커넥터, 인터페이스, 제약 조건, 그리고 비기능 요구사항으로 구성된다. 컴포넌트는 기능 단위의 독립 모듈을 말하며, 커넥터는 이들 간의 통신 방식이다. 인터페이스는 컴포넌트와 외부가 상호작용하는 지점을 정의하고, 제약 조건..

컴퓨터공학 2025.05.17