Robert C. Martin의 Clean Architecture 2부 '벽돌부터 생각하기: 프로그래밍 패러다임' 3-6장을 읽고 메모한 글입니다. 요약글은 아닙니다. 개인적인 의견도 포함되어 있으니 참고해주세요. 3장. 패러다임 개요 프로그래밍 패러다임이란 무엇인가? 사전에서의 패러다임 - 한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 인식의 체계. 또는, 사물에 대한 이론적인 틀이나 체계. 순화어는 '틀'. 프로그래밍 패러다임은 '프로그래밍에 대한 이론적인 틀이나 체계'. 프로그래밍을 하는 방법이라고 할 수 있다. 언제, 어디에 이 구조를 사용할지 결정하며, 따라서 대체로 언어에 독립적이다. 여기서는 다음 세 가지 프로그래밍 패러다임을 다룬다. 구조적 프로그래밍 (Structured Pr..
최근에 OOP에 대해 공부를 하다 혼란에 빠졌었는데, 나름 결론이 나서 기록. '나름' 결론이기 때문에 주의해주세요. 의견은 자유롭게 코멘트로 달아주세요. 혼란을 불러일으킨 요소 - 존 호프만의 스위프트와 프로토콜지향 프로그래밍 - Robert C. Martin의 클린 아키텍처 - bearkode님의 OOP 고민 영상 (https://youtu.be/dhK0ZQes4Do , 'OOP에 대해서 고민해보기') 혼란스러웠던 (고민에 빠졌던) 주제 - OOP에서의 Abstraction과 Polymorphism의 관계 혼란의 배경 1 https://wlaxhrl.tistory.com/category/POP with Swift 위 포스트에도 정리했듯, 최근 '스위프트와 프로토콜지향 프로그래밍' 책을 읽고 OOP와 ..
존 호프만의 Protocol-Oriented Programming with Swift(스위프트 프로토콜지향 프로그래밍) 1장에 대한 글입니다. 책의 내용을 기본으로 하고 있지만, 개인적으로 많은 고민을 하면서 쓴 글이기 때문에 그런 부분도 반영되어 있습니다. 참고해주세요. Polymorphosm, OOP, POP 객체지향 프로그래밍(OOP)과 프로토콜지향 프로그래밍(POP)을 살펴보기 전에 먼저 짚고 넘어가야 할 핵심개념이 있다. 그것은 바로 Polymorphism(다형성) Polymorphism이란, 간단히 말하면, 같은 인터페이스로 여러 타입과 상호작용할 수 있는 개념이다. (ex) 콜라(캔)와 오렌지주스(플라스틱병) 객체가 각각 있다고 할 때 - Polymorphism 적용 X: if 콜라캔 { 캔..
Robert C. Martin의 Clean Architecture 1부 1, 2장을 읽고 메모한 글입니다. 요약글은 아닙니다. 1장. 설계와 아키텍처란? 일반적으로 설계는 저수준, 아키텍처는 고수준의 구조나 결정사항을 가리킬 때 쓰이는 용어이다. 그러나 설계와 아키텍처 사이에는 근본적인 차이가 없다. 두 가지를 뚜렷하게 구분할 수는 없다. 고수준에서 저수준으로 향하는 의사결정이 연속적으로 이루어진다고 보는 것이 맞다. 소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화하는 데 있다. 즉, 비용은 최소화, 생산성은 최대화. 이 사항을 만족할 수 있다면 좋은 설계라고 볼 수 있다. 이런 설계(아키텍처)를 어떻게 할 수 있는지에 대해 앞으로 다룰 것이다. 2장. 두 가지..