본문 바로가기

DeveloperWorks

iBATIS 3의 새로운 기능 [IBM DW 201010] 자바에서 DB를 다루는 방법을 제 자바 경력 동안 생각나는데로 써보면은요. - 처음 신입 사원때 일반적인 JDBC 로 try catch문으로 감싸고 꼭 close하는 식으로 짰었고, 좀더 발전한게 DB접근로직을 DAO로 분리했었죠. - 좀더 머리를 굴려서 SQL코드를 설정파일로 빼는것도 해봤습니다. - 그런데 JDBC문은 워낙 복잡스럽고 close문을 안쓰면 메모리가 '풀'차서 서버가 다운되는 현상이 종종 있었죠. 아무리 신경써서 close한다고 해도 사람이 하는일이라 실수가 있었습니다. 마치 지뢰를 매설하는 기분이었습니다. - 한 2년전부터 쓴 스프링 프레임워크의 jdbcTemplate는 close문등의 지저분한 DB코드 작업을 많이 줄여주었습니다. - 이때 하이버네이트, iBatis가 나왔었고요. -.. 더보기
아파치 Commons Lang 유익한 기능 활용법 [IBM DW 201009] 무슨 프로그램이든 글이든 보고 듣기엔 참 좋은 프로그램 또는 글인것 같은데 막상 활용해보자니 뭔가 두루뭉실하고 현실에 맞지 않는 것들이 있습니다. 저는 물론 간결하면서 바로 써먹을수 있는 프로그램이나 글이 좋습니다. 그런 의미에서 제가 좋아하는 바로 써먹을수 있는 실용적인 기사를 발견했습니다. 잠깐의 활용법만 알면 아파치 Commons Lang에서 제공하는 유틸리티 기능을 바로 써먹을 수 있습니다. * equals * hashCode * toString 이 3개의 메소드는 자바의 Object 클래스에서 제공하는 자주쓰는 메소드입니다. 특히 equals와 toString은 많이 쓰는 메소드죠~! 근데 보통 이 메소드들 그냥 쓰지만 가끔은 예를 들어 이런 상황이 생깁니다. Account acct1 = new.. 더보기
JAR에 대해 모르고 있던 5가지 사항 [IBM DW 201008] 자바 개발자는 jar를 친근하게 바라 볼 것입니다. 저는 jar파일의 기능을 좋아합니다. 그 복잡다단한 설정파일과 클래스로 얽히고 섥힌 파일들이 하나의 jar로 묶일때 그 모습이 무척 깔끔하거든요. 그리고 옛날에는 jar종속성을 따져가며 jar파일 추가하는것이 좀 복잡다단하고 힘들기도 했는데 요즘에 메이븐을 써보니 jar 의존성 관리도 편해졌고요. 좌우지간 jar는 자바 프로젝트를 깔끔하게 정리해주는 파일입니다. 그런데 제가 몰랐던 jar의 여러가지 특징이 있군요. 예를 들면 1. JAR은 실행 파일이다. 2. JAR은 종속성 정보를 포함할 수 있다. 3. JAR은 암묵적으로 참조될 수 있다. 4. Java 6에서는 클래스 경로 와일드카드를 사용할 수 있다. 5. JAR에는 코드 이상의 것이 담겨 있다... 더보기
Excel, XML 및 Java 기술을 사용하여 간편하게 보고하기 [IBM DW 201008] 프로젝트를 하다보면 알게 모르게 자주 쓰는 모듈이 있습니다. 저 같은 경우 사이트를 개발하면서 엑셀을 자바로 자바를 엑셀로 변환하는 요구사항이 종종 생겼습니다. 그때 아마도 jxl 이라는 모듈을 쓴걸로 기억합니다. 그런데 jxl이란 모듈 쓴적이 5년이 넘었으니 이 모듈은 조금 옛날것이 되지 않았나 싶습니다. 여기 IBM DeveloperWorks에서 엑셀 변환 모듈에 대한 설명을 제공합니다. Apache POI라는 아파치 오픈소스기반 엑셀 변환 모듈을 설명합니다. 지금 한창 프로젝트 하면서 엑셀 변환 모듈이 필요하여 고민하던 분이 계시다면 이 기사를 꼭 읽어보시길 바랍니다. Excel, XML 및 Java 기술을 사용하여 간편하게 보고하기 더보기
Apache Click 알아보기 [IBM DW 201008] 제가 항상 많이 했던 생각이 그리고 블로그에도 종종 썼던 내용이 "프레임워크" 다 좋은데 오히려 기술 적응의 난이도와 복잡성 때문에 역효과가 있다는 것입니다. 자바가 정말 많이 쓰이고 오픈소스 환경이 발달했기 때문일까요. 초기 하나의 JSP에 모든 로직을 담아 생기는 유지보수의 불편함을 없애기 위해 스트럿츠등의 프레임워크가 발전하더니 지금은 오히려 복잡하고 어려운 프레임워크를 보완하는 '간단한 모델을 사용하여 신속하게 웹 애플리케이션 작성' 하는 Apache Click 프로젝트가 생겼습니다. 한마디로 틈새시장 공략이군요~! 정말이지 잠깐 관심을 두지 않아도 개발자를 위한 다양한 프로젝트가 생성되는것 같습니다. 아파치 클릭은 그 추구하는 목표답게 어느 프레임워크보다도 무척 가볍겠지만 유닛 테스트등의 개발자.. 더보기
dW Live 세미나 ‘웹 개발 다반사’, 여러 발표주제들 최근 소개해 드린대로대로 12월 5일 (토) 오후 1:30 ~ 6:00 도곡동 군인공제회관 23층 온디맨드홀에서 페챠쿠차(Pecha Kucha)란 발표형식으로 '웹 개발 다반사' 란 주제로 세미나가 열립니다. http://www.ibm.com//developerworks/kr/event/seminar/dwlive_1205/index.html 페챠쿠차란 발표형식을 다시 설명 드리면 15장의 슬라이드를 장당 30초씩 발표하는 방식입니다. 최근 최종 발표 주제가 확정되었다고 하네요. Pecha Kucha 최종 선정 결과 * 괜찮은 오픈 API 제공하기 + VLAAH API 소개 - 홍민희 * 봄싹 싸이트(http://springsprout.org) 개발 협업 방법 및 사용 기술 - 백기선 * 코드 품질 포탈 .. 더보기
웹 개발 다반사, 웹 개발도 즐겁게 할수 있다~ 어떤 사물을 생각하면 그 사물과 연관된 이미지가 즉각 생각나곤 합니다. 예를들어 애플사~ 하면 진취적 창의적 이미지가 떠오르고, 우리나라 통신사나 모자동차 회사를 생각하면 독과점 횡포 기업이란 이미지가 떠오릅니다. 이효리하면 섹시한 이미지가 떠오르고 박지성 하면 성실한 이미지가 떠오르죠. 하얀 눈의 이미지는 어떤가요. 깨끗하고 낭만적이고 순수한 이미지가 떠오르실 겁니다. 그러나 나에게 눈은 지독한 삽질, 지독한 노가다라는 강렬한 이미지로 남아 있습니다. 저는 산에서 군복무를 했고 지독하게 눈을 치워댔습니다. 눈이 무섭고 싫었습니다. 그 순수한 눈에게서 이런 나쁜 이미지를 느끼다니 삭막하고 안타깝죠. 근데 군 제대한 후에는 눈 치울 걱정은 할 필요 없더군요. 이제 더 이상은 삽질은 없을 것 같았습니다. 그.. 더보기
어느 데몬 개발에 필요한 기술 - 테스트 3번째 연속으로 적습니다. ^ ^; 전 글에 제가 주말에 긴급 개발해야 하는 대용량 DB처리 데몬 개발에 필요한 기술을 DW기사에서 찾고 있는데요. 마지막에 필요한 요소가 테스트 입니다. 이 데몬 같은 경우는 어떠한 경우라도 처리가 엉키지 않고, 다운되지 않고 무사히 처리해야 합니다. 그러나 데몬이 엉키는 경우가 무수히 많다는 것을 발견했는데요. 예를 들어 목록 파일 올려서 처리중인데 누가 또 다른 목록파일을 올렸을 경우, 목록파일 처리중에 실패했을 경우 잘 마무리 하는 방법, 목록 파일이 아직 업로드 중인데 데몬이 업로드 중인 파일을 읽으려고 할 경우등, 여러가지 문제가 발생될수 있습니다. 그래서 촘촘하고 꼼꼼하게 개발해야 하는데, JUnit 써서 촘촘하고 꼼꼼하게 개발하려고 합니다. 이것 말고 테스팅.. 더보기
어느 데몬 개발에 필요한 기술 - 스프링 DB처리기술 방금 전 글에 제가 이번 주말에 대용량의 데이터를 DB처리하는 데몬을 개발해야 한다고 했는데요. 이 데몬 개발에는 스프링의 여러가지 DB처리기술이 필요합니다. 예를 들면 DB처리하다가 Exception이 발생하면 예전 처리되었던 내역이 롤백되야 합니다. 이 DW기사에서는 스프링 트랜잭션등의 다양한 기술들을 소개합니다. Application Server에서 스프링과 하이버네이트 사용하기 기타 스프링 배치도 썼으면 하는데, 유익한 스프링 배치 강좌 모음도 소개합니다. 스프링배치 국내 자료 모음 더보기
어느 데몬 개발에 필요한 기술 - 쓰레드 관리 예전에 포켓 뱅킹이라고 우리회사가 사활을 걸고 개발중인 새로운 개념의 뱅킹 서비스에 대해 열심히 홍보했던 적이 있었습니다. 이 서비스가 농협 차세대 시스템 오픈과 함께 1월 28일날 오픈이 되었는데요. 이 일 때문에 1월달은 평일은 물론, 주말에다가 구정도 계속 일하고 지금 주말도 일하고 있네요. 어느덧 1월 31일 됐고 DW 리뷰 올려야 되고, 주말에 또 뭐하나 개발해야 되고 1월달은 정신이 없습니다. 이번달 DW 리뷰는 간략하게 올리겠습니다. ^ ^; 주말에 긴급하게 개발해야 되는것이 어떤 목록을 엑셀파일로 올리면 이 목록을 DB에 인서트/업데이트 하는 대용량 DB 처리 데몬인데요. 처음에는 간단하게 생각했다가, 경우의 수를 따지고 보니 프로세스가 상당히 복잡해졌네요. 예를들어 목록 엑셀파일 처리중에.. 더보기
뜬 구름 잡는 부하테스트 보통 연인들끼리 옛날에 자주하던 말로 내 저 별도 너에게 따줄 수 있어~ 란 표현을 쓰곤 한다. 또는 하늘에 뜬 구름 잡기처럼 애매모호하단 표현을 쓰곤 한다. 요즘 부하테스트를 하면서 이런 표현이 딱 알맞다는 생각을 했다. 배일 속에 가려진 실체라도 점점 드러내는 맛이 있으면 좋겠지만 실체를 드러내기는커녕 뜬 구름이라 도통 잡히지 않아 화만 날 지경이다. 일단 이정도 서버 스펙에서 어느 정도의 세션을 견뎌야 정상인지 정확한 기준을 모르겠다. 예를들어 인텔 쿼드코어 4Ghz에 4G 메모리라 50,000세션을 견뎌야 한다면, 그렇게 말할 수 있는 근거는 무엇인가. 예전에 비슷한 사양에서 50,000세션을 견뎠기 때문인가. 비슷한 얘기로 부하테스트 결과 10,000세션을 견뎠는데 이 상황이 지금 서버 스펙에 .. 더보기
초보자를 위한 정규 표현식 제 블로그를 계속 읽어오신 분이면서 개발자라면 얼마전 제가 썼던 고수를 위한 고전 에디터 vim 포스팅을 기억하실 겁니다. 이 글은 사실 오랫동안 머릿속으로 구상해온 글입니다. 이런식의 글을 한번 써보면 좋겠다~ 하고 오랫동안 머릿속에 구상한 글들은 대부분 반응이 좋습니다. 왜냐하면 생각을 표현하는 글 역시 오래 숙성될수록 맛이 있는 김치와 된장, 또는 와인과 비슷하기 때문입니다. 오랫동안 구상하고 가다듬을수록 당장 급하게 쓸때보다는 좀더 글이 깔끔해지고 깊이가 느껴질 것 입니다. vim글도 반응은 좋았습니다. IT개발자를 위한 마니아적인 성격의 글임에도 당시 올블로그 오늘의 추천글 2위에 올랐습니다. 여기까지 말하면 으쓱~ 자랑할만 합니다. 그러나 실상은 창피했습니다~ 진짜 고수들의 예리한 댓글 지적을.. 더보기
초보자를 위한 이클립스 퍼블릭 스테이틱 보이드 메인.. 을 암기하던 그때는 어렵고도 재미있는 자바 문법 익히던 옛날이었다. 선생님은 군인의 차렷자세처럼 퍼블릭 보이드 메인.. 문법이 기초중에 기초니 꼭 암기하라고 강조하셨다. 지금의 나는 퍼블릭 보이드 메인..하고 다음을 흐렸듯이 다음 문법이 약간 햇갈린다. ^ ^; 그러나 그때는 기초를 차곡차곡 정석대로 습득해가던 때였다. 퍼블릭 보이드 메인..을 암기하던 그때는 완전한 문법지식을 바탕으로 로직을 자유롭게 구현하면 그것이 진짜배기 프로그래머라고 생각했다. 당시 알고 있던 비주얼 스튜디오 같은 IDE 툴은 프로그래머를 게으르고 바보처럼 만드는 툴이라고 단정지었다. 내가 그렇게 단정지은 이유는 사실은 IDE 같은 복잡한 툴 익히기가 싫었기 때문이다. (이런 좁디 좁은 시야의 자기.. 더보기
고수를 위한 고전 에디터 vim 2004년 봄 SI회사에 처음 취직을 했다. 이제 그동안 연마했던 내 플그램 실력을 발휘할 수 있다니 기대도 있으면서 두렵기도 했다. 아직 파견은 못 나가고 본사에서 잡일을 하며 대기를 했다. 당시 나에게 SI 사이트는 하나의 무림 강호였고 SI 사이트에서 일하는 개발자들은 무림의 고수들이었으며, 무림의 고수들이 쓰는 노트북은 고수들만이 쓰는 멋진 무기였다. 지금에 와서는 어이없지만 나는 SI에 대한 동경을 가진 순진한 IT개발자 지망생이었다. 어느날 우리 회사 무림의 고수 선배가 그 험난한 SI를 마치고 잠시 본사로 귀환했다. 나에게 그 선배는 존경과 동경의 대상이었다. 특히 그 선배가 쓰던 은빛 노트북은 왜 그리 빛나보였을까. 내가 쓰던 중고 데스크탑이 일반 병사의 구식 창이라면 그 선배의 은빛 노트.. 더보기
자바 IO의 성능개선 (무복사 기법을 통한 효율적인 데이터 전송) 얼마전 자바 NIO를 활용한 통신 프로그램을 개발하면서 자바 네트워크 프로그래밍에 관심을 가졌었는데요. 마침 제 관심분야에 대한 IBM developerWorks의 고급기사가 발행되었기에 소개합니다. 무복사 기법을 통한 효율적인 데이터 전송 기사 내용이 무슨 말인가 하니, 하나의 IO가 일어날때 디스크커널자바어플리케이션 의 영역을 넘나드는데, 무복사 기법은 자바어플리케이션 영역을 빼고 디스크와 커널간의 직접 통신만으로 IO가 가능하며 성능이 많이 향상된다는 내용입니다. "많은 웹 애플리케이션은 상당한 분량의 정적 내용을 제공한다. 즉, 디스크에서 데이터를 읽어 응답을 위한 소켓에 써 넣는다. 이런 처리는 상대적으로 CPU를 거의 사용하지 않을 것 같지만 다소 비효율적이다. 즉, 먼저 커널이 디스크에서 해.. 더보기
유닉스 고급 쉘스크립트 기법 IBM developerWorks 기사를 소개할때 기사를 고르는 기준은 어려운 이론을 다룬 기사 보다는 실무에서 바로 써먹을 수 있는 기사를 소개하는 것입니다. 이번에도 IBM developerWorks 소개 기사를 찾다가 유닉스 관련 유익한 기사를 찾아서 소개합니다. 최근에 리눅스를 다룰 일이 많아졌는데 특히 쉘도 다뤄야 했습니다. 평소 프로그램을 짜는 사람이지만 쉘의 문법이 익숙하지 않아서 쉘 프로그래밍 하기 불편했어요. 다른 쉘을 참고로 때려맞추기 끝에 기능만 잘돌아가게 겨우 쉘을 만들 수 있었습니다. 여기 저처럼 쉘을 잘 쓰지 못하는 사람을 위한 기사가 있습니다. 바로, '유닉스를 능숙하게 사용하기: 고급 셸 스크립트 기법' 입니다. 이 기사에서는 쉘을 깔끔하고 유지보수 편하게 작성하는 방법을 설.. 더보기
디벨로퍼웍스 늦가을 행사 개발자들의 수다 IT개발자를 위한 사이트 IBM developerWorks 에서 IT개발자를 위한 행사를 준비했다고 합니다. 디벨로퍼웍스 늦가을 행사 개발자들의 수다 IBM developerWorks에서 독자, 필자, 리뷰블로거 등이 함께하는 즐거운 이야기 장을 마련합니다. 이름하여, ‘개발자들의 수다’ 입니다. 이 행사는 '현장에서 참여자들이 토론 주제를 정해서 실시간으로 자유로이 이합집산하면서 토론을 진행'하는 OST(Open Space Technology) 형식으로 진행할 예정입니다. 정해진 아젠다 없이, 현장에서 함께 얘기 나눌만한 주제를 정하거나 건의해서 독자, 필자, 리뷰블로거들이 편안하게 생각을 나누고 그 과정에서 서로 영감을 받을 수 있는 행사입니다. 개발자로서의 진로, 고민이나 기술 및 트렌드에 대한 난.. 더보기
자바스크립트 개발 툴킷(JSDT) 살펴보기 자바 스크립트 하면 떠오르는 이미지가 '노가다' 입니다. 웹 프로그래밍 자체가 노가다 성격이 있는데다 자바스크립트 짜고 테스트하는 일이 만만치 않거든요. 자바스크립트는 교통체증으로 가득한 서울 한복판에서 공사하는것과 비슷합니다. 이곳은 각종 자재를 원할하게 옮겨야 하지만 엄청난 교통체증 덕분에 항상 고생하면서 공사해야 합니다. 자바스크립트도 일반 에디터에서 대충 날림으로 짜보고 alert문을 적당한 소스에 배치한 후, 해당 페이지를 테스트 하기 위해 몇단계의 페이지 이동을 거쳐서, 그 페이지에 도착하고, 직접 하나하나 INPUT FIELD를 입력한 다음 테스트를 하게 됩니다. 다른 언어에 비해 한번 짜기가 그야말로 노가다 스럽고 짜증이 납니다. 언젠가 자바 IDE툴 이클립스에 찬사를 보낸 적이 있습니다... 더보기
OSGi를 이용한 Java Enterprise Application 개발 제가 몇번 강의 들어본결과 엄청난 지식의 깊이와 귀에 쏙쏙들어오는 차분한 설명으로 유명하신 스프링등 기타 자바 전문가 이일민님이 계십니다. 이일민님이 이번에 '스프링과 하이버네이트를 이용한 RAD프레임워크 - OSAF(OpenSprout App. Framework)이 공개'된 후 직접 관련 강의를 IBM developerWorks 스크린캐스트로 올리셨네요. 무엇보다 이일민님 하면 기억나는 것이 정말 어려운 주제도 귀에 쏙쏙 들어오게 설명하신다는겁니다. OSAF에 관심있은 분이라면 꼭 보시길 바랍니다. 이번에는 OSAF 스크린캐스트와 관련 링크만 남기겠습니다. ^ ^; > OSAF 관련 링크 IBM developerWorks : OSGi를 이용한 Java Enterprise Application 개발 OS.. 더보기
우리회사가 최고에요. 왠지 철학적인 깊이가 느껴지는 유명한 IT컨설턴트 김창준님의 파랑새 신드룸이란 기사가 IBM developerWorks에 올라왔다. 이번에는 직장에 대한 기사다. 직장인 이기도 한 개발자들은 돈도 많이 주고, 야근도 없고, 개발자로 자아실현 할 수 있는 꿈의 회사를 동경하지만 지금 근무하는 곳은 아니라며 체념을 한다. 1. 그 사람들은 계속 현재 상황이 문제라고 생각하며 불평을 반복하고 2. 그 상황을 개선하는 데 자신이 할 수 있는 일은 없다고 생각하며 3. 자신은 다른 직장에 가야 빛을 발할 수 있다고 믿으며 4. 따라서 현 직장에서는 최선을 다하지 않으려고 한다. 위 순서에 따라 이 개발자는 항상 뜬구름 잡는 꿈의 회사만을 찾게 되지만 결코 꿈의 회사는 못 찾고, 지금의 회사는 일단 먹고 살기위해 .. 더보기
Mock Object 를 사용해서 쉽게 테스트 하기 최근에 IBM developerWorks의 스크린캐스트(=동영상강좌)를 많이 봐야할 일이 있었습니다. 한꺼번에 보다 보니 당연히 힘들더군요. 그중에 심드렁한 내 눈과 귀를 번쩍트이게 하는 강좌가 있었습니다. 바로 'Mock Object 를 사용해서 쉽게 테스트 하기' 인데요. 테스트 주도 개발이 익숙하지 않은 초중급 개발자분들이 한번 짬내서 보면 개념잡는데 도움이 많이 되는 강좌입니다. Mock Object는 테스트 하기 힘든 특정 자원, 예를들면 '데이터베이스'에 의존하지 않고도, 비슷한 기능을 흉내내게 해주는 가상 객체입니다. 데이터베이스등의 특정 자원에 의존하는 객체가 Mock Object를 쓰면 이제 가상 객체를 쓰던 진짜 데이터베이스와 연결됨과 상관없이 기능을 수행 합니다. 저 강좌에서는 데이터.. 더보기
데드라인을 지키는 방법이 있을까 요즘 당구를 열심히 치곤 합니다. 당구를 칠때마다 느끼는 것은 당구가 잘칠때와 안칠때가 주기적으로 반복된다는 것 입니다. 당구의 고수 직장 동료의 조언으로는 장기간 안칠때가 계속 되면 당분간 쉬어주는 것이 오히려 좋다고 합니다. 문득 잘될때와 안될때의 주기적인 반복은 당구에만 해당되는 것은 아니라는 생각을 했습니다. 요즘 프로그래밍을 하는데 탄력적으로 일이 착착 진행되는 맛이 아니고 뭔가 늦춰지는 어정쩡한 기분이 듭니다. 이럴 때 당구 같은 취미 생활 같은 경우 쉬어주면 되지만, 개발이 늦춰지면 미뤄둔 일감이 쌓이고 쌓여 프로젝트 오픈일이 정말로 '데드라인'이 되는 심각한 고생을 하게 됩니다. 그래서 데드라인(=프로젝트 오픈일)을 지키기 위해서는 어떻게 해야 하는가~ 하며 관련 칼럼을 찾아봤는데 마침 도.. 더보기
어려운 자바 성능 측정을 돕는 칼럼 "사용자가 서비스를 요청하여 응답까지 무사히 받는 하나의 과정을 세션이라고 하고, 세션의 성공을 방해하는 요소를 저항이라고 하자. 세션은 수영선수고 저항은 물이다. 지금 세션이 출발한다. 힘차게 출발했으나 물의 저항이 만만치 않다. 세션이 무사 완주하거나 좀더 빠르게 완주하는 내내 저항은 세션을 계속 괴롭힌다. 저항을 이겨내고 좀더 빠르게 세션 완주할 수 없을까, 최소한 빠르진 않더라도 무사 완주할 수는 없을까." 올림픽 감동의 여운이 계속되는 한주입니다. 박태환 선수가 출전하기 전 특집방송을 봤습니다. 박태환 선수의 훈련과정을 담은 방송입니다. 인상 깊었던 것은 훈련과정이 무작정 고된 것이 아니라 마치 고난이도 수학문제를 풀 듯 몹시 체계적이었다는 것입니다. 매번 훈련과정마다 박태환 선수의 몸상태, 기.. 더보기
IBM developerWorks, KSUG의 OSGi 강좌1 작년 나는 블로그 통한 오프라인 활동도 지금에 비해서는 활발하게 했다. 그 중에는 자바 개발자로 한국 스프링 사용자 모임(KSUG) 활동도 했다. 사실은 활동을 했다~ 라는 표현보다는 그냥 강의를 들으러 갔다~ 가 맞는 말이다. 작년에 KSUG 강의를 들은 것은 행운이었다. 자바 얼라이덥터(=신기술 습득을 좋아하는) 개발자~ 친구 따라서 우연히 세미나~ 참석한 덕분에 스프링 프레임워크에 관심이 생겼고, 우리 회사 스프링 적용하는데 도움이 되었으며, 내 블로그를 자바 블로그로도 키우는데 도움이 되었다. KSUG에는 자바 스프링 전문가이면서 자바 관련 유명 블로거인 안영회님이 활동하고 계신다. IBM developerWorks에 안영회님의 스크린캐스트 강좌가 올라왔다. OSGi에 대한 설명이다. 문득 예전 .. 더보기
자바 개발자의 이클립스 혜택 우리집에서 2주동안 같이 지냈던 캐나다인 마크는 MS계열의 경험이 많은 IT개발자다. MS계열에 익숙한 마크는 최근 자바로 개발 하고 있다고 한다. 나와 대화중에 마크가 갑자기 이클립스가 어렵다고 말했다. 나는 그 말을 듣고 모처럼 정확한 영어 문법과 정확한 영어 단어로 마크에게 자신있게 영어로 되물었다. .. Really? .. 그리고 마크에게 다시 더듬더듬 말했다. “이클립스야 말로 자바개발자에게 주어진 최고의 복지혜택이에요~” 라는 뜻을 더듬더듬 전달 했다. 1. 이클립스는 소스버전관리, 퍼포먼스관리, UML툴, 메이븐과 스프링 같은 외부 자바 프로젝트를 편리하게 연동 해주는 많은 플러그인이 있으며, IDE 기본적으로 소스추적, 리팩토링, 문법체크, 일관된 주석템플릿등의 편리한 기능을 제공한다. 더.. 더보기
Extreme Programming에 조금씩 가까이 가기 최근 프로젝트가 빠듯한 편은 아니라 여유가 있습니다. 다만 저 같은 경우는 해당날짜에 끝내야될 일이 있어서 일과중에는 꽤 바쁘게 자바 소스를 돌리고 있습니다. 저번주 말부터 진득하게 일과시간 프로그래밍을 하면서 몇가지 느낀바가 있었습니다. 예전에 제가 환상을 가졌던 Extreme Programming에 비교하여 한번 그 생각을 정리해 봤습니다. 주 48시간 근무? 제가 Extreme Programming(이하 XP)에 환상을 가진 이유는 XP 규칙중에 주 48시간 근무를 지켜라~ 라는 규칙이 있기 때문이었어요. 아름다운 규칙입니다. XP에서는 이 규칙을 통해 ‘진정한 생산성’ 이 무엇인지 알려주고 있습니다. 야근이 일상화 된 곳에서는 크게 바쁘지 않는 이상 어차피 야근할 것 일과시간에는 예를들면 인터넷 .. 더보기
프로젝트 수행시 이해관계자의 활발한 참여가 중요한 이유 모처럼 프로젝트 수행하는 사이트(=고객사)로 파견나갔습니다. 중요한 일로 갔기 때문에 잘해야겠다는 생각이 들고 이제 시작이지만 일도 무난하게 진행되고 있습니다. 무엇보다 업무 압박(=야근) 없이 여유있게 일할수 있어서 좋습니다. 제가 프로그래머로 업을 삼겠다고 다짐 했을때는 게임하듯 프로그램 로직만 짜면 되는줄 알았답니다. 그래서 프로그래머로 재미있게 평생 일해야지~ 라고 아름다운 상상을 했었어요. 그런데 현장에 나가보니 프로그램 역량 못지 않게 직장 동료, 고객 담당자를 대하는 능력, 한마디로 사람과의 의사소통/커뮤니케이션 능력이 너무도 중요하다는 것을 깨달았습니다. 저는 고객등의 프로젝트 관련 당사자들과 커뮤니케이션을 어려워했고 아직도 어려워 합니다. 그래도 이명박의 버벅거리는 3류 정치, 꽉막힌 의.. 더보기
객체-관계 맵핑 사고의 고수를 꿈꾸다. 블로그를 대함에 있어 머리와 손이 따로 움직이는 느낌입니다. 갈수록 블로그의 활용 가치가 높아져서 열심히 써야겠다는 마음은 드는데 글쓰기는 안하고 초저녁에 잠만 자고 있습니다. 블로그의 활용 가치중에 요즘 느끼는 것은 블로그를 배움의 도구로 쓸수 있다는 것입니다. 예를 들어 ‘객체 지향’은 이런것이다~ 라고 뜬구름 잡듯 어렴풋이 인식하고 있는 지식을 명쾌하게~ 글로 써서 독자에게 설명할 수 있을 정도까지 쓰려면, 그야말로 머리를 꽝꽝~ 벽에 부딪쳐 가며 사고력 부족의 한계를 이겨내야만 쓸 수 있습니다. 그래서 글쓰기로 프로그래밍 역량이든 교양능력이든 많이 향상시킬수 있다는 것을 느끼고 있습니다. 최근에 산고의 고통 끝에 배움의 기쁨을 얻기 위해 쓴 글중에 객체지향 글쓰기 (글쓰기 프로그래밍이 가능할까?).. 더보기
Apache Jmeter를 활용한 부하테스트 오늘은 부하테스트에 관한 짧은 글 입니다. 보통 글을 쓸 때 특히 설명문 같은 글을 쓸 때는 그 주제에 대해 많이 알아야 쓸 수 있을 것입니다. 그런데 오늘 같은 주제는 저도 잘 모르는 분야~라 오히려 혹시 이 글을 봐주시는 고수분께 제가 물어보는 형식의 글이 될지도 모르겠습니다. 부하테스트란 서비스 작동될 서버에 일정량의 트래픽을 일부러 발생시켜 서버가 다운되지 않고 정상 작동되는지 여부를 테스트 하는 것이라고 정의해 보았습니다. 저는 최근에 서버에서 작동되는 몇 가지 프레임워크를 동료들과 함께 개발한 다음 부하테스트를 해야 했던 일이 있었습니다. 그런데 저는 부하테스트에 관하여 항상 가지던 의문이 있었습니다. 부하를 어떻게 발생시킬 것인가~ 그리고 부하 테스트가 성공적으로 완수되었다는 판단 기준은 무.. 더보기
데이터 추상화에 대한 IBM developerWorks의 좋은 기사 저는 수차례 프로그래밍 관련 글에서 세상을 객체로 분석할 때 추상화를 잘할 수 있다면 유지보수와 확장성에 대한 장점을 얻을 수 있다고 써왔습니다. 제가 예전에 썼던 글 추상화의 고수가 되자. (생각의 탄생) 에서는 추상화를 1. 복잡한 현상과 불필요한 변수 뒤에 숨겨진 2. 사물의 본질을 핵심적으로 나타낼 수 있는 3. 하나의 속성을 찾는다.라고 정의 했습니다. 그리고 최근 제가 쓴 칼럼 에서는 객체지향스럽게 짠다는 의미를 '대상 요소를 잘 추상화 하여 자유로운 확장을 지향하고 유지보수 편리하게 활용한다는 의미'라고 썼습니다. 여기 프로그래밍의 고수 김승권님이 IBM developerWorks에 기고한 데이터 추상화 칼럼이 최근에 올라왔습니다. 추상 데이터에 대한 정의와 현실세계를 모델링한 예를 들고 있.. 더보기