안녕하세요 Pingu입니다!🐧 지난 글에서는 행동 패턴 중 하나인 Mediator Pattern(중재자)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 Memento Pattern(메멘토)에 대해 알아보도록 하겠습니다. 메멘토 패턴이란? Memento Pattern은 구현의 세부 사항을 공개하지 않고, 즉 캡슐화를 위반하지 않고 객체의 이전 상태를 저장하고 복원할 수 있는 디자인 패턴입니다. Originator 자체적으로 현재의 state를 저장하는 Memento 객체를 생성할 수 있습니다. State를 복원하기 위해 Memento를 사용합니다. Memento Originator의 state에 대한 스냅샷 역할을 하는 객체입니다. Originator 이외 객체의 접근으로부터 보호합니..
안녕하세요 Pingu입니다.🐧 지난 글에서는 행동 패턴 중 하나인 Iterator Pattern에 대해 알아봤는데요, 이번 글에서는 또 다른 행동 패턴 중 하나인 Mediator Pattern(중재자)에 대해 알아보도록 하겠습니다. 중재자 패턴이란? Mediator Pattern은 객체 간 종속성을 줄일 수 있는 패턴입니다. 객체 간 직접 통신을 제한하고 Mediator 객체를 통해서만 통신을 가능하게 하여 상호 작용을 독립적으로 만들도록 하는 패턴입니다. Mediator Colleague 객체와 통신하기 위한 인터페이스를 정의합니다. 일반적으로 하나의 알람 메서드만 정의하여 Colleague와의 통신 방법을 정의합니다. Concrete Mediator Colleague 객체와 함께 작동할 행동들을 구현..
안녕하세요 Pingu입니다.🐧 지난 글에서는 행동 패턴 중 하나인 Interpreter Pattern(인터프리터)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴인 Iterator Pattern(이터레이터)에 대해 알아보도록 하겠습니다. 이터레이터 패턴이란? Iterator Pattern은 list, stack, tree 등과 같은 기본적인 표현을 노출하지 않고 객체를 순차적으로 접근할 수 있는 방법을 제공하는 패턴입니다. Swift에서는 IteratorProtocol을 채택하여 for문을 사용하여 반복할 수 있는 타입을 정의하게 됩니다. Iterator 요소에 접근하고 탐색하기 위한 인터페이스를 정의합니다. Concrete Iterator Iterator 인터페이스를 구현합니다. Iterato..
안녕하세요 Pingu입니다. 🐧 지난 글에서는 행동 패턴 중 하나인 Command Pattern(커맨드)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴인 Interpreter Pattern(인터프리터)에 대해 알아보도록 하겠습니다. 인터프리터 패턴이란? 인터프리터 패턴이란 언어가 주어지면 해당 표현을 사용하여 언어로 문장을 해석하는 인터프리터를 사용하여 문법 표현을 정의하는 방법입니다. 어떤 문제가 자주 발생하는 경우 해당 문제를 간단한 언어로 표현하는 것이 편한데요, 이러한 문자들을 해석하는 역할을 인터프리터가 하게 됩니다. 대표적인 예로 정규표현식이 있는데요, 정규표현식은 문자열 패턴을 표현하는 데 사용하는 하나의 형식입니다. 정규표현식이 주어지면 규칙에 따라 처리해서 어떤 문자열을 해석하..
안녕하세요 Pingu입니다.🐧 지난 글에서는 행동 패턴 중 하나인 Chain of Responsibility Pattern(책임 연쇄 패턴)에 대해 알아봤었는데요, 이번 글에서는 또 다른 행동 패턴인 Command Pattern(커맨드)에 대해 알아보도록 하겠습니다. 커맨드 패턴이란? Command Pattern은 요청을 하나의 객체로 캡슐화해서 이를 큐나 log로 처리하는 방법입니다. 이렇게 캡슐화한 작업은 실행 취소를 할 수도 있게 만들 수 있어요. OS에서 스케줄러가 작업들을 관리하거나, iOS에서 Operating Queue에 Operation 객체로 작업을 추가하는 예 들이 떠오르는 패턴입니다. Command 작업을 실행하기 위한 인터페이스를 정의합니다. Command를 실행하기 위한 하나의 메..
안녕하세요 Pingu입니다.🐧 지난 글에서는 Behavioral Patterhn(행동 패턴)에 대해 간단하게 알아봤는데요, 이번 글에서부터는 행동 패턴의 여러 가지 패턴을 하나씩 자세히 알아보도록 하겠습니다. 이번 글에서 알아볼 행동 패턴은 Chain Responsibility Pattern(책임 연쇄)입니다. 책임 연쇄 패턴이란? Chain Responsibility Pattern은 Handler chain에 따라 요청을 전달 할전달할 수 있는 디자인 패턴입니다. 요청을 수신한 각 핸들러는 요청을 처리하거나 다음 핸들러로 전달할지 결정하게 됩니다. 즉 여러 개의 핸들러가 연결되어있고, 이렇게 연결된 핸들러들을 Chain이라고 합니다. 어떤 요청이 Chain에 들어왔을 때 이를 처리 할 수도 있고 다음 ..
안녕하세요 Pingu입니다.🐧 지난 글에서 알아본 Proxy Pattern을 마무리로 GoF에 나오는 디자인 패턴 중 Structual Pattern(구조 패턴)에 대한 공부를 마치고 이번 글부터는 Behavioral Pattern(행동 패턴)에 대해 알아보도록 하겠습니다. 이번 글에서는 다양한 행동 패턴에 대해 알아보기 전에 행동 패턴이 무엇인지 간단하게 알아보고 넘어가도록 하겠습니다. Behavioral Pattern (행동 패턴) 이란? 지난 글까지 알아본 구조 패턴은 클래스와 객체가 어떻게 구성되는지와 관련이 있었는데요, 행동 패턴은 알고리즘과 객체 간 책임 할당과 관련이 있습니다. 행동 패턴은 객체와 클래스의 패턴뿐만 아니고 객체, 클래스 간에 의사소통 패턴도 설명하는데요, 이러한 패턴은 런타임..
안녕하세요 Pingu입니다.🐧 지난 글에서는 구조 패턴 Flyweight Pattern에 대해 알아봤는데요, 이번 글에서는 GoF의 마지막 구조 패턴인 Proxy Pattern(프록시)에 대해 알아보도록 하겠습니다. 프록시 패턴이란? 프록시 패턴은 다른 객체에 대한 접근을 제어할 수 있도록 surrogate, placeholder를 제공할 수 있는 구조 패턴입니다. 프록시가 원본 객체에 대한 접근을 제어하기 때문에 어떤 요청이 원본 객체에 전달되기 전이나 후에 작업을 수행할 수 있어요. 제가 이해한 대로 프록시 객체를 표현하자면 어떤 객체가 존재하지만, 해당 객체를 바로 사용하기엔 부담이 되는 경우에는 프록시 객체를 통해 처리를 하고 해당 객체가 반드시 필요한 시점에야 비로소 해당 객체를 생성하여 사용하..
- Total
- Today
- Yesterday
- 코테
- 앱개발
- pattern
- operator
- 테이블뷰
- Publisher
- 알고리즘
- mac
- design
- document
- operating
- 백준
- System
- 프로그래밍
- DP
- Xcode
- 문법
- OS
- Combine
- 코딩테스트
- dfs
- 동시성
- OSTEP
- Apple
- IOS
- 자료구조
- 스위프트
- 아이폰
- BFS
- Swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |