이 시리즈는 The Rust Programming Language의 내용을 사용하고 있습니다.열거형이라고도 부르는 이넘은 어떤 값이 가질 수 있는 값의 집합을 의미한다. 예를들어, Rectangle은, Circle과 Triangle도 가질 수 있는 Shape이라는 집합
GithubAction으로 AWS에 배포할 때 GithubAction 인스턴스 상에서 AWS 설정을 해야한다. 이때, 필요한 권한을 받은 유저의 access key와 secret access key를 필요로하는데, 최소한의 권한 설정을 했어도Github 같은 서드파티
어떤 데이터의 구조를 나타내는 객체가 있고 이 객체로 수행하는 처리작업을 별도의 객체로 분리할 때 사용할 수 있는 것이 Visitor 패턴이다. 즉, 데이터의 구조와 처리를 분리하는 패턴이다.예를들어, 어떤 사각형을 나타내는 객체 Square가 있고 이 객체는, 사각형
이 시리즈는 The Rust Programming Language의 내용을 사용하고 있습니다.메소드Method는 함수와 유사한 개념으로, 똑같이 fn키워드와 이름, 매개변수, 그리고 블럭 내의 코드와 반환값을 가진다. 하지만 함수와 다른 것은, 언제나 스트럭Struct
우선, GoF에서 이야기하는 디자인 패턴으로서의 Decorator는 Java, Python, Typescript 등의 언어에 등장하는 Decorator@라는 기능과는 별개의 개념이다. 둘 다 상위 컨텐츠가 하위 컨텐츠를 감싸고 부가적인 기능을 제공하기에 같은 이름이 사
이 시리즈는 The Rust Programming Language의 내용을 사용하고 있습니다.스트럭을 언제 사용하는지 이해하기 위해 사각형의 넓이를 구하는 프로그램을 만들어보자.우선, 단순하게 변수를 사용하다가 스트럭을 사용하는 형태로 리팩토링을 해본다.위 코드는 문제
이 시리즈는 The Rust Programming Language의 내용을 사용하고 있습니다.struct 혹은 structure은 서로 관련있는 여러개의 값들을 하나의 의미있는 그룹으로 묶기위한 커스텀 데이터 타입이다. 객체지향적인 코딩이 익숙하다면 객체와 유사한 개념
Composite이란 사전적으로 혼합물이라는 뜻이다. 언뜻 다른 패턴들과는 다르게 이름만으로 직관적으로 그 역할을 유추하기가 다소 쉽지는 않지만, 이름 그대로 서로 다른 무엇인가를 혼합하여 하나인것처럼 취급하는 패턴이다. 보통 내용물과 그릇, 혹은 단수와 복수를 하나로
Strategy는 전략이며, 소프트웨어에서의 전략은 특정 기능을 어떤식으로 구현할지에 대한 알고리즘 혹은 비즈니스 로직이다.Strategy 패턴은 하나의 목적을 가지는 여러개의 전략이 있을 때 이를 효과적으로 관리하고 또 교체하여 사용하기 편리하게 하기 위해 사용한다.
이 시리즈는 The Rust Programming Language의 내용을 사용하고 있습니다.Slice는 문자열이나 배열처럼 어떤 연속된 집합 데이터에서 연속된 일련의 부분 데이터를 참조할 때 사용된다. 예를들어, 다음과 같이 매우 긴 문자열이 있을 때, Slice를
앞서서 이미 Factory Method라는 디자인 패턴에 대해서 다루었었다. 인스턴스를 생성해내는 추상적인 객체를 만들어두고, 구체적으로 어떤 인스턴스를 어떻게 만들지는 하위에서 구체적인 객체를 작성하면서 결정하는 디자인 패턴이었다.Abstract Factory도 유사
이 시리즈는 The Rust Programming Language의 내용을 사용하고 있습니다.앞의 장에서 Rust에서의 소유권에 대한 개념을 배웠다. 그리고 소유권의 이동을 따라 함수의 안과 밖을 다니며 힙 메모리 데이터를 보존하고 새로운 값을 반환하기 위해서는 아래처
pnpm으로 모노레포 프로젝트를 사용하다보면 심심치 않게 등장하는 에러다.원인은 간단하다,의존성을 평면적으로 설치하여 관리하는 npm이나 yarn과는 다르게, pnpm은 간접적인 의존성, 즉 X라는 의존성을 설치했을 때 X가 의존하는 Y들은 .pnpm이라는 경로 아래에
이 시리즈는 The Rust Programming Language의 내용을 사용하고 있습니다.모든 프로그래밍 언어는 저마다의 방법으로 컴퓨터의 메모리를 관리한다. 자바스크립트나 파이썬처럼 가비지 컬렉터(GC)가 자동으로 메모리를 관리해주던가, 혹은 C, C++처럼 개발
Bridge 패턴은 기능의 클래스 계층과 구현의 클래스 계층을 연결하는 역할을 한다. 따라서, 브릿지 패턴을 이해하기 위해서는 먼저 클래스 계층이 어떻게 구분되는지를 먼저 이해해야한다.어떤 기능을 구현한 클래스 Something이 있다고 가정하자. 이때 Somethin
Builder란 복잡한 객체를 만들 때 마치 건물처럼 각 프로퍼티를 하나하나 순서대로 쌓아가면서 객체를 완성해나가는 디자인 패턴의 일종이다. 여기서 "복잡한 객체"라는 말이 굉장히 추상적인데, 이는 그만큼 Builder 패턴이 쓰이는 경우가 다양하기 때문이다.Build
Prototype이란? Prototype 패턴은 이름에서 나타나는 것처럼 어떤 인스턴스의 원형을 정하는 패턴이다. 클래스를 인스턴스화하고 내부 구조를 만드는 과정이 복잡할 때, 이를 매번 새로 인스턴스화하고 만드는 것은 비효율적이다. 이럴 때, 프로토타입 패턴에 따
클래스는 new 키워드를 사용하여 인스턴스화 시킬 수 있으며, new를 사용할때마다 말 그대로 새로운 인스턴스를 생성한다. 하지만 경우에 따라서 인스턴스를 단 하나만 생성하여 재사용 하고 싶은 때도 있다.예를들어, 클래스 안에 프로그램 내 여러 곳에서 공용으로 접근하는
앞선 장에서 살펴봤던 Template Method를 인스턴스를 생성할 때 적용한 패턴이 Factory Method이다.Factory Method에서는 인스턴스 생성 방법을 상위 클래스에서, 즉 Template Method를 통해 결정하되, 구체적으로 어떻게 생성할지는
이 시리즈는 The Rust Programming Language의 내용을 사용하고 있습니다.