본문 바로가기

분류 전체보기382

POSA, Whole-Part 패턴 GoF 의 디자인패턴이 상당히 구체적이라면, POSA 의 디자인패턴은 좀 더 범위가 두루둥실하다. 사실, 이 Whole-Part 패턴의 경우 어느 정도 OOP 를 해온 경험이있다면 당연한 이야기에 이름을 붙인 정도라고 볼 수 있다. 가령, 인터페이스 혹은 추상화된 기능을 정의(클래스)하고 각 기능의 위임 역할을 하는 클래스들을 결합하여 사용하는 것은 상식에 가까운 설계이지 않을까? 여기서 추상화된 기능을 정의한 클래스가 Whole 이 되고 위임을 하게된 클래스들이 Part 가 된다. 아울러 GoF 의 디자인패턴에 비해 좀 더 범위가 크다고 했는데, Composite 패턴이 이러한 Whole-Part 패턴의 일종으로 설명되고 있다. 이때, TComposite 가 Whole 이 될 것이고 TLeaf 가 Pa.. 2012. 1. 30.
Linux 커널 모듈 확인 방법 현재 리눅스 서버에서 특정 커널 모듈을 지원하고있는지 확인하려면 루트 권한에서 다음과 같이 명령어를 입력한다. 예제는 GRE 커널 모듈을 대상으로하였다. 1. 모듈이 로드되었는지 여부를 확인 /sbin/lsmod | grep gre 2. 모듈을 로드하려면... /sbin/modprobe ip_gre 3. 모듈의 사용 가능 여부를 확인하는 방법 cd /lib/modules/$(uname -r) grep -n ip_gre * 이때 결과가 kernel/net/ipv4/ip_gre.ko 와 같은 형태로 나오면 GRE 모듈이 존재하는 것이다. 리눅스 2.4.x 에서는 확장자가 o 이고 2.6.x 에서는 ko 이다. 2012. 1. 11.
PPP - Point to Point Protocol PPP 는 OSI 참조모델(2012/01/09 - [프로그래밍/서버관리] - OSI 7계층) 중 데이터링크(2계층)에서 동작한다. PPP Frame 은 다음과 같다. 상기 그림에서 Information 영역을 Protocol + Data 로 세분화하지 않으면 HDLC 의 프레임과 동일하다. 프로토콜에 따라 다음과 같은 값을 가지게된다. 간략하게 보면 다음과 같다. LCP(Link Control Protocol) 는 링크의 수립, 유지, 종료를 담당한다. PAP 와 CHAP 는 인증프로토콜이다. PAP 의 경우 clear text 로 계정과 암호를 보내기 때문에 보안상 취약하다. 따라서 MD5 로 해싱하여 처리하는 CHAP 방식이 많이 사용된다. NCP 는 서로 다른 망계층 프로토콜로 데이터를 전달할 수 .. 2012. 1. 11.
OSI 7계층 이젠 기억도 잘 안나는 OSI 7계층...ㅠㅠ 인터넷에 돌아다니는 이미지들을 참고하여 정리해보았다. 먼저, 각 층별 데이터 단위를 살펴보면 다음과 같다. 1계층 물리 계층: Bit 2계층 데이터링크 계층: Frame 3계층 네트워크 계층: Packet 4계층 트랜스포트 계층: Message, Segment 5계층 세션 계층: Message, Data 6계층 표현 계층: Message, Data 7계층 응용 계층: Message, Data 각 층은 아래 층의 데이터가 되며(Data Encapsulation), TCP/IP 에서 이러한 층간 관계를 나타내면 다음과 같다. HTTP 의 경우라면 다음과 같다. 각 층이 헤더와 바디로 구성되었다고 볼때 바디 즉, 직전 층에 해당하는 부분을 Payload 라고 부른.. 2012. 1. 9.
CentOS rkhunter 설치하기 백도어, 루트킷 및 시스템 파일 변조 검사 프로그램으로 yum 으로 간단하게 설치가 가능하다. yum install rkhunter 설치가 완료된 후, rkhunter 를 실행하면 옵션 설명이 출력된다. 정상적으로 설치가 되었다면 아래의 명령어를 입력하여 시스템을 검사한다. rkhunter -c 2012. 1. 5.
HTTP 1.1 규격 참고 링크 기본 규격 RFC 2616, HTML, TXT, PDF RFC 2617, HTML, TXT, PDF 그 외 유용한 관련 규격 인터넷 텍스트 메시지 구조: RFC 822, HTML, TXT, PDF URL/URI 정의: RFC 2396, TXT, PDF MIME 및 MIME types 정의: RFC 1521, HTML, TXT, PDF 관련 뉴스 및 업데이트 W3C 2012. 1. 4.
무한도전 달력과 함께하는 2012년~ 인터넷 주문한 무한도전 달력이 기분좋게 12월 31일에 왔네요. ^^ 브로마이드, 벽걸이용 달력, 탁상용 달력, 다이어리, 스티커로 구성되어있습니다. 아래는 브로마이드 일부와 다이어리를 함께 두고 찍어보았습니다. 정형돈씨를 좋아했는데 올해는 이상하게 돌고돌아 유재석씨가 좋네요. SBS 연예대상 축하합니다. ^^ 내친김에 달력도 걸어보고~ 나와 함께하는 노트북에 스티커를 붙였습니다. 그래~ 새해에는 품위유지하는거야!! Happy New Year~! 2011. 12. 31.
만두국 끓이기 매주 하나씩 요리에 도전해보고있는데... 이번엔 만두국을 끓여보았다.^^ 멸치 다시마 육수 밥그릇으로 3~4, 만두 8개, 다진마늘 1/2 큰술, 국간장 1/2 큰술, 양파 1/2 개, 대파, 홍고추 1개, 소금, 후추, 계란 1개, 통깨 먼저 재료를 손질한 후, 육수를 끓인다. 2011/12/08 - [일상생활] - 멸치 다시마 육수내기~ 육수가 끓으면 만두를 넣는데, 5개밖에 없어 5개 모두 투하~ 실제로는 8개 정도 넣으면 적당하다. 만두와 함께 끓기 시작하면 국간장을 1/2 큰술 넣는다. 양파와 다진 마늘을 넣는다. 양파의 단맛을 별로 좋아하지 않으면 1/4 개 정도만 넣어준다. 소금 및 후추로 간을 한다. 대파와 고추를 넣는다. 그리고 불을 끄기 직전에 푼 계란을 넣는다. 그리고 통깨를 뿌리고 .. 2011. 12. 29.
파이썬(Python) Twisted 모듈 설치하기 파이썬 개발자라면 반드시 깔아야하는 Twisted~. 먼저, 공식 홈페이지의 다운로드 경로로 이동한 후 자신에게 맞는 윈도우즈와 파이썬 버전에 해당하는 셋업 파일을 다운로드한다. 설치파일을 실행한 후, 파이썬이 설치되어있는 경로를 지정한다. 설치가 끝나면 Twisted 가 사용하는 모듈들을 마찬가지로 다운로드하여 설치한다. 그 전에 setuptools 가 설치되어있지 않다면 다운로드하여 설치한다. 파이썬이 설치되어있는 경로의 Scripts 디렉토리에서 명령프롬프트를 실행하여 아래와 같이 명령어를 입력하여 zope 를 설치한다. easy_install.exe "zope egg 의 절대경로" IDLE 를 실행하고 해당 모듈을 정상적으로 불러올 수 있는지 확인한다. 2011. 12. 26.
파이썬(Python)에서 GStreamer 사용하기 - Windows 먼저, 파이썬 2.6.6 버전을 설치한다. 다운로드 wxWidgets 을 설치한다. 다운로드 wxPython 을 설치한다. 모든 설치가 끝나면 컴파일까지 자동으로 해준다. 다운로드 GTK+ 2.24 를 다운로드한 후, C:\GTK+ 디렉토리를 생성하여 압축을 풀어 저장한다. C:\GTK+\bin 디렉토리를 PATH 등록한다. 다운로드 파이썬 2.6.6 용 pygtk 를 설치한다. 설치 중 파이썬이 깔려있는 디렉토리를 지정해준다. 다운로드 파이썬 2.6.6 용 pycairo 를 설치한다. 다운로드 파이썬 2.6.6 용 pyobject 를 설치한다. 설치 중 파이썬이 깔려있는 디렉토리를 지정해준다. 다운로드 OSSBuild 사이트(http://code.google.com/p/ossbuild/)에서 GStre.. 2011. 12. 23.
GStreamer 빌드하기 - Visual Studio 2008 Express 관련 소스를 http://ossbuild.googlecode.com/svn/trunk/ 에서 체크아웃 한다. Windows Installer XML (WiX) 3.5 이상 버전을 다운로드 받아 설치(Wix35.msi)한다. http://wix.sourceforge.net/downloadv35.html DirectX SDK November 2008 이상 버전이 깔려있지 않으면 설치한다. 다운로드 PyGobject 를 다운로드 받아 설치한다. 이때 설치되어있는 해당 파이썬 버전에 맞는 설치 파일을 선택한다. http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.28/ 이때, 파이썬이 설치되어있는 경로를 지정해준다. 끝으로 Visual Studio 2008 E.. 2011. 12. 23.
파이썬(Python) 환경설정하기 파이썬 관련 프로젝트가 위치할 디렉토리를 구성한다. 가급적이면 C:\Python 디렉토리와 같이 C 드라이브의 루트 디렉토리 바로 아래 공백이 없는 디렉토리명을 사용할 것을 권한다. 나같은 경우 서드 파티 모듈이 위치할 lib, 각종 예제들의 테스트를 위한 study, 프로젝트 진행 중 간단한 테스트 소스들이 위치할 proto, 실제 프로젝트 소스들이 위치할 project 디렉토리를 생성하여 사용한다. 자신에 알맞게 디렉토리를 구성한 후, 파이썬 모듈을 import 할 수 있도록 기본 lib 디렉토리를 환경변수에 등록한다. 이때, 환경변수명은 반드시 PYTHONPATH 이어야한다. 참고로 파이썬은 모듈을 import 할 때 아래의 순서로 해당 모듈을 찾는다. 1. 현재 작업 디렉토리 2. PYTHONPA.. 2011. 12. 23.
파이썬(Python) 설치하기 - Windows 7 파이썬 공식 홈페이지의 다운로드 페이지(http://www.python.org/download/)로 이동한다. 크게 두 가지 버전이 있는데, 아직까지는 2.7.x 버전을 사용하는 것이 좋다. 파이썬이 2 에서 3 으로 버전업이 되면서 여러가지 기능 개선을 위하여 하위 호환성을 포기하였기 때문이다. 따라서 3을 설치할 경우 파이썬의 최대 강점인 막강한 서드파티 라이브러리들을 사용 못할 수도 있다. 일단, Windows 7 64bit 버전을 사용하고 있는 관계로 아래의 인스톨러를 다운로드 받는다. 영어 울렁증이 있는 분들을 위해서 Python 의 종류를 설명하자면... CPython - 일반적으로 Python 으로 말해지는 놈 IronPython - .NET 또는 MONO 기반에서 동작하는 Python Jy.. 2011. 12. 22.
부평 콩불에서... 팅노래방 한달 이용권 개시 기념으로 과감하게 오후 반차를 쓰고 부평역으로 향했다. 시간은 어느덧 오후 1시 30분경, 허기진 배를 달래며 하이애나처럼 주변을 살피다 발견한 콩불~ 가격이 5000원으로 매우 착하다. 딱히 정하고 간 곳은 아니라 사진까지 찍을 생각은 없었는데... ^^ 위치는 다음과 같고~ 콩불 부평역점 주소 인천 부평구 부평동 201-9 설명 의성 흑마늘 콩나물에 국내산 돼지고기를 철판에 볶아먹는 콩나물 불고기 콩불 상세보기 보통 처음 가는 음식점인 경우 그 집의 가장 기본 메뉴를 시켜보는 게 정석이니 5000원 콩불 2인분을 시켰다. 밥먹자~ 밥먹자~ 아참, 기본 안..주..가 아니라 반찬은... 아래의 3인방이고 국은 미역국이 나왔다. 김치가 안나오는데 먹어보면 굳이 김치가 필요없다는.. 2011. 12. 21.
나의, UML 객체지향 설계 - 3 - UML 은 모델링 도구이며 개념설계에 있어 편리한 다이어그램으로 UseCase 와 Activity 를 설명하였다. 그러나 이것은 어디까지나 개인적인 경험에 의한 판단이고 만약, 그외 다른 UML 다이어그램으로 우리가 애초 하고자한 목적인, 의뢰자와의 커뮤니케이션을 원할하게 풀어갈 수 있다면 그것만으로 충분하다. 의뢰자의 도메인영역에 대한 이해가 어느정도 이뤄지게되고 도입하려는 프로그램에 대한 역제안이 발생하는 단계에까지 이르면 전체적인 시스템 구성을 확립하게된다. 이 단계에 적합한 다이어그램은 Deployment(배치) 이다. 사례1 2010년경 모 이동통신 회사의 동기화 프로그램의 Deployment 다이어그램이다. 노란색은 이미 존재하고있는 외부 모듈이고 파란색은 개발하여야할 부분이다. 이와 같은 색.. 2011. 12. 20.