본문 바로가기

IT

미드웨이 해전에서 배우는 코드품질의 중요성 밀덕이라는 재밌는 단어가 있다. 밀리터리 마니아란 뜻이다. 남자라면 스포츠도 좋아하고 전자제품도 좋아하지만 군사관련 역사나 무기에 대한 관심도 많을 것이다. 나는 역사를 좋아했다. 역사중에서도 중국사를 좋아했다. 중국사중에서도 삼국지를 좋아했다. 삼국지를 읽지 않은 사람과 얘기를 하지 말라는 말을 믿었다. 사실은 왠지 모를 허전한 느낌이 들었다. 삼국지는 픽션이 섞였고, 화려한 모사들의 작전은 치밀하기 보다는 운이 따라주는것 같고, 아늑한 옛날 일이다. 무엇보다 픽션이 섞인것이 무작정 삼국지를 좋아하기에는 아쉬움이 따랐다. 2차세계대전 역사를 알면 알수록 거대한 스케일과 전장에 입을 다물지 못했다. 2차대전하면 유럽/미국과 독일 히틀러의 싸움을 생각하곤 한다. 그러나 가장 많은 물량전과 가장 많은 사람이.. 더보기
코드에 주석은 어느정도 까지 다는것이 좋은가 개발자 신입은 사수에게 코딩의 기본 원칙과 지켜야할 규칙을 배우게 되죠. 그중에 코딩할때 주석을 잘 달으라는 얘기를 많이 듣습니다. 저도 신입으로 코딩할때 주석을 잘 달아야 겠다고 다짐했습니다. 그러나 저는 개발하다보니 코드에 주석다는 습관을 갖추기가 몹시 어렵다는 것을 알게 되었어요. 먼저, 주석에 신경 쓸만큼의 개발 기간이 주어지지 않는 경우가 대부분 이에요. 이것은 핑계가 아니라 중요한 사실입니다. 보통 위에서 개발 기간을 줄때 코드 품질을 신경 쓸 만큼의 시간을 주지 않아요. 일단 코드가 작동되는 것이 중요하고 주석 다는 작업은 우선순위에서 뒤쳐져요. 그리고 주석 다는 작업은 꽤 귀찮은 작업입니다. 코딩가이드에 명시한 주석다는 규칙은 화려하고 복잡하다는 생각을 했어요. 주석다는 규칙이 화려하고 번.. 더보기
진입장벽이 높다는 것 무언가를 배울때 진입장벽이 높다는 것은 두가지 경우가 있다. 하나는, 배우고자 하는 대상이 조잡하여 배우는 진입장벽도 높고 배운 결과물도 안 좋은 경우이다. 영업력 90 기술력 10프로로 계약을 성사, 어이없게도 SI할때 완성된 솔루션을 공급하는게 아니라 SI 할때 같이 개발을 시작하고 SI 개발자들을 베타테스터로 만드는 엉터리 솔루션을 만드는 업체들의 제품이 여기에 해당한다. 처음부터 조잡하게 설계되어 사용법도 조잡한 경우로 마치 짝퉁 제품들과 같다. 하나는, 배우고자 하는 대상이 고도의 지식과 노하우가 쌓인 고급 지식이라 배우는 진입장벽이 높고 대신 진입장벽을 넘으면 배움의 혜택을 보는 경우이다. 자동차 운전면허와 비행기 조종면허의 차이점의 예를 들 수 있다. 자동차 운전면허는 보통 사람이 적당한 이.. 더보기
PMP 합격후기 (PMP는 태권도의 형과 같다.) PMP는 프로젝트 관리자를 위한 자격증이다. 우리나라 프로젝트가 하도 주먹구구식으로 돌아가, 정말로 체계적이고 합리적인 프로젝트 진행을 불가능한가 싶어 옛날에 헤드퍼스트피엠피를 호기심에 구입한것이 PMP에 대해 알게된 계기였다. 작년 회사에서 PMP 교육의 혜택을 주어 듣게 되었다. 옛날에는 PMP가 전형적인 국제 공인자격증의 잘못된 점처럼 족보가 가능해서 페이퍼 자격증일때가 있었다고 한다. 지금은 외울것도 많고 이해해야할것도 많은 고난이도 자격증이 되었다. 처음에는 용어가 낯설어서 힘들었다. 머리가 보통인 내가 볼때 이 자격증 난이도는 극악이라 교육받는 동료중 주변에도 따는 사람이 소수였고, 따는 사람도 한번에 붙지 못하고 2~3번에 붙곤 했다. 나는 이 시험이 하도 고약하니, 포기직전까지 갔다가 기적.. 더보기
프로젝트 한복판 술집에 시끄러운 소리와 손님이 가득하다. 그곳에 남자들만이 모여 소주를 걸친다. 아마도 짐작할수 있다. 그들이 하는 이야기중 군대 얘기가 들어갈 것이다. 자기가 군대에서 고생한것을 더 뻥튀기 한다. 술집에 시끄러운 소리와 손님이 가득하다. 그들은 개발자다. 그들이 하는 이야기중 프로젝트 갑의 욕이 들린다. 그들 스스로 프로젝트 때 얼마나 밤을 새며 고생했는지 훈장처럼 얘기할것이다. 개발자들은 당연히 프로젝트때 고생 하고 싶어하지 않는다. 그러나 어쩔수 없이 밤 새서 프로젝트 하면 그것은 나중에 술자리에서 훈장이 되기도 한다. 술자리에서 훈장삼아 프로젝트 고생담을 이야기 하려면 적어도 밤을 몇번 샜다는 이야기가 나온다. 내가 경험한 이번 프로젝트는 한번도 밤을 새지는 않았다. 그럼에도 프로젝트 한복판에 있.. 더보기
내맘대로 2013년 IT 이슈 제 작년부터 겨울이 되면 지대로~ 프로젝트를 한다. 지대로~ 프로젝트를 한다는것은 우리나라만이 할수있는 고강도 일정 압축 프로젝트를 진행한다는 말과 같다. 고강도 일정 압축 프로젝트 더하기 겨울 추위가 겹쳐 면역력은 떨어지고 스트레스도 있고...그리고 식탐 때문에 그런지 새해 첫날부터 장염에 걸렸다. 그래도 모처럼 블로그가 생각났다. 마음만은 매일 쓰고 싶다. 작심삼일일지라도 오늘은 내맘대로 포스팅 하자. 올해 주목할만한 IT 이슈들이 눈에 보였다. - 박근혜 당선 후 IT 정책의 변화보통 대통령 당선 후 공공 프로젝트가 여러건 발주된다고 한다. 공무원 IT 현업이 저무는 대통령에게 이런 좋은 프로젝트 있습니다~ 라고 광고하진 않기 때문이다. 박근혜가 대통령이 되면서 공무원 IT 현업들은 미뤄뒀던 여러 .. 더보기
인생은 새옹지마의 예 (모바일 하이브리드 프레임워크 선정) 살면서 인생은 새옹지마라는 고사성어가 떠오르며 무릎을 친적이 종종 있었습니다. 하나 예로 들면 힘들고 고되게 어떤 어플을 하나 개발했더니 다음에 두고두고 써먹을 레퍼런스가 되었던 경험을 했습니다. 한번 심하게 고생했지만 결국 나에게 도움이 되었던 경우였습니다. 작년 저희는 모바일 하이브리드 프레임워크를 써서 어플을 개발했던 경험이 있습니다. 그때 우리는 한마디로 국산 하이브리드 프레임워크에 대해 거품을 물게 되었습니다. 삽도 없이 손바닥으로 흙을 파는 듯 극심한 고생을 했던것이죠. 다시는 그런 최악의 프로젝트를 하고 싶지 않았습니다. 몇달 전 저희는 회사 차원을 넘어 소속 그룹사의 전체 표준 모바일 프레임워크 선정 관련 타당성 분석 작업을 진행했습니다. 그런데 이때 작년 거품 물며 했던 모바일 웹 프로젝.. 더보기
코딩 속도 저는 역사를 좋아하는데요. 전쟁사 중에서도 2차세계대전사를 좋아합니다. 저는 2차세계대전 당시 과달콰날에서 일본군을 기관총으로 휩쓴~ 존 바실론 같은 전쟁 영웅 보다는, 해군 제독 니미츠 처럼 인자하면서 카리스마 있고 지혜로운 전략으로 전쟁을 승리로 이끈 리더십있는 지도자를 더 좋아합니다. 보통 장교 같은 군인들은 처음에는 존 바실론 같이 필드에서 전투를 뛰면서 경험을 쌓을 것입니다. 점점 더 나이가 들고 연륜이 쌓일수록 전체를 아우르는 안목과 지혜가 생기고 지도자가 될것입니다. 대신 지도자가 되면 필드에서 전투를 뛰는 운동감각은 떨어질 것입니다. 사실 필드에서 뛸 필요 자체도 없겠죠. 문득 오늘 코딩을 하면서 이런 군인의 성장 과정이 생각 났습니다. 저는 과장인데요. 코딩과 설계의 중간단계의 묵직한 개.. 더보기
모바일 하이브리드 프레임워크를 경계하며 (총정리) (모바일 하이브리드 프레임워크 관련 글에 관하여, 프로젝트에 캐나다 사는 동생 결혼식에 개인적인 몇가지 큰일들이 겹쳐서 이제야 글을 덧붙입니다. 두어달동안 글을 못썼습니다. 포스팅 하려는 내용을 요약하여 올리겠습니다. ^.ㅠ) - 이전 줄거리작년 초 모바일 하이브리드 프레임워크 엔진을 직접 개발해 보면서 하이브리드 프레임워크가 생각만큼 효과 있지는 않을것이다~ 라는 회의가 들었다. 그뒤 이게 무슨 숙명인지 국산 모바일 하이브리드 프레임워크를 쓰는 프로젝트에 참여했다. 이때 엉터리 국산 솔루션을 쓰면서 지독하게 베타테스트 한 나는 모바일 하이브리드 프레임워크의 열혈 안티팬이 되었다. 벼르다가 모바일 하이브리드 프레임워크의 단점을 전파하는 연재글을 기획했다. 모바일 하이브리드 프레임워크가 탄생하게된 시대적인.. 더보기
모바일 하이브리드 프레임워크는 제2의 액티브엑스다.(2.국산의 문제) 모바일 하이브리드 프레임워크는 제2의 액티브엑스라는 제목은 두가지 뜻을 담고 있다. 하나는 모바일 하이브리드 프레임워크가 문장 그대로 웹에서 액티브엑스가 하는 역할을 고스란히 대신한다는 뜻이다. 하나는 액티브엑스가 우리나라 IT의 발전을 막았듯이 모바일 하이브리드 프레임워크도 우리나라 모바일 IT의 발전도 막을 수 있다는 뜻이다. 2006년도 모 프로젝트에는 BPMS란 신개념의 국산 프레임워크가 쓰였다. 이 프레임워크는 비즈니스 컴포넌트를 만들고 이 컴포넌트들의 프로세스를 연결하는데, 한번 만들어지는 비즈니스 컴포넌트는 재사용할 수 있는 신개념의 프레임워크 였다. 그러나 적어도 내가 사용한 BPMS는 현장 경험이 풍부한 설계자가 아닌, 책상머리에만 앉아 본 그 누군가가 만들지 않았나 싶을정도로 개발 생산.. 더보기
모바일 하이브리드 프레임워크는 제2의 액티브엑스다.(1.시대적인 배경) 모바일 하이브리드 프레임워크는 제2의 액티브엑스라는 제목은 두가지 뜻을 담고 있다. 하나는 모바일 하이브리드 프레임워크가 문장 그대로 웹에서 액티브엑스가 하는 역할을 고스란히 대신한다는 뜻이다. 하나는 액티브엑스가 우리나라 IT의 발전을 막았듯이 모바일 하이브리드 프레임워크도 우리나라 모바일 IT의 발전도 막을 수 있다는 뜻이다. 2009년말 아이폰의 전격 출시는 마치 2차세계대전 독일의 전격전을 떠올리게 한다. 독일의 전격전으로 프랑스를 비롯한 연합군은 초토화 되고 독일의 손안으로 들어간다. 연합군은 당황스러웠고 어떻게 대항 할지 난감했다. 그러나 곧 장병들을 모집했고 병기기술 개발을 앞당겨 시작했다. 처음에는 독일에게 일방적으로 밀렸지만 서서히 정신을 차리고 독일에 대항하게 된다. 너무도 강력한 독일.. 더보기
탐욕을 바탕으로 한 우리나라 모바일 IT 기술의 미래 아름다운 노력이란, 운동선수가 땀을 흘리며 본인의 역량을 꾸준히 향상시키는 것과 같다. 탐욕이란, 운동선수가 돈과 명예에 눈두워 어두워 스테로이드제를 복용하며 억지로 몸을 끌어올리는 것과 같다. 탐욕은 컨닝과 같다. 컨닝으로 본인의 점수를 올릴 수는 있지만 본인의 역량은 결국 저하되고 거창하게 나라의 질서도 어지럽히는 것과 같다. 탐욕은 본인과 나라를 엉망으로 만들지만 그 달콤한 유혹 때문에 인간은 탐욕을 결코 포기하지 못한다.시골의사 박경철님은, 따분한 경제서적을 재밌지는 않지만 깊이있는 인문서적처럼 쓰는 대단한 필력을 가진 분이다. 이분의 글을 읽다 보면 '탐욕' 이란 용어가 많이 나온다. 자신의 능력 이상 지나치게 욕심을 부리는 것이 투기이고 탐욕이다. 탐욕은 개인 투자자를 멸망시킬것이다~ 라는 비.. 더보기
엔드 투 엔드 개발자가 된 비밀 작년에 정착한 회사는 내 경험상 내가 갈수 있는 가장 좋은 회사중에 하나라고 확신한다. 이 경험은 내가 좌충우돌 부딪혀서 얻은것이기 때문에 꽤 정확하다. 그런데 만약 내가 자기소개서를 다시 쓰거나 면접을 다시 본다면 이렇게 말할거리가 생겼음을 우연히 깨닫게 되었다. "애플의 강점은 엔드투엔드 서비스 회사라는 것입니다. 하드웨어부터 소프트웨어, 유통플랫폼까지 모두 애플이 다 하는거죠. 이 경우 장점은 애플이 추구하는 이상적인 대 고객 서비스를 실행할수 있고 잘 통제할수 있다는 것입니다. 저는 마치 애플과 같은 개발자입니다. 저는 애플과 같은 엔드투엔드 개발자입니다. 저는 서버끝부터 클라이언트끝까지 모든 IT기술을 다룰줄 압니다. 서버 설치부터 운영, 통신 프로그램을 제작하고 WAS위에 서버 프레임워크 올리.. 더보기
xcode4 느린 속도 회복하기 제가 아이폰 개발을 하게 된 동기는 여러가지가 있습니다. 그 중 한 가지는 '애플이 하는건 뭐든 다르다~' 라는 기대 때문이었죠. 너도 애플빠구나~ 라는 말을 듣기엔 애플이 만든건, 애플이 하는건 정말이지 뭐든 달랐습니다. 맥북은 외형적인 디자인도 틀렸지만 맥OS의 뛰어난 성능에 놀랐고요. 안드로이드 최신버전도 아직 아이폰의 부드러움과 소프트웨어를 쫓아가지 못합니다. 어느날 한창 자바 개발할때 문득 이런 생각이 들었습니다. 여지껏 애플이 하는거 만져보니 다 감탄했는데, 애플이 만든 개발자 환경도 뭔가 획기적으로 다르지 않을까? 그래서 아이폰 개발자로 전향한 이유중에 하나가 되었습니다. 전향해서 다뤄봤더니 역시 기대에 만족하는 부분도 있고 거기서 거기인 경우도 있더라고요. 그중에 제가 정말 감탄한 아이폰 .. 더보기
프레임워크는 리더다. 1월은 계획하는 달, 멋지게 이런저런 계획을 세웠다. 계획을 실천하려고 보니 어느날 나는 1월말 5연속 11시에 퇴근한다. 9시에만 퇴근해도 생활리듬이 유지될것인데, 11시퇴근하니 머릿속에서 작동하는 톱니바퀴가 어긋난것 같고 일 빼고는 아무것도 생각하기 싫은 달이었다. 한창 생활리듬이 어긋나 있는 회사 오후, 나는 직속 상사 차장님과 밖에 나가 차한잔 했다. 마음씨 좋은 차장님에게 괜히 투덜거렸다. 근데 차장님이 갑자기 이 얘기를 하신다. 마음씨 좋은 차장님 : "요즘 톰피터스의 뭐뭐 라는 경영서적을 읽고 있는데 회사가 성공하려면 크게 4가지가 있어야 한다네.. 인재, 디자인, 트랜드, 리더십 이지~ 우리회사도 인재 많이 구하고...리더십도...블라블라..." 산골 과장 : 하나가 더 있어야 할것 같아요.. 더보기
Java 성능 모니터링에 대해 모르고 있던 5가지 사항 [IBM DW 201010] 자바 경력이 쌓일수록 단순반복 웹노가다 작업보다는 서버쪽이나 프레임워크나 성능튜닝쪽을 공부해야 고급개발자가 되겠다는 생각으로, 관련 공부를 했지만 역시 어렵더군요. 특히 자바 가장 밑단 가비지 컬렉터나 스레드 현황을 분석하는 자바 성능 모니터링은 높은 장벽이었습니다. 저같이 고급 자바 개발자가 되고 싶지만 어려워 하시는 개발자 분들이 많으리라 생각합니다. 이 기사가 자바의 가장 밑단에 있는 신비로우면서 어려운 성능 모니터링을 이해하는데 도움이 될것 같아 소개합니다. Java 성능 모니터링에 대해 모르고 있던 5가지 사항, Part 2 더보기
아이폰 Objective-C 메모리 관리 (수동변속기와 자동변속기) 친구로부터 중고차를 샀다. 차 사기전에 친구가 말했다. 수동인데 괜찮겠어? 나야 일종인데 상관없지~ 그래서 친구차를 저렴한 가격에 샀다. 그러나 수동 초보운전이 얼마나 힘들지 절감했다. 수동 초보 운전은 무서웠고 어려웠다. 사람들이 괜히 오토를 좋아하는게 아니구나라는 것을 알았다. 근데 운전이 조금 익숙해지니 수동의 장점이 보였다. 일단 재밌다. 마치 레이싱 게임하는것 같다. 연비도 더 좋고 수리비도 적게 든다고 한다. 그래도 막힌길이나 언덕길은 힘든것도 사실이다. 무엇보다 수동의 장점은 내가 내 차를 내 맘대로 컨트롤 한다는 자부심을 얻는 것이다. 이건 조금 실용성 없는 장점이긴 하지만 많은 수동 운전자들이 이 뿌듯함 때문에 수동운전을 좋아하는것 같다. 요즘 아이폰 개발에 Objective-C를 쓰면서.. 더보기
DB2 기초: 재미있는 날짜와 시간 [IBMDW 201010] 우리 자바 개발자들은 여러가지 SI프로젝트 경험을 합니다. 보통 자바 웹 개발 환경구성은 각양각색이지만 서버나 데이터베이스 구성은 대개 비슷합니다. 서버는 대부분 리눅스나 Unix일것이고 데이터베이스는 오라클 이겠죠. 그런데 종종 어느 대형 프로젝트 가면 IBM 기반으로 전산환경이 구축된 곳을 보게 됩니다. IBM으로 구축된 곳의 WAS는 틀림없이 웹스피어 이고, 서버 머신은 AIX(Unix 기반)이고 데이버베이스는 DB2 입니다. 우리 자바 개발자는 WAR 배포하고 리스타트 하는 방법만 알면 크게 신경쓸 필요 없기 때문에 WAS가 웹스피어인것은 크게 불편한일 없을 것이고요. AIX는 Unix이기 때문에 익숙한 서버 환경입니다. 문제는 DB2입니다. 지금 옛날 모 은행에 이어서 오랜만에 IBM 환경으로 .. 더보기
Android 애플리케이션에서 인터넷 데이터 사용하기 [IBM DW 201009] 누군가 말씀하시기를, B투C시장은 아이폰이 장악했지만 B투B시장은 대기업과 우리나라가 워낙 안드로이드를 밀어주는 분위기라 안드로이드가 좀더 발전할것 같다라고 말씀하시더군요. 스마트폰 비투비 프로젝트라면 아마도 이렇게 구성될 것 같습니다. 스마트폰이 클라이언트고, 이 클라이언트 폰에서 약속한 규약(XML이던 스트링이던 HTTP던 TCP던)으로 서버에 던지면 서버에서는 이 요청 데이터를 분석하고 요청 데이터에서 원하는 내용을 처리하여 다시 스마트폰 클라이언트로 던져주겠죠~! 비투비 프로젝트의 대부분이 이런 모습일것 같네요. 스마트폰 서버 프레임웍 디비 또는 호스트 이 기사는 전형적인 스마트폰 비투비 프로젝트에 참여하신다면 참고로 읽어보고 활용할만한 기사입니다. XML, JSON, 구글 제공 프로토콜 버퍼등 .. 더보기
아파치 Commons Lang 유익한 기능 활용법 [IBM DW 201009] 무슨 프로그램이든 글이든 보고 듣기엔 참 좋은 프로그램 또는 글인것 같은데 막상 활용해보자니 뭔가 두루뭉실하고 현실에 맞지 않는 것들이 있습니다. 저는 물론 간결하면서 바로 써먹을수 있는 프로그램이나 글이 좋습니다. 그런 의미에서 제가 좋아하는 바로 써먹을수 있는 실용적인 기사를 발견했습니다. 잠깐의 활용법만 알면 아파치 Commons Lang에서 제공하는 유틸리티 기능을 바로 써먹을 수 있습니다. * equals * hashCode * toString 이 3개의 메소드는 자바의 Object 클래스에서 제공하는 자주쓰는 메소드입니다. 특히 equals와 toString은 많이 쓰는 메소드죠~! 근데 보통 이 메소드들 그냥 쓰지만 가끔은 예를 들어 이런 상황이 생깁니다. Account acct1 = new.. 더보기
Eclipse Helios 둘러보기 [IBM DW 201009] 몇개월전 집 컴퓨터에 자바 개발환경을 새로 셋팅하면서 이클립스 3.4로 셋팅하고 잠시 묵혀두고 있었습니다. 그러다가 최근에 다시 자바 환경 실습하려고 했더니 아 이런 이클립스 3.5 헬리우스가 새로 나왔답니다. 그냥 3.4쓸까 3.5 쓸까~ 고민하다가 이왕 하는거 최신버전 깔아야지~ 라는 생각으로 3.5를 새로 받았습니다. 그런데 제가 이클립스를 새버전이 나올때마다 되도록 바로 업데이트 하려는 이유는 이번에 업데이트하면 이클립스가 좀 가벼워지지 않을까라는 기대 때문이었습니다만.. 기존 버전에 비교해 덩치나 속도는 큰차이가 없는것 같습니다. 대신, 마켓플레이스라고 앱스토어처럼 플러그인 마켓이 있고, 개발자는 이 마켓에서 원하는 플러그인을 받을수 있군요. 예전 방식보다는 좀더 사용자 친화적으로 바뀐것 같습니.. 더보기
손에 잡히는 정규 표현식을 읽고 가끔 전철안의 수많은 사람, 수많은 여성중에 그렇게 예쁘지도 않은데 이상하게 호감이 가서 계속 그녀를 쳐다본 기억이 있다. 딱히 이유를 찾기는 어려운데 유독 호감이 가고 알고 싶은 것들이 있다. 내가 프로그램 개발을 시작하면서도 이상하게 관심이 가는 기술들이 있었다. 예를들어 나는 윈도우 계열 기술은 안좋아하고 리눅스 계열 기술에 호감과 사랑을 보냈다. 옛날에 정보처리기사 실기시험을 대부분 비주얼 베이직으로 보는데 나는 C언어로 봤다. 전자상거래관리사 시험도 대부분 윈도우-ASP로 보는데 나만 리눅스-PHP로 시험을 치뤘다. 당시 수 많은 수험생 중에 리눅스-PHP로 시험보는 수험생은 나 혼자여서 감독관이 좀 낯설어하고 신기하게 봤던 기억이 있다. 남들은 기본 에디터로 다 울트라 에디트, 에디트 플러스를.. 더보기
JAR에 대해 모르고 있던 5가지 사항 [IBM DW 201008] 자바 개발자는 jar를 친근하게 바라 볼 것입니다. 저는 jar파일의 기능을 좋아합니다. 그 복잡다단한 설정파일과 클래스로 얽히고 섥힌 파일들이 하나의 jar로 묶일때 그 모습이 무척 깔끔하거든요. 그리고 옛날에는 jar종속성을 따져가며 jar파일 추가하는것이 좀 복잡다단하고 힘들기도 했는데 요즘에 메이븐을 써보니 jar 의존성 관리도 편해졌고요. 좌우지간 jar는 자바 프로젝트를 깔끔하게 정리해주는 파일입니다. 그런데 제가 몰랐던 jar의 여러가지 특징이 있군요. 예를 들면 1. JAR은 실행 파일이다. 2. JAR은 종속성 정보를 포함할 수 있다. 3. JAR은 암묵적으로 참조될 수 있다. 4. Java 6에서는 클래스 경로 와일드카드를 사용할 수 있다. 5. JAR에는 코드 이상의 것이 담겨 있다... 더보기
Apache Click 알아보기 [IBM DW 201008] 제가 항상 많이 했던 생각이 그리고 블로그에도 종종 썼던 내용이 "프레임워크" 다 좋은데 오히려 기술 적응의 난이도와 복잡성 때문에 역효과가 있다는 것입니다. 자바가 정말 많이 쓰이고 오픈소스 환경이 발달했기 때문일까요. 초기 하나의 JSP에 모든 로직을 담아 생기는 유지보수의 불편함을 없애기 위해 스트럿츠등의 프레임워크가 발전하더니 지금은 오히려 복잡하고 어려운 프레임워크를 보완하는 '간단한 모델을 사용하여 신속하게 웹 애플리케이션 작성' 하는 Apache Click 프로젝트가 생겼습니다. 한마디로 틈새시장 공략이군요~! 정말이지 잠깐 관심을 두지 않아도 개발자를 위한 다양한 프로젝트가 생성되는것 같습니다. 아파치 클릭은 그 추구하는 목표답게 어느 프레임워크보다도 무척 가볍겠지만 유닛 테스트등의 개발자.. 더보기
루비의 비밀 (레일스 VS 자바) 제가 한창 프레임워크에 관심을 가질 때 였습니다. 그때 회사에서 운좋게 두어가지 프레임워크를 만들고 있었죠. 회사에서 몇개 개발할 웹사이트에 쓰일 가벼운 프레임워크도 만들었습니다. 그때의 웹프레임워크는 스프링MVC의 기능을 이용해 만들었고 그럭저럭 잘 쓰고 있었습니다. 그러나 왠지 모르게 쓰기 불편하기도 했습니다. 질질 끄는 느낌이라고 할까요. 뭘 하나 수정하면 JSP, 클래스, XML파일등 여러 파일을 고쳐야 하니 지겹기도 했고, 특히 기억에 남는 점은 클래스 고치면 리로딩, XML 고치면 리스타트를 했는데 이때가 참 번거럽고 귀찮더군요. 진짜 좋은 프레임워크 구성 방식은 없을까, 웹 개발은 항상 짜증만 나야 하나, 이런 고민을 많이 했습니다. 그때 귀가 솔깃한 수식어를 단 어느 언어가 등장하더군요. .. 더보기
조금 더 객체지향적인 개발단계 - 수필 객체지향 옛날 간단한 사다리 게임 짜면서 취미생활 삼아 프로그램을 짜곤 했다. 그때는 단순히 언어 문법에 대한 지식과 로직 구현 능력만 있으면 프로그램을 구현할 수 있다고 생각했다. 그래서 프로그래머를 하면, 내가 하고 재미있어 하는 일 편하게 하면서 일하겠구나 라고 생각하곤 했다. 하지만 막상 프로그래머가 되어 보니, 프로그램 짜는 일은, 정확하게 말해 하나의 프로젝트는, 인간의 사회 생활 갖가지 요소가 동원되어 뭉친 복잡한 실타래와 같았다. 고도의 업무분석 능력, 커뮤니케이션 능력, 일정 관리 능력, 인력 관리 능력이 요구되었다. 어느 고참 개발자의 얘기를 들어보면 고급 관리자가 되면 정치싸움에도 능숙해야 한다고 했다. 나도 실제로 프로젝트를 경험해보니 실제 프로그램 구현 능력도 중요했지만, 업무담당자와의 커.. 더보기
SVN 강좌 (개발자의 무료 보험) *. 제가 지금 일터에 처음 들어왔을때의 일입니다. 그때 우리팀은 VSS를 쓰고 있었지만 버전관리자체를 잘 활용하지 않았습니다. 특히 제가 맡은 업무에서는 소스 버전이 엉키고 소스가 예전 버전으로 원복되는 문제가 있었습니다. 그때 내가 이슈를 제기하여 SVN을 쓰자고 주장했습니다. 그때 우여곡절 끝에 설득했습니다. 그때 팀원들을 위해 만든 문서입니다. SVN(소스 버전 관리)은 애자일 관련 기술중에서도 비교적 쓰기 쉬우며 가장 대중적이고 가장 필요한 기술이며, 개발자를 위한 무료이면서 강력한 보험과 같다는 생각입니다. 1. SVN 개요 1.1 버전 관리 시스템의 필요성 # 개발 버전과 릴리즈 버전이 섞이지 않고 쉽게 관리 할 수 있다. # 소스를 잘못 수정 했더라도 기록이 남으며, 되돌리기가 쉽다. # .. 더보기
아키텍처와 아키텍트 - 수필 객체지향 아키텍처란 단어는 산처럼 웅장하게 느껴지지만, 산속의 구름처럼 애매모호하다. 다른 객체지향 관련 용어처럼 어려운 용어로 우리를 불편하게 한다. 아키텍처의 시야는 ‘신’과 같다는 단서로부터 출발한다. 신은 위에서 아래를 내려다 보며 사람과 사물을 관찰한다. 그럴듯한 용어로 top-down view 라고 부른다. 아키텍처는 신이 사람사는 세상을 정밀하게 관찰한 결과물과 비슷하다. 아키텍처는 top-down view 관점에서 시스템의 구성 요소와 구성 요소들 사이의 연결관계를 분석한 기술적인 명세서이며 공학적인 청사진이다. 나는 나중에 내가 만들 아키텍처를 훌륭하게 만들기 위해 신의 눈을 갖기를 바랐다. 아키텍트란 단어는 고도의 전문가라는 이미지를 풍기지만, 이름만 화려하지 않을까라는 느낌도 준적이 있다. 이.. 더보기
객체와 컴포넌트 - 수필 객체지향 객체란 실체로 존재하는 대상/개념이며 고유명사이다. 객체는 세상에 유일하게 존재하는 모든 것들~이라고 정의했다. 나는 객체만 알면 되는 줄 알았다. 그런데 컴포넌트란 용어와 기술에 대해서도 알아야 했다. ‘CBD(컴포넌트 기반 개발) 개발 방법론’을 공부할때 나는 컴포넌트와 객체의 차이에 대해 햇갈려 했다. 객체와 컴포넌트에는 비슷한 개념이 들어있다. 오히려 객체와 컴포넌트에 비슷한 개념이 녹아서 햇갈려 했던 것 같다. 하지만 이 둘의 차이점도 명확하다. 컴포넌트의 정의는 독립적으로 배포되는 단위로 조립/교환이 가능한 응집도가 높은 소프트웨어 산출물이라고 한다. 컴포넌트는 좀 더 명확한 물리적인 결과물이다. 컴포넌트가 사람이 눈으로 확인할 수 있는 결과물이라면 객체는 사람이 눈으로 확인할 수 없는 작은 .. 더보기
UML로 객체지향 세계를 그리다. - 수필 객체지향 사람은 소통한다. 살기위해 소통하고 얻기위해 소통한다. 사람들이 얼굴보고 소통할때는 말뿐만 아니라 손짓, 발짓, 표정 그리고 알수 없는 미묘한 감성까지 힙을 합쳐 소통 한다. 그래서 사람들이 얼굴보고 소통할때는 자신이 전하고자 하는 뜻을 대부분 누수없이 전달한다. 그러나 과학 기술 영역에서는 소통의 어긋남이 조금이라도 발생하면 전체가 어긋날 수 있다. 섬세한 기록이 요구되는 과학 기술 영역에서 사람의 언어는 불완전한 소통 수단으로 전락한다. 그래서 과학 기술 영역에서는 사람의 불완전한 언어를 보완할 간결하고 명확한 언어를 쓴다. 수학은 간결함과 명확함으로 상징되는 과학의 언어이다. 수학은 인류의 발전을 우주로 이끌어 올린 로켓 엔진과 같은 힘을 주었다. 사실 수학은 나에게 어려움의 상징이긴 하지만 결국 .. 더보기