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 디버깅 기능들을 다룰 예정이다. 나머지 세 개의 기술자료에서는 클래스 로딩 예외를 해결하는 방법과, 보다 민감한 클래스 로딩 문제들을 설명할 것이다.


 2007년도 얼마 남지 않았습니다. 새해가 다가오면서 새로운 걸 많이 준비하죠. 새해 목표, 새 옷, 새 직장... 그리고 새해 달력과 다이어리 등등 2008년을 위해서 준비할게 생각보다 많습니다.

 새 옷은 여자친구와 같이 사러 갈 생각이니 이제 남은건 2008년 달력과 다이어리를 준비하는 일입니다. 달력도 탁상 달력으로 세개 정도 구해서 큰 달력이 없긴 하지만 그럭저럭 불편함 없이 지낼 수 있을것 같은데, 다이어리는 좀 문제가 될것 같네요. 아버지께서도 다이어리가 필요하다고 하시는데, 제가 쓸 것도 없네요.
 작년 말에는 다이어리를 일부러 구하러 다니지 않아도 여유분이 하나씩은 생겼는데, 올해는 없네요. 경기가 나쁜건지, 관계사에 다이어리를 안 뿌리는게 올 연말의 트랜드인지...

 저희 전산실에 시스템 유지보수 업체에서인지 잘 모르겠지만, 오라클 다이어리를 몇개 줬더군요. 정규직들 몇명이 나눠가진 걸 봤는데... 아~ 2008년도 오라클 다이어리 좋더군요. 갑자기 나도 갖고 싶다는 생각이 뒷머리를 쾅하고 때립니다.

 염치없는 얘기지만 너무 기분 나빠하시지 말고 들어주세요. 혹시 주변에 2008년도 다이어리 주실 수 있는 분 없나요?
오라클 다이어리도 좋고, SUN도 좋고, IBM도 좋아요. ^^; 남는것 있으면 좀 주세용~

 이번에도 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 컨트롤 데모


 OTN[각주:1]의 Developer Article 중에서 스크립트 언어 관련 개발 문서중 하나를 소개합니다.

원문 : 오라클 환경에서 Python과 TurboGears 활용하기 [문서의 프린트용 화면보기]

 본 문서는 TurboGears 프레임워크를 이용해서 Python으로 Oracle Database 기반의 웹 어플리케이션을 개발하는 방법을 알려줍니다.

저자 – Daniel Rubio

TurboGears는 Python 사용자들이 오라클 데이터베이스 기반의 웹 기반 애플리케이션을 구현하는데 필요한 강력한 프레임워크를 제공합니다.

게시일: 2007년 11월

Python 은 지난 수 년 동안 매우 각광 받아 온 스크립팅 언어로, 매우 간결한 문법과 미니멀리즘적인 개발 환경을 제공합니다. Python의 열성 추종자들은 그래픽 인터페이스에서 로봇 공학에 이르는 다양한 스크립트 활용 사례를 구현해 왔습니다. 하지만 최근까지도 데이터베이스 기반의 웹 애플리케이션은 Python 커뮤니티의 미개척지로 남아 있었습니다. 하지만 이제 TurboGears가 제공하는 O/R(object-relational) 매퍼, 템플릿 툴킷, 기타 컴포넌트들을 활용하여 오라클 데이터베이스 기반의 웹 애플리케이션을 Python으로 개발할 수 있는 길이 열렸습니다.

Python과 TurboGears: 배경 지식과 아키텍처

지난 수 년 동안 개발된 써드 파티 라이브러리와 모듈들만 보아도 Python의 대중성을 익히 짐작할 수 있습니다. Python을 이용한 웹 애플리케이션의 개발에는 그 한계가 없는 것처럼 보입니다. 관계형 데이터베이스의 접근을 위한 Python 스크립트도 그 수를 헤아리기 힘든 지경입니다. 하지만 데이터베이스를 기반으로 하는 완전한 형태의 웹 애플리케이션은 Python이 지원하지 못하는 가장 큰 공백으로 남아 있었습니다.

Java Platform, Enterprise Edition(Java EE)이 데이터베이스 기반 웹 애플리케이션의 구현에 관련한 문제들을 해결하기 위해 각종 표준과 프레임워크들을 계속적으로 개발해 온 것처럼, 오늘날의 데이터베이스 기반 웹 애플리케이션 요구 사항을 지원하기 위해 Python 커뮤니티가 해답으로 제시한 것이 바로 TurboGears입니다.


  1. Oracle Technology Network의 약자로 오라클 기술 문서와 자료들을 제공합니다.
    http://otn.oracle.com/kr [본문으로]
 이번 달의 첫번째로 소개할 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 컴파일러에 의해 사용된다. 이 글에서는 위에 열거한 제약조건 유형들에 초점을 맞춰 설명할 것이다. 정보형 제약조건은 다음 기회에 다루기로 한다.


 리눅스포털에서 BitTorrent Azureus라는 프로그램 리뷰를 보고는 제 블로그에서도 소개를 해야겠다는 생각이 들어서 글을 올립니다. 소개하기로 마음먹은 이유는
1. BitTorrent P2P 공유 프로그램이다.
2. 자바로 구현된 P2P 공유 프로그램이다.
3. GPL 라이센스를 따르는 공개 소프트웨어이다.
4. Linux와 MS-Windows를 지원한다.
그외에도 실행할때 뜨는 로고가 독개구리다...랄지 뭐... 걍 맘에 들어서요.

사용자 삽입 이미지

이 녀석입니다. 독개구리



프로젝트 홈페이지 주소 : azureus.sourceforge.net
라이센스 : GPL

+ Recent posts