안녕하세요 Pingu입니다.🐧 지난 글에서는 구조 패턴 Flyweight Pattern에 대해 알아봤는데요, 이번 글에서는 GoF의 마지막 구조 패턴인 Proxy Pattern(프록시)에 대해 알아보도록 하겠습니다. 프록시 패턴이란? 프록시 패턴은 다른 객체에 대한 접근을 제어할 수 있도록 surrogate, placeholder를 제공할 수 있는 구조 패턴입니다. 프록시가 원본 객체에 대한 접근을 제어하기 때문에 어떤 요청이 원본 객체에 전달되기 전이나 후에 작업을 수행할 수 있어요. 제가 이해한 대로 프록시 객체를 표현하자면 어떤 객체가 존재하지만, 해당 객체를 바로 사용하기엔 부담이 되는 경우에는 프록시 객체를 통해 처리를 하고 해당 객체가 반드시 필요한 시점에야 비로소 해당 객체를 생성하여 사용하..
안녕하세요 Pingu입니다.🐧 지난 글에서는 구조 패턴에 대해서 간단하게 알아봤는데요, 이번 글에서는 여러 가지 구조 패턴 중 하나인 Adapter Pattern(어댑터)에 대해 알아보도록 하겠습니다. 어댑터 패턴이란? 어댑터 패턴은 서로 다른 인터페이스를 가진 객체를 함께 사용할 수 있도록 해주는 디자인 패턴입니다. 이러한 어댑터 패턴에는 Object Adapter, Class Adapter가 있습니다. Object Adapter Client는 프로그램의 기존 로직을 포함하는 클래스입니다. Target은 다른 클래스가 현재 로직에 포함 되려면 따라야 하는 프로토콜입니다. (Client가 사용 중인 인터페이스) Adaptee는 현재 존재하는 클래스가 아닌 외부에서 가지고온 유용한 클래스입니다. 따라서 인..
안녕하세요 Pingu입니다.🐧 오늘부터 객체 지향 소프트웨어를 개발을 할 때 발생하는 문제의 해결방법을 생각할 때 다양한 방법을 떠올릴 수 있도록 디자인 패턴을 공부하려고 합니다. 공부에 참고할 책은 1994년에 쓰인 Design Patterns: Elements of Reusable Object-Oriented Software 라는 책과 Raywenderlich 사이트의 Design Patterns by Tutorials라는 책입니다. 전자는 거의 30년 전에 나온 책인데, 책에 있는 디자인 패턴들이 아직까지도 쓰인다니 정말 대단한 거 같아요. 공부 방법은 책으로 개념을 공부한 뒤, 다양한 디자인 패턴을 Swift예제로 구현해 볼 계획입니다! 그럼 이번 글에서는 디자인 패턴이 뭔지, 어떠한 디자인 패턴..
안녕하세요 Pingu입니다.🐧 오늘은 Object Oriented Programming, OOP라고 불리는 객체 지향의 기본 개념에 대해서 알아보려고 합니다. 위키피디아의 객체 지향의 특징에는 크게 8가지가 존재합니다. 비 객체지향 언어의 개념을 포함 객체와 클래스 클래스 기반 vs 프로토타입 기반 동적 Dispatch, Message Passing 캡슐화 상속, 델리게이션 다형성 재귀 이번 글에서는 1~4까지를 정리하고 다음 글에서 5~8까지 정리할 계획이며 글에서 사용되는 예제의 언어는 Swift를 사용합니다. 객체지향 프로그래밍이란? 그럼 일단 객체지향 프로그래밍이 뭔지에 대해서 알아보겠습니다. 초기 프로그래밍은 절차 지향 프로그래밍이었습니다. 즉 어떠한 문제를 해결하는 순서대로 프로그래밍을 해야 ..
- Total
- Today
- Yesterday
- 알고리즘
- Xcode
- OSTEP
- DP
- 백준
- design
- 프로그래밍
- Swift
- 문법
- 스위프트
- 아이폰
- IOS
- Combine
- document
- 앱개발
- Publisher
- dfs
- OS
- pattern
- mac
- operating
- 동시성
- System
- 테이블뷰
- 코테
- Apple
- 자료구조
- BFS
- operator
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |