전체 글 1283

Java File Writing 성능 비교

JAPM을 업그레이드 할까 싶어서 Log Writing 부분을 개선하고자 해서 File Writing을 어떻게 하는 것이 제일 빠를까 테스트를 해봤다. 크게 아래 케이스인데. 1. FileWriter fw = new FileWriter(LOG_HOME+"writer.log"); 2. BufferedWriter bw = new BufferedWriter(new FileWriter(LOG_HOME+"writer.log")); 3. FileOutputStream fos = new FileOutputStream(LOG_HOME+"outputstream.log"); 4. BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(LOG_HOM..

호주 IT 상황

한국 IT에서 희망이 없다고 생각해서, 오래전 부터 호주에서 일자리를 구하는 것을 알아 보고 있습니다. 쉽지는 않은일입니다만, 여러 방면으로 알아보고 있는데, 오늘 호주 친구가 흥미있는 링크를 보내줬습니다. http://www.australianit.news.com.au/story/0,24897,25265857-15306,00.html 전체적으로 457 취업비자로 취업을 하기에는 힘든 상황 같습니다. 비자 문제뿐만 아니라 경기 침체로 호주에 IT 관련 일자리가 많이 줄어든것 같습니다. 호주 Oracle에 있는 친구 말로는 그래도 SOA쪽은 일자리가 좀 있다고 하네요. 매일 야근에... 박봉에서 벗어나서.. 일한만큼 받고... 가족과 함께 많은 시간을 같이 하고 싶습니다.

사는 이야기 2009.03.31

Aspect J를 이용한 초간단 APM 만들기 (2)

JMX를 이용하여 Thread 별 CPU 시간을 측정하는 방법 == ThreadMXBean mbThread = (ThreadMXBean) ManagementFactory.getThreadMXBean(); long[] ids = mbThread.getAllThreadIds(); for (long id: ids) { System.out.println(mbThread.getThreadInfo(id).getThreadName()); System.out.println(" CPU Time(" + id+ ")" + mbThread.getThreadCpuTime(id)); System.out.println(" User Time(" + id+ ")" + mbThread.getThreadCpuTime(id)); } == ..

Aspect J를 이용한 간이 APM 만들기.

AOP를 이용하면 특정 클래스의 메서드 실행 전후에 Code를 삽입할 수 있다. 사용자 애플리케이션의 비지니스 메서드에 Code를 삽입하여 1. 시작 시간, 종료시간을 측정하면 비지니스 메서드의 응답 시간을 측정할 수 있고 2. JMX를 이용하여 CPU 사용시간을 측정하면 비지니스 메서드의 CPU 사용률을 측정할 수 있다. 3. Thread Local 변수를 이용하면, Transaction이 시작될때부터 끝날때 까지를 측정할 수 있다. (예를 들어 JSP는 JSPServlet : service 메서드에서부터 시작되기 때문에, AOP에서 before advice에 transaction id를 set하게 하고, after advice에서 Trace내용을 flush하게 하면 된다. 그 중간에는 Thread L..

혹시 그런날 있으세요?

혹시 그런날 있으세요? 아침에 출근하려 했더니, 우리딸이 오랜만에 깨서 기어나오더군요.. 나쁜 아빠 맨날 늦게 들어가고 딸 깨기 전에 출근하고. 그래서 얼굴을 거의 못봤는데. 퉁퉁 부은 얼굴에 부시시한 얼굴로 여기저기 기어 다니는데 어찌나 귀엽던지.. 오늘 같은 날은 출근 안하고, 우리딸과 하루종일 있고 싶더군요. 사무실에 앉아 있는 지금도 계속 나오기전에 저를 바라보던 딸 얼굴이 눈에 선합니다.

사는 이야기 2009.03.20

ALM Overview PPT

그간 정리해왔던 ALM에 대해서 전체 그림을 다시 한번 정리하였습니다. 컨버팅 과정에서 폰트가 깨져서 좀 보기가 어려울 수 있습니다. 별도로 자료가 필요하신분들은 요청하시면 보내드리도록 하겠습니다. ALM의 전체 Full Process와 어떤 제품으로 어떻게 구혀하는지, 그리고 구현 전략에 대해서 기술되어 있습니다. 감사합니다. ALM (Application Lifecycle Management) View more presentations from Byungwook.

ALM 2009.03.16

SOA 시스템 설계에서 가장 큰 실수

SOA 시스템에 대한 컨설팅 (설계나 Code Inspection)을 다니다 보면, Goverance나 프로젝트 관리상에서도 문제가 많이 나타나지만, 설계상에서 근본적인 문제로 나타나는 패턴들이 있다. SOA의 근본적인 정의를 다시 내려보면, "비지니스적인 의미를 가지는 컴포넌트를 기업내의 통합된 프로토콜로 서비스하여 제공한다." 이다. BPM을 이용한 Composition이나 ESB를 이용한 유연성의 증대도 SOA 에서 큰 의미를 차지하지만, 일단 시작은 SOA를 통해서 제공되는 컴포넌트의 형태이다. 즉 기본이 되는 SOA 서비스와 그 인터페이스에 대한 정의와 구현이 제대로 되어야 하는데 통상적으로 SOA 시스템을 설계하고 구현하는데 있어서 발견되는 실수는 다음과 같다. 1. 표준 전문의 미사용 서비스..

아키텍쳐 /SOA 2009.03.16

코드리뷰 2.- 언제 어떤 리뷰 기법을 사용할것인가?

언제 어떤 코드 리뷰 기법을 사용해야 하는가? 그러면 이런 많은 코드 리뷰 기법 중에서 어떤 기법을 사용해야할까? 코드 인스펙션 코드 인스펙션의 전제는 전문성을 가지고 있는 인스펙션 팀이 일정한 프로세스와 패턴에 따라서 개선안을 찾는 작업이다. 즉, 고도로 훈련됨 팀과 기간이 필요하고, 어느정도 개발이 완료되어 있는 인스펙션 대상(시스템)이 있는 것을 전제로 한다. 인스펙션의 시기는 시스템이 개발되어 있는 시점인 Release이 유용하다. 필자는 두번의 Inspection을 권장하는데, 개발 초기에 비기능적인 구현을 끝낸 경우 1차 Inspection을 그리고, 개발이 끝난 후 시스템 테스트 (성능,확장성,안정성등)가 그것이다. 1차 Release는 주로 비기능적이고 Risk가 높은 부분을 구현하는 단계..

ALM/Task Management 2009.03.12

코드 리뷰 - 1. 코드 리뷰 기법들에 대한 소개

들어가기에 앞서서. 소프트웨어의 품질을 보장하기 위한 활동은 테스팅, 일일 빌드, 프레임웍의 사용, 개발 패턴들 수 없이 많은 방법들이 있다. 그중에서 개인적으로 생각하건데, 코드리뷰 만큼 적은 투자로 큰 효과를 얻을 수 있는 기법은 없는 것 같다. 이 문서에서는 코드리뷰에 대한 몇가지 기법에 대한 정리와 함께 적용 방법에 대해서 간단하게 소개해보고자 한다. 코드 리뷰의 시초는 Fagan에 의해서 소개된 코드 인스펙션에서 기인한다. 소프트웨어의 개발이 끝난후에, 전문 인스펙션팀이 정해진 프로세스와 패턴에 따라서 코드를 검증하고 Defect를 찾는 프로스를 코드 인스펙션이라고 한다. 코드 리뷰란, “코드를 실행하지 않고 사람이 검토하는 과정을 통하여 코드상에 숨어있는 잠재적인 결함(Defect)를 찾아내고..

ALM/Task Management 2009.03.11

아... 대외 활동 좀 해야겠습니다.

작년에 ALM 발표나 좀 하고, Hudson에 대한 글을 올린 것.. 마소에 기고 몇개? 요즘 가끔 조대협?? 하면 자바서비스넷 운영하셨지요? 내지는 OKJSP에 글 많이 올리시는 분?? 대외 활동이 뜸했나봅니다... 블로그에서 조용히 살고 싶은데... 어느덧 이원영사장님(주:자바서비스넷의 최초 운영자)나 허광남씨 (현 OKJSP의 운영자)를 밀어내고 엉뚱한 사이트의 운영자가 되어 있지 않나.. "그 사람? NXX에서 JSP만 해서 웹 밖에 몰라..." 라는 소리가 들려오질 않나... 알려지지 않은것은 문제가 안되는데.. 잘못알려져서.. 엉뚱한 스트레스를 좀 받는 것 같습니다. 자바지기 박재성님처럼 책을 써야 하나... 아니면 JCO 컨퍼런스에서 발표라도 해야 하나... 아무튼 대외 활동이 너무 없었나 ..

사는 이야기 2009.03.11

요즘 IT JOB 상황들...

금년에 S 보험사의 차세대 프로젝트, D 증권인가 차세대 그리고 IFRS 프로젝트 등으로 시장에 프로젝트가 많을것으로 예상했으나... OKJ** 사이트에 들어가도 프로젝트 구하기가 어렵다는 이야기들이 많고 뉴스를 봐도 http://www.ddaily.co.kr/news/news_view.php?uid=47642 인원 감축이야기고... 실제로 내 경우도 H社의 미국 프로젝트가 취소되었고... 지금 들어와 있는 K社의 프로젝트도 곧 끝날테고, H社의 차세대도 금년 5월정도면 끝이고, H증권社도 올해 5월 오픈, 파트너들도 이야기 들어보면 4월이나 5월즘에 인력들이 나온다던데.. 전체적으로 시장이 안좋긴 안좋고. 인력 과잉이라고는 하는데.. 왜? 프로젝트는 엄청 많고... 사람은 모자르고.. 사람좀 구하려고 ..

사는 이야기 2009.03.10

Short Release와 회귀 테스트, Itertive and iteration 방법론의 사례

요즘 모회사의 차세대 시스템의 오픈을 막바지에 두고, 성능 향상 컨설팅에 나와 있습니다. 주로 하는 작업이 Code Inspection을 통하여 구조 개선 및 성능 개선을 하는 작업입니다. 그런데, 코드를 보면서 이해가 안되는 아키텍쳐가 종종 있습니다. 이런 의도가 아닐텐데 라던지.. 아키텍쳐 구성이 잘못되었다던지. 그런데 이미 구현이 끝나가는 단계에서 이런 아키텍쳐를 변경하기는 거의 불가능합니다. 알면서도 당하는 케이스라고나 할까요? 이미 여러 코드들이 동일 패턴으로 구현이 되어 있기 때문에, 공통부라면 어떻게 변경을 시도해보겠지만, 아키텍쳐적인 문제나, 통신 전문 같은 경우는 변경이 불가능합니다. 결국 울며 겨자 먹기로 CPU를 늘리거나, 다른 부분의 코드를 튜닝해서 목표 성능치를 내야 겠지요. 그런..

ALM/Task Management 2009.03.04

JCO 컨퍼런스 강의 프리뷰.

미국 출장과 호주 교육등이 얽혀서. 10회 JCO 컨퍼런스에 참가가 불확실했었습니다. 이래저래 정리가 되서 아마 내일에는 참석하지 않을까 싶습니다. 그래서 오늘 간략하게 어떤 강의가 좋을까? 마침 강의자료도 올라와 있길래.. 한번 쭈욱 내용 Preview했습니다. PPT 글자가 깨진것도 있어서 모두 preview해보지는 못했고, 본것중에 관심이 가는 것은 2트랙의 2번째 시간 - 최지웅님의 Seam 설명잘하기로 유명한 놀새님의 강의입니다. 그간 J2EE 진영에 차세대 기술이 모호했는데, Seam은 매우 관심이 가는 기술중의 하나입니다. 3트랙의 3번째 시간 - 김승권님의 차세대 배치 시스템의 성공 전략 ★ PT 내용을 보면 아주 기대가 됩니다. 배치 업무가 항상 Enterprise system에서 con..

사는 이야기 2009.02.27

ALM / Polarion Review

ALM에 대해서 정리하다가 오늘은 Polarion (http://www.polarion.com) 을 직접 인스톨해서 Evaluate해보았습니다. Polarion이 개념상으로도 만족 스럽고 무엇보다 AJAX기반의 깔끔한 UI가 마음에 들어서 비싼 가격에도 불구하고 미련이 남아서 다시 테스트를 해보았습니다. Polarion ALM은 Enterprise Version으로 많은 기능을 제공하고 자체적으로 CMMI Level까지 충족시키는 프로세스를 포함한다고 해서 복잡도가 높고 속도가 느린 것으로 알려져있습니다. 그리고 가격도 만만하지 않구요. 오늘 테스트 한 버전은 Polarion Track + Wiki 라는 버전으로 일종의 Light 버전으로 생각하면 됩니다. 테스트해보고 딱 드는 생각은 Trac의 Comm..

ALM/Task Management 2009.02.20

재미있는 ALM 도구 발견

http://www.inflectra.com/HomePage.aspx 에서 제공하는 SpiraTeam이라는 시스템이다. 가격도 매우 저렴하고 무엇보다 마음에 드는것이, Requirement 부터 Test case까지 End2End 추적이 가능하도록 되어 있고 Release 관리와, Iteration 관리.. 그리고 Requirement와 Task에 대한 추적성까지 깔끔하게 제공한다는 것이다. UI는 다른 툴에 비해서 다소 떨어지는 것 같지만 개념적으로 매우 마음에 드는 도구이다. Report도 Velocity나 기타 왠만한 Reporting도 다 제공하고, Defect(Bug) Tracking 시스템도 내장되어 있고 또는 JIRA나 Bugzilla와 같은 외부 Bug tracking 시스템과 연계 가능한..

ALM 2009.02.20

실용주의 ALM (Application Lifecycle Management) Overview

Practical Application Life cycle Management (ALM) Overview ALM의 정의를 wikipedia에서 찾아보면 다음과 같다. Application lifecycle management (ALM) is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management.[1] 해석해 보자면, 기존의 애플리케이션 개발은 기술적인 관점에서 많이 접근이 되어 왔으나, 비즈니스 요건 ..

ALM 2009.02.18

Cloud 컴퓨팅을 이용한 대용량 Selenium 테스트

Selenium이 UI Base 테스팅 툴로 널리 쓰이는 것은 기정 사실로 알고 있는 것이고, 대용량 부하 테스트를 할 경우, 환경 마련이 만만하지 않은데, Amazon의 E2C 클라우드를 이용해서 Selenium으로 대규모 부하 테스트를 할 수 있는 사이트가 있어서 소개 합니다. http://saucelabs.com/ 인데, Selenium 스크립트를 만든후에, 로드하면 Amazon 클라우드를 이용하여 부하테스트를 하고, 그 결과를 리포팅 합니다. Load R*와 같은 툴을 사용할 수 없는 곳이나, 이미 Selenium으로 테스트 코드를 구현해 놓은 곳에서는 저비용으로 매우 유용하게 사용할 수 있겠네요.

ALM/Test Automation 2009.02.18

오랜만에 ALM 업데이트

잘 아시겠지만(?) ALM을 만들고 사이트에 적용하고, 여러 자료들을 발표한지도 꽤 오랜 시간이 지났습니다. 제가 소개하는 ALM은 오픈소스나 저 가격 솔루션으로 구성되어 있고 현재는 크게 4가지 파트로 구성이 되어 있습니다. Task Management Build Automation Test Automation Collaboration 입니다. Build Automation은 Hudson을 중심으로 한 일일 빌드, Test Automation은 xUnit을 이용한 단위 테스트와 함께 V-Model 기반에 전체 테스팅 프로세스를 커버 합니다. Task Management는 Issue Tracking 시스템을 이용한 프로젝트 관리를 Collaboration은 Wiki와 Forum 중심의 협업 환경과 Cod..

ALM 2009.02.17