Chain of Responsibility는 핸들러를 가진 객체가 요청을 받으면 자신이 처리할 요청인지 확인 후, 맞다면 처리하고 아니라면 다음 객체에게 전달한다. 전달받은 객체도 동일한 핸들러 인터페이스를 갖고 있으며, 전달받은 요청을 확인 후 마찬가지로 처리한다. 이렇게 핸들러들이 체인처럼 엮여서 마치 필터를 거치듯 필요한 객체까지 전달되어 처리되는 방식이 Chain of Responsibility Pattern이다. 이 패턴을 사용하는 곳은 아주 흔하게 보이는데,…
[작성자:] batmask
Design Pattern: Template Method
디자인 패턴 공부하면서 제일 중요하게 생각하고 있는 점이 실제 사용예이다. 제일 엿같은점이 커피머신이니, 스파게티니, 공구상점이니 이딴 개같은 예제들을 끌어와 설명하고 있는 부분이라서. 아니, 반복해서 마주치는 문제를 OOP로 설계하는 보편적인 방법들을 설명하면서 어떻게 실사용예 없이 그럴수가 있지? 그냥 오픈소스라도 좀 끌어와서 설명해야하는거 아니냐. Template Method도 실제 예가 없으면 그냥 가상클래스 상속받아 사용하는 generalization이 전부다. 의미부여가 안된다고….
DB에 발가락만 담가보자
개발경력이 대부분 모바일 환경이다보니, 오랜 경력에도 DB를 만져본적이 별로 없다. 안드로이드 앱만 개발해도 sqlite는 쓸텐데, 좀 심각하네. 대학때 배웠던 기억을 되살려보며 아주 간단한 사항만 기록해보려한다. 일단은 다루기쉬운 sqlite3만 고려한다. sqlite를 공부하기 좋은 곳은 tutorialspoint. 어 머야, 어설픈 튜토리얼 사이트보다 sqlite 개쩌는 튜토리얼 사이트가 있었네. https://www.sqlitetutorial.net/ 그냥 비교대상이 없다. 최고라서 살짝 추가함 ㅋ DB 생성 sqlite3를…
Flask: 첫번째 조우
정보를 얻을 목적으로 이문서를 접하는 분이 있다면 바로 뒤돌아 가시기 바란다. 나도 정리가 안된 상태에서 개략적으로 공부중인 내용을 그저 기록용으로 남기는 포스팅임을 밝힌다. Flask 는 Werkzeug, Jinja2 두가지 모듈에 기반한 마이크로 프레임웍이다. Werkzeug는 WSGI 모듈이고, Jinja2는 html template rendering engine이다. 웹개발도 생소하고 처음 접하는거라, 빠르고 쉬운 튜토리얼을 찾았었는데, 무슨소린지 하나도 모르겠더라. 그래서 돌아간 Flask 공식…
Python : metaclass
metaclass는 일반적인 파이썬 사용에는 필요없는 조금은 깊이 들어가는 내용이지만, OOP적 접근을 위해 알 필요가 있어보인다. stackoverflow에 달린 설명 참조. 파이썬에서는 모든게 object이다. 클래스도 object로 생성이 되고 instance화 시킬 때, 이 object가 복사되면서 __init__ 루틴을 타게된다. 일반적인 인스턴스에 대해 어떤 클래스로부터 왔는지 알아보는 함수에 type()을 쓸 수 있는데, 그렇다면 클래스는 어떤 타입일까? 인스턴스 x의 type은 Foo인데,…