본문 바로가기

스프링

OSGi를 이용한 Java Enterprise Application 개발 제가 몇번 강의 들어본결과 엄청난 지식의 깊이와 귀에 쏙쏙들어오는 차분한 설명으로 유명하신 스프링등 기타 자바 전문가 이일민님이 계십니다. 이일민님이 이번에 '스프링과 하이버네이트를 이용한 RAD프레임워크 - OSAF(OpenSprout App. Framework)이 공개'된 후 직접 관련 강의를 IBM developerWorks 스크린캐스트로 올리셨네요. 무엇보다 이일민님 하면 기억나는 것이 정말 어려운 주제도 귀에 쏙쏙 들어오게 설명하신다는겁니다. OSAF에 관심있은 분이라면 꼭 보시길 바랍니다. 이번에는 OSAF 스크린캐스트와 관련 링크만 남기겠습니다. ^ ^; > OSAF 관련 링크 IBM developerWorks : OSGi를 이용한 Java Enterprise Application 개발 OS.. 더보기
IBM developerWorks, KSUG의 OSGi 강좌1 작년 나는 블로그 통한 오프라인 활동도 지금에 비해서는 활발하게 했다. 그 중에는 자바 개발자로 한국 스프링 사용자 모임(KSUG) 활동도 했다. 사실은 활동을 했다~ 라는 표현보다는 그냥 강의를 들으러 갔다~ 가 맞는 말이다. 작년에 KSUG 강의를 들은 것은 행운이었다. 자바 얼라이덥터(=신기술 습득을 좋아하는) 개발자~ 친구 따라서 우연히 세미나~ 참석한 덕분에 스프링 프레임워크에 관심이 생겼고, 우리 회사 스프링 적용하는데 도움이 되었으며, 내 블로그를 자바 블로그로도 키우는데 도움이 되었다. KSUG에는 자바 스프링 전문가이면서 자바 관련 유명 블로거인 안영회님이 활동하고 계신다. IBM developerWorks에 안영회님의 스크린캐스트 강좌가 올라왔다. OSGi에 대한 설명이다. 문득 예전 .. 더보기
팀원에게 객제지향 개발을 유도하기 (3/3) 팀원에게 객제지향 개발을 유도하기 (1/3), 팀원에게 객제지향 개발을 유도하기 (2/3)에 이어서 포스팅 합니다. + 2008년 초 레거시 코드를 스프링 프레임워크 IoC로 이식하며 > 잠깐, 왜 인터페이스와 인터페이스를 상속하는 구현 클래스를 만드는 방식으로 프로그래밍 해야 하는 거죠? 팀원에게 객제지향 개발을 유도하기 (1/3)에 객체지향스럽게 짠다는 의미를 대상 요소를 잘 추상화 하여 추상화의 장점을 잘 살리는 것이라고 했습니다. 인터페이스와 인터페이스를 상속하는 구현 클래스를 만드는 것이야 말로 바로 객체지향 추상화의 기본이 되는 프로그래밍 방식입니다. 그리고 스프링의 IoC(Inversion Of Control)기능이 바로 인터페이스와 인터페이스를 상속하는 구현 클래스 방식의 객체지향 개발을 .. 더보기
팀원에게 객제지향 개발을 유도하기 (2/3) 팀원에게 객제지향 개발을 유도하기 (1/3) 에 이어서 포스팅 합니다. > 왜 JUnit등의 테스팅 프레임워크를 이용하여 테스트 클래스를 만들어야 되는거죠? 보통 버그를 어떻게 잡으시나요. 1. 대충 테스트 하고 '이 정도면 되겠지 아마 에러 안날꺼야~' 라고 낙관하거나 2. 에러나면 그때 처리하자고.. 라고 낙관하거나 3. 그래도 이부분은 에러 없어야 되니 100가지 경우를 몽땅 '수작업'으로 테스트 하는거야.. 대개 이러지 않을까요. 그런데 이런 경우는 생각만 해도 아찔합니다. 보호망 없이 외줄타기 하는것과 같고, 망망대해에서 손으로 물고기 잡는것과 마찬가지이고, 로봇으로 자동 제작하던 공장 제품을 갑자기 수작업으로 제작하는 것과 마찬가지입니다. JUnit은 외줄타기 하는 개발자를 추락으로부터 보호해.. 더보기
팀원에게 객제지향 개발을 유도하기 (1/3) 우리회사 팀원들은 각 분야에 일가를 이룬 분들입니다. 특히 금융 전산 분야에서 우리의 능력은 탁월하죠. 다만 오래전부터 경력쌓던 분이라 그런지 절자지향적인 개발에 익숙하고 객체지향 개발은 다소 멀게 느끼시는 그런 모습이 있었습니다. 잠깐, 내가 생각하는 절차지향, 객체지향 프로그래밍 절차지향은, 모든 프로그래밍을 처리, 분기, 반복으로 처리할수 있다는 관점에서 절차적으로 처리하는 방식 객체지향은, 세상의 모든 요소를 객체와 객체간의 관계로 추상화하여, 추상화시 얻을 수 있는 확장성과 유지보수 편리함을 지향하는 개발 방법론 예전에 우리 회사 솔루션 개발에 객체지향 솔루션을 가져다 쓰면서 동료들이 몇가지 의문을 제기한 부분이 있었는데요. 그 의문들은 대부분 원론적인 질문들이라 제가 제대로 답변을 못한 부분이.. 더보기
객체지향 토론-1 (팀원간 기술 습득의 가치 공유) 계획대로 안 되는 것이 인생인데 작게는 블로그에도 적용되는 구나~ 라고 느끼는 것이, 최근 글감이 많이 생겨서 한번 제대로 써볼려고 하니 귀찮음과 졸림의 방해 요소를 만나서 계속 쓰고 싶은 글을 못 쓰고 있습니다. 그 중 이번주에 재미있는 글감이 하나 생겼습니다. 바로 동료 직원과 나눈 ‘프로그래밍 기술 관련 얘기’ 였는데요. 나중에 곰곰히 생각해 보니 하나의 ‘객체지향 토론’을 한 것이 되었습니다. 그래서 이 토론 내용을 블로그에 올리면 다시 한번 내용 정리도 되고, 잘 정리될 경우 구독자 읽기에도 유익할 것 같아서 쓸라고 했더니만, 주제의 무게감과 글 길이의 부담 때문에 망설이다가 결국 잠만 자게 되었습니다. 그래서 생각한 복안이 처음에는 연재 형식으로 쪼개서 여러 번 포스팅 하고 연재 글이 잘 완료.. 더보기
한국스프링사용자모임5회(KSUG) 참가 후기 (웹플로우(WebFlow), 보안(Acegi)) 스프링 프레임워크(Spring Framework)란 개발자와 프로젝트를 위한 자바 전 분야를 아우르는 다목적 프레임워크고, 한국 스프링(Spring Framework) 사용자 모임(KSUG)은 스타 개발자 이일민님과 안영회님과 백기선님등의 애자일 스터디 모임에서 자발적으로 만든 커뮤니티 입니다. 이 커뮤니티 에서는 6주에 한번씩 스프링(Spring Framework)에 대하여 강도 높은 라이브 코딩 위주의 강좌가 진행되고 있습니다. 저는 2회 모임때부터 5회 모임때까지 꾸준히 참석하고 있는데 이유는 백만원 이상 되는 정규 교육 과정과 비슷한 수준 높은 강좌를 저렴하게 들을 수 있고, 무엇보다 프로그래밍 자체를 사랑하는 열정 넘치는 개발자를 만날 수 있기 때문입니다. 한국 스프링(Spring Framewo.. 더보기
오픈소스 컨퍼런스 2007 참가 후기 (위키노믹스의 원조 오픈소스) ‘어느날 깨어보니 나는 천재가 아니었다.’ 최근 내 블로그에 종종 써먹었던 단어들입니다. 이 사실을 깨닫고 허탈하니 기분이 좋지 않아서, 천재를 이기는 특별한 방법이 없을까~ 라는 엉뚱한 고민을 한 적이 있었습니다. 그 때 읽었던 ‘위키노믹스’ 란 책은 나에게 다가온 구원의 메시지가 담긴 성서였습니다. 위키노믹스를 보면 ‘하나의 엘리트 집단이 만드는 특정 결과물보다, 수많은 평범한 사람들이 공동 작업한 결과물이 훨씬 뛰어나다’ 라고 역설하면서 관련 사례들을 이야기 합니다. (예로 기성언론보다 다음블로거뉴스나 올블로그 같은 블로그 메타사이트가 더 훌륭한 미디어 기능을 수행할 것이다.) 그 중 특히 뿌듯했던 것이 위키노믹스의 출발점 이자 성공적인 모델이 개발자들의 ‘오픈소스 환경’ 라는 것입니다. 엘리트 메.. 더보기
한국스프링사용자모임4회(KSUG) 참가 후기 (AOP) + AOP(Aspect Oriented Programming) 아무리 읽어봐도 모르겠다. 횡단 관심사니, 종단 관심사니, 포인트 컷이니, 어드바이스니 한글이고 영어고 대부분 단어들이 울렁거릴 정도로 복잡다단하고, 한글문서는 영어보다 이해하기 힘든 특유의 번역체라 AOP에 대하여 도저히 다가갈 수 없었습니다. 그래서 최근 우리회사에 스프링프레임워크(Spring Framework) 도입을 의논할 때도 AOP 도입은 당연히 빼자는 의견이었습니다. AOP같은 IT기술은 분명히 개발자 편하라고 등장한 기술일 것인데, 개발자에게는 공부할 거리만 산더미처럼 던져주고 개발자가 겨우 익혔다 하더라도, 그 쓸모가 별로일 것 이라는 부정적인 생각이 들었습니다. 그래서 이번 4회 세미나 주제가 AOP라는 얘기에 참석을 망설였.. 더보기
진화하는 아파치 미나(Apache MINA) 위키 강좌 이 강좌의 저작권은 mckdh.net에게 있고 아래 저작자표시-비영리-변경금지 의 Creative Commons License 약관을 따라야 합니다. 이 강좌는 위키로 제작되어 문서의 추가, 수정, 삭제가 용이하기 때문에 지속적으로 문서가 진화될 예정입니다. 저의 개인적인 분석이기 때문에 내용이 틀릴수도 있는데, 그럼에도 올리는 이유는 아파치 미나(Apache MINA) 관련 자바 개발자들과 교류하기 위해서 입니다. Contents 1 아파치 미나(Apache MINA) 이해하기 1.1 아파치 미나(Apache MINA) 전체 구성도 1.2 아파치 미나(Apache MINA) 활용 규칙 1.3 아파치 미나(Apache MINA) 참고 예제 설명 1.4 아파치 미나(Apache MINA) 중요 사이트 1... 더보기
한국스프링사용자모임3회(KSUG) 참가 후기 (자리잡은 커뮤니티) 스프링(Spring Framework)과 아파치 미나(Apache MINA)로 통신서버를 개발할수 있다고 말한지 몇주가 지났다. 팀장님은 개발이 실패할경우 예비로 개발할 C기반 통신서버로 대체하겠다고 하셨다. 나는 팀장으로써 감수해야할 막중한 책임감에 고개를 끄덕였다. 발달된 자바 기술의 혜택을 우리회사도 누릴수 있을지는 나에게 달려 있는 것처럼 보였다. 스프링(Spring Framework) IoC기능을 적용하였다. 무작정 적용하고 보니, 인터페이스를 구현한 구상 클래스를 결정하기 위해 별도의 클라이언트 로직을 만들 필요 없이 스프링(Spring Framework) XML로 구상 클래스를 주입하면 간단하게 해결된다는 것은 그야말로 스프링(Spring Framework)의 간결함 만큼 명확하게 와닿았으며.. 더보기
한국스프링사용자모임2회(KSUG) 참가 후기 (스프링 달인의 한수 가르침) 객체는 세상의 사물을 표현했기 때문에 살아있는 세상과 비슷하다. 만약 어떤 사람이 자주적인 생활을 못하고 부모님이나 주변 사람들에게 의존하기만 한다면 도와주는 사람들이 갑자기 외면했을때 그 사람은 제대로 살수가 없을것이다. 객체역시 사람과 비슷하여 만약 다른 객체의 기능에 크게 기대기만 한다면 도와주는 객체가 변경, 손상, 심술을 부렸을때 기대는 객체 역시 제대로 살수가 없을것이다. 그러나 세상은 결코 혼자서만 살수가 없고 누군가의 지원이 필수적이라서 그 지원을 밑바닥 에서 도와주는 무엇인가 있으면 크게 도움이 될 것이다. 스프링은 객체들의 상호 의존을 보이지 않게 관리하여 객체 자신이 무엇에 의존하고 있는지 신경 쓸 필요 없게 만든다. 사람 사는 세계와 비유하면 국가가 주도하는 복지, 교통의 사회적 인.. 더보기