본문 바로가기

Architecture & Design Pattern

(4)
[오브젝트] 오브젝트를 읽고, 3~4장 [오브젝트] 오브젝트를 읽고, 1~2장 3장 : 역할, 책임, 협력 2장까지는 객체지향 프로그래밍의 다양한 요소와 구현 기법을 설명했다. 추상화를 통한 유연성 확보라든지, 상속에서는 인터페이스를 상속 받는 것이 핵심이라든지의 내용을 살펴봤다. 지금까지는 객체지향을 구현하는 도구에 대해 살펴보았다면, 이제부터는 객체지향의 본질이 무엇인지 소개한다. 객체지향 패러다임의 핵심은 '역할', '책임', '협력'이다. 앞서 나온 개념들은 구현 측면에 치우친 것이기에, 패러다임의 본질이라고 할 수는 없다. 책을 읽기 전에는 다형성이나 캡슐화 같은 것이 객체지향의 핵심이라고 생각했는데, 그 저변을 관통하는 무엇인가가 있는 것이다. 저자는 객체지향의 본질이 '협력하는 객체들의 공동체를 창조'하는 것이라고 말한다. 협력,..
[오브젝트] 오브젝트를 읽고, 1~2장 지인 중 오브젝트를 읽고 티스토리에 정리하는 분이 계셔서, 우연히 오브젝트란 책을 접하게 되었다. 핵심을 정리한 내용을 살짝 훑어보니, 내가 요즘 지속적으로 고민하고 있는 좋은 구조, 좋은 프로그래밍, 좋은 설계에 대한 실마리를 얻을 수 있을 것 같았다. Tuist를 이용해 모듈화를 진행하고, 여러 디자인 패턴 및 아키텍쳐를 실용적으로 사용하는 과정에서 늘 최선이 무엇인지에 대해 끝없이 재고중이었다. 모듈화를 공부하며 느낀 점은, 모듈 수준의 분리, 즉 컴포넌트를 이루는 클래스 간의 설계 이전에 클래스 자체의 설계를 먼저 깊게 고민해야겠다는 것이다. 지금까지 기본적인 '객체지향'에 대해서는 공부하고 익히려 노력했지만, deep dive한 경험은 없었기에 더욱 오브젝트라는 책이 반가웠다. 프롤로그 : 프로..
[Design Pattern] 빌더 패턴 (Creational Pattern - 1) 생성 패턴(Creational Pattern) 생성패턴은 객체의 생성에 관련된 패턴으로, 객체의 생성 절차를 추상화하는 패턴이다. 객체를 생성하고 합성하는 방법 / 객체의 표현방법과 시스템을 분리한다. 🐣 디자인 패턴은 어떠한 문제가 발생할 때, 효과적으로 해결하기 위해서 만든 패턴. 많은 개발자들이 쌓아온 솔루션과 같은 것이다. 생성 패턴은 어떤 문제를 해결할 수 있을까? 특징 객체의 생성과 조합을 캡슐화해서, 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다. 따라서, 특정 객체를 추가하거나 변경을 하는 비용을 줄이도록 하는 방법이다. 종류 추상 팩토리 패턴 동일한 주제의 다른 팩토리를 묶어준다 빌더 패턴 생성과 표기를 분리해 복잡한 객체를 생성한다 팩토리 ..
[Architecture] Clean Architecture를 읽고, 1편 (1~6장 - 아키텍쳐의 의미 & 개발자의 역할 & 프로그래밍 패러다임) 중간고사가 끝난 김에 오랜만에 읽고 싶던 책을 펼쳤다. 아키텍쳐에 대한 고민이 많아지는 시점에 답답한 부분이 많아서 책을 읽고 조금이나마 해소하고 싶었다. 책의 제목이 Clean Architecture인 만큼, 도입에서 Architecture가 무엇인지에 대해 정의한다. 저자는 모든 소프트웨어 시스템이 이해관계자(기획자, 클라이언트 등)에게 두 가지의 가치, 즉 행위(behavior)와 구조(structure)를 제공해야 한다고 주장한다. 여기서 행위는 이해관계자가 요구하는 요구사항, 기능과 같은 것들을 말하며, 구조는 이러한 요구사항에 언제든지 대처할 수 있도록 유연함을 제공하는 아키텍쳐를 말한다. 본디 소프트웨어는 '부드러움'과 '제품'의 합성어이기 때문에 이와 같은 부드러움을 제공할 수 있어야 한다..