이번엔 IBM DeveloperWorks[각주:1]의 웹 개발 관련 자료 중에서 [Ajax와 XML: 라이트박스(lightbox)용 Ajax] (Ajax 기술을 사용하여 라이트박스, 팝업, 윈도우, 페이더(fader) 만들기)라는 글을 소개합니다.

 이  문서는 자바스크립트 라이브러리를 이용해서 동적인 웹 프로그램을 만드는 법을 알려줍니다. 이미지를 같은 화면 내에서 크게 보여주는 법이나 툴팁을 보여주는 등의 현재 여러 서비스에서 쓰고 있는 기능들을 구현하는 법을 실제 예제와 소스 코드로 설명하고 있어서 당장 뭔가를 만들어 내야하는 개발자에게 유용할 거라고 생각합니다.

원문 : Ajax와 XML : 라이트박스(lightbox)용 Ajax

모든 것이 놀랍고 매력적인 요즘, 사용자들의 관심을 끌기란 어려운 일입니다. Ajax 툴과 Lightbox, 팝업, 윈도우, 페이딩(fading) 메시지 같은 새로운 기술을 사용하여 사용자의 관심을 끌어봅시다.


아래 이미지는 본문의 일부입니다.
사용자 삽입 이미지
위의 이미지 처럼 한눈에 들어오는 예제로 설명하고 있습니다. 보기 좋죠?
  1. IBM DeveloperWorks란 개발자들을 위한 다양한 정보를 제공하는 개발자 커뮤니티입니다.
    www.ibm.com/developerworks/kr [본문으로]
 이번엔 DeveloperWorks의 [리눅스, 오픈소스]관련 문서중 [OpenSSL[각주:1] API를 이용한 보안 프로그래밍, Part 1: API의 개요 (한글)]을 소개하려합니다. 필자가 C에 대한 이해와 실무 경력이 부족한 관계로 이 문서가 실제로 얼마나 도움이 될지는 모르겠습니다. 그러나 리눅스에서 보안 프로그래밍에 관심이 있는 유저라면 한번쯤 읽어볼만한 문서라고 생각합니다.

원문 : OpenSSL API를 이용한 보안 프로그래밍, Part 1: API의 개요 (한글)

 필자인 Kenneth는 MediNotes Corp.(West Des Moines, Iowa)의 소프트웨어 엔지니어입니다. 페루, 나브라스카에 있는 Peru State College에서 경영학 학사 학위를 받았고, Southwestern Community College에서 컴퓨터 프로그래밍의 Associate of Science도 보유하고 있습니다.

아래는 원문의 서론부분입니다. 한번 읽어보시고 맘에 드시면 위쪽의 원문 링크를 클릭하셔서 전체 내용을 보세요.

보안 통신용 오픈 라이브러리인 OpenSSL용 API를 사용하는 방법을 배운다는 것은 힘든 일입니다. 문서화가 아직 덜 되어있기 때문입니다. 이 글을 통해서 이를 극복해 봅시다. 기본 연결을 설정한 후에, OpenSSL의 BIO 라이브러리를 사용하여 보안/비보안 연결을 구축하는 방법을 배워봅시다. 에러 탐지에 대한 부분도 설명합니다.

OpenSSL API와 관련한 문서는 약간 모호하다. OpenSSL의 사용법에 대한 튜토리얼도 많지 않으므로, 애플리케이션에서 이를 실행하는 것은 초보자에게는 힘든 일이다. 그렇다면, OpenSSL을 사용하여 기본 보안 연결을 어떻게 구현할 것인가? 이 가이드에서 이러한 문제를 풀어보자.

OpenSSL을 구현하는 방법을 배우는 것과 관련된 문제 중 하나는 문서화가 덜 되어있다는 점이다. 불완전한 API 문서는 개발자가 API를 사용할 수 없게 한다. 하지만, OpenSSL은 여전히 존재하고 강력하다. 왜일까?

OpenSSL 은 보안 통신용 오픈 라이브러리로 유명하다. Google에서 "SSL library"를 검색하면 OpenSSL이 상위로 리턴된다. Eric Young과 Tim Hudson이 개발한 SSLeay 라이브러리에서 파생하여, 1998년에 시작되었다. 다른 SSL 툴킷으로는 GNU General Public License하에서 배포되는 GNU TLS와, Mozilla Network Security Services (NSS) (참고자료)가 있다.

그렇다면, OpenSSL이 GNU TLS, Mozilla NSS 등 보다 나은 점은 무엇인가? 라이센싱이 한 몫을 한다. (참고자료) 게다가, GNS TLS는 TLS v1.0과 SSL v3.0만 지원한다. 그 이상은 지원하지 않는다.

Mozilla NSS는 Mozilla Public License와 GNU GPL 하에서 배포되고, 개발자가 선택할 수 있다. Mozilla NSS는 OpenSSL보다 크고, 라이브러리를 구현하려면 다른 외부 라이브러리가 필요하다. 하지만 OpenSSL은 독립적이다. OpenSSL과 마찬가지로, 대부분의 NSS API는 문서화가 되어있지 않다. Mozilla NSS는 PKCS #11 지원을 갖고 있는데, 이는 Smart Cards 같은 암호 토큰에 사용된다. OpenSSL은 이러한 지원이 부족하다.

조건

이 글을 충분히 활용하려면,

  • C 프로그래밍에 능숙해야 한다.
  • 인터넷 통신에 대해 잘 알고 있어야 하고, 인터넷에서 실행되는 애플리케이션을 작성할 수 있어야 한다.

OpenSSL에 대한 완벽한 이해가 전적으로 필요한 것은 아니다. SSL에 대한 간략한 설명은 나중에 제공하겠다. SSL에 대한 상세한 설명은 참고자료 섹션을 참조하라. 암호법에 대해 알고 있어도 도움이 되지만, 필수적인 것은 아니다.


 이번에는 IBM DeveloperWorks의 오픈소스 관련 문서를 소개하고자합니다.
[PHP로 커스텀 검색 엔진 구현하기(한글)]이라는 문서이며, [Sphinx[각주:1]를 사용하여 콘텐트를 색인하고, 텍스트를 빠르게 찾으며, 유용한 검색 결과 만들기]라는 부제가 붙어있습니다. 이번에도 한글로 된 문서네요. 번역하신 분에게 감사드립니다.

저자인 Martin Streicher는 Linux Magazine 편집장이로군요. 퍼듀 대학에서 컴퓨터 과학 석사 학위를 받았으며, 1986년부터 파스칼, C, 펄, 자바와 최근에는 루비 프로그래밍 언어로 유닉스 계열 시스템을 프로그래밍해 왔다고 합니다.

원문 : PHP로 커스텀 검색 엔진 구현하기(한글)

Google과 이와 비슷한 종류의 검색 엔진들은 그 성능이 뛰어나지만, 이러한 검색 엔진들이 모든 사이트에 잘 맞는 것은 아닙니다. 여러분의 사이트 콘텐트가 매우 특수한 것이라면 Sphinx와 PHP로 로컬 검색 시스템을 만들어 봅시다.

인터넷 시대에, 사람들은 패스트푸드와 같은 형태의 정보를 원한다. 즉각적으로 제공되고, 노력을 들이지 않아도 되며, 적당한 크기(바이트 사이즈(byte-size))로 제공되는 음식을 원한다. 실제로, 인내심 없고 배고픈 대중들의 구미에 맞추려면, 웹 사이트는 바로 효과가 나타나는 포맷을 제공해야 한다.

  • RSS는 피자 배달부이다. 방금 구운 데이터를 여러분의 문 앞으로 배달한다.
  • 웹로그는 중국 요리 테이크아웃으로서, 여러분이 좋아하는 매콤한 요리를 배달한다.
  • 포럼은 이웃과 함께 즐기는 팟럭(potluck) 음식이다. (또는 "Animal House"[각주:2]의 음식 싸움 장면에 알맞다.)
  • 검색(search)은 가까운 카페테리아에서 먹을 수 있는 음식들에 비유할 수 있다. 여러분이 원하는 음식을 쟁반에 담아서, 자리를 차지하고 앉아서 먹으면 된다.

다행히도, PHP 개발자는 광범위한 RSS, 블로그, 포럼 소프트웨어를 찾아서 사이트를 생성하거나 수정할 수 있다. Google등 검색 엔진들의 성능이 우수하지만, 이러한 검색 엔진이 모든 사이트에 잘 맞는 것은 아니다.

예 를 들어, 웹 사이트가 수십만 개의 새롭게 단장된 Porsche 부품들을 제공한다면, Google은 "Carrera parts" 같은 광범위한 검색용 사이트를 띄울 것이다. 하지만 보다 구체적인 "used 1991 Porsche 911 Targa headlight bezel"에 대한 결과는 만들 수 없다.

여러분의 콘텐트가 고도로 특화되었거나 방문자가 여러분의 검색 기능에서 기대하는 것이 실제 작업 흐름과 밀접한 것이라면, 자신의 사이트에 맞게 재단된 로컬 검색 시스템으로 웹의 글로벌 검색 엔진을 확장하는 것이 최상의 방법이다. ("수 많은 건초 더미에서 바늘 찾기")

빠 르고, 성능 좋은 오픈 소스 무료 검색 엔진을 PHP 사이트에 추가하는 방법을 알아보자. 이 글에서는 일부분만을 개발할 것이다. 대신, 초점은 효과적인 검색 결과를 제공하는데 필요한 컴포넌트(데이터베이스, 인덱스, 검색 엔진, PHP 애플리케이션 프로그램 인터페이스(API))에 맞출 것이다.



  1. 오픈 소스 검색 엔진으로서 텍스트를 매우 빠르게 검색하도록 설계되었다. Sphinx는 무료라는 점과 PHP API를 제공한다는게 강점인것 같네요.
     홈페이지 : http://www.sphinxsearch.com [본문으로]
  2. 확인은 못했지만, 존 랜디스 감독의 Animal house라는 영화를 말하는것 같습니다. 존 랜디스 감독의 1978년작 Animal house는 대학가의 문제아들이 모인 델타라는 동호회 회원들의 이야기라고 합니다. 총장이 델타를 해체시키고 회원들을 퇴학시키려는 음모를 진행하는게 내용이라고 하는군요. [본문으로]
 이번에는 IBM 한국 DeveloperWorks의 Linux  관련 자료 중에서 괜찮은 글을 발견했습니다. 물론 부담없이 읽을 수 있는 한글로된 문서입니다. :)
[리눅스 철통 보안]이라는 제목의 2회 연재분량의 글입니다. 원래 Part 1만 나왔을때 소개하려다가 2회 연재가 끝나길 기다렸다가 이제야 소개하게 되었습니다.
Part 1 : 쉘 제거하기(한글)
Part 2 : 서명된 바이너리만 실행하기(한글)

1. Part 1에서는 리눅스의 자유로운 맞춤 설정 기능을 통제해야 하는 이유을 알려주고 가짜 사용자가 기본 설치 상태를 바꾸는 것을 막기 위해 표준 리눅스 배포판을 잠그는 조심스러운 첫 걸음을 뗄 것이다. 이 1단계 작업은 이 연재 Part 2의 기초 작업으로 서명된 바이너리만 사용할 수 있게 강제하는 커널을 빌드함으로써 잠금 과정을 마무리한다.

 - 대규모 리눅스 시스템을 지원할 때 고려해야 하는 보안 문제와 위험과 비용을 최소화하는 법을 배운다.
 - 기본 시스템이 변경되는 것을 막기 위해 하드웨어와 펌웨어를 셋업하는 법을 살펴본다.
 - 사용자가 승인되지 않은 코드를 보안 환경에서 실행하는 위험을 최소화하기 위해 표준 리눅스 인터프리터를 제거한다.
 - 감사와 승인을 하지 않은 애플리케이션을 끼워넣을 수 없는 산업 등급의 보안을 갖춘 리눅스 배포판을 설정한다.

2. Part 2에서는 리눅스의 자유로운 맞춤 설정 기능을 통제해야 하는 이유를 알려주고 가짜 사용자가 기본 설치 상태를 바꾸는 것을 막기 위해 표준 리눅스 배포판을 잠그는 법을 다룬 Part 1의 내용을 확장한다. Part 2에서는 여러분이 지원하는 각 머신에서 서명된 바이너리만 사용할 수 있도록 하는 커널을 만들어 철통 보안 과정을 마무리한다.

 - 대규모 리눅스 머신 설치 유지 보수에서 인증된 실행 파일만 실행하도록 특별히 만들어진 커널을 운영하는 데 필요한 관리 문제와 과정을 배우게 될 것이다. 각각의 실행 파일은 Part1에서 다룬 기본적인 철통 보안 프로세스에서 설정됐다.
 - 시스템을 유지하는 데 필요한 암호화 된 데이터를 관리하는 방법을 다룰 것이고, 마지막으로 관리되지 않은 실행 파일이 안전한 환경에서 실행되지 않도록 막는 방법을 다룰 것이다.
 - 개인적으로 감사(audit) 및 승인하지 않은 애플리케이션을 끼워 넣을 수 없는, 산업 등급의 보안을 갖춘 리눅스 시스템을 설정할 수 있을 것이다.


 이 글의 저자는 망가뜨려도 상관 없는 오래 된 리눅스 컴퓨터가 필요하다고 얘기하고 있습니다. 따라서 기나긴 리눅스 설정 삽질을 시작할때와 마찬가지로 중요한 데이터는 꼭 Backup 하시길 바랍니다.
 되도록이면 보조 PC나 테스트 장비 등에서 시험해보는게 좋을것 같네요.

 다음에 여분의 PC가 생기면 한번 시도해 봐야겠습니다.
근데 이렇게 해놓으면 관리자도 불편해하지 않을까합니다...
걍  한번 시도해보는걸로 만족하렵니다. :)
생각해보니 전산실에서 구형 서버라도 한대 빌려서 해보면 될것 같네요. 근데 구형 장비가 남아있으려나...
IBM DeveloperWorks의 개발자 문서중에서 아주 유용한 글을 발견했습니다.
[PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기] 시리즈인데, Part 1 ~ 5까지로 이루어져 있으며 양면인쇄를 하면 딱 한손에 들고 다니면서 보기에 좋을 정도네요.

 이 문서는  Apache 1.3, PHP 5.0.4, MySQL 4.1.15, CakePHP 1.1.15 환경에서 위키와 블로그를 개발하는 과정을 설명하고 있으며, CakePHP에 관한 내용은 다른 문서를 참조하라고 합니다. IBM DeveloperWorks 영문 사이트에서 Cook up Web sites fast with CakePHP 문서를 참고하시면 됩니다. 영문이라서 좀... 역시 영어 공부 좀 해야겠네요.

PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기, Part 1: 소개 및 스캐폴딩 (한글)
본 "PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 연재에서는 제작 과정 추적에 유용한 각종 기능과 함께 PHP를 사용한 위키(wiki)의 제작 과정 전반을 자세히 소개합니다. 위키는 개발 속도를 높이고 생산성을 향상시키는 것은 물론 다른 사용자의 교육에도 유용한 도구로 널리 사용되고 있습니다. 본 연재의 각 부에서는 위키가 완성될 때까지 파일 업로딩, 캘린더링 "마일스톤" 시스템, 오픈 블로그 등의 기능과 함께 위키의 핵심적인 부분에 대한 개발 과정을 보여줍니다. 또한 위키에는 특정 사용자에 대해 권한을 커스터마이즈할 수 있는 프로젝트도 포함됩니다.
 
PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기, Part 2: 기본 위키 코드 개발하기 (한글)
"PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 튜토리얼 연재에서는 제작 과정 추적에 유용한 각종 기능이 있는 위키를 PHP를 사용해 처음부터 만듭니다. 위키는 개발 속도를 높이고 생산성을 향상시키며 다른 이들을 교육하는 데 유용한 도구로 널리 사용되고 있습니다. 본 연재의 각 부에서는 위키가 완성될 때까지 파일 업로딩, 캘린더링 "마일스톤" 시스템, 오픈 블로그 기능과 함께 위키의 핵심적인 부분에 대한 개발 과정을 보여줍니다. 위키에는 또한 특정 사용자에 대한 권한을 맞춤화할 수 있는 프로젝트도 포함됩니다.

PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기, Part 3: 사용자와 권한: 사용자와 권한 (한글)
“PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기” 연재에서는 PHP를 사용해 제작 과정 추적에 유용한 각종 기능이 있는 위키를 처음부터 만듭니다. 위키는 개발 속도를 높이고 생산성을 향상시키며 다른 이들을 교육하는 데 유용한 도구로 널리 쓰이고 있습니다. 본 연재의 각 부에서는 위키가 완성될 때까지 파일 업로딩, 캘린더링 “마일스톤” 시스템, 오픈 블로그 기능을 비롯한 위키의 핵심적인 부분에 대한 개발 과정을 보여줍니다. 위키에는 또한 특정 사용자에 대한 권한을 맞춤화할 수 있는 프로젝트도 포함됩니다. 지난 Part 2에서는 위키의 기본을 다루었습니다. 이제 크리키에 접근할 때 사용자에게 권한을 주는 방법을 배워보겠습니다.
 
PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기, Part 4: 작업 관리 (한글)
"PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 튜토리얼 연재에서는 제작 과정 추적에 유용한 각종 기능이 있는 위키를 PHP를 사용해 처음부터 만듭니다. 위키는 개발 속도를 높이고 생산성을 향상시키며 다른 이들을 교육하는 데 유용한 도구로 널리 쓰이고 있습니다. 본 연재의 각 부에서는 위키가 완성될 때까지 파일 업로딩, 캘린더링 "마일스톤" 시스템, 오픈 블로그 기능을 비롯한 위키의 핵심적인 부분에 대한 개발 과정을 보여줍니다. 위키에는 또한 특정 사용자에 대한 권한을 맞춤화할 수 있는 프로젝트도 포함됩니다. Part 3에서는 누가 무엇을 할 수 있는지에 대한 컨트롤을 추가했습니다. 이제 작업 관리를 추가할 차례입니다.

PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기, Part 5: 오픈 블로그 (한글)
"PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 튜토리얼 연재에서는 제작 과정 추적에 유용한 각종 기능이 있는 위키를 PHP를 사용해 처음부터 만듭니다. 위키는 개발 속도를 높이고 생산성을 향상시키며 다른 이들을 교육하는 데 유용한 도구로 널리 쓰이고 있습니다. 본 연재의 각 부에서는 위키가 완성될 때까지 파일 업로딩, 캘린더링 "마일스톤" 시스템, 오픈 블로그 기능을 비롯한 위키의 핵심적인 부분에 대한 개발 과정을 보여줍니다. 위키에는 또한 특정 사용자에 대한 권한을 맞춤화할 수 있는 프로젝트도 포함됩니다. Part 4에서는 몇 가지 작업 관리를 추가했습니다. 이제 사용자들이 자유롭게 토론할 수 있는 공간인 오픈 블로그를 만들 차례입니다.
위의 박스안 내용은 IBM DeveloperWorks에서 검색했을때 나오는 소개글입니다.


 IBM DeveloperWorks 한글 사이트에 리눅스 부팅 과정에 관한 문서가 올라와서 소개하고자 합니다. 리눅스의 부팅 과정에 관한 내용이지만 일반적으로 컴퓨터 시스템의 부팅 과정이 서로 유사한 점이 많기에 운영체제의 부팅 과정을 이해하는데 도움이 되리라 생각합니다.

원문 : 리눅스 부팅 프로세스 연구 (한글)

아래는 원문의 일부를 발췌한 것이다.

Master Boot Record 부터 사용자 공간 애플리케이션 까지 부팅 가이드






난이도 : 초급

M. Tim Jones, Consultant Engineer, Emulex

2006 년 8 월 18 일

리눅스® 시스템의 부팅 과정은 많은 단계들을 거칩니다. 표준 x86 데스크탑을 부팅하든 아니면 PowerPC®를 부팅하든 그 단계는 놀랍게도 많이 비슷합니다. 이 글에서는 리눅스 부팅 과정을 초기 부트스트랩부터 첫 번째 사용자 애플리케이션의 시작 단계 까지 설명합니다. 아울러 부트 로더, 커널 디컴프레션(decompression), 초기 RAM 디스크, 기타 리눅스 부트 엘리먼트를 설명합니다.

초기에 컴퓨터를 부트스트랩(bootstrapping) 한다고 하면 부트 프로그램이 포함된 종이 테이프를 공급하거나 프론트 패널 address/data/control 스위치를 사용하여 부트 프로그램을 직접 로딩하는 것을 의미했다. 오늘날 컴퓨터에는 부팅 과정을 단순화시키는 장치들이 장착되어 있지만 꼭 그렇게 단순한 것 같지는 않다.

리눅스 부팅 과정을 보다 높은 시각에서 조망해야지만 전체적으로 볼 수 있다. 그런 다음 각각의 단계를 자세히 살펴봐야겠다. 곳곳에 첨부한 소스 자료가 커널 트리를 연구하는데 도움이 될 것이다



 IBM DeveloperWorks에 리눅스 커널 관련 문서가 올라와서 소개하고자 한다.
커널의 구조에 대해서 간략하게 설명한 내용으로 읽어볼만 하다고 생각합니다.

원문 : 리눅스 커널 해부 (한글)

 아마도 커널 관련 글이 이전에도 몇개더 있었던것 같은데 정확하게 기억은 나지 않네요. 다만, 이번 문서가 제일 보기가 쉽다는 느낌이 듭니다. 제가 아직 커널쪽은 잘 몰라서요.   :)
커널쪽을 잘 모르는 제가 보기에 편하게 느껴지면 다른 초보분들이 읽기에도 적당할거라 생각합니다.

꾸준하게 다양한 문서를 번역해서 올려주셔서 감사할 따름입니다.

 아래의 파란 박스안의 내용은 문서의 앞부분만 가져온 것입니다.

난이도 : 중급

M. Tim Jones, Consultant Engineer, Emulex Corp.

2007 년 8 월 07 일

Linux® 커널은 크고 복잡한 OS의 핵심이고, 거대한 반면 하위 시스템과 레이어의 관점에서 볼 때 잘 구성되어 있습니다. 이 글에서, Linux 커널의 일반적인 구조를 설명하고, 주요 하위 시스템과 핵심 인터페이스들을 살펴봅니다. 가능하다면 다른 IBM 기술자료 링크를 통해서 자세한 내용을 공부하시기 바랍니다.

이 글에서는 Linux 커널을 소개하고 아키텍처와 주요 컴포넌트를 설명하고자 한다. Linux 커널 역사를 간단히 살펴보고, Linux 커널 아키텍처를 자세히 연구하고, 마지막으로, 주요 하위 시스템을 설명할 것이다. Linux 커널은 6백만 이상의 코드 라인으로 구성되어 있기 때문에 이것을 모두 다 설명하는 것은 불가능하다.


 한국 IBM DeveloperWorks[각주:1] 올라온 글중에 리눅스 사용자에게 도움이 될만한 글을 하나 소개하고자 한다.

원문링크 : nmon 성능: AIX와 리눅스 성능 분석을 위한 무료 툴 (한글)

 IBM의 AIX 운영체제에는 NMON이라는 유틸이 있다. nmon은 top보다 다양한 정보를 보여주기때문에 시스템 모니터링시에 유용하게 쓸 수 있다.
리눅스 사용자들은 모니터링을 할때 top을 사용하는데, nmon을 사용하면 다양한 자료를 선택해서 볼 수 있다. AIX 전용 프로그램인줄로만 알았는데, IBM 홈페이지에서 Linux용 실행파일을 다운로드 받을 수 있다. 다운로드 받은 압축 파일을 풀어보면 Debian 3.1, Fedora 5, Knoppix 5, RHEL 2~4, SLES 9~10에서 실행할 수 있는 파일들이 있다.

사용자 삽입 이미지

실행화면

리눅스용 실행 초기 화면. 단축키에 대한 설명이 표시된다.

사용자 삽입 이미지

사용예

필요한 내용만 골라서 위의 화면처럼 사용할 수 있다.
  1. IBM DeveloperWorks는 개발 및 관리에 관한 다양한 기술문서 및 유명 IT 인사들의 컬럼, 인터뷰 등이 담겨있는 개발자를 위한 사이트이며 한국 IBM에서는 한글판 DeveloperWorks를 운영하고 있다. www.ibm.com/developerworks/kr [본문으로]

+ Recent posts