CS(2)
-
[설계] 수직적 분할과 수평적 분할
아키텍처를 설계하는 행위가 아니더라도, 어플리케이션을 설계하거나 모듈 설계 등 설계라는 행위에서 기본적으로 고려해야 될 것이 분할이라는 생각이 많이 듭니다. 특히 지속가능성(관리, 보수 등)을 고려했을 때 논리적 설계를 MECE하게 정의를 잘 하면 잘 할수록 그로인한 이익이 매우 커지기 때문입니다. 카카오 기술 블로그와 SK C&C에서 DDD를 적용하는 과정을 보면서 분할이라는 개념을 정말 '잘!' 이해하여야 한다고 생각했고, 최근 하나의 어플리케이션 프로세스를 멀티모듈로 나누는 과정에서 분할의 어려움을 느꼈기에 기본적인 분할의 개념을 한번 정리해보고자 합니다. 수직적 분할과 횡적(수평적) 분할 일반적으로 분할을 한다고하면 수평적(Horizontal Slicing), 수직적 분할(Vertical Slic..
2022.12.13 -
객체 지향 프로그래밍(Object Oriented Programming)
아래 내용은 그냥 제 의식의 흐름대로 써봅니다. 틀린 부분은 댓글 좀 부탁드려요. 상습적으로 나오는 면접 질문입니다. 늘 면접가보면 C언어를 많이 쓰던 제가 자바 소양이 부족함이 뽀록나는 대목이기도 하죠. 가장 기본적인 질문이지만 지원자의 깊이를 가늠해볼 수 있는 문제입니다. 또 면접을 보러가야하기에 한번 정리해봅니다. The Forgotten History of OOP 일반적으로 객체 지향 프로그래밍이라고하면 프로그랭을 할 데이터를 상태와 행위를 가진 객체를 만들고, 객체들 간 상호작용을 통해 로직을 구성하는 프로그래밍 방법이라고 합니다. 흔히들 객체 지향 프로그래밍의 특징을 5가지로 언급합니다. 클래스, 추상화, 캡슐화, 상속, 다형성입니다. 그러나 위 제목의 아티클을 읽어보면 객체지향의 본질이 무엇..
2022.11.29