2019/11
메모. Command pattern
메모. Command pattern
2019.11.26커맨드 패턴(Command pattern)은 객체가 특정 기능을 바로 수행하거나 나중에 트리거할 때 필요한 모든 정보를 캡슐화하는 행동 패턴이다. 이렇게 하면, 나중에 순서대로 실행하기 위한 명령 목록을 구성하거나 되돌리기가 가능한 명령을 만드는 등이 가능하다. 커맨드 패턴이 캡슐화하는 정보는 다음과 같다. 메서드명 메서드를 소유하는 객체 메서드 인자(parameter) 목적 요청을 객체 속에 캡슐화한다. 클라이언트의 다양한 요청을 매개변수화한다. 커맨드 패턴의 UML 클래스 다이어그램 Invoker 클래스는 Command 인터페이스를 가진 객체의 execute() 메서드를 호출한다. 사실 이는 ConcreteCommand 클래스의 객체로, execute() 메서드는 실제 작업을 하는 Receiver 클..
메모. Iterator pattern
메모. Iterator pattern
2019.11.22이터레이터 패턴(Iterator pattern)은 가장 간단하면서도, 자주 사용되는 디자인 패턴 중 하나다. 이 패턴은 컬렉션이나 집합 객체의 내부적인 구현 방법을 드러내지 않으면서도 그 안에 있는 모든 원소에 순차적으로 접근할 수 있는 수단을 제공한다. 이터레이터 패턴의 UML 클래스 다이어그램 Iterator: 원소를 접근하고 순회하는 데 필요한 인터페이스를 제공한다. (다음 요소를 가져오거나, 현재의 위치를 찾거나, 다시 반복을 시작하는 등의 연산) ConcreteIterator: Iterator에 정의된 인터페이스를 구현하는 클래스. 순회 과정 중 집합 객체 내에서 현재 위치를 기억한다. IterableCollection: Iterator 객체를 생성하는 인터페이스를 정의한다. ConcreteCo..
파이썬 강좌 번외편. 클로저(Closure)
파이썬 강좌 번외편. 클로저(Closure)
2019.11.21이번 강좌는 클로저(Closure)에 대해 알아보도록 하겠습니다. 클로저는 위키백과의 정의를 빌어온자면 '컴퓨터 언어에서 클로저는 일급 객체 함수의 개념을 이용하여 스코프에 묶인 변수를 바인딩 하기 위한 일종의 기술이다.'라고 합니다. 파이썬을 처음 접하시는 분이라면 이 말이 무슨 말인지 전혀 감도 오지 않을 것입니다. 먼저 우리는 일급 객체 함수가 무엇을 말하는지 알아볼 필요가 있습니다. 일급 객체(First-class function) 파이썬에서 함수는 일급 객체입니다. 이는 우리가 평소에 숫자나 문자열, 클래스를 다루는 것처럼, 함수도 다른 객체와 동일하게 취급할 수 있다는 말과 같습니다. 즉, 함수를 매개변수로 넘기거나 다른 변수에 대입할 수 있으며, 반환값으로도 사용이 가능합니다. 심지어 리스트..
메모. Proxy pattern
메모. Proxy pattern
2019.11.18프록시 패턴(Proxy pattern)은 다른 객체를 대신할 객체가 필요한 경우 사용한다. 우리가 잘 알고있는 프록시 서버도 이에 해당이 된다. 프록시 서버는 아래와 같이 실제 서버와 클라이언트 사이의 중계기로서 대리로 통신하는 기능을 수행하는 역할을 맡는다. 프록시 패턴의 UML 클래스 다이어그램 서비스 인터페이스(Service Interface): 서비스의 인터페이스를 정의한다. 프록시는 클라이언트가 알아채지 못하도록 서비스 객체로 위장하기 위해 이 인터페이스를 구현해야 한다. 프록시(Proxy): 프록시에는 서비스에 대한 참조가 들어있다. 서비스와 프록시 모두 똑같은 인터페이스를 구현한다. 따라서, 서비스가 들어갈 수 있는 곳이면 프록시로 이를 대체할 수 있다. 여기서 프록시는 흐름 제어만 관여할 ..
메모. Facade pattern
메모. Facade pattern
2019.11.17퍼사드 패턴(Facade pattern)은 복잡한 내부 시스템 로직을 감추고 클라이언트가 쉽게 시스템에 접근할 수 있는 인터페이스를 제공한다. 퍼사드의 예를 들어보자면, 가장 손쉽게 볼 수 있는 것으로 우리 눈앞에 보이는 컴퓨터를 예를 들 수 있다. 사용자는 그저 컴퓨터를 시작하기 위해 전원 버튼을 누를 뿐, 부팅 과정 중 프로세서나 메모리, 주변 장치 등의 검사와 초기화 등과 같은 하드웨어와 관련된 작업들을 알아야 할 필요는 없다. 퍼사드 패턴의 UML 클래스 다이어그램 퍼사드(Facade): 외부에서 보기에 깔끔하도록, 복잡한 서브 시스템을 감싸는 역할을 한다. 어떤 클래스가 어떤 요청을 처리해야 하는지 알고 있으며, 클라이언트의 요청을 해당 서브 시스템 객체에 전달한다. 시스템(System): 전체..
메모. ConstraintLayout
메모. ConstraintLayout
2019.11.01이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.