이번에도 [Open DeveloperWorks][각주:1]에서 톰캣 클러스터링에 관련된 글을 소개합니다.
지난번에 소개한 내용에 이어서 톰캣 세션 클러스터링 관련 글입니다.

원문 : [Open DeveloperWorks] 테라코타를 이용한 톰캣 세션 클러스터링


자주 바뀌는 GUI일수록 단위 테스트가 필요하다

지난 “아파치와 톰캣을 활용한 대용량 웹서비스 운영” 기사가 나간 이후로 많은 독자들의 문의를 받았다. 사실 아파치와 톰캣을 연동한다는 것은 이미 많은 자료와 웹 사이트에 소개된 바 있고 점점 더 손쉽게 이를 적용할 수 있도록 톰캣이 발전하고 있다. 하지만 대용량 서비스를 위해서는 단순한 연동뿐만 아니라 로드밸런싱, 클러스터링 및 서비스에 대한 자원 사이징 그리고 모니터링 등 다양한 방식의 접근이 필요하다. 이번 기사에서는 이 중에서 클러스터링에 대하여 좀더 고민해 보겠다.


  1. IBM DeveloperWorks에서 전문가의 글을 단순히 보는 단계에서 벗어나 스스로가 필자가 될 수 있습니다. 오픈 디벨로퍼웍스에 관심을 가져보세요. 채택되신 분들께는 소정의 원고료도 지급된다고 합니다. 저는 아직 능력이 안되서리...
    필자 지원하기
    [본문으로]
새해들어서 처음으로 소개하는 DW Blogger review입니다. ^^
복 많이들 받으셨나요?

 이번에는 [Open developerWorks]의 문서를 소개하려고 합니다. JAVA 개발 자들에게 친숙한 아파치 톰캣에 관한 내용인데요. 톰캣을 이용해서 대용량 웹서비스를 운영하려는 사람에게 필요할것은 문서입니다.

흔히들 자바웹서비스 개발을 시작할떄 책에서 많이 접하는 톰캣은 실제로 대용량 서비스에는 잘 사용하지 않습니다. 웹로직, 웹스피어, 제우스 같은 WAS를 많이 사용하죠. 그런데웹서비스에 사용할 서버의 숫자가 수십에서 수배개 정도가 된다면 구매 및 유지보수 비용이라는 거인을 만나게 됩니다. 수천에서 억단위로까지 넘어가는 견적서를 보게되면... 눈물이 앞을 가리죠.
 그래서 아래의 문서를 소개하려합니다. 실전에서 바로 사용할 수 있을지는 잘 모르겠지만, 길을 제시해주고 있네요.

원문 : [Open developerWorks] 아파치와 톰캣을 활용한 대용량 웹서비스 운영


웹 개발자에게 있어 톰캣은 JSP를 배우거나 간단한 테스트를 하는 정도의 웹 컨테이너로 생각하는 경우가 많다. 하지만 근래 들어 기업 및 대형 포탈에서 상용 서비스를 위한 웹 컨테이너로서 톰캣을 선택해, 성공적으로 적용한 사례들이 늘고 있다. 톰캣에서 안정적인 웹 서비스를 제공하기 위해서 지원하는 기능은 5가지가 있다. 아파치 웹서버와 연동, 로드밸런싱, 세션 클러스터링, 데이터베이스 처리, 모니터링 및 관리 등이 그것이다.
이 문서에서는 로드밸런싱과 세션 클러스터링 위주로 설명을 할 것이며, 다음에 기회가 된다면 다른 부분에 대해서도 자세히 알아보도록 하겠다.
 흠... 크리스마스가 평온하게... 너무 평온하게 지나가서요... 크리스마스때 읽으려고 출력했던 문서를 소개하려고 합니다.
 제목에도 나와있듯이 자바의 클래스 로딩 문제 분석에 관련된 문서입니다.
[클래스 로딩의 작동 방법과 JVM에서 클래스 로딩 문제를 해결하는 방법]이라는 부제가 달린 문서입니다. Part 1에서는 클래스 로딩의 기초와 디버깅 툴을 소개하고 있습니다.

원문 : 클래스 로딩 문제 분석하기, Part 1: 클래스 로딩과 디버깅 툴 소개 (한글) (부제 : 클래스 로딩의 작동 방법과 JVM에서 클래스 로딩 문제를 해결하는 방법)


 아래는 원문의 서두부분입니다.
클래스 로딩 컴포넌트는 자바™ 가상 머신에 있어서 기본적인 것입니다. 개발자들이 클래스 로딩의 기초에 대해서 잘 이해하고 있더라도 문제가 생기면 이것을 진단하고 솔루션을 만드는데 어려움을 겪습니다. 네 편의 기술자료 시리즈에서 Lakshmi Shankar와 Simon Burns는 자바 개발 중에 발생할 수 있는 다양한 클래스 로딩 문제들을 설명하고 그 원인과 해결 방법을 설명합니다. NoClassDefFoundErrorClassNotFoundException 같은 일반적인 자바 예외와, 클래스 로더의 제약조건 위반 교착 상태 같은 보다 어려운 문제들 이해하고 해결하는데 도움이 될 것입니다. 이 첫 번째 글에서 자바 클래스 로딩의 작동 방법과 JVM에서 사용할 수 있는 툴을 사용하여 클래스 로딩 문제를 진단하는 방법을 설명합니다.

클래스 로더는 클래스들을 Java Virtual Machine (JVM)에 로딩하는 일을 담당한다. 단순한 애플리케이션들은 자바 플랫폼에 내장되어 있는 클래스 로딩 장치를 사용하여 클래스들을 로딩한다. 보다 복잡한 애플리케이션들은 고유의 클래스 로더를 정의하기도 한다. 어떤 종류의 클래스 로더를 사용하든지 간에, 클래스 로딩 과정 동안 문제가 생길 수 있다. 이 같은 문제를 피하려면, 클래스 로딩의 구조를 이해해야 하여야 하며, 이를 통해, 문제가 발생하면 진단 기능과 디버깅 기술이 문제 해결에 도움이 될 것이다.

본 기술자료 시리즈에서는 클래스 로딩 문제들을 설명한다. 첫 번째 기술자료에서는 클래스의 로딩의 기초를 설명하고, 두 번째 기술자료에서는 JVM 디버깅 기능들을 다룰 예정이다. 나머지 세 개의 기술자료에서는 클래스 로딩 예외를 해결하는 방법과, 보다 민감한 클래스 로딩 문제들을 설명할 것이다.


 이번에도 IBM DW의 기술 문서중에서 Ajax관련 글을 소개하려합니다. 정말 Ajax가 대세...
Ajax와 XML을 이용해서 YouTube같은 멀티미디어 서비스를 제공하는 사이트에 적용된 기술을 설명하고 있습니다. PHP에 Ajax 기술을 적용해서 예를 들고 있죠.
한번쯤 읽어두면 도움이 될 거라 생각합니다. ^^

원문 : Ajax와 XML: 미디어용 Ajax (한글)(부제 : Ajax 기술을 사용하여 영화와 슬라이드 쇼 보여주기)

2007 년 12 월 18 일

광대역, 미디어, 영화, 이미지, 사운드 드라이브는 Web 2.0에 일대 혁신을 가져왔습니다. 미디어에 PHP와 Asynchronous JavaScript™ + XML (Ajax) 기술을 결합하는 방법을 배워봅시다.

웹 애플리케이션의 새로운 조류를 가장 잘 드러내는 사이트가 무엇이냐고 묻는다면, 대부분 YouTube라고 대답할 것이다. 이 사이트는 뚜렷한 방식으로 신 기술을 채택했을 뿐만 아니라, 우리가 미디어를 보는 방식과 미디어와의 관계를 변화시킨 사이트라고 할 수 있다. 주요 이야기들이 기존의 전통적인 미디어에 나타나기 전에 YouTube에서 발생하고, 그렇지 않을 때에는, YouTube는 하나의 큰 TiVo처럼 작동한다.


필자는 Jack D. Herrington이라는 20년 경력의 소프트웨어 엔지니어입니다.
 Code Generation in Action, Podcasting Hacks, PHP Hacks등의 책을쓴 사람이네요.
요즘 Ajax 얘기를 빼면 웹 어플리케이션에 대한 얘기가 진행이 안될 정도로 Ajax는 대중화가 된것 같습니다. 저도 Ajax 관련 글을 소개한 적이 있죠.
 이번에는 "Rich Ajax Platform, Part 1"(부제 : Eclipse 방식의 Web 2.0)이라는 글을 IBM DeveloperWorks의 오픈소스 관련 글에서 찾아서 소개합니다.  이 글에서는 RAP의 개념과 RAP를 설정하는 방법과 데모를 설명합니다. 모쪼록 많은 분들에게 도움이 되길바랍니다.

 원문: Rich Ajax Platform, Part 1 (Eclipse 방식의 Web 2.0)

2007 년 12 월 11 일
 Asynchronous JavaScript + XML (Ajax)과 Web 2.0의 개념은 웹 기반 애플리케이션에 활력을 더해주는 방식으로서 개발 커뮤니티를 통해 퍼져나가고 있습니다. Rich Ajax Platform (RAP)은 Eclipse 개발 모델을 사용함으로써 Ajax 실행 웹 애플리케이션을 구현하는 방식입니다. 이 글에서는, RAP의 개념과 RAP 개발 환경을 설정하는 방법과 데모를 설명합니다. 쉽게 이해할 수 있는 예제도 제공합니다.

 RAP 프로젝트는 Eclipse 개발 모델을 사용함으로써 Rich Internet Application을 구현하는 것이다. 그렇다면 "Eclipse 개발 모델"이란 것은 정확히 무엇인가? RAP는 자바™ 라이브러리와 Eclipse API를 사용하여 브라우저 기반의 Ajax 애플리케이션을 구현할 수 있도록 한다. SWT, JFace, Eclipse 워크벤치의 웹 실행 구현을 제공함으로써 이를 수행한다. 이 글에서는 몇 가지 간단한 예제로 RAP를 소개하고자 한다.

본문에 나온 이미지 중 하나를 올립니다. 이 문서에 나온대로 개발을 하면 이런 모양의 웹 어플리케이션을 만들 수 있다고 합니다.

사용자 삽입 이미지

RAP 컨트롤 데모


 이번 달의 첫번째로 소개할 IBM DeveloperWorks의 문서는 "DB2 기초다지기" 시리즈의 첫번째인 [DB2 기초 : 제약조건(한글)]이다.
 대형 DB에 관한 얘기를 하면 꼭 나오는 DB중 하나인 IBM DB2에 대한 기획시사의 첫번째로 일반적인 DB에 대한 지식이 있다면 대부분 이해할만한 제약조건에 관한 내용을 담고 있습니다.
 NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK 같은 단어는 많이 보던 것들이죠.

 DB2를 배우고 싶은 사람이라면 기초부터 탄탄히 할 수 있도록 도와주는 문서라고 생각합니다. 한번씩들 읽어보시길 바랍니다.

원문 : DB2 기초 : 제약조건(한글)


DB2 UDB에서 사용되는 제약조건은 데이터에 대해 비즈니스 규칙을 시행하고 데이터베이스 무결성을 유지하는데 도움이 된다. 이 글에서는 DB2 UDB에서 지원하는 다양한 제약조건 유형들을 설명한다. 각 제약조건 유형들을 예제를 통해 설명한다. 또한 기본적인 제약조건 관리(명령행 또는 DB2 Control Center 사용)를 설명한다.

DB2 UDB에서 사용되는 제약조건은 데이터에 대해 비즈니스 규칙을 시행한다. 이 글에서는 다음과 같은 유형의 제약조건을 설명한다.

  • NOT NULL
  • 유일(unique)
  • 기본 키
  • 외래 키
  • 테이블 체크
정보형 제약조건(informational constraint) 으로 알려진 제약조건도 있다. 위에 열거한 다섯 개의 제약조건과는 달리 정보형 제약조건은 데이터베이스 관리자가 다룰 수 있는 것이 아니다. 쿼리 퍼포먼스를 높이기 위해 SQL 컴파일러에 의해 사용된다. 이 글에서는 위에 열거한 제약조건 유형들에 초점을 맞춰 설명할 것이다. 정보형 제약조건은 다음 기회에 다루기로 한다.


 Eclipse Forms를 이용해서 애플리케이션에 웹 효과를 내는 방법을 설명하는 글입니다.
자바로 만든 프로그램이 이렇게 쓸만한 UI를 가지게 되는게 이클립스 덕이 아닐까합니다. 엄밀히 말하면 운영체제의 네이티브 UI와  같은 룩앤필을 제공해주는 Standard Widget Toolkit(SWT)[각주:1] 덕이겠죠.


원문 : Eclipse Forms로 애플리케이션에 새로운 활력을 (한글)

Eclipse Forms를 사용하여 Eclipse 애플리케이션의 사용자 경험을 향상시킬 수 있습니다. 임베디드 브라우저를 사용하지 않고 애플리케이션에 "웹과 같은" 효과를 나타낼 수 있습니다. 본 기술자료에서는 사용자 인터페이스(UI) 툴킷으로서의 Eclipse Forms를 간략히 소개하고, 사용하기 쉬운 예제도 제공합니다.

배경

Eclipse Forms란 무엇인가? 이 질문에 답을 하기 전에, Eclipse Forms의 사용 방법을 설명하도록 하겠다. 여러분은 Eclipse에 플러그인을 구현해 본 적 있는가? 그렇다면, 이것이 다음과 같은 깔끔한 UI라는 것을 아마 알 수 있을 것이다.



사용자 삽입 이미지

Hello world 예제

본문에서 Eclipse Forms로 구현한 Hello World 예제입니다. 어떤 언어를 배우든 일단 Hello World부터 ^^
  1. Eclipse의 구현 기반입니다. SWT는 다양한 플랫폼에서 실행됩니다. [본문으로]
 이번엔 제가 잘 사용하지 않아서 잘 모르는 내용을 소개하려 합니다. IBM DB2에서 Ruby on Rails 개발 환경을 설정하고 사용하는 법 입니다. 제가 주로 Oracle DBMS를 사용하는터라 DB2를 배우고 싶긴한데 시간이 잘 안 나네요. ^^;
 루비도 책 한권 사놓고는 제대로 보지도 못했습니다. 에휴... 빨리 공부 해야할텐데...
아무래도 스키 시즌 지나가기 전에는 책보기 힘들듯 합니다.

원문 : DB2와 Ruby on Rails, Part 1: DB2와 Ruby on Rails 시작하기 (한글)
두 명의 DB2 전문가와 두 명의 소프트웨어 엔지니어가 이 글의 저자입니다.

Part 1에서는 DB2 설치, Rails 설정 등의 기본적인 작업을 설명하고 있습니다.


2007 년 7 월 24 일

Ruby 언어의 등장과 강력한 Rails 프레임웍의 결합으로 웹 애플리케이션 개발에 수 많은 기회들이 생겼습니다. IBM_DB 어댑터와 드라이버의 도입으로, Rails 애플리케이션들은 이제 IBM 데이터 서버들과 완벽하게 상호 작동 할 수 있습니다. DB2®와 Ruby on Rails 시리즈를 시작합니다. DB2 on Rails용 Starter Toolkit를 소개하고, IBM_DB 드라이버를 설치하는 다양한 방법과 DB2로의 Rails 마이그레이션을 설명합니다.

머리글


2004년 출시된 Ruby on Rails는 웹 애플리케이션 개발에 사용되는 가장 대중적인 프레임웍으로 자리를 잡아가고 있다. Rails 또는 RoR로 알려진 이 오픈 소스 프로젝트는 Model-View-Controller (MVC) 아키텍처, Ruby 객체 지향 스크립팅 언어, "convention over configuration"과 "don't repeat yourself" 같은 단순한 원리를 사용한다. 개발자들은 중복이 적은 코드와 설정 파일을 사용하여 애플리케이션을 더욱 빠르고 쉽게 구현할 수 있고, 애플리케이션의 필요를 채울 수 있는 커스텀 확장을 구현할 수 있는 유연성도 있다. 데이터베이스 영속성에 대한 지원으로, 이 프레임웍을 사용하는 웹 애플리케이션들은 데이터베이스 서버와 빌트인 WEBrick 웹 서버를 사용하여 개발될 수 있다.




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

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

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

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


아래 이미지는 본문의 일부입니다.
사용자 삽입 이미지
위의 이미지 처럼 한눈에 들어오는 예제로 설명하고 있습니다. 보기 좋죠?
  1. IBM DeveloperWorks란 개발자들을 위한 다양한 정보를 제공하는 개발자 커뮤니티입니다.
    www.ibm.com/developerworks/kr [본문으로]
한국 IBM의 DeveloperWorks에서 Special Issue에 오픈 소스 라이선스 관련 글이 올라와서 소개를 하려합니다.
저도 그렇지만 오픈 소스 제품을 사용하려할때 문제가 되는 것 중의 하나가 License 관련 문제죠. 물론 그 보다도 관리자들의 오픈 소스 제품에 대한 불신이 더 큰 문제이지만요.

이 글은 현재 특허청에서 근무하는... 그럼 공무원인가요??? 이야 부럽삼... 암튼 현역 전문가가 쓴 글입니다.

원문 : 초보개발자를 위한 오픈 소스 라이선스 길잡이 Part 1: 기초개념 탑재하기

아래는 서문 부분을 발췌한 내용입니다.

소프트웨어의 태동기에는 특별한 용도에 사용되는 하드웨어에 소프트웨어가 함께 넣어져 판매, 설치되었고 하드웨어 가격이 너무 비싸 소프트웨어가 별도로 독립된 경제 재화로서 가치를 인정받지 못하였다. 그러나 1969년 IBM이 하드웨어와 소프트웨어를 분리한(unbundling) 것을 계기로 비로소 소프트웨어가 하나의 독립된 경제 가치를 부여 받고 소프트웨어 산업이 등장하게 되었다.
소프트웨어는 원본과 복제물의 성능이 완벽하게 같고, 일단 복제되어 시장에 빠르게 유포되면 개발사는 투자 비용을 회수도 못하는 특성이 있다. 이에 복제 행위를 방지하는 취지의 법적 규제가 중요한 쟁점이 되었고, 이러한 보호의 관점에서 소프트웨어의 지적 재산권은 주로 저작권과 특허권에서 발전했다. 보호 관점의 법제는 사용권만을 부여하고 재배포나 변경을 금지하는 독점 라이선스와 맥락이 같다.
인터넷 기술 발전과 보급으로 많은 정보를 쉽게 취득할 수 있게 되었고, 취득한 정보를 바탕으로 새로운 정보를 만들어내기가 더욱 쉬운 상황이 되고 있다. 소프트웨어의 경우도 개발시 알려진 여러 소스코드를 이용하여 제품을 쉽게 개발할 수 있는 환경이 제공된다. 이렇게 공중(public)에 기여된 정보를 이용하면 개발 비용과 기간이 줄어든다는 장점이 있다. 특히, 리눅스의 성공은 이러한 정보 공유가 보호를 강하게 하는 것보다 사회 전체의 측면에서 긍정적이라는 논거가 되어, 기존의 보호 관점에서 발달한 소프트웨어의 지적 재산권에 대해 많은 비판과 논란을 가하고 있는 상황이다.
개발이 다 된 상황에서 개발사가 기여자의 위치에서 자신의 제품을 공중에 기여하는 것은 쉽지 않은 일이다. 현재 공중에 기여되어 알려진 소스코드는 오픈 소스 라이선스가 적용된 경우가 대부분이다. 이러한 오픈 소스 라이선스는 정보 공유 및 확산을 목적으로 하고 있어, 이용된 오픈 소스가 자신의 제품 개발에 큰 역할을 했으면 기여자로서 자신의 제품 정보도 공개할 것을 라이선스의 주요 목적으로 하고 있다. 다음 회에서 연재되겠지만 오픈 소스 라이선스에는 여러 종류가 있고 각기 자신의 개발 제품을 어느 정도까지 공개해야 하는지 그 정도의 차이가 구분의 핵심이라고 할 수 있다.
이번 회에서는 우선 소프트웨어의 특성과 보호의 관점에서 발달한 저작권과 특허권의 특징을 비교하고 독점 라이선스와 오픈 라이선스의 개념적 차이에 대해 설명하기로 한다.


+ Recent posts