본문 바로가기

자바

프로그래머, 장인 또는 고된 현실에 찌든 노동자, 수필 객체지향 우리가 프로그래머로 일하는 이유는 두가지이다. 프로그래밍이 좋아서 프로그래머가 되었다. 어떻게든 먹고 살려다보니 밥벌이 삼아 프로그래머가 되었다. 전자는 순수한 열정이 느껴지고, 후자는 치열한 생존 전쟁의 이미지가 풍긴다. 어렸을 때 빌게이츠와 애플의 스티브잡스등의 IT영웅들을 잡지에서 보던 나는, 세상의 프로그래머는 단지 프로그래밍이 좋아서 프로그래머가 되었을 것이라고, 프로그래머는 뭔가 순수하고 특별한 세계를 가진 사람들일 것이라고 기대했다. 나는 존재하지 않는 이상계에 대한 꿈을 꾸었다. 우리나라는 프로그래밍이 좋아서 프로그래머가 되는 순수한 열정을 지켜주진 않는다. 우리나라 프로그래머는 밤12시 넘어서 일하고, 새벽에도 일하고, 주말에도 일하며, 명절에도 일하고, 결혼기념일에도 일하며, 심지어는 .. 더보기
내 일터에서 필요한 관심 기술들 새로 일한지 한달이 지났습니다. 마치 신입처럼 빠듯하게 일했습니다. 4달 쉬고 일한대다가, 몇년동안 같이 일한 팀원을 떠나 새로운 사람들과 익숙해지고 인정받기가 쉽지 않았기 때문에, 온통 회사일에 적응하는데 내 힘을 쏟아부었습니다. 사실 더 큰 이유는 여기서 해야할일이 내가 많이 경험하지 않은 일들이라 더 정신 바짝 차리고 일했던 것 같습니다. 마치 신입처럼 열심히 일하다보니 신입때 뭐든지 호기심 갖고 열심히 공부하고 일했던 그때로 돌아가는 효과도 생기는 것 같았습니다. 다시 신입처럼 공부하기 시작한 것은, 열심히 공부하고 일을 잘 할수록 바로 내 밥벌이에 도움이 된다는 것을 실감했기 때문입니다. 사실은 백번 대의를 강조하는 것보다 한번 그 이익을 체감해보는 것이 더 효과가 좋은 것 같습니다. 처음에 내.. 더보기
블로그와 트위터, 디자인패턴과 리팩토링, 수필 객체지향 블로그처럼 네티즌을 위한 훌륭한 도구가 또 하나 있다. 트위터라는 도구이다. 예전에 블로그는 '자기 생각과 주장을, 자유롭게 글이나 사진으로 편집해서 올리고, 댓글, 트랙백, RSS, 태그등의 기법으로 쉽게 전파하는 도구' 라고 정의한 적이 있다. 트위터는 '블로그 처럼 자기 생각과 주장을, 짧은 글로 올리고, 친구(following, followers) 맺기, RT(친구의 글을 내가 전파함), 댓글등의 기법으로 쉽게 전파하는 도구'라고 정의해 본다. 블로그와 트위터의 정의로부터 이 둘의 공통점과 차이점을 찾아 보았다. 블로그는 편한대로 쓰기도 하지만 대부분은, 글을 쓰기전에 미리 이런식으로 글을 구성하겠다고 생각한다. 블로그는 글쓰기 전에 또는 글을 쓰면서 많은 노력을 요구한다. 트위터는 편한대로 쓴다.. 더보기
객체지향과 관계형 데이터베이스의 조화, 수필 객체지향 처음 봤는데도 왠지 끌리는 사람이 있고 물건이 있고 기술이 있다. 나는 처음 프로그래밍을 배울때부터 객체지향 관련 기술을 좋아했다. 아마도 철학같은 깊이가 느껴지는 기술이라 좋아했던 것 같다. 객체지향을 배우면 어떤 요구사항이라도 고스란히 내 프로그램으로 옮길수 있을 것 같았다. 그러나 공부와 실전은 달랐다. 나는 객체지향 기술 공부와 실전 개발을 병행하면서 종종 알기 힘든 괴리감을 느꼈다. 처음에는 단순한 웹코딩을 했기 때문에 객체지향을 써먹을 일이 없었다. 그때 프로그래머는 머리를 쓰는 지식 노동자가 아니고 단순 복사/붙여넣기 노동자 일수도 있구나라는 생각을 했다. 드디어 기회가 왔다. 회사 업무에 쓰일 프레임워크를 개발해 보라는 지시였다. 그때 그동안 배운 객체지향, 디자인패턴, 리팩토링 기술을 총.. 더보기
객체지향과 절차지향, 수필 객체지향 세상의 모든 사물을 프로그래밍으로 표현하면 속성과 행동이라는 두가지 요소로 나누어서 표현된다. 세상의 모든 사물을 오직 두가지 요소로 나누어 표현해도 된다는 사실은 마치 0과1의 2진법처럼 명쾌하고 간결하게 느껴진다. 절차지향이던 객체지향이던 프로그래밍 대상의 구성 요소는 오직 속성과 행동으로 간결하게 구분지어 개발할수 있다는 사실을 생각해보니, 우리가 절차지향이나 객체지향을 너무 복잡하고 어렵게 생각하고 있는 것 같았다. 세상의 모든 사물을 속성과 행동으로 나누는 것은 절차지향과 객체지향 언어에서 나눈다. 좀더 명확하게 단어까지 고쳐 말하면, 속성과 행동은 절차지향에서는 데이터와 함수이고 객체지향에서는 속성과 메소드로 불린다. 절차지향은 농민들이 공동으로 농장을 경영하는 것과 같다. 무질서하고 원시적인.. 더보기
수필 객체지향, 디자인패턴과 프레임워크 그리고 라이브러리 디자인패턴(Design Pattern)이 무엇이고 프레임워크(Framework)가 무엇이고 이 둘의 차이가 무엇이냐는 질문은 객체지향 개발이 무엇이냐는 질문처럼 나를 바보로 만든다. 하지만 명색이 제대로 된 객체지향 개발자를 꿈꾼다면 이 둘의 실체를 알아내는 것이 두렵다고 해서 이 둘의 추적을 중단해서는 안될것이었다. 라이브러리(Library)의 정의는 간단하다. 자주 쓸만한 로직을 잘 갖춰놓고 필요할때마다 가져다 쓰는 유틸리티 클래스들의 모음이다. 그런데 디자인패턴을 정의하려면 말문이 막혀서 터지지 않는다. 대략의 뜻은 알고있고 써먹을줄도 알지만 명확한 정의에 대해서는 생각이 잘 떠오르지 않는다. 그럴수록 좀더 생각을 하면서 단어의 뜻을 따라가보았다. 디자인이란 말은 설계란 뜻이다. 패턴은 일종의 정형.. 더보기
수필 객체지향, 객체지향과 추상화 객체지향 개발에 익숙한 개발자들이 있다. 그들은 자신이 제일 잘쓰는 에디터를 구동하는 순간부터 저절로 객체지향적인 코딩이 진행된다. 그러나 갑자기 객체지향 코딩에 익숙한 개발자에게 ‘객체지향’ 개발이란 무엇인가요? 그리고 왜 객체지향적으로 개발을 하는건가요? 객체지향적으로 개발한다는 것은 어떤 뜻인가요?라고 호기심 가득한 신입 후배가 묻는다면 갑자기 머릿속이 가비지 컬렉터 되면서 아무 생각도 떠오르지 않지 않을까 짐작된다. 질문에 왠지 명쾌하게 답하기가 어렵기 때문이다. 그래서 저런 어려운 질문에 대하여 곰곰히 생각해본적이 있다. 답은 잘 떠오르지 않았다. 한때 이 문제로 고뇌했다. 한참 후에 결국 ‘객체지향 개발이란 세상의 모든 요소를 객체와 객체간의 관계로 추상화 하여 추상화시 얻을 수 있는 유연함과.. 더보기
수필 객체지향, 클래스(Class) 클래스(Class)는 일반명사이다. 일반명사는 저 사람~ 저 물건~ 처럼 유일한 사물을 가르키는 단어가 아니다. 사람, 나라, 자동차, 컴퓨터처럼 사물을 공통적으로 부를 수 있는 단어로 묶은 것이다, 예를 들어 맥북, 센스, X노트 등으로 불리는 고유명사인 사물은 노트북이란 일반명사로 묶어서 부른다. 노트북, 휴대폰, 자동차처럼~ 우리가 부르는 일반명사는 명확하게 어느 사물을 가리켜 부르는 것이 아니고 뭉뚱그려 부르기 때문에 그 실체가 애매모호하다. 일반명사는 명확하게 가리키며 부를 수 있는 눈앞에 존재하는 사물이 아니며 우리 인간의 사고과정을 통해 한단계 추상화시킨 존재이다. 그래서 클래스는 아직 사람 머릿속에 존재하는 개념이고 아직 객체로 생성하여 세상에 나온 개념은 아니다. 객체지향 언어인 자바로 .. 더보기
수필 객체지향, 응집도와 결합도 객체지향 개발을 하는 이유는 객체지향적으로 제대로 개발하면 유연하고 확장성 높고 유지보수 편리한 개발이 가능하기 때문이라고 한다. 객체지향적으로 개발하면 왜 유연하고 확장성 높고 유지보수가 편리하냐고 누가 단도직입적으로 묻는다면 나는 총으로 겨냥당한것처럼 돌부처가 될것 같다. 그래도 우격다짐으로 말해보면 객체지향적으로 개발하면 모듈간 응집도는 높고 결합도는 낮아지기 때문이라고 말할것이다. 하지만 역시 열심히 공부하려는 우리를 당혹스럽게 하는 뜬구름 잡는 얘기이기도 하다. 응집도는 높고 결합도는 낮아야 된다는 이 공대 용어 스러운 말이 무슨 뜻이야? 응집도가 높다는 말은 비슷한 일을 하는 기능들이 하나의 모듈로 얼마나 잘 뭉쳐 있냐와 비슷한 말이고 결합도가 낮다는 말은 그 일을 완수하기 위해서 얼마나 다른.. 더보기
수필 객체지향, 객체(Object) 객체(Object)란 단어는 낯설다. 객체지향 개발이 두려우면서 범접하기 어려운 기술로 느껴지는 이유중에 하나는 객체(Object)란 단어부터 낯설기 때문이다. 객체(Object)의 사전적인 뜻은 ‘실체로 존재하는 대상 또는 개념’ 이다. 이 뜻을 우리 사람사는 세상에서는 어떻게 표현하면 되는지 불러보았다. 저 사람~, 저 사물~, 저 물건~, 저 동물~, 저 것은~, 그것은~, 이것은~ 으로 불리는 것 같다. 그러고보니 저 사람, 사물, 물건, 동물, 그것은, 이것은 등을 하나로 통합하여 사람 입에 불리어지는 단어는 없다. 그냥 저 사람이고 저 물건으로 불리어질 뿐이다. ‘실체로 존재하는 대상 또는 개념’이라고 정의되는 대상을 우리는 저 사람~ 저 물건~ 하며 친숙하게 부르는데 다만 하나로 통합하여 부.. 더보기
수필 객체지향, OCP(open-closed principle, 개방-폐쇄의 원리) 사람 사는 세상은 복잡다단하다. 예를들어 마른하늘에 정말로 날벼락이 칠수도 있다. 어플리케이션은 사람 사는 세상을 고스란히 옮겨놓았다. 틀림없이 어플리케이션도 마른하늘에 날벼락이 치는 변화무쌍한 요구사항이 발생할것이다. 요구사항에는 기존 개발된 기능의 변경 건이 있거나 새로운 기능의 확장의 경우가 있다. 이런 요구사항이 생길때 객체지향 설계자는 어플리케이션을 어떻게 변경하거나 확장할지 고민한다. 기존의 소스를 변경하는 방법이 있다. 이 경우는 가장 직관적으로 해결하는 방법일 것이다. 하지만 위험하다. 기름바닥에 라이타불을 던져서 불폭탄을 만드는 광경을 영화에서 본적이 있는가. 기존의 소스를 변경하는 방법은 기름바닥이라는 높은 결합도에 라이타불을 던지는 것과 마찬가지이다. 기존의 소스는 이미 여러 클래스들.. 더보기
책쓰기 일정에 애자일 프로세스 적용해보니 내가 생각하는 글쓰기 최고 높은 단계의 작업은 바로 책쓰기다. 블로그 스피어같은 경우 다시한번 제대로 활동해보려니 필력이 딸리긴 하지만..저번에 '내 인생의 첫 책쓰기'란 책을 읽어보고 글쓰기의 최고 정수인 책쓰기에 도전해보기로 했다. 비유 그대로 못하면 '무'라도 자를 계획이다. 어떤 책을 쓸지 계속 고민되었다. 지금 결론은.. ‘수필 디자인패턴’ 이라고 수필 문체 같은 문학적인 문장에다가 깊은 사색이 필요한 디자인 패턴 내용을 결합하여 뭔가 인문/문학적인 향기가 느껴지는 색다른 디자인 패턴 책..IT서적을 써보기로 했다. 자신 있진 않지만 그냥 쓰는거다. 사실 서점에 객체지향 또는 디자인 패턴 책이 널려 있기때문에 창의적인 아이템은 아니라 갑갑하지만..출판내서 대박나기 보다는 책쓰기 통해 프로그래밍+.. 더보기
어느 데몬 개발에 필요한 기술 - 테스트 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를 거의 사용하지 않을 것 같지만 다소 비효율적이다. 즉, 먼저 커널이 디스크에서 해.. 더보기
디벨로퍼웍스 늦가을 행사 개발자들의 수다 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. 따라서 현 직장에서는 최선을 다하지 않으려고 한다. 위 순서에 따라 이 개발자는 항상 뜬구름 잡는 꿈의 회사만을 찾게 되지만 결코 꿈의 회사는 못 찾고, 지금의 회사는 일단 먹고 살기위해 .. 더보기
옙스토어에서 희망을 보다. (이클립스를 사용해 아이폰 웹 애플리케이션 개발하기) 저는 순수 개발자로 평생 일하고 싶다는 생각을 많이 합니다. 나를 가만히 볼때 관리자등의 다른 길은 안맞다는 생각도 있고, 이쪽일이 그나마 적성에 맞기 때문입니다. 작년까지는 이런 생각이 특히 많았는데 그나마 요즘에는 좀 두루뭉실 해졌습니다. 일단 우리회사 잘되서 즐겁게 일했으면 하는 바람입니다. 평생 개발자로 일하고 싶은 꿈은 좋은데 다 아시겠지만 우리나라 현실은 그 꿈이 실현되기 어렵습니다. 그러나 위키노믹스나 부의 미래라는 IT를 통해 미래를 예견한 책을 읽어보면 IT개발자로 해볼만한 일들이 무궁무진 할수도 있다는 것을 알고 어렴풋이 기대하고 있습니다. 그중에 반가운 소식이 최근에 들려왔습니다. 옙스토어 라는 애플 아이폰 소프트웨어 판매 장터 입니다. 개발자가 아이폰 소프트웨어를 개발하여 옙스토어에.. 더보기
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 기본적으로 소스추적, 리팩토링, 문법체크, 일관된 주석템플릿등의 편리한 기능을 제공한다. 더.. 더보기