프로그래밍공부

    [모던 c++의 디자인 패턴] 3장. 팩터리

    팩터리 패턴 팩터리 메서드는 생성할 타입의 멤버 함수로, 객체러르 생성하여 리턴함 -> 생성자를 대신함 패터리는 별도의 클래스로, 목적하는 객체의 생성 방법을 알 수 있음 추상 팩터리는 구현 클래스에서 상속받는 추상 클래스이며, 여러 타입의 팩터리를 생성할 때 사용됨 팩터리는 캐싱과 같은 메모리 최적화 구현이 가능함 -> pooling이나 sigleton pattern 3.2 팩터리 메서드 어떤 객체를 생성할지 이름으로 명확하게 나타낼 수 없는 생성자 대신 객체를 생성해서 리턴하도록 하는 메서드 각각의 팩터리 메서드는 static 함수로 표현 struct Point { protected: Point(const float x, const float y) : x{x}, y{y} {} public: stati..

    [모던 c++의 디자인 패턴] 2장. 빌더

    빌더 빌더 패턴(Builder pattern)은 생성이 까다로운 객체를 쉽게 처리하기 위한 패턴 빌더 패턴은 단순하게 개별 객체의 생성을 별도의 다른 클래스에게 위임 빌더 하나의 인터페이스가 여러 하위 빌더를 노출할 수 있음 상속과 흐름식 인터페이스를 요령있게 활용하면, 여러 빌더를 거치는 객체 생성을 쉽게 할 수 있음 2.2 단순한 빌더 struct HtmlBuilder { HtmlElement root; HtmlBuilder(string root_name) { root.name = root_name; } void add_child(string child_name, string child_text) { HtmlElement e{ child_anme, child_text }; root.elements.e..

    [모던 c++의 디자인 패턴] 1장. SOLID 디자인 원칙

    디자인 패턴 2000년대 초 로버튼 마틴(Robert C. Martin)에 의해 소개됨 SOLID 디자인 패턴은, 우리가 앞으로 살펴볼 디자인 패턴에 전반적으로 녹아져 있음 SOLID 디자인 패턴 1) 단일 책임 원칙(Single Responsibility Principle, SRP) 단일 책임 원칙에서 각 클래스는 단 한 가지의 책임을 부여받아, 수정할 이유가 단 한가지여야 한다. 전지전능한 객체 (여러 기능을 담고 있는)는 SPR를 위배한다. 기록을 위한 메모장 클래스가 있을 때, 이 클래스는 vector에 파라미터로 주어지는 값을 추가하는 함수가 존재한다. 이때, 추가로 영구적인 파일을 저장하는 기능을 만든다고 할 때 디스크에 파일을 쓰는 기능 또한 메모장 클래스의 역할일까? 작은 수정을 여러 클래..

    MSA에 대해서

    MSA란 무엇인가? MAS는 MicroService Architecture의 줄임말로, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크라고 할 수 있다. 마이크로서비스는 완전히 독립적으로 배포가 가능하고 다른 기술 스택 (개발 언어, 데이터 베이스 등) 사용 가능한 단일 사업 영역에 초점을 두는 것이 특징이다. MSA의 등장 배경 Monolithic Architecture 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태이다. 장점 간단한 Architecture이고 유지 보수가 용이하다. 단점 서비스 or 프로젝트가 커지면 커질 수록, 영향 및 전체 시스템 구조의 파익이 어려운 문제가 있다. 빌드 시간 및 테스트 시간, 배포시간이 기하급수적으로 늘어나며 서비스를 부분..