minho Yoo's blog

컴포넌트

12. 컴포넌트 컴포넌트는 시스템의 구성 요소로 배포할 수 있는 가장 작은 단위 여러 컴포넌트를 서로 링크하여 실행 가능한 단일 파일로 생성 가능 잘 설계된 컴포넌트라면 반드시 독립적으로 배포 가능한, 따라서 독립적으로 개발 가능한 능력을 갖춰야 한다. 컴포넌트의 간략한 역사 개발 초창기에는 메모리에서의 프로그램 위치와 레이아웃을 프로그래머가...

OCP: 개방-폐쇄 원칙

8. OCP: 개방-폐쇄 원칙 소프트웨어 개체는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. 사고 실험 소프트웨어 아키텍처가 훌륭하다면 변경되는 코드의 양이 가능한 한 최소화 됨 서로 다른 목적으로 변경되는 요소를 적절하게 분리하고, 이들 요소 사이의 의존성을 체계화함으로써 변경량을 최소화 가능 아키텍트는 기능이 어떻게, 왜, 언...

SRP: 단일 책임 원칙

7. SRP: 단일 책임 원칙 단 하나의 일만 해야 한다는 원칙은 SRP가 아님(헷갈림 주의!) 단일 모듈은 변경의 이유가 하나, 오직 하나뿐이여야 한다 하나의 모듈은 하나의, 오직 하나의 사용자 또는 이해관계자에 대해서만 책임져야 한다. 하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다. 모듈은 단순히 함수와 데이터 구조로 ...

객체 지향 프로그래밍

5. 객체 지향 프로그래밍 캡슐화? 데이터와 함수를 쉽고 효과적으로 캡슐화하는 방법을 OO언어가 제공 이를 통해 데이터와 함수가 응집력 있게 구성된 집단을 서로 구분 짓는 선을 그을 수 있다. 사실 C언어에서도 완벽한 캡슐화 가능 오히려 OO언어에서 캡슐화 기능이 훼손됨 이 때문에 OO가 강력한 캡슐화에 의존한다는 정의는 받아들이기 힘들다....