Java에서 Ajax로 웹개발할때 사용할 수 있는 웹 개발 프레임워크, 라이브러리, 툴킷에 대한 문서를 소개합니다. IBM DeveloperWorks에 공개된 문서중 "전문가다운 Ajax 애플리케이션 개발, Part 3: DWR, 자바, Dojo 툴킷을 사용하여 자바와 자바스크립트 통합하기"라는 문서입니다.
 Michael Garpin이라는 eBay의 개발자가 작성한 글로서 장동수님께서 번역하셧습니다.

지금 바로 이름이 떠오르는 자바(Java™) 웹 개발 프레임워크, 라이브러리, 툴킷만 해도 엄청나게 많습니다. 뭐가 뭔지, 어떤 것이 문제 해결에 도움이 될지 알아내는 것만 해도 버거운 일이죠. 그러나 Ajax 개발을 하고 있다면 반드시 알아두어야 할 라이브러리가 바로 DWR(Direct Web Remoting)입니다. 이 라이브러리는 자바 언어와 자바의 웹 기술을 사용하여 Ajax 개발을 더 쉽게 해줍니다. 이 라이브러리는 Ajax와 자바 웹 애플리케이션을 긴밀하게 통합하는 방법에 있어 기준을 제시합니다. DWR은 Ajax 기술들의 광범위한 연합인 Dojo 재단에 합류했습니다. 이 기사에서는 DWR을 사용하면 Ajax가 얼마나 간단해지는지 알아보겠습니다.

이 글은 Ajax 애플리케이션 제작에 사용할 수 있는 인기있는 자바스크립트 라이브러리들에 대해 알아보는 연재의 세 번째이자 마지막 기사다. Part 1에서는 Prototype 라이브러리를 사용하여 노래를 관리하는 웹 애플리케이션을 만들어 보았다. Part 2에서는 script.aculo.us를 사용하여 사진을 관리하는 웹 애플리케이션을 만들어 보았다. 이번에는 DWR을 사용하면 Ajax가 얼마나 간단해지는지 알아보자.

이 기사에서는 DWR 2.0을 사용한다. 예제 코드는 제네릭스(generics)와 어노테이션(annotation)을 사용하므로 자바 5 이상이 필요하다. 예제에서는 MySQL 5.12와 톰캣(Tomcat) 6.0.14를 사용하고 있지만, 쉽게 교체할 수 있을 것이다. 데이터베이스 접근을 위해 JPA(Java Persistence API)를 사용하며, JPA 구현체는 OpenJPA 1.0을 사용한다. 하이버네이트(Hibernate)나 Kodo 등의 다른 JPA 구현체로 바꿔도 된다. 이 기사에서는 Ajax 디버깅을 위한 멋진 도구인 파이어버그(Firebug: 파이어폭스용 플러그인)를 사용한다. 이 도구들에 대한 링크는 참고자료에 나와 있다.

DWR 소개

Ajax 애플리케이션이 처음 등장했을 때는 마법처럼 보였지만, 다행히도 개발하는 과정은 직관적이다. 모든 Ajax 상호작용은 서버 측 엔드포인트(endpoint: 웹 서비스에서 빌려온 용어)와 그 엔드포인트를 호출하는 클라이언트 측 코드가 필요하다. 또한 클라이언트와 서버가 주고받는 데이터를 직렬화(serialize)하는 코드도 필요하다. 서버 측 엔드포인트는 일반적인 서비스(RESTful이든 아니든)면 되지만, 클라이언트 측에는 종종 요구에 부합하는 좀 더 구체적인 코드가 필요하다. 강한 결합(tight coupling)을 피해야 할 때도 있지만, 필요할 때도 있다. 후자라면 DWR이 준비된 해결책이다. DWR은 선언적인 방법으로(declaratively) 서버 측 코드를 Ajax 엔드포인트로 만들 수 있고, 모든 부가적인 설비도 자동으로 만들어 준다. 지금부터 구체적인 예제를 통해 DWR이 어떻게 동작하는지 알아보자.


 루비 개발을 위한 IDE로 이클립스의 RDT 플러그인이 발전한 Apatana Radrails가 유명하죠. 저도 Apatana Radrails를 설치해보고 이것저것 플러그인을 설치하는데 시간을 보내곤 했었습니다. 이번에 IBM DW에 올라온 문서는 이클립스에서 루비 개발을 위한 RDT 플러그인에 대한 문서입니다. 간단하게 RDT를 설치했을때 루비 개발에 사용하는 뷰들에 대한 설명이 정리되어 있으며, 추가로 소개된 관련 문서들을 참고하면 루비 개발을 시작하는 분들에게 도움이 될 것입니다.

원문 : 이클립스를 이용한 쉬운 루비 개발


3년 전 developerWorks의 "이클립스용 Ruby Development Tools(RDT)" 라는 기사에서 RDT의 몇 가지 특징에 대해 소개했습니다. 당시 버전이 0.5였던 RDT는 Aptana RadRails로 불리며 Aptana Studio나 이클립스를 통해 사용할 수 있습니다. 이번 기사에서는 RDT 플러그인에 추가된 새로운 몇 가지 특징에 대해 소개하고자 합니다.

RDT 플러그인의 이름과 일부 코드는 변경되었지만 기본적인 기능과 사용조건(licensing terms)은 그대로다. 이클립스에서 루비 개발을 처음 시작한다면 'Neal Ford'의 "이클립스용 Ruby Development Tools(RDT)"에 루비 파일을 생성하고 편집기를 커스터마이징하는 방법, 실행하고 디버깅하는 방법에 대해 나와 있으니 참고하길 바란다. 이 기사는 Ford의 기사를 바탕으로 썼으며 아래와 같은 항목을 살펴볼 것이다.

  • 코드 폴딩 — 클래스와 메서드 들을 코드 폴딩할 수 있다.
  • 아웃라인 뷰 — 아웃라인 뷰를 통해 좀 더 자세하게 볼 수 있다.
  • RI(Ruby Interactive) 뷰 — RDT를 통해 RI 문서를 사용할 수 있다.
  • 작업 태그 — TODO와 FIXME 같은 주석 키워드를 통해 작업을 생성할 수 있다.
  • 루비 브라우저 — 프로젝트 내에서 사용 가능한 루비 리소스를 손쉽게 볼 수 있으며 이를 브라우징할 수 있다.
  • 편집기 기능 향상 — 자동완성(중괄호, 괄호, 큰따옴표, 작은따옴표), 코드 어시스트 기능

시작하기

현재 RDT는 Aptana RadRails V1.0.3으로 불리며 Aptana.com에서 받을 수 있다. 새 버전을 받거나 이클립스 플러그인을 갱신하려면 Aptana's RadRails instructions를 참고하면 된다. Aptana 플러그인을 설치해본 적이 없다면 Plugging Aptana into an existing Eclipse configuration을 참고하자. 또한 Aptana에서는 RadRails 문서를 통해 특정 운영체제에서 생기는 문제 해결방법도 제공한다.


 요즘엔 Oracle 11g가 출시되고 RAC, GRID 등의 다양한 기능을 제공하지만 아직까지 Oracle 9i를 고집하는 시스템도 있다. 특히나 지금 근무중인 곳은 대형 시스템이다보니 한꺼번에 10g나 11g로 옮겨가는 것을 꺼려하고 있다. 이곳만해도 "만약 작업 소요 시간이 지금보다 느리게 나오면 어떻할거냐"는 문제와 함께 "여러대의 DB를 동시에 옮기는데 따른 서비스 중지 시간" 등의 문제로 인해서 쉽게 결정을 못하는 상태이다. 이런저런 문제가 있긴하지만 예산과 인력만 투입된다면 처리될 문제이다. 적어도 내가 보기엔...

물론 DataStage나 기타 관제 소프트웨어, 백업 구성 등등 신경쓸 문제가 너무 많다는것도 맘에 걸리긴 한다. 이런 문제를 한방에 해결하려면 도데체 몇군데 업체가 회의에 참가해야 할런지... 막막하기만 하다. 그래서 일단 Oracle 9i와 9i RAC 설치 연습을 하려고한다.

 운영체제로는 Linux를 선택했다. 앞으로 Linux를 사용하는 곳이 점점 늘어날거라 생각하고 있고(지난번에 소개한 HP Oracle ExaData라는 제품이 Linux 기반이다. 앞으로 이런 제품이 더 많아질거라 생각한다.), 고가의 UNIX 장비를 소유하지 못한 중소기업체에서도 Oracle에 대한 수요가 늘어날거라 생각하기에 Linux에 Oracle 9i를 설치하려고 마음먹었다.

 DB를 선택했고 Linux라는 운영체제를 선택했으니 이제 Linux 배포판을 선택해야겠다. Oracle에서 배포하는 Oracle Unbreakable Linux(다운로드 링크에는 Oracle Enterprise Linux라는 이름으로 되어있다.)를 사용할까 했으나 업데이트에 문제가 있어서 CentOS 4.7을 선택했다. 현재 CentOS는 5.x 버전이 있으나 Oracle 9i 관련 설치 문서는 RedHat Enterprise Linux 4 기반의 문서가 많기에 CentOS도 4.x 버전대를 선택했다. (CentOS는 RedHat Enterprise Linux의 클론이다.)



다른 UNIX 장비에 Oracle을 설치할때와 순서는 비슷하다.

1. 필수 Software 설치 및 OS 환경 설정하기
2. oracle user 환경 설정하기
3. Oracle 9.2.0.4 설치하기
4. Oracle 9.2.0.8 Patch 설치하기
5. Oracle DB 생성하기


 윈도우를 사용할 때도 마찬가지지만, 리눅스 시스템을 사용하다보면 크지는 않지만 알아두면 편리한 기능들이 있습니다. 이번에 소개할 문서는 그런 내용을 알려주는 문서입니다.

열가지 트릭을 소개하고 있는데요. 반응이 없는 DVD 드라이브 언마운트하기, Screen으로 협력작업 하기, 시스템정보 수집하기 등등의 유용한 팁을 알려주고 있습니다.

원문 : 게으른 리눅스 시트템 관리자를 위한 열 가지 트릭

열 가지 트릭을 익혀 전 우주에서 가장 강력한 리눅스(Linux®) 시스템 관리자가 되어봅시다. 음, 전 우주가 아닐지도 모르겠네요..., 하지만 큰 물에서 놀려면 이 정도 팁은 익힐 필요가 있답니다. SSH 터널, VNC, 암호 복구, 콘솔 훔쳐보기 등을 익힙시다. 각 트릭에는 예제가 따라오므로 각자 시스템에서 실험해볼 수 있습니다.

최강의 시스템 관리자는 효율성부터 다르다. 일반적인 관리자가 두 시간 만에 마칠 작업을 효율적인 시스템 관리자가 10분 내로 끝낸다면, 회사가 시간을 절약했고, 시간이 돈이니까 효율적인 관리자는 보너스를 받아야 하지 않겠는가?

트 릭은 효율성을 관리층에게 증명하는 데 있다. 이 기사에서 이런 정치적인 트릭을 다루지는 않겠지만 게으른 관리자의 트릭 주머니에 열 가지 핵심적인 보석을 넣어줄 계획이다. 여기서 소개하는 팁은 시간을 절약해주며, 좀 더 효율을 발휘해 돈을 벌지는 못할지라도 최소한 헤일로 게임을 하는 데 더 많은 시간을 확보할 수는 있을 것이다.


  이번에 새로 나온 따끈한 제품입니다. HP의 하드웨어(DL360 G5)와 Oracle Database, Oracle Enterprise Linux가 결합된 제품입니다.

 나날이 늘어만가는 데이터 때문에 DW 시스템 운영자에게는 커다란 고민거리죠.  그래서일까요. HP와 Oracle이 손잡고 Exadata라는 제품이 나왔습니다.

 
 Oracle에서 공개한 문서를 보면요, Oracle Enterprise Linux 기반의 Oracle 11g Real Application Cluster 제품이네요. 단순히 스토리지라고 생각을 했었는데...

 DataWarehouse를 위해서 익스트림!!!한 성능을 보여준다고합니다.
가격도 익스트림하면 도입하기 힘들지 않을까합니다만...

 그래도 리눅스 기반의 제품이 나오니 반갑네요.
아직까지 공개된 정보가 별로 없어서 리눅스 기반의 RAC 제품이며, 소프트웨어와 하드웨어가 결합된 형식의 제품으로 판매할 계획이라는 것만 아는 상태입니다.

 시스템 운영자라면 가장 중요한 업무중에 하나로 꼽는것이 바로 백업일 것이다. "복구에 실패한 DBA는 용서해도 백업에 실패한 DBA는 용서 할 수 없다"는 모 강사님의 말씀처럼 백업의 중요성은 백번을 강조해도 과함이 없습니다.
 규모가 큰 업체라면 티볼리같은 백업 솔루션을 사용하기도하지만, 일반적인 중소기업에서는 백업을 위한 스토리지 확보도 힘든게 현실이죠.

 이 문서에서는 간단한 로컬 백업에서부터 넷트워크를 이용해서 분산 백업하는 방식 및 이와 관련된 사항들을 설명하고 있습니다. 백업을 위한 스토리지를 확보했다면 이제 백업을 실습해보고 실무에 적용해보는 것도 좋겠죠.


원본 : 리눅스에서 백업 자동화하기(쉽게 할 수 있는 보안 분산 넷트워크 백업 DIY)

매우 중요한 데이터 손실은 굉장히 파괴적입니다. 그럼에도 수많은 전문가가 데이터 백업을 무시합니다. 이유야 제각기 다양하겠지만 가장 공통적인 해명은 판에 박힌 백업 수행이 정말 허드렛일이라는 것입니다. 기계는 평범하고 반복되는 일을 하는 데 탁월하므로 본래부터 단조로운 일과 사람의 선천적인 미루는 성향을 줄이는 핵심은 백업 과정을 자동화하는 것입니다.

리눅스를 사용한다면 맞춤 백업 솔루션을 만드는 데 필요한 굉장히 강력한 도구에 접근할 수 있다. 이 글에서 다룰 솔루션은 간단하면서 좀 더 진보적이고 안전한 네트워크 백업을 수행하는 데 도움이 될 것이다. 이 일을 하는 데는 거의 모든 리눅스 배포판의 일부로 들어 있는 오픈 소스 도구를 사용할 것이다.




 각종 프로젝트를 진행하다보면 늘 맞닥뜨리게 되는 문제중 하나가 바로 문서화입니다. 지금 소개하려는 문서는 오픈소스 프로그램을 이용하여 어떻게 문서를 자동으로 생성할 수 있는지 알려줍니다.


원문 : 사람을 위한 자동화 : 전자동 문서화


프로젝트 문서화는 소프트웨어 제품을 내놓을 때 종종 필요악이 됩니다. 하지만 문서를 버튼 클릭 한 번으로 작성할 수 있다고 상상해 보세요. 사람을 위한 자동화 연재에서, 자동화 전문가 Paul Duvall은 오픈 소스 도구를 이용해 어떻게 UML(Unified Modeling Language), 빌드 다이어그램, ERD(Entity-relationship diagram), 그리고 심지어 사용자 문서까지 생성할 수 있는지 설명합니다.

소 프트웨어 개발 프로젝트에서 문서 쓰기를 좋아한다고 말하는 개발자를 만날 일은 별로 없다. 프로젝트를 떠나거나 늘 외로운 개발자가 되거나 사용자가 한 명도 없기를 바라지 않는 한(프로젝트에 좋은 징조는 아닐 것이다) 소프트웨어의 목적을 다른 사람들에게 알릴 반영구적인 방법이 필요하다. 애자일 선언문의 '종합적인 문서보다는 동작하는 소프트웨어'라는 문장을 문서가 필요없다는 의미로 오해하는 개발자들도 있다(참고자료). 다른 한편으로는 사용자 또는 다른 개발자들에게 불필요한 문서라는 부담을 지울 필요도 없다. 나는 행복할 수 있는 방안을 찾고 있다. 한 번 맞춰보라. 이 글에서 자동화로 프로젝트 문서를 만드는 프로세스를 합리적으로 만들고 문서 작성의 비극을 줄이는 방법을 보여줄 것이다.

본 연재에 대해

개발자로서 우리는 고객의 프로세스를 자동화하기 위해 일한다. 하지만 대부분은 우리 스스로의 개발 프로세스를 자동화할 수 있는 기회를 간과하곤 한다. 더 이상 그러지 않기 위해, 사람을 위한 자동화 연재를 기획하여 소프트웨어 개발 프로세스를 자동화하는 실용적인 사용법들과 성공적으로 자동화를 언제 어떻게 적용하는지 설명하겠다.

내 경험에 비춰봤을 때, 두 개의 핵심 문제 때문에 소프트웨어 개발 문서화가 병들고 있다. 첫 번째는 아무도 그것을 읽지 않을 것이라는 가능성 때문이다. 두 번째로 흔한 문제는 문서 작성 시기가 거의 대부분 지연된다는 것이다. 이 두 개 문제는 서로 관련이 있다. 문서가 현재 있다면 사람들은 그것을 읽으려고 했을 것이다. 문서 생성을 자동화하는 것은 그것을 항상 최신 상태로 유지함으로써 소프트웨어 사용자에게 더 유용하게 만들 수 있다.

물론 문서 작성을 자동화함으로써 다른 종류의 장점도 얻을 수 있을 것이다. 하지만 보통 고통을 유발하는 문서화 작업들을 자동화하는 방법에 초점을 맞추겠다(참고자료를 참조하여 아래 목록에 있는 도구 링크를 참조하라).

  • UMLGraph를 사용하여 현재 소스 코드를 기반으로 UML 다이어그램 생성하기
  • 스키마스파이(SchemaSpy)를 사용하여 데이터베이스에 있는 테이블과 관계들을 ERD로 생성하기
  • 그랜드(Grand)를 사용하여 앤트 빌드 타깃과 그 관계를 빌드 다이어그램으로 만들기
  • Doxygen을 사용하여 소스 코드 문서 작성하기
  • 독북(DocBook)을 사용해 사용자 문서 만들기

다음과 같은 순서로 설명할 것이다.

  1. 각각의 작업을 직접 수행할 때 생기는 이슈들을 설명한다.
  2. 아파치 앤트(Apache Ant)를 이용하여 그와 관련된 문서 또는 다이어그램 생성 도구를 사용하는 예제 코드를 보여준다.
  3. 코드 예제를 사용하여 만든, 즉 "스크립트로 생성한 문서" 이미지를 보여준다.

본 연재에서 보통 그래왔듯이, 모든 예제는 무료로 사용할 수 있으며 여러분의 프로젝트에 도입할 수 있는 오픈 소스 도구들을 사용하고 있다. 몇몇 도구(예를 들어, UMLGraph와 그랜드)는 그래프비즈(GraphViz) 같은 부가적인 도구를 사용하기도 한다. 이것은 특정 도구가 생성한 .dot 파일을 이용한다.


SQL 배움터(제2판) 상세보기
<b>우용태</b> 지음 | 생능 펴냄
SQL 입문서. 이 책은 데이터베이스 등장 배경과 역사, 특징에서부터 SQL 명령문의 종류와 사용법, 검색 및 행렬, SQL 함수와 데이터 조작어, 분석함수 등의 내용으로 구성했다.
직접 수업을 들은적은 없지만 모교(국립창원대학교)에서 데이터 베이스를 가르치시는 우용태 교수님의 책입니다. 꼭 한번 수업을 듣고 싶었는데, 컴퓨터 공학과 학생이 아니라서 수강을 못 했었죠. 음... 진드기처럼 달라붙었었다면 수업은 들을 수 있지 않았을까...하고 생각은 해보지만, 불청객 신세는 그때도 지금도 사양하는 편이라서... ^^;; 그다지 좋은 처세술은 아닌것 같지만요...

암튼, 창원대학교 컴퓨터 공학과는 제게 여러가지 전환점을 준 곳입니다. 여기서는 학부생 데이터베이스 수업때 MySQL을 사용하지 않고 Oracle을 사용했었습니다. 거의 한해 등록금에 가까운 돈을 줘야만 학원에서 들을 수 있었던 수업을 학교에서 들었죠. 그때 국립대라서 등록금이 일년에 백만원이 조금 안되었었습니다. 나름 효도했다고 생각합니다. ^^

표지만 좀더 보기 좋으면 좋을텐데요...

'IT 기술 > 기술서적' 카테고리의 다른 글

무선인터넷관리사 1급 자격증 교재 수령!!  (0) 2007.05.10
 실시간 아키텍쳐가 무엇인지 그리고 리눅스에서 지원되는 실시간 아키텍쳐에 대한 문서를 소개합니다.
 실시간 운영체제는 우리가 일반적으로 생각하는 정확한 연산이 이뤄지는 운영체제에 시간 제약이라는 요소까지 만족시키는 운영체제입니다. 이 문서에서는 "자동차가 충돌하는 시점에 에어백이 터지지 않는다면 없느니만 못하다"는 말로 실시간 운영체제의 예를 보여줍니다.


원문 : 실시간 리눅스 아키텍쳐 분석 (부드러운 실시간에서 딱딱한 실시간으로)


리눅스(Linux®)가 빠르거나 효율적이지 않다는 이야기를 하려는 의도는 아닙니다만, 어떤 경우에는 속력만으로 충분하지 않을 경우가 있습니다. 속력 대신 필요한 특성은 정해진 허용 범위 내에서 결정된 스케줄링 데드라인을 충족하는 능력입니다. 가상화 해법을 흉내내는 초기 아키텍처부터 표준 2.6 커널에 들어있는 옵션까지 다양한 실시간 리눅스 대안을 연구해서 각각이 어떻게 실시간을 달성하는지 살펴봅시다.

이 기사는 실시간 특성을 지원하는 몇 가지 리눅스 아키텍처를 살펴보고 실시간 아키텍처가 실제로 무엇을 의미하는지 설명한다. 몇 가지 해법이 리눅스에 실시간 능력을 부여하고 있으며, 이 기사에서 마이크로 커널 접근 방법, 나노 커널 접근 방법, 자원 커널 접근 방법을 분석하겠다. 마지막으로 표준 2.6 커널에 들어있는 실시간 기능을 설명하고 이를 활성화해 사용하는 방법을 보여주겠다.


 지금 사용중인데 일단 테마는 상당히 깔끔합니다. 보기 좋네요.
Firefox3용 테마로 좋네요. ^^

네이버의 모질라 파이어폭스 익스텐션 홈페이지


 물론 네이버용 파이어폭스가 공개된다는 기사가 먼저 나와서 당황하신 분들도 계시겠지만, 그런분들은 아래의 링크를 클릭하시면 자세한 속사정을 아실 수 있습니다.

[네이버의 모질라 파이어폭스 익스텐션 개발 뒷 이야기]보러가기

[내용 추가]
 설치후 파이어폭스를 재시작하면 익스텐션 설정 창이 뜨고 IE Tab 설치 웹 사이트로 화면이 이동합니다. 아마도 아직까지는 네이버의 일부 서비스를 이용하는데 IE를 써야만 하는 경우가 있나봅니다.
 대기업에서 이런 시도를 한다는게 정말 좋습니다. 앞으로도 이런 이슈가 많아져서 공개소프트웨어에 대한 관심과 사용율이 높아지면 좋겠습니다.

[내용 추가2]
 가끔씩 네이버 모질라 파이어폭스 익스텐션 홈페이지로 접속이 안 될때가 있네요.
Naver LAB에 접속하셔서 파이어폭스 익스텐션 링크를 클릭하시면 됩니다.

+ Recent posts