달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
자바를 이용하여 개발하는 개발자 대부분은 아마도 서버용 Application을 개발할 거다.
자바라는 언어가 현재는 main stream으로 자리를 잡았지만, 윈도우즈 애플리케이션 보다는 서버 환경에 적합한 기술로 알려지고 있다. 하지만, 개발자들은 대부분 자신이 만든 코드가 동작하는 환경에는 알려고도 하지 않을 뿐더러, 어떤식으로 접근해야 하는지 알지 못한다.
예전에는 하드웨어의 성능을 최대한 이용하기 위해서 WAS와 Web Server의 세부적인 부분까지 알고 튠닝을 하는 일이 많았으나, 요즘은 이를 제대로 알려고 하는 사람들을 찾아 보기 힘들다. 물론 기본적으로 설정한 값들을 그대로 사용해도 잘 동작할 만큼 하드웨어의 성능과 넉넉한 메모리 때문에 시스템 동작에 큰 영향을 주지 않는다고 할지도 모르지만, 개발자는 항상 최악의 상황까지도 염두에 두어야 한다.

이 책을 보게된 동기는 제목중에 있는 "코딩 습관"이라는 말 때문이었다. 하지만 전체적으로는 코딩을 위한 내용이라기 보다는 서버의 튜닝과 문제점 해결에 대해 많은 내용을 다루고 있기 때문에, 초보자들에게 좋은 가이드가 될 것 이라 생각된다.
 
이 책의 저자는 SDS에서 실무 경험을 쌓은 엔지니어이다. 책은 가상의 인물을 통해서, 실제와 같은 상황을 예를 들어 개발자가 개발에 관한 기술들을 습득하고, 활용하는 방법에 대해 익혀나가는 것을 독자와 같이 공유토록 이끌어 간다.

개발이라면 코딩이 끝이라고 생각하는 것에서, 시스템 환경 구성과 문제를 어떤 식으로 해결할 지에 대한 가이드가 될 수 있는 책이라고 생각돤다. 이러한 점에서는 제목에 포함되어 있는 코딩 습관이 별로 어울리진 않을지라도, 한번쯤은 읽어 볼만한 책이라 생각된다.

책에서 다루고 있는 내용을 간략하게 소개하면 기본적인 시스템의 메모리 관리와 GC의 종류들과 이를 어떻게 활요할지, 그리고 프로파일링 툴들에 대한 설명들과 Java의 메소드와 API들에 대한 성능및 목적에 맞는 사용법에 대해서
IO에 대한 병목 처리와 로그의 중요성을 설명하고 있다.

그리고 WAS 또는 서버 설정을 위한 기본적인 Thread와 인스턴트 설정에 대한 것과모니터링 API에 대한 JMX에 대한 소개와 사용 방법에 대해서 설명을 한다. 그리고 책의 마지막에는 저자가 실제 있었던 상황들을 이를 해결하기 위해서 사용했던 방법론들을 예를 들어 독자들에게 설명한다. 

결론적으로 이 책은 국내에서 찾아보기 힘든 주제를 다루고 있는 책으로, 초보자들이 전반적인 지식을 얻기에는 도움이 될거라 생각한다. 하지만 제목 대로 좋은 코드를 다루거나 하지는 않기 때문에 코딩 관점에서 책을 보게되면 약간의 실망을 가질것이다. 책에서 다룬고 있는 여러가지 툴들은 개발자와 테스터에게 좋은 툴과 무기로 제공될거라 생각된다. 특히 자바 VM의 GC를 처리하고 이의 동작 방법은 자바의 메모리 관리를 이해하는데 도움이 될것이다.
:
Posted by 행복상자
며칠전에 블로그를 통해서, SpringSource Tool Suite(STS)의 무료 공개에 대해서 언급했었는데, 이제 공식적으로 무료로 공개한다고, 지난 5월 7일자(미국 시간)로 블로그의 "SpringSource Tool Suite is Now Free!" 라는 제목의 글을 통해서 발표했다.

글의 내용을 잠시 읽어보면, Rod Jonson이 지난 SpringOne Europe에서 약속하였던 것을 이행한다는 이야기이다.
그리고 이제부터는 SpringSource Tool Suite (STS)의 정식버전을 무료로 사용할 수 있다는 내용이다.
또한, Christan Dupuis의 최근의 Blog에 추가된 새로운 Feature(2.1.0.M1)들을 소개한다고 한다.

지난 번에는 블로그를 통해서는 Roo가 STS의 한 Feaure로 들어가있고, Roo를 사용해보기 위해서는 STS를 설치해보아야 한다고 이야기한적이 있는데, 이는 2.1.0.M1 버전 부터 가능할 거라 생각된다.

내가 STS에 관심을 갖고 있는 것은 SpringDM과 OSGi번들로 되어 있는 프로젝트 또는 개발된 Application을 제대로 지원하고 있는 툴이 없기 때문이다. 내가 작년부터 진행하고 있는 프로젝트에 도움이 되지 않을까라는 기대 때문에 이전부터 관심을 두어 있었다.

하지만, 아직 설치와 테스틀 해보지 않은 상태이므로, 툴의 장점을 알아가야 하는 과정을 밟아야 한다.
개발에 직/간접적으로 많은 도움을 줄거라는 기대가 있기 때문에, 조만간 날 잡아서 설치해볼 생각이다.

STS는 "download SpringSource Tool Suite"에서 다운 받을 수 있다.


:
Posted by 행복상자
2009. 5. 8. 09:04

Google Trend로 보는 웹 기술 좋아하는 것/Google2009. 5. 8. 09:04

Google Trend를 이용해서, 최근에 사용되고 있는 웹 기술들을을 한번 살펴 보았다.
기술이라는 것이 단지 인기에 의해서 흥하고 망하는 것은 아니지만, 사람들이 관심을 끌고 있는 기술들이 무엇인지 안다면, 분명히 그 이유가 있다. 그리고 이를 안다면 개발하고자 하는 프로젝트에 적용할 때, 적지 않은 도움이 될거라고 생각된다.

내가 회사에서 관련 있는 프로젝트는 ExtJS를 기본 Javascript Framework로 사용하고 있는데, ExtJS는 라이센스가 유료이다. 그리고 많은 Component를 개발자에게 제공하지만, 이를 숙달할수 있도록 익히기 위해서는 약 2달정도의 공부할 수 있는 시간이 필요하다. 왜냐하면, Javascript와 CSS의 기본을 충분히 알지 못한다면, 각 Componet를 원하는대로 쉽게 제어하기 힘들기 때문이다.
그래서, 최근에는 JQuery를 검토하고 있고, 이는 생각보다 개발자드의 코드를 많이 줄여주고, 코드를 단순화 시키는데 도움이 된다. 

Google Trend를 통해, 이러한 기술들에 대한 사람들의 관심도를 알아보기 위해서 검색을 해보니, JQuery에 대한 관심도가 상승곡선을 타고있고 Prototype과 ExtJS는 상대적으로 낮은 traffic을 보여주고 있다.

     jquery: 6.40    prototype: 9.80    extjs: 1.90

 위 그래프는 JQeury의 관심도가 ExtJS보다 약 6배정도 높다는 것을 보여주고 있다. (ExtJS를 1이라고 볼때, JQeury는 6.40의 traffic을 보여주고 있다.)  Prototype의 traffic은 초기부터 현재까지 거의 일정하다. 이를 사랑하는 사람들이 꾸준한 애정을 가지고 있다고 할 수 있다.

다음은 개인적으로 관심을 가지고 있는 Microsoft의 ASP.NET MVC에 대한 사람들의 관심도를 알아볼 것이다.
최근에 ASP.NET 3.5의 Extention으로 마이크로소프트 사는 MVC프레임워크를 개발하고 1.0버전을 공식 발표했다.
이에 대한 사람들의 관심도는 기대 이상으로 보인다. 향후에 이를 이용해서 개발하는 개발자들이 꾸준하게 늘거라 생각한다. 그리고 MS에서는 Asp.net에서 제공하는 기본 Javascritp framework으로 JQuery를 제공하고, 이를 Visual studio에서 툴로서 지원하고 있다. 

최근에 많이 사용하고 있는 Spring MVC와 Structs를 비교해서 검색해 보았다.
Spring MVC는 꾸준하게 관심도를 유지하는 반면에, Structs는 시간에 지남에 따라 상대적으로 관심도가 줄어 들오 있다. 이에 반해 MS의 ASP.NET MVC는 최근에 발표된 이후로 많은 관심을 끌고 있음을 아래 차트를 통해서 알수 있다.
 
    spring mvc: 2.10    struts mvc: 1.00    asp.net mvc: 1.40  

위의 차트가 모든 것을 다 말해줄수는 없다. 최근에 발표되었기 때문에 MS의 ASP.NET MVC가 사람들의 관심을 끌고 있을 수도 있고, 검색 조건에 따라서 차트의 결과가 달라질 수도 있기 때문이다.
그러나 분명한 것은 개인적으로는 MS에서 발표한 MVC 프레임워크와 Scheffold 기능은 오픈 소스에서 진행되었던 여러 프로젝트의 장점들을 따서 만들었기 때문에 개발자들에게 도움이 될거라는 점이다.

어떤 기술을 선택할지는 개발자의 몫이다. 기간과 리소스와 개발자들의 기술 수준을 고려해서 프로젝트 초기부터 잘 검토한다면, 효율적인 개발이 이루어질거라 믿는다. 초기에 제대로 검토하는 시간과 노력없이 프로젝트를 진행해서 나중에 땜빵으로 누더기를 만드는 프로젝트를 여러번 보아왔다. 이 또한 개발자의 양심과는 대치대는 것이지만, 후 작업과 품질 좋은 코드를 원한다면, 초기에 많은 시간이 들여야 한다.

항상 하는 이야기지만, 개발자는 코드로 이야기 해야한다.
:
Posted by 행복상자
Spring Source에서 새로운 툴을 하나 발표하려는 것 같다.
미국 시간으로 어제 "Roo Alpha 2 is now available for download" 라는 제목으로 글이 하나 올라왔는데, 생소한 이름의 툴이 하나 올라왔는데, 기존에 진행되었던 프로젝트와는 많이 생소한 내용이었다.

"Roo Alpha 2" 라는 이름으로 이미 Relesed 된 상태로, 이미 국내에서도 여러 개발자들이 관심을 갖고 살펴보고 있는 듯하다. 이는 SpringSource의 Tool Suite(STS)에 Roo Plugin으로 포함되어져 있고, 이들은 "introduction to Roo" 라는 블로그의 글을 통해서 "Roo"에 대해서 간략하게 소개하고 있다.
간단하게 Roo는  SpringSouce 오픈 소스 프로젝트이고, TDD를 위한 툴이고 이를 위해서 Shell을 개발자에게 제공한다. 그리고 Roo는 개발자가가 새로운 언어를 배우지 않고 쉽고 빠르게 그들의 Application을 개발 할 수 있도록 설계되었다고 한다.

Roo는 무료로 사용할 수 있는 툴인데, 이번주, 즉 5월 7일자(미국시간)로 무료로 다운받아 사용할 수 있다는 것이다. 이에 대해서 시간 제약과 같은 규제는 따로 없다.
우리 시간으로 5월 8일에 다운 받아 쓸수 있다는 말이다. (참조: http://www.springsource.com/products/sts)

Roo는 나에게는 아주 생소한 주제이다. 그래서 잠깐 구글링을 해보 았는데, 국내의 여러개발자들이 벌써 이를 테스트하고 분석하고 있는 중이었는데, 그중 특이한 것은 이 Roo가 갑자기 하늘에서 떨어진 것은 아니라는 것이다.
이미 일민(Toby)이가 이를 대한 소개를 한 글이 있었다. 2006년도에 TES2006에 참석해서 배운 내용을 정리했던 것인데 "TSE2006 넷째날 두번째 세션 - ROO"를 보면 이해에 도움이 될거라 생각된다.
그가 2006년에 Roo에 대해 알았다면, 이는 참 오래된 감춰진 프로젝트의 하나일 것이다.

그리고, "Introducing Spring ROO: Part 1" 의 글을 보면, 현재의 Roo에 대한 간략한 소개와 설치에 대한 설명들이 있다. 이름 참조하면 설치에 무리가 없을 거라 생각되고, 참고로 여기서는 A1 버전을 사용하였다.

그리고 지난주에 유럽에서 열렸던 SpringOne에서 발료되었던 세션중에 "Presentation: "Extreme Productivity in Application Development"을 보면 좀더 새로운 Roo에 대한 정보를 얻을 수 있을 것이다.

최근에 Roo에 대한 새로운 이름에 대해서 투표를 진행했는데, Roo도 괜찮은 이름인것 같다. 어떤 이름으로 다시 공개될지 모르지만 현재는 Roo이고, 이는 당분간은 유지 될거라 생각된다.
(투표에 관심있는 사람은 http://cloud.springsource.com/vote 를 한번 찾아가 보시길... )
Roo 1.0 Release는 6월 중순에 발표될거고, 1.0 GA버전은 올해말에 공개될 예정이다.

Roo를 사용하게 되면 어떤식으로 프로그램 방법이 바뀔지는 아직 감은 없지만, 많은 사람들이 관시을 가지고 있었던 프로젝트 였던만큼, 큰 반향을 일으킬 소지는 충분히 있다. 간단하게 작성된 소스들을 보더라도, AspectJ와 많은 Anotaion들이 사용이 된다. 중요한 것은 새로운 것을 익히고 쓰기 위해서는 기본에 충실해야 한다는 것이다. 이를 쓰기 위해서도 역시 기본적인 개념과 사용법에 대해서 익숙해질 필요가 있다.

아무리 좋은 도구라도 사용하는 사람이 익숙하지 않다면, 좋은 인상을 주기 어렵다. 새로운 것을 배우는데 익숙하거나 즐기는 사람이라면 다르겠지만, 자기가 하고 있는 분야만이 전부라고 생각하는 소아적인 개발자와 관리자를 깨우치기는 정말로 어렵기 때문이다. 그래서 "돼지목에 진주"라는 말이 있나 보다.

:
Posted by 행복상자