본문 바로가기

전체 글358

Cent OS X-Window 한글 깨짐현상 locale 설정 등에 이상이 없으면, 다음과 같이 한글 관련 파일들을 설치한다. # yum groupinstall korean-support -x xorg-x11-server-Xorg # fc-cache 참고로 로케일은 다음과 같은 상황~ [root@logy ~]# locale LANG=ko_KR.UTF-8 LC_CTYPE="ko_KR.UTF-8" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_COLLATE="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8" LC_MESSAGES="ko_KR.UTF-8" LC_PAPER="ko_KR.UTF-8" LC_NAME="ko_KR.UTF-8" LC_ADDRESS="ko_KR.UTF-8" LC_TELE.. 2012. 2. 15.
POSA, 패턴 시스템 패턴 시스템에 대하여 마인드 맵으로 정리해보았다. 패턴 분류와 관련하여 GoF 디자인 패턴의 목적(purpose)과 범위(scope) 분류에 대한 부정적 서술이 눈에 띈다. 게다가 이 글을 작성한 사람은 GoF 패턴 집필진 중 한명인 Richard Helm 이다. 아울러 패턴 분류를 위한 분류 스키마를 제안하고 있는데 꽤 괜찮아보인다.(도입해야지~^^) 아키텍처 패턴 디자인 패턴 이디엄 혼돈에서 질서로 from mud to structure Layers Pipes and Filters Blackboard Interpreter 분산 시스템 distributed system Broker Pipes and Filters Microkernel 상호작용 시스템 interactive system MVC PVC 적응.. 2012. 2. 14.
Proactor with IOCP 그간 네트워크 관련 작업은 인디(Indy)에 의존하고 있었다. 하지만, 멀티플랫폼 환경(Android, Bada, iOS 등)에서 이식성을 생각하자면 아무래도 부족한 점이 많다. 하여 개인적으로 사골처럼 우려먹을 수 있는 네트워크 프레임워크를 구현하기로 마음 먹었다. 일단, 1차 결과물로 기본적인 뼈대 정도를 뽑아보았다.(델파이의 내장된 투게더의 결과물이 마음에 들지않아 자바용 UML 툴로 다이어그램을 그렸다. ㅠㅠ 덕분에 Object Pascal 과 Java 가 뒤섞인 다소 이상한 형태의 클래스 다이어그램이다.) 최초 작업은 Delphi XE2 로 윈도우즈 기반 환경이다. 대용량 접속 처리를 위해 IOCP 기반으로 하였고 demulitiplexing 및 dispatch 처리를 위하여 Asynchrono.. 2012. 2. 13.
POSA2, ACT 패턴 Asynchronous Completion Token 패턴의 마인드맵을 그려보았다. 개인적으로 정리한 것이고 추후 적용 과정에서 갱신해 나갈 생각이다. 클래스 다이어그램으로 표현하면, ACT 를 Command 패턴(2012/02/08 - [프로그래밍/OOP] - GoF, Command 패턴)으로 적용한다면, TCompletionHandler 가 TReceiver 에 해당하고 TACT 는 TCommand 가 된다. 이때 TInitiator 가 TInvoker 가 된다. 2012. 2. 8.
GoF, Command 패턴 책의 내용을 요약하여, Command 패턴의 마인드맵을 그려보았다. 클래스 다이어그램으로 표현하면, 만약, 어떤 기능을 수행하는 클래스 TReceiver 가 있다고 하자, 해당 기능을 사용하기 위하여 인스턴스를 생성하고 메소드 ActionA, ActionB 등을 호출할 것이다. 헌데, 이 기능들을 좀 더 복잡하게 사용(여러 UI 에서 접근, 기능의 조합, 매크로 기능, UnDo 기능 등..)해야하는 경우가 발생한다면 어떻게 해야할까? 애초 기능 그 자체를 클래스로 설계하거나, 기능 클래스를 정의한 뒤 실제 동작은 기존 기능을 처리하던 클래스에 위임해버리는 방법이 있을 것이다. 이때 후자를 Command 패턴이라고 한다. TInvoker 라는 놈은 기능 클래스들을 소유하고 호출하는 것으로 논리적인 개념으로.. 2012. 2. 8.
POSA, Forwarder-Receiver 패턴 POSA 의 통신관련 대표적인 패턴으로, 분산 시스템의 컴포넌트와 통신을 위해 사용하는 메커니즘 간 결합도(coupling)를 줄이는 방법 중 하나이다. 결합도를 낮추기 위하여 캡슐화와 위치 투명성을 고려하여야하는데 Forwader-Receiver 패턴은 캡슐화의 역할을 한다. 전체적인 구조에서 보았을 때, Peer 와 Peer 간의 통신을 나타내며 직접적인 송수신 파트는 Forwader 와 Recevier 가 담당한다. DCOM 이나 CORBA 관련 자료를 본 적이 있다면 마샬링이나 언마샬링 등이 익숙할 것이다. Peer : 어플리케이션 서비스를 제공한다. 다른 피어들과 통신한다. Forwarder : 메시지를 보내기 윈한 일반적인 인터페이스(SendMsg)를 제공한다. 원격 수신기에 보내는 메시지를 .. 2012. 1. 31.
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.