IBM DeveloperWorks의 문서 제목을 보던중에 재밌는 문서를 발견했습니다. 사실 발견한지는 꽤 시간이 지났지만, 테스트를 해본다는 둥, 내용을 검증 해봐야겠다는 둥... 평소에 하지 않던 짓을 하려다가 시간만 보내고 이제야 글을 올립니다. 아마도 게으름이 가장 큰 탓이겠죠.
 제목만으로는 개인적으로 아주 많이 기다려왔던 문서가 아닐까합니다. Java 애플리케이션 서버에서 PHP 프로그램을 돌릴 수 있고, Java의 클래스들을 PHP 안에서 실행시킬 수 있다는거. 아주 맘에 드네요. 자세한 내용은 원문을 보시길...
원래 레진(Resin)에 포함되어있는데 톰캣에서도 돌릴 수 있다고 합니다.

원문 : Java 기반 PHP 프레임워크 Quercus 소개

Quercus는 Java™ 기술과 PHP를 함께 사용하여 웹 서비스와 애플리케이션을 작성할 수 있는 새로운 도구입니다. Quercus 프레임워크에는 Java와 PHP가 서로 통합되어 있기 때문에 Spring, Hibernate 등의 유용한 Java 라이브러리를 애플리케이션에 쉽게 통합할 수 있습니다. 이 기사에서는 약간의 코드 샘플과 함께 이 프레임워크에 대해 간략하게 설명합니다. 간단한 HelloWorld 샘플을 사용하여 이 프레임워크의 기능과 장점을 살펴본 후 마지막으로 프레임워크 아키텍처에 대해 설명하고 실제 예제를 자세히 살펴봅니다.

소개

Quercus는 순수하게 Java로 구현된 오픈 소스 PHP 5 엔진이다. Quercus 문서에 따르면 Quercus는 Resin 애플리케이션 서버를 기반으로 실행되고 로드 밸런싱, 프록시 캐싱 등의 Resin 기능을 사용한다. 이 기사에서는 Apache Tomcat을 기반으로 Quercus를 실행하면서 그 기능에 대해 설명한다. 또한 PHP와 Java가 통합되어 있는 Quercus를 통해 웹 서비스와 애플리케이션을 쉽고 유연하게 작성하는 방법도 보여 준다.


  다수의 Server들을 운영하다보면 각종 설정 파일, 소스, 이미지 파일들의 동기화 시켜줄 일이 생깁니다. 이럴때 유용한 rsync에 대한 글입니다.(출처는 IBM DeveloperWorks입니다.)

원문 : Speaking UNIX: rsync 고급 애플리케이션

 현재 재직중인 회사에서도 DNS, Web server 등에서 rsync를 이용해서 동기화를 하고 있더군요.

다수의 시스템을 동기화하는 작업은 매우 힘든 일입니다. 다행히도 rsync라는 강력한 도구가 있어서 이러한 작업을 쉽게 할 수 있습니다.

지난 20년 동안 컴퓨터 네트워크의 사용이 폭발적으로 늘어났다. 인터넷의 성장과 그에 따른 국내 및 해외 백본 인프라스트럭처에 대한 투자 그리고 네트워킹 및 컴퓨팅 하드웨어 가격의 급격한 하락으로 인해 네트워크 사용량이 대폭 늘어났다. 오늘날 네트워크는 보편화되고 일반화되었으며 애플리케이션 여전히 대규모의 네트워크와 빠른 전송 속도를 필요로 한다. 인터넷은 몇 대 안되는 작은 워크스테이션에서 비롯되었지만 이제 인터넷 및 그와 유사한 서비스로 인해 셀 수 없이 많은 컴퓨터가 서로 연결되고 있다.

자주 사용하는 약어
  • FTP: File Transfer Protocol
  • WebDAV: Web-based Distributed Authoring and Versioning

같은 기간 동안 UNIX®도 성장을 해서 점차 유익한 네트워킹 소프트웨어와 보조를 맞추게 되었다. FTP는 시스템 간에 파일을 공유하기 위한 첫 번째 도구 중 하나이며 여전히 널리 사용되고 있다. "원격 복사(remote copy)"를 의미하는 rcp는 FTP를 개선한 것이며 기존의 cp 유틸리티와 유사하지만 시스템 간에 파일을 복사한다는 점이 다르다. rcp를 기반으로 한 rdist는 한 시스템에서 다수의 시스템으로 파일을 자동으로 분배한다.

오늘날 rcprdist와 같은 유틸리티는 보안상의 결함이 있어 더 이상 사용하지 않는다. 대신 scp를 사용한다. FTP를 여전히 널리 사용하듯이 FTP에서 보안을 강화한 SFTP(Secure FTP)도 가능하면 사용해야 한다. 달리 선택할 수 있는 도구에는 WebDAV와 BitTorrent™와 같은 것도 있다. 물론 시스템이 많아 질수록 모든 시스템을 동기화하거나 최소한 특정 상태로 유지하는 것이 더욱 어려워지며 사용자가 직접 솔루션을 작성하지 않는 한 scp와 WebDAV는 원하는 결과를 제공하지 않는다.

파일을 배포하는 데 가장 좋은 도구는 rsync이다. rsync는 전송이 중단되고 나서도 다시 재개할 수 있고 소스와 대상을 비교하여 다른 파일만을 전송하며 전체 백업이나 증분 백업을 할 수도 있다. 더욱이 rsync는 Mac OS X는 물론 모든 UNIX 계열에서 사용할 수 있으며 따라서 사실상 모든 시스템을 서로 편리하게 연결할 수 있다.

rsync에 대한 몇 가지 일반적인 사용례를 검토한 후에 보다 우수한 애플리케이션을 살펴보도록 하자. 여기서 사용한 데모 시스템은 Mac OS X 버전 10.5 Leopard(FreeBSD 변종) 및 Ubuntu Linux® 버전 8이다. 다른 운영 체제를 사용하거나 그럴 가능성이 있는 경우 여기에 있는 대부분의 예제를 포팅할 수 있으며 사용 시스템의 rsync 매뉴얼 페이지를 검토하여 동작이 제대로 되는지 확인한다.


 요즘 친환경 IDC관련 글이 꽤 많습니다. IBM으로부터 받은 메일 중에는 친환경 IDC 구축에 관한 글도 다수 있더군요. IDC에 설치하는 랙의 문짝에 냉각 기능을 넣는 것도 소개되어있었구요. 음... 그외에 기타등등...
그런데 여러가지 요소 중에서 실제로 전기를 많이 소비하는 서버 장비의 OS에서 전력 소모량을 줄일 수 있다면 참 좋을것 같죠. 여기에 관한 글을 소개합니다. 물론... 저도 OS쪽 전문가가 아니라서 이 글의 내용에 대해서 자신있게 말씀드릴 수는 없습니다. 앞으로 실 서버에 적용을 해보고 비교해볼만한 환경이 갖춰지면 꼭 한번 비교 분석해보고 싶긴합니다. 그날이 곧... 다가올까요? 로또라도 한번 해야겠네요.

  IBM DeveloperWorks 한국 사이트에서 Linux server에서의 전력 소비량 줄이기에 대한 글이 올라와있네요. 원래 시리즈로 세편의 글이 영문으로 올라와있는데, 한글로 번역된 문서는 2편까지 올라와있습니다.


글 보러가기
Linux 전력 소비량 줄이기 Part 1 : CPUfreq 서브시스템
Linux 전력 소비량 줄이기 Part 2 : 일반 및 거버너 관련 설정

세 편의 기사로 구성된 이 시리즈에서는 전력 효율 향상을 위해 시스템을 조정하는 방법에 대해 설명합니다. 먼저 Part 1에서는 전력 효율 향상을 위해 Linux 기반 System x 서버를 미세 조정하는 데 필요한 구성 요소와 개념을 간단히 살펴본 후 Linux CPUfreq 서브시스템을 활성화하는 방법, C 및 P 상태에 대한 지침을 가져오는 방법 및 다섯 가지 커널 내 거버너(governor) 중에서 시스템의 전력 효율 향상을 위해 필요한 거버너를 결정하는 방법에 대해 설명합니다.

의견 나누기:  회사에서 절전이 얼마나 중요한지에 대한 의견을 추가해주기 바랍니다.

이 시리즈의 정보

이 시리즈에서는 전력 효율을 높이기 위해 Linux 기반 IBM System x 서버를 조정하는 방법에 대해 살펴본다. 커널 내 거버너 및 관련 설정과 거버너의 사용 방법에 대해 알아본 후 조정된 거버너가 전력 성능 및 전자 상거래 워크로드에 미치는 효과를 살펴본다. 예제는 RHEL 5.2(Red Hat Enterprise Linux 버전 5.2)가 실행 중인 System x 서버를 기반으로 하지만 모든 2.6.x 커널과 주파수 배율 조정을 지원하는 모든 유형의 프로세서에도 동일한 지침이 적용된다.

Part 1에서는 전력 효율 향상을 위해 시스템을 조정하는 데 필요한 Linux CPUfreq 서브시스템, C 및 P 상태, 다섯 가지 커널 내 거버너 등을 포함한 구성 요소와 개념에 대해 설명한다.

Part 2에서는 Linux CPUfreq 서브시스템의 일반 설정과 다섯 가지 커널 내 거버너 즉, 성능, 절전, 사용자 공간, 온디맨드일반 거버너와 해당 설정에 대해 자세히 살펴본다.

Part 3에서는 조정된 상태와 조정되지 않은 상태에서 다섯 가지 커널 내 거버너의 성능을 비교하여 시스템에 대한 전력 조정을 통해 얻을 수 있는 결과를 확인한다.

전력 효율은 사업 비용이나 환경 문제와 관련된 모든 사람에게 중요한 고려 사항이다. 이 기사에서는 Linux CPUfreq 서브시스템과 커널 내 거버너를 사용하여 프로세서의 작동 주파수를 변경하여 성능에 큰 영향을 주지 않으면서 시스템의 전력 효율을 향상시키는 방법에 대해 설명한다. 하지만 전력 효율 조정은 실제 하드웨어에 의존하게 된다는 한계가 있다. (이 시리즈의 Part 2에서 이에 대해 자세히 설명한다.)

Linux CPUfreq 서브시스템

2.6.0 Linux 커널부터는 CPUfreq 서브시스템을 통해 프로세서 주파수 배율을 동적으로 제어할 수 있다. 낮은 클럭 속도로 작동하는 프로세서는 속도에 비례하여 전력 소비량과 발열량이 낮다. 이처럼 클럭 속도를 동적으로 제어하는 기능을 사용하면 시스템이 많이 사용되지 않을 때 전력을 적게 소비하도록 시스템을 조절할 수 있다.

CPUfreq 구조에서는 거버너와 데몬을 사용하여 시스템의 정적 또는 동적 전력 정책을 설정한다. 이 기사의 뒷부분에서 설명할 동적 거버너는 CPU 사용률에 따라 CPU 주파수를 전환하여 성능에 영향을 주지 않으면서 전력 소비를 줄일 수 있다. 이러한 거버너에서는 사용자 조정 기능도 제공되므로 주파수 배율을 쉽게 변경하고 사용자 정의할 수 있다. 또한 sched_mc_power_savingssched_smt_power_savings 설정은 스레드 통합을 통해 전력을 절약할 수 있다.


 IBM DeveloperWorks에 올라온 글중에서  Google App Engine for Java라는 시리즈를 소개하려합니다. 저도 이 문서에 나오는 Google Plugin for Eclipse를 설치해놓고는... 아직 아무것도 하지 않았습니다. ^^;;
에구 개발에서 손뗀지가 오래되서 그런지 참... 잘 안되네요.

  필자인 Rick Hightower는 클라우드 컴퓨팅, GWT, Java EE, Spring 및 Hibernate 개발과 관련된 교육 서비스를 전문으로 제공하는 회사인 Mammatus Inc.의 CIO입니다. [Java Tools for Extreme Programming](자바 툴을 이용한 EXTREME PROGRAMMING)의 공동 저자이며 TheServerSide.com에서 여러 해 동안 다운로드 수가 가장 높았던 Struts Live 초판의 저자입니다. IBM developerWorks에 많은 기사와 튜토리얼을 기고하고 있는 그는 Java Developer's Journal의 편집위원으로 활동하고 있으며 DZone에도 Java 및 Groovy와 관련된 많은 글을 기고하고 있습니다.
자바 툴을 이용한 EXTREME PROGRAMMING
카테고리 컴퓨터/IT
지은이 RICHARD HIGHTOWER 외 (사이텍미디어, 2003년)
상세보기



원문보러가기
Google App Engine for Java1
Google App Engine for Java2
Google App Engine for Java3



얼마 전까지만 해도 Google App Engine은 Python 개발자만을 위한 것이었기에 조금은 암울한 시기였습니다. 그러나 2009년 4월에 Google Inc.에서 클라우드 컴퓨팅 플랫폼에 대한 문호를 Java™ 개발자에게도 개방했습니다. 세 편의 기사로 구성된 이 시리즈에서는 Java 기술 저자이자 강사인 Rick Hightower가 Java 기반 개발을 위한 이 안정적이고 강력하면서도 재미 있는 플랫폼을 소개합니다. 이 기사에서는 Google App Engine for Java를 확장성 높은 킬러 애플리케이션의 전개 플랫폼으로 사용하기에 적합한 이유를 살펴본 후 Google Plugin for Eclipse를 사용하여 GWT(Google Web Toolkit)와 Java Servlet API를 기반으로 하는 두 가지 예제 애플리케이션을 작성합니다. 애플리케이션을 처음부터 작성하는 과정과 애플리케이션을 전개하여 최대 5백만 개의 보기를 조정하는 과정을 통해 Google App Engine for Java의 진정한 가치를 알 수 있습니다. (게다가 이 제품은 무료 버전입니다.)

IBM DeveloperWorks 한글 사이트에 올라온 글 중에서 가상화 관련 문서 두개를 소개하려합니다.

원문 보러가기
1. VM 전개 자동화하기
2. Linux 하이퍼바이저 분석

 Linux에서의 가상화 솔루션과 VM 전개 자동화에 관한 글인데, 일단 DeveloperWorks 상의 분류는 Linux로 되어 있네요. [VM 전개 자동화하기]는 VMWare를 기준으로 설명을 하고 있고요. [Linux 하이퍼바이저 분석]은 오픈소스인 KVM(Kernel-based Virtual Machine)과 Lguest(이전에는 lhype)로 설명하고 있습니다.
 흠... 둘 다 써보진 않았지만 아주 흥미로운 내용이었습니다. 다만, 아직 Linux에서의 가상화 솔루션을 많이 경험해보지 않아서 인지 [VM 전개 자동화하기]문서 보다는 [Linux 하이퍼바이저 분석]가 좀더 재미있더군요. 소스 코드가 없어서 그런건지... ^^;

 Oracle RAC을 집에 있는 PC에 구현해보려하는데, OTN에서 찾은 문서에는 Oracle VM을 사용하더군요. Oracle VM이 Xen 기반인걸로 알고 있는데, Xen에 대한 설명은 없어서 좀 아쉽더군요. HDD랑, RAM이랑 증설한 뒤에 빨리 집에다가 구성해봐야 할텐데요...

아... 암튼... 이번에 소개하는 [VM 전개 자동화하기], [Linux 하이퍼바이저 분석] 모두 도움이 될 만한 내용이라고 생각합니다. 한번 보시길...
 IBM DeveloperWorks에 올라온 클라우드 컴퓨팅 관련 연재인 "클라우드에 연결하기 1~3"을 소개하려합니다.
하이브리드 클라우드 컴퓨팅에 대해서 설명하고 있는 글입니다. 썬에서 다운로드받은 클라우드 관련 백서와 함께 보고 있는 중입니다. 음... 썬에서 받은 문서가 개념 잡기엔 더 좋은것 같네요.

원문보러가기 : 클라우드에 연결하기 Part 1, 클라우드에 연결하기 Part 2, 클라우드에 연결하기 Part 3

하이브리드 클라우드 애플리케이션 개발에 대해 다루는 세 편의 기사로 구성된 시리즈의 마지막 기사인 이 기사에서는 클라우드 컴퓨팅의 통제와 보안에 대해 설명합니다



 한국 IBM DeveloperWorks 사이트에 Ext4에 관한 글이 올라왔네요. 최근에 출시된 Fedora 11에는 기본 파일 시스템으로 채택되어있더군요. 음... 드디어...
 Ext4에 대해서 궁금하신 분들은 한번 읽어보세요. 번역까지 되어있으니까요. ^^

원문 : Ext4 분석(Extended File System 4 알아보기)

M. Tim Jones, Consultant Engineer, Emulex Corp.

원문 게재일 : 2009 년 2 월 17 일
번역 게재일 : 2009 년 6 월 02 일

Extended File System 4 또는 ext4는 차세대 저널링 파일 시스템이며 이전 파일 시스템인 ext3과의 호환성도 제공합니다. ext4는 아직까지는 표준이 아니지만 앞으로 대부분의 Linux® 배포판에서 후속 기본 파일 시스템으로 채택될 것입니다. 이 기사에서는 ext4에 대해 설명한 후 ext4가 많은 사용자의 새로운 파일 시스템으로 자리 잡게 될 것으로 예상되는 이유를 살펴봅니다.

Linux 커널이 새롭게 발표될 때마다 몇 가지 뛰어난 기능이 포함되어 있듯이 이번 12월에 발표된 2.6.28 릴리스에도 우수한 기능이 포함되어 있다. 이 릴리스는 현재 개발 작업이 한창 진행 중인 Btrfs와 같은 여러 가지 우수한 기능 중에서 안정적인 ext4 파일 시스템이 최초로 적용된 릴리스이다. 이 차세대 Extended File System에서는 확장성과 신뢰성이 향상되었으며 뛰어난 새 기능도 추가되었다. Ext4는 1TB 디스크를 최대 백만 개까지 사용할 수 있는 파일 시스템으로 확장할 수 있다.


IBM DW에 올라온 글 중에 [안전한 PHP 응용 프로그램을 작성하는 일곱 가지 습관]이라는 글을 소개합니다.
앞으로 PHP에 손댈 일이 많아질것 같아서 여기저기 뒤지다보니 찾게된 문서입니다. 혹시나 이 문서를 나중에 못 찾을까봐 즐겨찾기 해놓는 기분으로요. ^^

원문보러가기 : 안전한 PHP 응용 프로그램을 작성하는 일곱 가지 습관

PHP 응용 프로그램을 짤 때는 원격 보안과 지역 보안을 모두 고려해야 합니다. 이 기사에서는 두 가지 측면 모두에서 PHP 프로그램 보안을 높여줄 개발자를 위한 일곱 가지 프로그래밍 습관을 소개합니다.

보안을 고려할 때는 실제 플랫폼과 운영체제 보안뿐만 아니라 응용 프로그램 보안 유지도 중요하다. 즉, 프로그래머는 안전한 프로그램을 짜야 한다. PHP 프로그램을 작성한다면 다음 일곱 가지 습관으로 프로그램 보안을 최대로 높여보자.

  • 입력을 검증하라.
  • 파일 시스템을 보호하라.
  • 데이터베이스를 보호하라.
  • 세션 정보를 보호하라.
  • XSS(Cross-Site Scripting) 취약점을 방어하라.
  • 폼 정보를 보호하라.
  • CSRF(Cross-Site Request Forgeries)를 방어하라.
IBM DW에 올라온 글중에 파이썬3 관련 문서가 있어서 소개합니다. 오랫만에 파이썬 관련 글을 보게되네요.

원문보기 : Python 3 입문, Part 1: 새로운 기능


Python 3은 Guido van Rossum이 개발한 강력한 범용 프로그래밍 언어의 최신 버전입니다. 이 버전에서는 이전 버전인 2.x 제품군과의 호환성이 지원되지는 않지만 일부 구문 문제가 정리되었습니다. 이 기사는 연재 기사의 첫 번째로서 언어에 영향을 주는 변경 사항과 이전 버전과의 호환성에 대해 설명하고 새로운 기능의 예제를 제공합니다.

Python 3000 또는 Py3K(Microsoft® Windows® 2000 운영 체제에서 부르는 별명)이라고도 하는 Python 버전 3은 Guido van Rossum이 개발한 범용 프로그래밍 언어의 최신 버전이다. 코어 언어의 많은 부분이 개선된 새 버전에서는 이전 버전인 2.x 제품군과의 호환성이 지원되지 않는다. 기타 변경 사항은 다음과 같다.

  • 소수 나눗셈, 예를 들어 1/2.5를 리턴한다.
  • longint 유형이 하나의 유형으로 통합되었으며 후행 L이 제거되었다.
  • True, FalseNone이 이제 키워드로 사용된다.

Python 3에 관한 연재 기사의 첫 번째인 이 기사에서는 새로운 print() 함수, input(), 입/출력(I/O) 변경 사항, 새로운 bytes 데이터 유형, 문자열 및 문자열 형식의 변경 사항, 마지막으로 내장 dict 유형의 변경 사항에 대해 설명한다. 이 기사는 Python에 이미 익숙하면서 긴 PEP(Python Enhancement Proposal) 목록을 보지 않고 변경 사항을 확인하고 싶어하는 프로그래머를 대상으로 한다.


 자바로 만든 마법사 기반의 설치 프로그램을 소개하는 글이 올라왔습니다. 재밌어 보이는 글이라 소개합니다. ^^

원문 : 사람을 위한 자동화: 마법사 기반 설치 프로그램 사용하기

소프트웨어 설치는 많은 사용자에게 보통 고통스러운 일에 해당합니다. 여러분이 생성한 설치 패키지(소프트웨어 개발의 "마지막 일정")는 사용자에게 채택되거나 쓰레기통에 버려지는 갈림길에서 예전보다 나아질 수 있습니다. 이번 사람을 위한 자동화 기사에서, 자동화 전문가 Paul Duvall은 무료로 이용할 수 있는 오픈 소스 IzPack 도구를 사용하여 마법사 기반 설치 프로그램을 만들어 여러분의 소프트웨어를 사용자가 간단하게 설치할 수 있게 하는 방법을 살펴보겠습니다.

내 경험을 전반적으로 볼 때, 나는 소프트웨어 개발 전체 생명 주기에 참여해왔다. 요구 사항 도출, 설계, 개발 그리고 테스트뿐만 아니라 배포, 빌드 관리, 문서화, 설치 같은 활동에도 참여했다. 요즘 애자일을 많이 채택하면서 이 부류가 좀 더 많아졌고 일반화되었다. 하지만 내가 참여했던 애자일 프로젝트에서 효율적인 배포와 설치가 항상 최우선 과제는 아니었다. 이것이 바로 아이러니다. 잠재적인 고객이 여러분의 소프트웨어를 쉽게 사용할 수 없거나 아예 사용할 수 없다면, 여러분은 그들을 잃을 것이기 때문이다. 여러분의 소프트웨어를 간단하게 설치하는 방법을 제공하는 것은 고객을 유지하고 더 끌어오는데 정말로 중요하다.


+ Recent posts