이건... 간단한거긴 한데 잊어버릴까봐 기록해두는 내용. :)


<input type="text" name="searchWord" value="" size="25" value=태그인넷 tagin.net
onKeyDown="javascript:if (event.keyCode == 13) search_check();">
->search_check 함수 실행

<input type="text" name="searchWord" value="" size="25" value=태그인넷 tagin.net
onKeyDown="javascript:if (event.keyCode == 13) return false;">
->아무것도 실행안되게 하기.. 엔터키쳐도 무반응

13은 엔터키의 키코드값입니다.




자바스크립트가 참 손이 많이 가는거라서...
 이번엔 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는 대학가의 문제아들이 모인 델타라는 동호회 회원들의 이야기라고 합니다. 총장이 델타를 해체시키고 회원들을 퇴학시키려는 음모를 진행하는게 내용이라고 하는군요. [본문으로]
 10월의 두번째 글을 작성합니다. 내일까지만 일하면 하루 쉽니다. :)
야호~

 이번에는 IBM DeveloperWorks에서 JAVA로 웹개발을 할때 도움이 될 만한 글을 찾았습니다. Cypal Studio for GWT라는 Eclipse에서 GWT[각주:1] 구현을 지원해주는 플러그인을 소개하는 글입니다. Cypal Studio for GWT의 설치 및 설정, 사용법을 알려주는 글입니다.
 Eclipse에서 GWT를 이용해보고 싶었던 분들이라면 편하게 이용하실 수 있을거같아서 소개합니다.

Cypal Studio for GWT를 사용하여 Ajax 개발 단순화 하기 (한글)

 원문의 내용대로 설치 및 설정까지를 따라해 봤는데, 본문에 나오는대로 GWT 1.4버전에서는 정상적으로 작동하지 않음을 확인했습니다. GWT 1.3버전을 설치하시길 바랍니다. 최신 버전인 GWT 1.4에서 작동하는 Cypal Studio가 빨리 나오면 좋겠네요.
최신 버전 설치하기... 이것도 병인데... :)

GWT는 JavaScript 없이 자바 프로그래밍 언어 내에서 동적인 웹 애플리케이션들을 완벽히 작성할 수 있도록 해주는 툴 세트이다. GWT 애플리케이션은 모든 주요 브라우저에서 실행되며, 사용자와의 상호 작동성도 뛰어나고, 자바 개발 환경 내에서 완벽히 테스트 및 디버깅 될 수 있다.

GWT 프레임웍은 네 개의 주요 컴포넌트를 갖고 있다. 자바 언어로 구현된 위젯 컬렉션은 Swing 보다 단순한 애플리케이션 프로그램 인터페이스(API)에서 기대하는 표준 사용자 인터페이스(UI) 기능을 제공한다. 원격 프로시저 메커니즘은 클라이언트와 서버 간 통신에 사용되며, GWT에서는 모든 파이프와 데이터 변환이 처리된다. 완전히 통합된 브라우저 시뮬레이터로 GWT가 개발 시 실행될 수 있으며, GWT 디버깅 세션 동안 에디터에서 중단점을 설정할 수 있다. 마지막으로, 컴파일러는 자바 코드를 클라이언트 브라우저에서 실제로 실행되는 크로스 브라우저 JavaScript 코드로 변환하며 브라우저 비호환성을 관리하기 때문에 여러분이 관리할 필요가 없다.

GWT가 Ajax 애플리케이션을 생성하는 프로세스를 단순화 하는 동안, 동기화 된 여러 부분들이 작동하도록 해야 한다. 이 글을 쓰고 있는 현재, GWT 고급 툴 지원은 주요 자바 개발 환경에 나타나기 시작했다.

Cypal Studio for GWT는 GWT 개발 시 수행되는 공통의 태스크들을 단순화 하는 Eclipse용 플러그인이다. 이 글에서는 GWT의 모든 부분을 설명하지 않는다. 참고자료 섹션에서 GWT 작동 방법과 애플리케이션을 생성하는 방법을 참조하기 바란다.



  1. Goole Web Toolkit(GWT)은 자바개발자들이 AJAX 어플리케이션을 개발하는데 사용할 수 있는 프레임워크입니다. Google Web Toolkit website [본문으로]
 Forcs homepage의 Q&A 게시판에서 찾은 내용입니다.

오즈 리포트 인쇄 화면/미리보기 화면 로딩중에 메모리가 부족해서 중지되는 현상이 발생할때의 대처법입니다. 아직 적용해보지는 않아서 잘 될지는 모르지만, 오즈 리포트를 제작한 곳의 답변이니 신뢰성이 있을거라 생각합니다.

안녕하세요 포시에스입니다.

아래 태그를 보고서 호출하는 부분에 넣어주세요..

[param name="connection.pageque" value="-10"]
[param name="connection.serverdmtype" value="FILE"]
[param name="connection.fetchtype" value="CONCURRENT"]
[param name="connection.clientdmtype" value="FILE"]

넣어주신후에 확인후 연락바랍니다.

수고하세요...

[부가내용]

* connection.pageque .
value = "정수값 default : -1"
"바인딩이 완료된 보고서 중 메모리에 올릴 페이지 숫자를 설정합니다. 지정된 숫자만큼만
메모리에 가지고 있으며 나머지는 페이지별로 파일에 저장하고 해당 페이지 호출시 메모리로
로드됩니다."

* connection.serverdmtype
value = "FILE/MEMORY default:MEMORY"
"오즈뷰어에서 오즈 서버에 보고서의 데이터 모듈을 요청할 때 오즈 서버가 데이터 모듈 생성
작업을 메모리를 이용할 것인지 파일을 이용할 것인지를 선택합니다. 대용량 데이터의 경우
파일을 이용하면 서버의 메모리 사용량을 줄일 수 있습니다."

* connection.fetchtype
value = "BATCH/CONCURRNET default:batch"
"오즈뷰어에서 오즈 서버에 보고서의 데이터 모듈을 요청할 때 오즈 서버가 데이터 모듈을 어떤 방식으로
처리할 지를 설정합니다. 이전 버전의 경우 오즈 서버는 데이터 소스로부터 데이터를 가져와서 데이터 바
인딩 작업을 완료 한 다음 뷰어로 데이터 모듈을 전송하는데 새로 추가된 CONCURRENT 모드에서는 데이
터 바인딩 작업과 데이터 모듈 전송 작업을 동시에 수행합니다."

* connection.clientdmtype
value = "NORMAL/MEMORY/FILE default : MEMORY"
"뷰어에서 데이터 모듈을 받아서 처리하는 방식을 설정합니다. 데이터 모듈 받는 작업과 보고서 바인딩 작
업을 하나의 스레드로 처리하는 기존 방식에 성능을 높이고 응답시간을 줄이기 위해 각 작업을 별도의 스
레드로 나누어 병렬 처리하는 방식을 추가 하였습니다. 또한 낮은 시스템 사양에서 안정적인 운영을 위해
데이터 모듈을 파일로 받는 모드를 지원합니다."

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에서 검색했을때 나오는 소개글입니다.


네이트온에 로그인 했을때 눈에 띄는 뉴스 제목이 있었습니다.
뉴스 원문 클릭!!

아~ 농담삼아 얘기하던 "사장님 나빠요!!(펀치 작렬)"를 실현시킨 분이 있었으니
사용자 삽입 이미지

4월 27일 판크라스 '라이징투어 2007'의 최형석 선수 경기장면

전직 요구르팅 3D 개발자인 최형석 선수!!
멋지다.

나도 운동을 시작해볼까나...
개발자도 운동하면 되는구나...
 한국정보통신인력개발센터의 특별회원으로 위촉되어있어서 자격증 교재를 지원받게 되었습니다.
 한국정보통신인력개발센터에서 운영하는 리눅스 마스터, 무선인터넷 관리사, 인터넷 정보관리사 등의 자격증 교재 중 한권을 받을 수 있는데 리눅스 마스터와 인터넷 정보관리사 자격증을 가지고 있으니까 이번엔 무선인터넷 관리사 1급 자격증에 도전해볼까해서요. ^^ 물론... 책을 본뒤에 결정할 문제이지만...
여름이 되기까지 계속 바쁠것 같네요. OCP 공부, 정보처리기사 공부, 거기에 무선인터넷 관리사 공부... 우웅
 네이트온이 얼마전에 3.7.3.x 버전으로 업그레이드가 되더군요. 그리고 좀 무거워졌습니다. 음... 제 업무용(개발용) PC가 느린점도 한몫하겠지만, 종종 사용하기 힘든 상태가 됩니다.
아마도 메신져 개발자들과 네이트온, 네이트, 싸이월드 운영/기획자들간에 많은 얘기가 오갔을거라 생각합니다.
 저도 그렇지만 요구하는 모든 기능을 넣으면 성능, 속도상의 손해를 감수해야만 하죠. 이것저것 다 집어삼켜서 짬뽕 포털 사이트가 되어가는 사내 업무용 웹사이트들을 보면... 전산을 요술 지팡이로 생각하는 현업 담당자들과 관리자들에게 마음속으로 하이킥 한번 날려봅니다.


+ Recent posts