전체 글
-
스프링 리모팅(Spring Remoting)Spring 2012. 1. 30. 20:50
지난 몇 년간 엔터프라이즈 어플리케이션 개발 분야에서 스프링은 사실상의 표준으로 자리잡았으며 지금도 그 영역을 무한대로 확장해 나가고 있다. 요즘은 스프링 없이 자바기반의 엔터프라이즈 어플리케이션을 개발한다는 건 거의 상상도 하지 못할 일이 되어 버렸다. 그 중에 오늘 소개할 스프링 리모팅 기술은 EJB의 특징적 기능이었던 분산 애플리케이션 개발을 스프링에서도 가능하게 해주는 기술이다. 즉, 리모팅 기능을 사용하면 여러 노드에 분산되어 배포된 기능들을 마치 로컬에 있는 함수를 호출하듯 사용할 수 있게 된다. EJB2 기반의 애플리케이션 서버에서는 분산 어플리케이션 구성을 위해 RMI/IIOP 구현체를 제공했지만 스프링에서는 RMI외에도 다양한 방식을 제공한다. 단, 스프링 기반의 리모팅의 경우 EJB와는..
-
DBUnit 사용시 테스트 데이터 INSERT 문제Object & Test 2011. 10. 12. 19:20
데이터베이스와 관련된 기능의 검증을 위해 단위 테스트를 작성할 때 DbUnit을 사용하면 많은 도움을 얻을 수 있다. DbUnit을 통해 테스트 메소드 실행 전에 픽스처를 데이터베이스에 입력하고 테스트가 종료되면 삭제하는 일을 아주 편하게 할 수 있기 때문이다. 이를 통해, 테스트 메소드의 독립적인 수행을 보장하고, 테스트 데이터베이스를 항상 깨끗한 상태로 유지할 수 있다. 하지만 가끔 문제가 생기는 경우가 있는데 동일한 테이블에 넣어야 하는 테스트 데이터의 크기가 다른 경우이다. 보통 다음과 같은 경우가 되겠다. 이 경우 테스트케이스를 구동하면 column-3, column-4의 값이 누락되어 입력이 안된다. 상위에 있는 데이터셋(dataset)에 컬럼이 두 개만 설정되어 있기 때문이다. DBUnit은..
-
프로젝트 관리자가 알아야할 97가지PM & Agile 2011. 9. 24. 16:25
2010~11년 동안 공들여 번역한 “프로젝트 관리자가 알아야 할 97가지”라는 책이 얼마 전에 출간되었습니다. 회사 차장들이 모여 의미 있는 일을 해보자고 시작한 일이었다고 합니다. 제가 차장이 되기 전부터 시작된 일이었구요. 저는 차장으로 진급하고 며칠 후에 선배 차장께 끌려가 현재 차장들이 모여서 번역을 하고 있는 책이 있는데 너도 이제 차장이 됐으니 기여를 하라고 해서 참여하게 됐습니다. ;;; 그렇게 제가 해야 할 분량을 할당 받고 두근거리는 마음으로 번역을 시작했습니다. 그래도 평소에도 원서를 좀 읽는 편이라서 별다른 어려움이 없을 거라고 생각했는데 단순히 읽는 것과 한국말로 번역하는 건 천지차이라는 걸 금방 깨닫게 되더군요. 그냥 별 생각 없이 영어로 말하던 걸 한글로 번역을 해야 하는지, ..
-
기분 카드PM & Agile 2011. 9. 24. 15:37
2~3개월 전에 타이트한 작업 일정,교육, 잦은 외근 등으로 팀원들이 힘들어 하던 시기가 있었습니다. 그래서 아침 회의가 끝나고 이런 저런 이야기들을 하다가 자신의 기분을 나타낼 수 있는 방법이 있으면 좋겠다는 이야기가 나왔습니다. 팀원들과 그런 얘기를 하다가 문득, 예전에 xper에서 봤던 니코니코 캘린더가 생각 나더군요. 매일 매일 팀원들의기분을 얼굴 표정으로 표시해서 공유하는 달력입니다. 자세한 설명은 요기를 참고하시면 됩니다. 사실 캘린더 이름이생각이 안나서 쥐메일을 뒤져보니 나오네요. 구글 역시 대단해효.효과나 성과를 따지기 보다는 분위기라도 바꿔볼 겸, 소소한 재미도 얻을 겸해서 우리 방식대로적용해 보기로 했습니다. 근데 말만 잘하고 귀찮은 걸 매우 싫어하는 본인의 성격 때문에 일이 잘 진행이..
-
소프트웨어의 품질Object & Test 2011. 8. 31. 13:14
소프트웨어의 품질은 크게 두 가지 측면으로 나눠 볼 수 있습니다. 외적인 품질(External Quality)과 내적인 품질(Internal Quality)입니다. 외적인 품질은 사용자 측면에서의 품질을 말합니다. 사용자가 원하는 기능이 모두 제공되는지, 괜찮은 UX를 제공하는지 여부와 가용성, 속도 등이 보장되는지가 이 범주에 속합니다. 이런 외적인 품질은 보통 소프트웨어의 성공과 생존 여부를 결정하는 아주 중요한 요인이 됩니다. 사용자에게 외면 받는 소프트웨어는 존재의 의미가 없기 때문입니다. 내적인 품질은 개발과 유지보수를 얼마나 잘 할 수 있는가와 관련됩니다. 비즈니스에 맞는 적절한 아키텍처가 선택되고 잘 설계, 구현 되었는지 여부로 측정할 수 있습니다. 결국은 개발자가 느끼는 품질이라고 보면 될..
-
도제식 수련 in SW기타기술 2011. 8. 27. 15:22
1 요즘 한국 SW가 위기라는 인식이 팽패해지며 여기저기서 원인을 분석하고 위기를 극복하기 위한 방법들을 찾느라 분주합니다. 정부가 나서서 한국형 안드로이드를 만들겠다고 하고, NHN은 1000억을 투자해 SW 인력을 양성하겠다고 합니다. 또 대기업이 적극적인 M&A를 통해 벤처 기업들을 사들여야 한다는 말도 합니다. 자성의 목소리도 높아 IT컨트롤 타워 역할을 할 수 있도록 과거 정통부같은 기관을 다시 만들어야 한다는 이야기도 있고 대기업 중심의 하청 구조로 인해 SW시장이 커지질 못하니 이런 구조를 개선해야 한다는 주장도 있습니다. 2 저는 시골 출신이라서 그런지 고향 친구들에 직업의 스펙트럼이 참 다양합니다. 우체부 아저씨, 광산에서 일하는 친구, 초등학교에서 소사(?)하는 친구도 있고, 축구코치에..
-
정확한 일정과 정밀한 일정PM & Agile 2011. 8. 12. 18:24
일정 수립에서 단계에서 흔히 발생하는 오류는 정밀함과 정확성의 혼동으로부터 시작됩니다. 정밀함은 대부분 수치로 표현되는데 보통 수치가 세밀할 수록 정밀도가 높아집니다. 예를 들어 단순히 '2008년'이라고 이야기 하는 것 보다는 '2008년 10월'이 정밀도가 높으며 '2008년 10월 5일 5시 30분 24초'는 '2008년 10월' 보다 정밀도가 훨씬 높다고 할 수 있습니다. 하지만 정밀도가 높다고 정확한 것은 아닙니다. 정확도는 확실성에 근거합니다. 따라서 목표한 일이 일어날 수 있는지 없는지에 대한 확률 혹은 사실에 대한 확실성을 나타냅니다. 제가 파이는 5.141592라고 주장한다면 이 수치는 정밀할 수 있는 있어도 정확하지는 않습니다. 사실이 아니기 때문입니다. 또, 제가 '2008년 10월 ..
-
소통과 신뢰의 구축PM & Agile 2011. 8. 10. 21:05
SI 프로젝트를 하면서 느끼는 가장 힘든 점은 새로운 사이트에 새 프로젝트를 시작하면 인간관계도 새로 맺어야 하고 사람들과의 신뢰 관계도 다시 구축해야 한다는 것입니다. 그리고 적절한 관계를 설정하고 신뢰를 잘 맺느냐 여부에 따라서 프로젝트의 성패가 결정되기도 합니다. 아무리 흉악한 범죄를 저지를 사람이라도 집에서는 좋은 아빠이고 누군가에 좋은 친구라는 말이 있습니다. 프로젝트 이해관계자들도 개인적으로 만나보면 나쁜 사람이 없습니다. 모두 인간적이고 좋은 사람들입니다. 하지만 아무리 성격 좋고 넉살 좋은 사람이라도 비즈니스가 관련되면 마냥 사람 좋게 행동할 수는 없습니다. 서로 조금이라도 자신들에게 유리한 결과를 얻어내려 경쟁하다 보면 좋은 관계를 맺기는 더욱 어려워 집니다. 같은 목표를 갖고 같이 달려..