개발관련/자바2009. 6. 12. 13:36

에너지 효율적 데이터센터 구축을 위한 팁 10가지

애플리케이션의 성능, 사용 용이성, 민첩성을 자세히 비교해 수 있는 방법을 알려 드립니다.



항시 CEO는 IT 관리에 대해 단순한 의문을 품곤 합니다. 왜 고객들은 새로운 온라인 주문 시스템에 불만을 표하는 것일까? 신규 웹 서비스를 출시하는 데 8개월이나 걸리는 이유는 무엇인가? 내가 즐겨 사용하는 재무 보고 애플리케이션이 오늘 아침에 문제를 일으킨 원인은 무엇인가?

하지만 IT 관리 측면에서 '회사가 어떤 애플리케이션 서버 기술을 사용하고 있는가' 에 대해 의문을 던지는 CEO는 거의 찾아보기 힘듭니다. 이는 상당히 중요한 사안이라고 볼 수 있는데, 왜냐하면 개발팀이 사용하는 애플리케이션 서버와 기업의 애플리케이션 성능/민첩성 간에는 직접적인 연관성이 있기 때문입니다.

좀 더 구체적으로 설명하자면, 애플리케이션 서버에서 사용되는 웹 컨테이너 기술은 애플리케이션의 품질과 개발자의 생산성을 결정짓는 중요한 요소입니다. 결국 웹 컨테이너 기술을 올바로 도입한다면 개발팀의 업무 효율이 향상되고 고성능 애플리케이션을 신속하게 개발할 수 있는 효과가 있겠지만, 선택을 잘못 할 경우에는 이 자체가 애물단지로 전락할 공산이 커집니다.

따라서 여러분의 비즈니스에서 애플리케이션이 중추적 역할을 담당하고 있다면 애플리케이션 서버, 웹 컨테이너 기술은 물론, 이들이 개발팀에 어떠한 영향을 미치는지 세심하게 조사해봐야 합니다. 이에 본 기사에서는 현재 널리 애용되고 있는 오픈 소스 옵션인 GlassFish와 Tomcat를 비교해 보는 시간을 마련했습니다.

많은 차이점을 보이는 두 가지 인기 옵션

GlassFish 커뮤니티가 제공하는 오픈 소스 애플리케이션 서버 GlassFish는 2005년 썬을 통해 선보인 이래로 개발자들 사이에서 큰 인기를 끌고 있습니다. GlassFish는 현재 두 가지 버전의 보급판(GlassFish v2와 새로 발표된 Glassfish v3 Prelude)이 시중에 나와 있으며, 그 중 GlassFish v2는 현재까지 다운로드 횟수가 약 9백만 카피에 달하며 2009년 한 해에만 이미 30만 개의 제품이 등록되었습니다. 여기에 신기능을 추가하고 기존 기능을 더욱 강화한 Glassfish v3 Prelude는 Java나 동적 언어(jRuby 등) 기반의 리치 인터넷 애플리케이션 개발에 더할 나위 없는 최고의 플랫폼으로 평가 받고 있습니다.

GlassFish는 웹 컨테이너의 일종인 Java EE 컨테이너에 속해 있는 반면, Tomcat은 그 자체로 웹 컨테이너를 구성하고 있습니다. 그리고 이러한 두드러진 차이점은 GlassFish에 여러 이점을 가져다 줍니다.

Tomcat 애플리케이션 서버는 Apache 소프트웨어 재단에 의해 개발되었으며, Sun과 JServ 개발자들도 이 프로젝트에 참여한 바 있습니다(초기 코드 드롭을 썬에서 제공). 오픈 소스 러이선스가 적용된 Tomcat은 초기 서버측 Java 도입 단계에서 핵심적인 역할을 담당했으며, 대기업들 간에 오픈 소스 소프트웨어의 붐을 일으키는 데 기여하기도 했습니다.

일반적으로, Tomcat 상에서 구동되는 애플리케이션은 GlassFish에서도 그대로 사용이 가능하나, 두 제품 간에는 애플리케이션의 성능, 확장성, 사용성 및 개발자 생산성에 영향을 미칠 수 있는 중요한 차이점이 있습니다.

이러한 차이점을 이해하기 위해서는 먼저 웹 컨테이너 기술에 대해 살펴보는 것이 중요합니다. 애플리케이션 서버에 속하는 웹 컨테이너는 서블릿, JSP(JavaServer Pages), 기타 웹 티어 컴포넌트의 관리를 담당합니다.

GlassFish는 웹 컨테이너의 일종인 Java EE 컨테이너에 속해 있는 반면, Tomcat은 그 자체로 웹 컨테이너를 구성하고 있습니다. 그리고 이러한 두드러진 차이점은 GlassFish에 여러 이점을 가져다 줍니다.

  • 간편한 마이그레이션. GlassFish v2를 이용하면 Enterprise Java Beans(EJBs), Java Persistence API(JPA), Java Message Service(JMS) 등의 이점을 확실하게 누릴 수 있습니다. 반면에 Tomcat의 경우 상기의 기술을 개별적으로 추가해 줘야 하는 번거로움이 있으며, 개발자는 그 기능을 일일이 구현해서 이들이 제대로 돌아가도록 해야 합니다.
  • 향상된 클러스터링 및 페일오버 지원. GlassFish v2가 제공하는 클러스터링과 정교한 고가용성 기능은 애플리케이션이 엄격한 엔터프라이즈급 SLA(Service Level Agreement)를 충족할 수 있도록 설계되었습니다. GlassFish v3 Prelude는 아직 클러스터링 프로파일이 적용되지 않은 관계로 로드 밸런서를 통해 클러스터링을 지원하고 있습니다.
  • 강력한 관리/모니터링 기능. GlassFish v2와 v3 Prelude 모두 관리 콘솔과 Command Line Interface(CLI)를 이용한 중앙식 관리 방식을 지원하고 있고, 특히 GlassFish v2에서 제공하는 Callflow Monitoring 기능은 애플리케이션 개발자 또는 서버 관리자가 애플리케이션이 가장 많이 사용되는 영역을 파악할 수 있도록 도와줍니다(이 기능은 GlassFish v3에서도 지원됨). 또한 여타 벤더들도 GlassFish Update Center를 통해 GlassFish를 간편하게 설치하고 각자의 소프트웨어를 활용할 수 있습니다. 반면에 Tomcat의 경우 새로운 소프트웨어 사용 시 이를 일일이 구성해주어야 하는 불편함이 있습니다. Update Center는 또한 EJB 3.1 같은 최신 기술을 손쉽게 액세스할 수 있게 해주므로 애플리케이션을 EAR 파일로 패키징하는 대신 EJB를 WAR로 번들링하는 것이 가능합니다.
  • 다양한 스크립팅 언어 지원. GlassFish는 Ruby/JRuby, Python/Jython, Groovy, PHP, JavaScript/Phobos, Scala 같은 다양한 언어들을 지원합니다(또는 지원 예정).

본격 비교: 웹 컨테이너와 관련한 또 다른 차이점

앞서 언급한 일반적인 이점 외에도 GlassFish이 Tomcat에 비해 두드러지는 점은 바로 웹 컨테이너 기능입니다. 몇 가지 예를 들면 다음과 같습니다.

  • v3 Prelude의 애플리케이션 재배치 시 세션 유지 능력은 개발자가 보다 단기간에 Java 웹 애플리케이션을 개발할 수 있도록 도와줍니다.
  • GlassFish v2/v3 Prelude는 서버를 재시작하지 않고 가상 서버와 HTTP Listener를 동적으로 재구성할 수 있게 해주는 반면, Tomcat에서는 리소스 풀을 변경할 경우 보통 애플리케이션 서버를 재시작해야 합니다.
  • v2와 v3 Prelude의 고성능·고확장 Grizzly Framework가 요청/응답 쓰루풋을 극대화합니다. 또한 GlassFish의 하위 웹 티어 레이어가 이 Grizzly Framework을 통해 구현되는데, Java로 제작된 이 프레임워크는 NIO API(확장 네트워크 및 파일 I/O)의 이점을 최대한 활용함으로써 높은 확장성 뿐 아니라 고도의 커스터마이징 능력까지 제공합니다.
  • GlassFish v2와 v3 Prelude는 다양한 성능 최적화 기능을 제공합니다. 그 중 하나로 각 밸브의 호출 방식을 간소화함으로써 Stack Depth를 제한하고 성능을 개선해 주는 밸브 아키텍처 수정판인 "Flattened Valve Invocation"을 들 수 있습니다. 또한 GlassFish v3 Prelude은 Tomcat 스타일의 밸브도 지원합니다.

그 밖에도 썬은 광범위한 확장성 테스트를 통해 Tomcat의 NIO 커넥터와 Glassfish를 비교해 보았습니다. 이 테스트에는 컨테이너에서의 시간 소모를 최소화하기 위해 단순한 서블릿이 이용되었고, 사용자 증가와 관련하여 각종 컨테이너가 지원할 수 있는 능력(작업/초)이 측정되었습니다. 가령 16,000명의 사용자를 기준으로 했을 때, 벤치마크 결과는 다음과 같습니다.

  GLASSFISH TOMCAT
작업/초 6988.9 6615.3
평균 응답 시간 0.242 0.358
최대 응답 시간 1.519 3.693
90% 응답 시간 0.6 0.75

올바른 제품 선택을 위해서는

애플리케이션 서버는 개발팀은 물론이고 기업 운영의 많은 부분에까지 영향을 미치는 중요한 요소입니다. 따라서 애플리케이션 서버 선택은 그 중요도 면에서 고도의 전략적 비즈니스 의사결정을 내리는 것과 맞먹는다고 할 수 있습니다. 이에 우리 썬은 GlassFish가 차세대 애플리케이션을 개발하는 개발자들에게 있어 최상의 옵션이 될 것이라고 자신 있게 주장하는 바이지만, 동시에 다른 대안에 대해서도 신중하게 검토해볼 것을 권하고 싶습니다. GlassFish와 Tomcat에 대한 추가 정보 및 비교 자료를 원하시면 썬 백서를 참조하십시오.

Posted by 자개비

PMP 시험에 합격했습니다. CBT 시험이라 결과를 시험을 마치면 바로 알 수 있습니다.
저의 경험을 잊어버리기 전에 간략이 적고자 합니다.

1. 시험공부 시작
  저는 다른 공부 때문에 PMP공부를 하게 되었습니다. 같이 공부하는 것 이왕이면 PMP 자격증도 따자라는 생각으로 시험에 응시했습니다. 환율이 많이 올라서 망설이다가 최근에 환율이 조금 떨어져서 시험에 응시했습니다. 6월30일부터 새로운 PMBOK으로 시험을 치른다고 해서 얼른 시험을 봐야겠다는 생각이었습니다.

재시험을 치르면 어쩌나 걱정했는데 다행이 합격했네요.

2. 시험공부
  PMBOK을 안 봤습니다. 내용이 너무 많아서 볼 엄두가 나지 않더군요. 시간도 많지 않고요. 시중에 있는 수험도서를 하나 선택해서 일단 한번 읽었습니다. 그리고 KITRI에서 주관하는 35시간짜리 PMP강의를 들었습니다.
 그리고 나니 일단 내용 이해와 흐름은 좀 파악이 되는 것 같습니다.

  그 다음은 문제를 풀었습니다. 각 지식영역별로 문제들을 풀어보았습니다. 틀린 문제와 맞았지만 제대로 이해안되는 부분은 다시 이해하려고 노력했습니다. 이때 틀린 내용 이해안되었던 내용, 암기해야할 내용 등은 노트를 했습니다. 노트한 것은 출퇴근 시간을 이용해서 암기를 하거나 보고 또 봐서 이해를 시켰습니다.

특히 암기해야 사항들(동기 이론 같은 것)은 노트해서 달달 외웠습니다. 그리고 생소한 용어나 자주 출제되는 툴&기법 등도 노트하고 외웠습니다. 그렇다고 무조건 외우기만 하면 안됩니다. 이해하면서 외웠습니다.

  그리고 몇일 전부터는 전에 틀리거나 맞히고도 이해안되었던 부분 다시 리뷰했습니다. 그리고 이틀에 걸쳐 파이널 모의고사를 2번 봤습니다.  모의고사 시험 성적은 비교적 괜찮았습니다. 이정도면 합격할 수 있겠다라는 생각이 들었습니다. 200점 가까이 맞추는 것이 목표가 아니라 합격하는 것이 목표이기 때문에 안전하게 합격할 수 있는 정도 수준으로 공부한 것 같습니다.

3. 시험 난이도
  초반에 문제를 푸는데 어렵다는 생각이 들더군요. 전체중에 초반 50문제가 좀 어려웠던 것 같습니다. 모의고사 난이도보다 조금 높다는 느낌이었습니다.
  그리고 번역도 이해를 방해하는 부분이 있는 것 같습니다. 시중에 판매하는 도서는 한글이 잘 정리되어 있지만 PMP 시험의 번역은 한글이 매끄럽지 못한 부분들이 좀 있습니다. 특히 용어는 한글로 표현한 것들이 혼동스럽더군요. 반드시 영어 지문과 병행해서 봐야하더군요.

  문제들은 보니 책이나 사이트에서 보던 문제와 동일한 것도 좀 보이고 전혀 생소한 문제도 보입니다. 특히 문제집에서 보아오던 문제내용이지만 질문이 아주 다른 각도에서 질문을 해 버리니까 답을 찾기 힘든 문제도 보이더군요.

  결론적으로, 문제를 많이 풀면서 틀린 문제, 이해 안되었던 문제를 분석하고 이해시키다 보면 자연스레 PMI에서 원하는 레벨정도가 될 것 같다는 생각입니다.

4. 시험 환경
  CBT는 처음이라 생소했습니다. 시험장에는 아무것도(시계, 필기구 조차) 가지고 들어갈 수 없더군요. 시험 테이블에 필기구와 연습지가 준비되어 있고, 계산기는 컴퓨터 계산기를 사용할 수 있습니다.
  화장실은 자유롭게 왔다갔다 할 수 있는데 출입시 반드시 출입시간을 적고 서명을 해야하더군요.

  이상입니다.

  저는 4시간 full로 채웠습니다. 마지막 종료 버튼을 누르는데 떨리더군요.
몇 십초 정도 기다리니 무슨 설문을 한다고 질문에 들어가는데 안내하시는 분에게 물어보니 안해도 된다고 하여 end 버튼 클릭하고 넘어갔습니다. 그리고 다시 몇 십초 지나니까.... Congraturation! 이라고 뜨더군요.
  마음속으로 쾌재를 불렀습니다. 그리고 안도의 한숨을 내쉬었습니다.
난이도가 좀 있어보여서 떨어질지도 모르겠다는 불안감이 있어거든요.
  아마도 70% 내외 정도의 점수에서 합격하지 않았을까 짐작해 봅니다.

'my story > 일상적인 이야기' 카테고리의 다른 글

서울대공원 둘레길 GPS 로그  (0) 2012.08.21
02-6454-3201 KB국민카드  (0) 2012.05.10
정보시스템 감리사 합격  (0) 2009.11.02
ISTQB 시험에 대하여(보충)  (0) 2009.03.18
ISTQB(FL) 합격  (0) 2009.01.29
Posted by 자개비

작년에 ISTQB 시험을 보고 간신히 턱걸이로 합격을 하였습니다. 얼마전에 디지털타임즈에 난 기사를 보니까,
국내 ISTQB 합격률이 50% 조금 넘더군요. 본 블로그(http://jagaevi.tistory.com/3)와 STEN에 올린 시험후기에
관심을 많이 갖고 계신 것 같아 보충 설명을 할까 합니다.

1. 영어시험

  - ISTQB 영문 실라버스를 읽는데 문제가 없으신 분
    이러한 분들은 영어시험이 장애가 안 되시는 분들입니다. 본질인 테스트이론에 충실하시면 될 것 같습니다.

  - ISTQB 영문 실라버스를 읽는데 부담이 되시는 분
    읽어도 해석이 바로 안되시는 분들은 영어공부도 준비를 하셔야 할 것 같습니다. 정말 시중에 나와있는
  얇은 문법책 또는 독해책이라도 공부하시고 준비를 하셔야 할 것 같습니다. 2009년도부터 시험시간이 75분인
  것으로 들었습니다. 영어 지문 해석이 잘 안되시면 시간 부족하실겁니다.
    실라버스에 있는 단어는 100% 암기하고 시험보러 가세요. 본인 사전을 가져가서 모르는 단어 찾을 수는
  있습니다만, 단어 찾는 회수 많아지면 시간부족해집니다.

2. 테스트이론
  실라버스 내용만 믿고, 실라버스 범위에서 문제해결이 가능할 것으로 생각하시면 합격 어려우실 겁니다. 실무
경험이 있으신 분들이야 문제가 없겠지만 실무경험도 없으시면 따로 교육을 받으시거나 테스팅 책을 보셔야 할
것입니다.

3. 테스팅 교육
  ISTQB 시험 대비 교육과정이 몇 군데 있더군요. STA에서도 하고, SUN에서도 하더군요. 그런데 가장 저렴한
곳은 KITRI(http://www.kitri.re.kr/retrain/retrain_03.jsp)입니다. 재직자환급도 받기 때문에 최고로 저렴하지요.
강의는 STA분들이 하시므로 질은 좋다고 봐야죠.
  교육을 받으시면 시험에도 도움이 되시고 실무에도 도움이 되실겁니다.

4. 시험 난이도 및 문제유형
  저도 영어때문에 고생을 했는데, 돌이켜 보면 시험 난이도는 높은 편은 아닌 것 같습니다. 아무래도 Foundation
Level 이니 어렵게는 안 내겠죠. 영어만 아니라면 아마도 합격률이 70~80%까지 올라가지 않을까 생각합니다.
  문제유형은 상황에 대한 문제가 꽤 많이 나옵니다. 다른 시험과 다르게 ISTQB는 국내에 알려진 문제가 거의
없어서 문제유형을 경헙하기 어렵습니다. 그나마 STA에서 발간한 ISTQB 수험서가 유일한 것 같습니다. 그거라도
참고하시면 좋을 것 같고요, 아니면 외국서적(많더군요)을 사서 준비하시는 것도 괜찮을 것 같습니다.

ISTQB가 보편화되지 않아서 시험준비와 유형에 대한 정보가 부족하여 불합격하시는 분들도 계실 것 같습니다.
이 글이 보탬이 되어서 부디 많이 합격하시기 바랍니다.

이상입니다.

'my story > 일상적인 이야기' 카테고리의 다른 글

서울대공원 둘레길 GPS 로그  (0) 2012.08.21
02-6454-3201 KB국민카드  (0) 2012.05.10
정보시스템 감리사 합격  (0) 2009.11.02
PMP 시험 후기  (0) 2009.06.02
ISTQB(FL) 합격  (0) 2009.01.29
Posted by 자개비