본문 바로가기

IT

아이폰 오카리나, 가브리엘의 오보에 연주 (작은 꿈의 실현, 영화 미션) 저는 예전부터 모든 디지털 장비의 기능이 하나로 통합된 완벽한 모바일 기기를 꿈꾸었습니다. 게임, 영화/음악감상, 일정관리, 통화, 전자사전, 공부, 라디오, 컴퓨터, 사진기, 이북 등의 통합 가능한 디지털 기능이 하나로 뭉친 단 하나의 장비를 기다렸습니다. 따로 들고다니면 복잡하고 무거울텐대 이것들을 하나의 장비로 통합하면, 깔끔하고 편하게 가지고 다니면서 풍요롭게 지낼수 있기 때문입니다. 사실 그런 완벽한 기기는 당시의 기술로는 탄생이 불가능했죠. 그나마 2년전 블랙잭을 쓰면서 약간의 흉내는 낼 수 있었습니다만, 다양한 기능은 흉내내도 완성도가 너무도 부족했죠. 제가 꿈꾸는 그런 전자제품은 앞으로 몇년간도 나오기 어렵다고 봤습니다. 그런데 그 비싼 값을 치루며 나에게 온 아이폰은 생각보다 일찍 꿈을 .. 더보기
상속과 구성 - 수필 객체지향 시골의 아이들은 어렸을때 물가에서 놀면서 형들이 약간만 알려주면, 저절로 헤엄치기를 배운다. 누가 정석으로 가르쳐 준것도 아닌데 잘도 헤엄친다. 상속은 시골 아이들의 야생 헤엄치기와 같다. 객체지향에 대해 약간의 지식만 익히고 사용할 줄 알면 상속을 습관처럼 저절로 쓰기 때문이다. 아이들의 야생 헤엄치기는 물가에서 놀기는 좋다. 그러나 수영 전문가가 볼때는 비효율적인 동작의 조합으로 조잡해 보인다. 만약 아이들이 물가에서 놀기위해 헤엄치기를 한다면 모르지만 좀더 전문적으로 수영을 하고 수영 대회도 나가고 짝사랑하는 영희에게 멋진 폼을 보여줄라면 지금의 헤엄치기는 문제가 있다. 상속은 복잡하지 않은 프로그램에서 대충 사용하기는 좋다. 그러나 객체지향 전문가가 볼때 상속을 무작정 사용하면 비효율적인 코딩이 .. 더보기
상속과 폴리모피즘 - 수필 객체지향 객체지향 대부분의 장점은 상속과 폴리모피즘으로부터 출발한다. C등의 절차지향 개념을 공부한 사람이 처음 상속과 폴리모피즘 개념을 배울때도, 난생 처음 프로그래밍을 배우는 사람도, 상속과 폴리모피즘 개념을 이해하는데 어려움을 표시한다. 그러다가 결국 나는 절차지향이 좋아~하며 다시 익숙한 방식의 프로그래밍으로 돌아가거나, 상속과 폴리모피즘 개념을 이해하지 않은체 객체지향 언어지만 절차지향적으로 프로그래밍을 하곤 한다. 그러나 상속과 폴리모피즘은 마치 대한민국 젊은 남자의 군대생활 처럼 반드시 거쳐야 하고 반드시 이해해야 하는 과정이다. 상속은, 스승과 제자사이와 비슷하다. 스승은 제자에게 자신의 모든 기술을 전수한다. 제자는 스승의 기술을 고스란히 체득한다. 또는 스승의 기술을 완전히 습득하기 전까지는 스.. 더보기
캡슐화와 정보은닉 - 수필 객체지향 캡슐화란 용어는 용어의 뜻을 이해하는것도 두루뭉실하지만 그 쓰임새도 애매모호하다. 나는 몇년 경력이 되어서도 캡슐화란, 객체의 속성을 private로 만들어 이것을 get/set 메소드로 호출하는 방법으로만 이해했다. 그런데 저 객체지향 캡슐화 이론과는 다르게 실제 프로그래밍에서는 객체의 속성을 public으로 만들어 직접 호출하는것과의 차이점을 느끼지 못했다. 오히려 private로 선언하면 클라이언트에서 저 속성을 가져올때 get/set을 쓰느라 코드 보기가 더 지저분해서 좋게 생각하지 않았다. [삽화] 캡슐화는 객체지향 개발의 중요한 장점중에 하나이지만, 나는 상속과 구성 폴리모피즘의 장점은 이해하면서 유독 캡슐화의 장점을 이해하지 못했다. 캡슐화의 정의와 캡슐화가 왜 좋은지 따로 공부해야 했다. .. 더보기
오버로딩과 오버라이딩 - 수필 객체지향 오버로딩은 마치 맥가이버칼의 부속품과 같다. 같은 몸통(메소드 이름)에서 꺼내는 위치만 바꾸면(인자값) 다양한 기능이 발견된다. 오버로딩은 같은 이름의 메소드의 인자값(=시그네처)를 다르게 주어 개별적으로 개발자 입맛에 맞게 호출할 수 있는 방법이다. 내 경험으로 오버로딩은 생성자 호출에서 특히 많이 쓰인다. 처음 객체를 생성할때 오버로딩된 다양한 생성자들의 용도를 파악하여, 써야 되는 상황에 알맞게 해당 객체를 사용할 수 있다. - 생성자 오버로딩 예제-병아리 부화 클래스 public static void main( String[] args ) throws Exception { ….. Chick chick1 = new Chick(); // 1 Chick chick2 = new Chick(“먹이”); /.. 더보기
인터페이스 - 수필 객체지향 인터페이스(Interface)는 산의 맑은 공기와 같다. 등산할때는 항상 맑은 공기를 마실 수 있지만, 맑은 공기의 고마움은 쉽게 인식하지 못한다. 등산을 마치고 도시속에 찌든 공기를 마시고 기침을 콜록일 때서야 그 고마움을 깨닫곤 한다. 인터페이스는 바다의 해삼과 같다. 해삼은 인간에게 가장 이로운 영양을 주는 해산물로, 해녀가 깊은 바닷속에 잠수해야 겨우 몇마리 건져올리는 해산물이다. 인터페이스는 산의 맑은 공기처럼 늘 객체지향 개발자와 함께 하는 존재이며, 무의식중에 쓰이는 존재이지만, 인터페이스의 고마움을 쉽게 인식하지 못한다. 개발을 마치고 어지럽기만한 코드를 디버깅 하다가 인터페이스 형식으로 리팩토링 해서야 그 고마움을 깨닫곤 한다. 인터페이스는 바다의 해삼처럼 객체지향 요소 중에서 개발자에게.. 더보기
객체지향을 이롭게 하는 5가지 특징, 수필 객체지향 + 객체지향 생태계 우리는 객체지향 자연 속에 있다. 객체는 나무이며 애플리케이션은 숲이다. 낮은 해충(결합도)과 높은 영양(응집도)으로 유명한 객체지향 지역에 나무를 심고 울창한 숲을 기대한다. 땅은 객체지향 그 자체이다. 클래스 씨앗을 땅에 심는다. 씨앗이 생성자 통해 발아되어 객체가 되었다. 나무의 형태가 갖춰졌다. 속성은 줄기와 같다. 속성은 나무를 지탱하고 그 존재를 지키고 세상에 알리는 나무의 중심이다. 메소드는 가지와 잎과 꽃과 열매와 같다. 울창한 가지와 잎으로서 나무 자신과 산과 지구와 생물을 지켜주면서 자신의 존재를 뽐낸다. 이 나무들이 모이고 커져서 모든 생물을 이롭게 하는 거대하고 우람한 숲이 될 것이었다. 객체는 나무와 같아야하고 어플리케이션은 숲과 같아야 한다. + 객체지향을 이.. 더보기
속성, 메소드, 생성자 - 수필객체지향 + 속성 속성을 찾는 일은, 보이지는 않지만 생물이 생존하는데 꼭 필요한 적혈구등의 요소를 현미경으로 관찰하는 생물학자와 같아야 한다. 속성은 객체 고유의 특징을 정의 할 수 있는 단어로 드러낸 것이다. 예를 들어 자동차에는 ‘움직일때의 빠르기’라는 속성을 속에 품고 있다. 만약 자동차를 객체로 모델링 한다면 기본적으로 ‘움직일때의 빠르기’라는 속성이 스며들어 있기 때문에 이 속성을 정의 할 수 있는 단어로 밖으로 드러내야 할 것이다. ‘움직일때의 빠르기’는 ‘속도’ 라는 단어로 정의 된다. 그래서 자동차 객체 모델링을 통해 ‘속도’라는 속성이 문서나 프로그램을 통해 드러나게 될 것이다. 객체의 속성을 찾는 일은 객체 안에 숨겨진 고유 특징을 찾아내는 일이기 때문에, 그 객체에 대해 잘 알고 있어야 한다.. 더보기
아이폰의 움직임은 김연아와 닮았다. 몇달전 노트북을 새로 사려고 했습니다.그때 맥북은 전혀 생각하지 않았는데요. 근데 친구가 맥북을 강력히 추천했습니다. 왜 좋냐고 물어보니 예쁘고 OS의 성능이 좋고등의 다소 두루뭉실한 장점을 말해주었습니다. 그래서 윈도우의 익숙한 많은 킬러 프로그램을 포기하고 맥으로 옮겨 가기엔 뭔가 부족했어요. 그러나 저는 깐깐한 친구가 그렇게 극찬하는것은 다 이유가 있을것 같아 한번 저지르자 하고 맥을 샀습니다. 근데 맥에 막상 익숙해지니 정말 윈도우하고는 그 성능이나 움직임이 차원이 틀린거에요. 저는 친구에게 말하길, 마치 발달된 외계인이 쓰던 컴퓨터가 지구로 떨어진게 맥이 아닐까 싶다라고 말하기까지 했습니다. 맥을 만족하며 쓰고 있는 요즘 드디어 아이폰이 우리나라에 나왔습니다. 저도 사고 싶었지만 통신요금이 배로.. 더보기
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) 개발 협업 방법 및 사용 기술 - 백기선 * 코드 품질 포탈 .. 더보기
웹 개발 다반사, 웹 개발도 즐겁게 할수 있다~ 어떤 사물을 생각하면 그 사물과 연관된 이미지가 즉각 생각나곤 합니다. 예를들어 애플사~ 하면 진취적 창의적 이미지가 떠오르고, 우리나라 통신사나 모자동차 회사를 생각하면 독과점 횡포 기업이란 이미지가 떠오릅니다. 이효리하면 섹시한 이미지가 떠오르고 박지성 하면 성실한 이미지가 떠오르죠. 하얀 눈의 이미지는 어떤가요. 깨끗하고 낭만적이고 순수한 이미지가 떠오르실 겁니다. 그러나 나에게 눈은 지독한 삽질, 지독한 노가다라는 강렬한 이미지로 남아 있습니다. 저는 산에서 군복무를 했고 지독하게 눈을 치워댔습니다. 눈이 무섭고 싫었습니다. 그 순수한 눈에게서 이런 나쁜 이미지를 느끼다니 삭막하고 안타깝죠. 근데 군 제대한 후에는 눈 치울 걱정은 할 필요 없더군요. 이제 더 이상은 삽질은 없을 것 같았습니다. 그.. 더보기
처음엔 생소했던 배치팀 풍경 나는 처음에 들어간 회사가 금융SI회사라 보니 금융쪽의 경력을 계속 쌓고 있다. 나는 금융쪽의 경력이 왜 좋은지 의문이 들 때가 많다. 왜냐면 내가 겪은 금융쪽 일들은 정형화 된 일들이라 창의적인 개발을 하기 힘들고, 이쪽 계통이 보수적이라 최신 기술 보다는 안정된 기술을 쓰는 경향이 있기 때문이다. 더구나 내가 겪은 금융 프로젝트나 은행에서는 출퇴근 시간이 엄격하고 컴퓨터 보안도 엄격하게 적용하여 여러가지 불편한점이 많다. 그래도 좌우지간 이쪽 경력이 좋다고하니 좀더 경력 쌓아보고 아~ 이래서 금융 경력을 인정해주는구나라고 실감나게 느끼게끔 뭔가 금융의 핵심 업무와 기술을 익혀야 한다는 생각은..많이 한다. 어디든 마찬가지로, 금융쪽에서도 여러가지 분야가 있고 나는 인터넷 뱅킹쪽을 경험 했다. 근데 지.. 더보기
올드스쿨 또는 뉴스쿨 프로그래밍 금요일 퇴근하는길에 직장 동료와 1층으로 내려갔다. 동료가 묻는다. "김대리님은 주말에 뭐하세요." "저는 주말에 수영하고 뒷산타서 집에와서는 그냥 쭈욱 쉬어요~ 수영이 유일한 낙이에요~" 라고 말했다. 그야말로 수영이 근 1년간 유일한 큰 즐거움이다. 나는 20대 초반 4년을 부사관으로 입대하느라 군대 촌구석에서 몽땅 보냈다. 그때도 지금의 수영만큼 고되고 외로운 생활을 잊게 해주는 나의 유일한 낙이 하나 있었다. 그것은 바로 '힙합' 이란 음악장르로 힙합 음악을 듣거나 어설프게 랩을 읇조리면 나름대로 고단함을 잊을 수 있었다. 여기까지는 괜찮은데 어느날 내가 아주 고약하게 빠져든 힙합 분야가 있었다. 그것은 바로 '비보이' 라는 힙합 장르중 하나다. 비보이 배틀 영상을 TV로 본적이 있는데, 하늘을 .. 더보기
프로그래머, 장인 또는 고된 현실에 찌든 노동자, 수필 객체지향 우리가 프로그래머로 일하는 이유는 두가지이다. 프로그래밍이 좋아서 프로그래머가 되었다. 어떻게든 먹고 살려다보니 밥벌이 삼아 프로그래머가 되었다. 전자는 순수한 열정이 느껴지고, 후자는 치열한 생존 전쟁의 이미지가 풍긴다. 어렸을 때 빌게이츠와 애플의 스티브잡스등의 IT영웅들을 잡지에서 보던 나는, 세상의 프로그래머는 단지 프로그래밍이 좋아서 프로그래머가 되었을 것이라고, 프로그래머는 뭔가 순수하고 특별한 세계를 가진 사람들일 것이라고 기대했다. 나는 존재하지 않는 이상계에 대한 꿈을 꾸었다. 우리나라는 프로그래밍이 좋아서 프로그래머가 되는 순수한 열정을 지켜주진 않는다. 우리나라 프로그래머는 밤12시 넘어서 일하고, 새벽에도 일하고, 주말에도 일하며, 명절에도 일하고, 결혼기념일에도 일하며, 심지어는 .. 더보기
내 일터에서 필요한 관심 기술들 새로 일한지 한달이 지났습니다. 마치 신입처럼 빠듯하게 일했습니다. 4달 쉬고 일한대다가, 몇년동안 같이 일한 팀원을 떠나 새로운 사람들과 익숙해지고 인정받기가 쉽지 않았기 때문에, 온통 회사일에 적응하는데 내 힘을 쏟아부었습니다. 사실 더 큰 이유는 여기서 해야할일이 내가 많이 경험하지 않은 일들이라 더 정신 바짝 차리고 일했던 것 같습니다. 마치 신입처럼 열심히 일하다보니 신입때 뭐든지 호기심 갖고 열심히 공부하고 일했던 그때로 돌아가는 효과도 생기는 것 같았습니다. 다시 신입처럼 공부하기 시작한 것은, 열심히 공부하고 일을 잘 할수록 바로 내 밥벌이에 도움이 된다는 것을 실감했기 때문입니다. 사실은 백번 대의를 강조하는 것보다 한번 그 이익을 체감해보는 것이 더 효과가 좋은 것 같습니다. 처음에 내.. 더보기
에반젤리스트도 어려운 일이구나. 최근 프리랜서로 일하면서, 1차업체와 개발자를 연결해주는 '2차 업체'와도 약간의 인연을 맺게 됐다. 단순히 소개와 돈만 주고받는 사이는 아니라고 생각한다. 2차업체 인터뷰 볼때 유쾌했던 이유는 사장이 30살이고 과장이 28살이었기 때문이다. 거외 TV에서 종종 보던 똑똑하고 패기넘치는 엘리트 젊은이 같은 이미지 였다. 이런 순수하고 젊은 회사가 거친 SI업계에서 크게 될것인지 지켜보는것도 재미있는 일이었다. 젊은 사장님이 나홀로 파견나가기전 당부하시기를, 그냥 프리로 돈받고 하는일만 하는것이 아니라, 우리 회사 입장이 되서 우리 회사 기술과 산골대리님의 기술을 그곳에 널리 전파하여, 우리회사 이미지를 향상시키는 '애반젤리스트'가 되어달라고 부탁하셨다. 나는 애반젤리스트는 또 무슨 용어인가 궁금했다. 알.. 더보기
익숙한 것과의 결별, 낯설은 것과의 적응 중 5년내내 같은 팀원들과 일하다가, 회사 그만두고 백수생활을 몇달 한것이며, 이번에 새로운 곳으로의 첫 출근을, 나는 익숙한 것과의 결별이라고 표현한다. 익숙한 것과의 결별은 구본형님의 유명한 자기계발 책 제목과 같다. 익숙한 것과의 결별이라는 표현은 나도 이런 급격한 환경 변화를 통해 뭔가 발돋움 해보려고 했다는 일종의 자기 합리화와 비슷하다. 4달동안의 백수생활 끝에 다시 회사 출근 했을때, 나는 생활리듬하고 코딩감각 되살리는데 꽤 시간이 걸릴줄 알았다. 하지만 다행히도 생활리듬은 내가 백수 생활 습관을 일정하게 유지했기 때문에 금새 적응되었고, 코딩감각도 금방 적응이 되었다. 사실 코딩감각도 글쓰기 감각처럼 적응하는데 꽤 걸릴줄 알았는데 금새 적응되는것이 꽤 의아했다. 생각해보니 매일 글쓰기 라는 얘.. 더보기
블로그와 트위터, 디자인패턴과 리팩토링, 수필 객체지향 블로그처럼 네티즌을 위한 훌륭한 도구가 또 하나 있다. 트위터라는 도구이다. 예전에 블로그는 '자기 생각과 주장을, 자유롭게 글이나 사진으로 편집해서 올리고, 댓글, 트랙백, RSS, 태그등의 기법으로 쉽게 전파하는 도구' 라고 정의한 적이 있다. 트위터는 '블로그 처럼 자기 생각과 주장을, 짧은 글로 올리고, 친구(following, followers) 맺기, RT(친구의 글을 내가 전파함), 댓글등의 기법으로 쉽게 전파하는 도구'라고 정의해 본다. 블로그와 트위터의 정의로부터 이 둘의 공통점과 차이점을 찾아 보았다. 블로그는 편한대로 쓰기도 하지만 대부분은, 글을 쓰기전에 미리 이런식으로 글을 구성하겠다고 생각한다. 블로그는 글쓰기 전에 또는 글을 쓰면서 많은 노력을 요구한다. 트위터는 편한대로 쓴다.. 더보기
객체지향과 관계형 데이터베이스의 조화, 수필 객체지향 처음 봤는데도 왠지 끌리는 사람이 있고 물건이 있고 기술이 있다. 나는 처음 프로그래밍을 배울때부터 객체지향 관련 기술을 좋아했다. 아마도 철학같은 깊이가 느껴지는 기술이라 좋아했던 것 같다. 객체지향을 배우면 어떤 요구사항이라도 고스란히 내 프로그램으로 옮길수 있을 것 같았다. 그러나 공부와 실전은 달랐다. 나는 객체지향 기술 공부와 실전 개발을 병행하면서 종종 알기 힘든 괴리감을 느꼈다. 처음에는 단순한 웹코딩을 했기 때문에 객체지향을 써먹을 일이 없었다. 그때 프로그래머는 머리를 쓰는 지식 노동자가 아니고 단순 복사/붙여넣기 노동자 일수도 있구나라는 생각을 했다. 드디어 기회가 왔다. 회사 업무에 쓰일 프레임워크를 개발해 보라는 지시였다. 그때 그동안 배운 객체지향, 디자인패턴, 리팩토링 기술을 총.. 더보기
객체지향과 절차지향, 수필 객체지향 세상의 모든 사물을 프로그래밍으로 표현하면 속성과 행동이라는 두가지 요소로 나누어서 표현된다. 세상의 모든 사물을 오직 두가지 요소로 나누어 표현해도 된다는 사실은 마치 0과1의 2진법처럼 명쾌하고 간결하게 느껴진다. 절차지향이던 객체지향이던 프로그래밍 대상의 구성 요소는 오직 속성과 행동으로 간결하게 구분지어 개발할수 있다는 사실을 생각해보니, 우리가 절차지향이나 객체지향을 너무 복잡하고 어렵게 생각하고 있는 것 같았다. 세상의 모든 사물을 속성과 행동으로 나누는 것은 절차지향과 객체지향 언어에서 나눈다. 좀더 명확하게 단어까지 고쳐 말하면, 속성과 행동은 절차지향에서는 데이터와 함수이고 객체지향에서는 속성과 메소드로 불린다. 절차지향은 농민들이 공동으로 농장을 경영하는 것과 같다. 무질서하고 원시적인.. 더보기
수필 객체지향, 디자인패턴과 프레임워크 그리고 라이브러리 디자인패턴(Design Pattern)이 무엇이고 프레임워크(Framework)가 무엇이고 이 둘의 차이가 무엇이냐는 질문은 객체지향 개발이 무엇이냐는 질문처럼 나를 바보로 만든다. 하지만 명색이 제대로 된 객체지향 개발자를 꿈꾼다면 이 둘의 실체를 알아내는 것이 두렵다고 해서 이 둘의 추적을 중단해서는 안될것이었다. 라이브러리(Library)의 정의는 간단하다. 자주 쓸만한 로직을 잘 갖춰놓고 필요할때마다 가져다 쓰는 유틸리티 클래스들의 모음이다. 그런데 디자인패턴을 정의하려면 말문이 막혀서 터지지 않는다. 대략의 뜻은 알고있고 써먹을줄도 알지만 명확한 정의에 대해서는 생각이 잘 떠오르지 않는다. 그럴수록 좀더 생각을 하면서 단어의 뜻을 따라가보았다. 디자인이란 말은 설계란 뜻이다. 패턴은 일종의 정형.. 더보기
수필 객체지향, 객체지향과 추상화 객체지향 개발에 익숙한 개발자들이 있다. 그들은 자신이 제일 잘쓰는 에디터를 구동하는 순간부터 저절로 객체지향적인 코딩이 진행된다. 그러나 갑자기 객체지향 코딩에 익숙한 개발자에게 ‘객체지향’ 개발이란 무엇인가요? 그리고 왜 객체지향적으로 개발을 하는건가요? 객체지향적으로 개발한다는 것은 어떤 뜻인가요?라고 호기심 가득한 신입 후배가 묻는다면 갑자기 머릿속이 가비지 컬렉터 되면서 아무 생각도 떠오르지 않지 않을까 짐작된다. 질문에 왠지 명쾌하게 답하기가 어렵기 때문이다. 그래서 저런 어려운 질문에 대하여 곰곰히 생각해본적이 있다. 답은 잘 떠오르지 않았다. 한때 이 문제로 고뇌했다. 한참 후에 결국 ‘객체지향 개발이란 세상의 모든 요소를 객체와 객체간의 관계로 추상화 하여 추상화시 얻을 수 있는 유연함과.. 더보기
수필 객체지향, 클래스(Class) 클래스(Class)는 일반명사이다. 일반명사는 저 사람~ 저 물건~ 처럼 유일한 사물을 가르키는 단어가 아니다. 사람, 나라, 자동차, 컴퓨터처럼 사물을 공통적으로 부를 수 있는 단어로 묶은 것이다, 예를 들어 맥북, 센스, X노트 등으로 불리는 고유명사인 사물은 노트북이란 일반명사로 묶어서 부른다. 노트북, 휴대폰, 자동차처럼~ 우리가 부르는 일반명사는 명확하게 어느 사물을 가리켜 부르는 것이 아니고 뭉뚱그려 부르기 때문에 그 실체가 애매모호하다. 일반명사는 명확하게 가리키며 부를 수 있는 눈앞에 존재하는 사물이 아니며 우리 인간의 사고과정을 통해 한단계 추상화시킨 존재이다. 그래서 클래스는 아직 사람 머릿속에 존재하는 개념이고 아직 객체로 생성하여 세상에 나온 개념은 아니다. 객체지향 언어인 자바로 .. 더보기
수필 객체지향, 응집도와 결합도 객체지향 개발을 하는 이유는 객체지향적으로 제대로 개발하면 유연하고 확장성 높고 유지보수 편리한 개발이 가능하기 때문이라고 한다. 객체지향적으로 개발하면 왜 유연하고 확장성 높고 유지보수가 편리하냐고 누가 단도직입적으로 묻는다면 나는 총으로 겨냥당한것처럼 돌부처가 될것 같다. 그래도 우격다짐으로 말해보면 객체지향적으로 개발하면 모듈간 응집도는 높고 결합도는 낮아지기 때문이라고 말할것이다. 하지만 역시 열심히 공부하려는 우리를 당혹스럽게 하는 뜬구름 잡는 얘기이기도 하다. 응집도는 높고 결합도는 낮아야 된다는 이 공대 용어 스러운 말이 무슨 뜻이야? 응집도가 높다는 말은 비슷한 일을 하는 기능들이 하나의 모듈로 얼마나 잘 뭉쳐 있냐와 비슷한 말이고 결합도가 낮다는 말은 그 일을 완수하기 위해서 얼마나 다른.. 더보기
수필 객체지향, 객체(Object) 객체(Object)란 단어는 낯설다. 객체지향 개발이 두려우면서 범접하기 어려운 기술로 느껴지는 이유중에 하나는 객체(Object)란 단어부터 낯설기 때문이다. 객체(Object)의 사전적인 뜻은 ‘실체로 존재하는 대상 또는 개념’ 이다. 이 뜻을 우리 사람사는 세상에서는 어떻게 표현하면 되는지 불러보았다. 저 사람~, 저 사물~, 저 물건~, 저 동물~, 저 것은~, 그것은~, 이것은~ 으로 불리는 것 같다. 그러고보니 저 사람, 사물, 물건, 동물, 그것은, 이것은 등을 하나로 통합하여 사람 입에 불리어지는 단어는 없다. 그냥 저 사람이고 저 물건으로 불리어질 뿐이다. ‘실체로 존재하는 대상 또는 개념’이라고 정의되는 대상을 우리는 저 사람~ 저 물건~ 하며 친숙하게 부르는데 다만 하나로 통합하여 부.. 더보기
책쓰기 일정에 애자일 프로세스 적용해보니 내가 생각하는 글쓰기 최고 높은 단계의 작업은 바로 책쓰기다. 블로그 스피어같은 경우 다시한번 제대로 활동해보려니 필력이 딸리긴 하지만..저번에 '내 인생의 첫 책쓰기'란 책을 읽어보고 글쓰기의 최고 정수인 책쓰기에 도전해보기로 했다. 비유 그대로 못하면 '무'라도 자를 계획이다. 어떤 책을 쓸지 계속 고민되었다. 지금 결론은.. ‘수필 디자인패턴’ 이라고 수필 문체 같은 문학적인 문장에다가 깊은 사색이 필요한 디자인 패턴 내용을 결합하여 뭔가 인문/문학적인 향기가 느껴지는 색다른 디자인 패턴 책..IT서적을 써보기로 했다. 자신 있진 않지만 그냥 쓰는거다. 사실 서점에 객체지향 또는 디자인 패턴 책이 널려 있기때문에 창의적인 아이템은 아니라 갑갑하지만..출판내서 대박나기 보다는 책쓰기 통해 프로그래밍+.. 더보기
늦춰진 일정 따라잡기. 종종 옛날 제주도 4박5일 하이킹 했던때가 기억납니다. 하루하루가 즐겁고 행복했던 추억으로 가득했죠. 뭘하던 마찬가지겠지만 자전거 하이킹에도 인생과 비슷하다는 기분을 느꼈습니다. 오르막 길과 내리막길, 또는 평탄한 길을 계속 반복합니다. 오르막 길은 힘들지만 곧 즐거운 내리막 길이 있다는 기대 하나로 버텨요. 내리막길은 몸은 편안해 지고 시원한 속도감도 즐깁니다. 평탄한 길은 힘들지는 않지만 다소 지루한 감이 있어요. 자전거 하이킹 하며 인생이란 '길'과 같구나 라는 생각을 했습니다. '개발'또한 자전거 하이킹 하던 길과 비슷하다는 생각을 했습니다. 처음 개발 속도가 붙기까지 힘든 오르막길을 오릅니다. 일단 개발속도가 붙으면 여유있게 내리막길을 타요. 그리고 개발 패턴이 확정되면 그뒤로는 지루한 복사/붙.. 더보기
엑셀 DB 임포트 프로그램 만들다 보니 1. 최근에 대량의 데이터를 DB에 INSERT할 일이 자주 발생한다. 대부분의 경우 데이터를 엑셀로 만들어 DB에 INSERT 하는 형식이 가장 빠르게 작업하는 방법이다. 최근 두어번의 엑셀 데이터를 DB에 INSERT하는 작업을 하고, 오늘 대량의 엑셀 데이터를 DB에 넣고 보니깐, 엑셀 데이터를 DB에 넣기 위한 프로그램들이 복사/붙여넣기 하듯 비슷하다는 것을 알았다. 앗..엑셀 DB 임포트용 전용 프로그램을 제대로 만들면 편하겠구나라는 생각이 들었다. 데이터가 시작되는 row와 max 칼럼을 프로퍼티로 지정하고, SQL도 별도의 프로퍼티로 빼고 기타 변경가능한 로직들은 별도의 클래스로 빼고 엑셀 칼럼 검증등의 기본적인 부분은 재사용 하면 편리한 프로그램을 만들겠다는 생각이 들었다. 이런 개발이야말.. 더보기
포켓뱅킹 오픈 소감과 기대 (농협 포켓뱅킹) 포켓뱅킹 개발 진행이 더디고 더딜때, 우리는 우리가 만들고 있었던 ‘담을 수 있는 모든 온라인, 오프라인 금융 서비스를 하나의 USB 장치에 담는 새로운 개념의 금융 서비스’가 정말로 완성될 수 있을까 불안해 하였다. 포켓뱅킹이 오픈되던 날, 우리는 초당 300발의 기관총 연사 사격처럼 빗발치는 전화 문의와 아직 진행중인 다른 일정을 소화하느라 정신이 없었다. 포켓뱅킹이 오픈되고 한주는 마치 군입대후 처음 훈련받기전 정신없이 굴렀을때처럼 정신줄 빼놓는 일주일을 보냈다. 그러나 그 와중에도 내 정신을 번쩍 차리게 만드는 사실 하나는 우리가 정말 실현될까 불안해 했던 포켓뱅킹이 정말로 완성되어 세상에 나왔다는 사실이다. 각자의 영역에서 어머니 산고의 고통 이상의 엄청난 고통을 감수하며 자신의 일을 진행하고 .. 더보기
어느 데몬 개발에 필요한 기술 - 테스트 3번째 연속으로 적습니다. ^ ^; 전 글에 제가 주말에 긴급 개발해야 하는 대용량 DB처리 데몬 개발에 필요한 기술을 DW기사에서 찾고 있는데요. 마지막에 필요한 요소가 테스트 입니다. 이 데몬 같은 경우는 어떠한 경우라도 처리가 엉키지 않고, 다운되지 않고 무사히 처리해야 합니다. 그러나 데몬이 엉키는 경우가 무수히 많다는 것을 발견했는데요. 예를 들어 목록 파일 올려서 처리중인데 누가 또 다른 목록파일을 올렸을 경우, 목록파일 처리중에 실패했을 경우 잘 마무리 하는 방법, 목록 파일이 아직 업로드 중인데 데몬이 업로드 중인 파일을 읽으려고 할 경우등, 여러가지 문제가 발생될수 있습니다. 그래서 촘촘하고 꼼꼼하게 개발해야 하는데, JUnit 써서 촘촘하고 꼼꼼하게 개발하려고 합니다. 이것 말고 테스팅.. 더보기