본문 바로가기

역전2

아키텍처 - 경계 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 개요 소프트웨어 아키텍처는 경계 설정을 잘해야 한다. 경계는 요소를 분리하며, 특정 요소들끼리 서로 알지 못하게 한다. 어떤 경계 설정은 초기에 이루어 지며 어떤 경계 설정은 나중에 이루어진다. 초기의 섣부른 결정은 불필요한 결합을 만든다. 유스케이스와 관련없는 결정들, 예를 들어 프레임워크, DB, 웹 서버, 유틸리티 라이브러리등이 있다. 좋은 아키텍처는 이런 요소를 부수적인것으로 만들 수 있으며, 이런 결정을 최대한 미룬다. 또한 이런 결정이 변경됨에 따른 영향도가 크지 않게 만든다. 경계는 관련이 있는 것과 없는 것 사이에 긋는다. GUI, 업무규칙, 데이터베이스 .. 2021. 2. 10.
프로그래밍 패러다임 - 객체지향 프로그래밍 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 객체지향이란? 객체지향 (Object Oriented)은 프로그래머라면 당연히 들어봤을법한 너무도 유명한 개념이다. 객체지향이란 무엇인가? 어떤 사람들은 데이터와 함수의 조합이라고 정의한다. 하지만 이렇게 정의하기엔 너무 단순하고 객체지향 이전에도 데이터 구조를 함수와 조합해서 사용해왔다. 또는 실제 세계를 모델링하는 방법이라고 정의한다. 이 정의는 앞의 정의보다 더 심오하긴 하지만 너무나 모호하다. 보통 OO의 정의를 설명하기 위해 캡슐화, 상속, 다형성을 언급하기도 하는데 이는 하나씩 자세히 살펴볼 필요가 있다. - 캡슐화 OO정의에서 캡슐화를 언급하는 이유는 OO .. 2021. 2. 10.