Tomcat clustering 관련 문서에 이어서 Eclipse에서 변화관리를 위해 Subversion을 사용하는 법에 관련된 문서를 소개하려합니다.

 변화 관리라 하면 CVS라는 이름이 널리 알려져있었습니다. Eclipse[각주:1]에서도 CVS관련 기능이 있죠. 이 문서에서는 Subversion이라는 새로운 변화관리 시스템을 Eclipse에서 사용하는 방법을 설명하고 있습니다. Apache software foundation에서 진행중인 많은 프로젝트들이 Subversion을 이용하고 있죠. 이런 프로젝트에 Eclipse를 이용하는 방법을 알려줍니다.

원문 : Eclipse에서 Subversion을 사용하는 방법 (한글) (부제 : 쉬워진 통합)
이 문서는 IBM DeveloperWorks의 오픈소스 관련 문서들 중에서 하나입니다.


변화 관리(change-management) 기능에 액세스 하기 위해서, Eclipse는 처음부터 Concurrent Versions System (CVS)과 완벽한 통합을 도모했습니다. 이제, Apache Software Foundation에서 운영하는 많은 프로젝트들은 Subversion이라고 하는 변화 관리 시스템을 사용하고 있습니다. Subversion 저장소를 사용하는 프로젝트에 Eclipse를 사용하는 방법을 배워봅시다.


Eclipse는 대중적인 오픈 소스 변화 관리 시스템인 CVS에 대한 지원을 통합해 왔습니다. CVS의 기능과 그 한계는 잘 알려져 있지만, 많은 그룹들은 더 나은 확장성, 변화 합병 및 버전 브랜칭(branching) 지원, 바이너리 파일 포맷 지원을 제공할 수 있는 다른 버전 관리 시스템을 연구하고 있습니다.

Subversion (SVN)은 CVS를 대체하는 것으로서, 향상된 성능(지능형 로컬 캐싱과 데이터베이스 백엔드 중심), 쉽고 빠른 브랜칭(branching), CVS 사용에 따른 단점 향상을 제공하고 있습니다.

Eclipse에 Subversion 지원을 추가하는 방법과 IDE에서 기본적인 버전 관리를 수행하는 방법을 배워봅시다.

시작하기 전에

Eclipse를 다운로드 하여 설치해야 한다. 자신의 플랫폼에 맞춰 Eclipse SDK를 다운로드 하면 기본 Eclipse IDE(Eclipse Platform)과 Java™ Development Kit이 생긴다. C/C++로 작업하려면, C Development Tooling (CDT) 웹 사이트를 방문하여, 업데이트 매니저를 사용하여 CDT를 설치하라. (업데이트 매니저 사용 방법은 다음 섹션에서 설명한다.)

또한, Subversion 저장소에 액세스 해야 한다. 한 가지만 설정해야 한다면 Subversion 웹 사이트에서 제공하는 문서를 참조하라. 데모용으로 Subclipse 프로젝트를 검사하고, 필자의 LAN의 저장소에서 프로젝트로 작업하는 방법을 보여 줄 것이다.





  1. Eclipse에 대한  정보는 [Eclpse 개발자를 위한 프로젝트 정보]를 참조하세요
    Eclipse project homepage : http://www.eclipse.org [본문으로]
이번에도 [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 웹 서버를 사용하여 개발될 수 있다.




 이번에는 지난 달에 소개한 오픈 소스 라이선스 길잡이의 두번째 글을 소개하고자합니다.
소프트웨어 개발자라면 누구나 한번쯤은 생각해봤을 라이선스 관련 문제에 관해서 알려주는 글입니다.
각종 라이선스에 대한 설명과 라이선스 관련 실례를 알려주고 있습니다. 스카이프도 라이선스 관련 문제가 있었더군요.

원문 : 초보 개발자를 위한 오픈 소스 라이선스 길잡이 Part 2: 오픈 소스 소프트웨어와 라이선스의 이해

 아래는 원문의 서문입니다.

웹 2.0으로 대두되는 인터넷 환경의 패러다임 변화에 있어서 오픈 소스 소프트웨어의 영향력은 그 누구도 부인하지 않을 것이다. 많은 오픈 소스 소프트웨어가 웹 2.0을 가능하게 했던 원동력이며, 지금도 수많은 오픈 소스 소프트웨어가 우리의 인터넷 세상을 점점 풍요롭게 바꿔가고 있다.
가트너에 따르면 오픈 소스 소프트웨어의 시장점유율은 2005년 11%(42.6억 달러)에서 2010년에는 24%(161.5억 달러)로 28.5%의 성장할 것이며,  2010년까지 적어도 상용 소프트웨어 제품의 80%가 오픈 소스 코드를 포함하게 될 것이라고 한다. 그 외에도 디지털 기기에 포함된 임베디드 소프트웨어를 중심으로 많은 하드웨어에서 오픈 소스 소프트웨어를 사용하지 않고서는 제품 단가를 맞출 수 없을 정도로 그 사용범위도 점점 더 확대되고 있다.
문제는 오픈 소스 소프트웨어 사용이 이처럼 늘어남에 따라 이로 인한 분쟁도 점차 늘어나고 있다는 것이다. 즉, 우리가 공짜로 사용해도 되는 것으로 알고 있는 오픈 소스 소프트웨어들은 거의 대부분 지적재산권으로 보호받고 있다. 이러한 지적재산권이 있는 소프트웨어를 사용하려면 일정한 사용 조건을 담은 라이선스를 만들고, 이러한 라이선스에 따라 소프트웨어를 사용해야 한다. 만약 조건을 위반하여 사용하면 라이선스 위반으로 법적 제재를 받는다. 그러나 오픈 소스 소프트웨어에서 제시하는 라이선스의 조건들이 어려운 것이 아니므로 조금만 주의를 한다면 오픈 소스 소프트웨어를 통해 제공되는 훌륭한 소스코드들을 자유롭게 사용할 수 있다.
이 글에서는 이러한 오픈 소스 소프트웨어를 자유롭고 안전하게 사용하기 위해 오픈 소스 소프트웨어에서 제시하는 라이선스라는 것이 무엇이고 이것이 어떤 법적 구속력이 있으며, 마지막으로 오픈 소스 소프트웨어에서 제시하는 라이선스와 그 준수사항들을 살펴보고자 한다.


+ Recent posts