1. 템플릿 메소드 패턴오늘 포스팅하는 템플릿 메소드 패턴은 우리가 모르게 정말 많이 사용하고 있는 패턴입니다. 1) 정의메소드에서 알고리즘의 골격을 정의하는 패턴. 알고리즘의 여러 단계 중 일부는 서브 클래스에서 구현할 수 있다. 템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브 클래스에서 특정 단계를 재정의할 수 있다. (출처 : 헤드퍼스트 디자인 패턴) 간단하게 말하면 알고리즘의 틀(Template)을 만들기 위한 것입니다.전체 틀은 동일하고, 바뀌는 부분만 서브클래스에서 재정의해준다면, 실제로 코드의 중복을 크게 줄일 수 있을 겁니다.이 템플릿 메소드 패턴의 가장 흔하고 간단한 예는, std::sort의 compare 함수입니다. sort를 기본 틀이 아닌 원하는 기준으로 하고 싶..
1. 퍼사드 패턴이란?클래스 라이브러리 같은 어떤 소프트웨어의 다른 커다란 코드 부분에 대한 간략화된 인터페이스를 제공하는 객체. (출처 : 위키백과) 일련의 사용 방법이 복잡한 클래스들을 묶어 단순화된 인터페이스를 구현해서 사용하기 쉽게 만들 수 있는 패턴입니다.실제로 구현을 해 놓은 것을 보면 확인할 수 있겠지만, 매우 단순한 패턴입니다. 하지만, 이 퍼사드 패턴의 특징으로 인해 서브시스템의 연결성이 줄어들 수 있고, 최소지식원칙을 지키는데 큰 도움이 됩니다.그림으로 보면 매우 쉽게 퍼사드 패턴에 대해 이해할 수 있습니다.복잡한 서브시스템 클래스를 퍼사드 클래스가 묶어 가지고 있어 클라이언트 쪽에서는 서브시스템들의 복잡한 동작을 생각할 필요 없이 퍼사드 클래스에 명령만 하면 원하는 동작을 실행시킬 수..
오늘은 어댑터패턴에 대해 포스팅 하겠습니다. 1. Adapter Pattern 이란?어댑터 패턴(Adapter Pattern)은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴이로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해 준다 (출처 : 위키백과) 간단하게 예를 들자면, 어댑터패턴은 돼지코입니다. 한국의 전자기기를 외국에서 사용해야 합니다. 물론 같은 국가도 있겠지만, 분명 전원 소켓이 다른 국가가 있고 여기에서 한국에 표준화된 전가기기를 사용하려면 반드시 돼지코가 있어야 합니다. 어댑터 패턴도 동일합니다. 기존에 사용하던 클래스가 있습니다. 고객이 제공한 클래스를 무조건 사용해야 한다고 요구를 받았을 때, 기존 클래스와 고객사에서 제공..
오늘은 커맨드 패턴에 대해 포스팅 하겠습니다. 1. Command 패턴이란?커맨드 패턴(Command pattern)이란 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다.- 출처 : 위키백과 command : 명령, 지휘라는 뜻을 가지고 있는 단어 입니다. 항상 디자인 패턴을 배울 때 마다 보는 단어가 캡슐화입니다. 매번 달라지는 부분을 클래스로 엮는데, 이번엔 요청(Command)이 바뀌어서 이 부분을 분리를 하는 패턴입니다.커맨드 패턴의 예시에 대해 먼저 이야기 해 보도록 하겠습니다. 고객사에게 리모컨의 API 디자인을 의뢰받았습니다. 각 버튼은 집 안의 선풍기, 에어컨, 거..
매일 개발환경 구축만 하다가 포스팅이 끝나는 것 같은 기분이 드는 건 저만 그런거겠죠?작년에 Anaconda를 이용한 개발환경 구축 포스팅으로 처음 글을 썼던 것 같은데, 1년 새에 제 개발환경이 많이 바뀌었습니다. 바로, 우분투 쓰면서 줄곧 써보고 싶던 맥북을 드디어 마련하게 되었습니다. 그렇게 얼마 전부터 모든 개발환경을 다시 구축하고 있는 중입니다. 그 중 Mac으로 파이썬 개발환경 구축하는 과정을 포스팅하려 합니다. 1. 패키지 관리자 설치유닉스, 리눅스 기반 OS의 장점 중 하나인 "한 줄로 프로그램 설치!!" 를 가능하게 해주는 고마운 친구입니다. 예전에 우분투에선 apt-get을 이용했었는데, 맥에선 homebrew를 이용한다고 합니다.https://brew.sh/index_kohomebre..
오늘은 싱글톤 패턴에 대해 소개해보려고 합니다.제가 제일 처음 접한 디자인패턴이라, 여러모로 특별한 의미를 가지는 디자인 패턴이고, 제가 생각하기엔, 가장 많이 활용되는 디자인패턴이 아닌가 싶습니다. 1. 싱글톤 패턴이란? Single, 즉, 단 하나밖에 없는 인스턴스입니다.특징은 생성자가 여러번 호출 되도 결국 이 인스턴스는 전체를 통틀어 단 하나밖에 없는 것이 특징입니다. 예를 들자면, 한 프로그램 통틀어서 필요한 기본설정 정보는 굳이 여러 개일 필요가 없습니다. 설정정보는 하나만 가지고 있고, 설정이 필요한 곳에서 설정 정보를 이 싱글톤으로 받아 쓰게 구현 하면, 중복을 줄일 수 있습니다.이 디자인의 특징적인 면은, 처음부터 전체 코드에 통틀어 한 객체 밖에 못 만들게 설계 되어 있다는 점에 있습니..