본문 바로가기

책쓰기

책쓰기 중간 결과물 일단 블로그에 최대한 올리기로 제 블로그 오랜 구독자시라면 제가 작년 봄,여름에 객체지향을 주제로 책쓰기를 열심히 했다는 것을 아실 겁니다. 사실 한창 열심히 했을때 고무적이었습니다. 출판사에서 연락도 오고 미팅도 가졌습니다. 보이지 않는 실체였던 내 상상속의 책이 실제로 출판될것 같았죠. 그러나 블로그가 아마추어적이라면 책은 투자 및 돈이라는 요소가 들어가기 때문에 그야말로 프로의 집필 능력을 보여줘야 했습니다. 사실 책집필의 난이도 보다는 취직 후 '열혈 글쓰기 정신'이 사라진것이 문제였습니다. 투잡의 정신으로 계속 책쓰기를 해야 하는데 퇴근만 하면 만사 귀찮아 자기 바쁩니다. 그동안 계속 책쓰기를 이어가야 겠다는 생각은 하는데 실천이 잘 되지 않고 있습니다. 하지만 작년 초여름 그렇게 열심히 한 결과물을 묻혀두기에는 아깝다는 생.. 더보기
프로그래머, 장인 또는 고된 현실에 찌든 노동자, 수필 객체지향 우리가 프로그래머로 일하는 이유는 두가지이다. 프로그래밍이 좋아서 프로그래머가 되었다. 어떻게든 먹고 살려다보니 밥벌이 삼아 프로그래머가 되었다. 전자는 순수한 열정이 느껴지고, 후자는 치열한 생존 전쟁의 이미지가 풍긴다. 어렸을 때 빌게이츠와 애플의 스티브잡스등의 IT영웅들을 잡지에서 보던 나는, 세상의 프로그래머는 단지 프로그래밍이 좋아서 프로그래머가 되었을 것이라고, 프로그래머는 뭔가 순수하고 특별한 세계를 가진 사람들일 것이라고 기대했다. 나는 존재하지 않는 이상계에 대한 꿈을 꾸었다. 우리나라는 프로그래밍이 좋아서 프로그래머가 되는 순수한 열정을 지켜주진 않는다. 우리나라 프로그래머는 밤12시 넘어서 일하고, 새벽에도 일하고, 주말에도 일하며, 명절에도 일하고, 결혼기념일에도 일하며, 심지어는 .. 더보기
수필 객체지향, 디자인패턴과 프레임워크 그리고 라이브러리 디자인패턴(Design Pattern)이 무엇이고 프레임워크(Framework)가 무엇이고 이 둘의 차이가 무엇이냐는 질문은 객체지향 개발이 무엇이냐는 질문처럼 나를 바보로 만든다. 하지만 명색이 제대로 된 객체지향 개발자를 꿈꾼다면 이 둘의 실체를 알아내는 것이 두렵다고 해서 이 둘의 추적을 중단해서는 안될것이었다. 라이브러리(Library)의 정의는 간단하다. 자주 쓸만한 로직을 잘 갖춰놓고 필요할때마다 가져다 쓰는 유틸리티 클래스들의 모음이다. 그런데 디자인패턴을 정의하려면 말문이 막혀서 터지지 않는다. 대략의 뜻은 알고있고 써먹을줄도 알지만 명확한 정의에 대해서는 생각이 잘 떠오르지 않는다. 그럴수록 좀더 생각을 하면서 단어의 뜻을 따라가보았다. 디자인이란 말은 설계란 뜻이다. 패턴은 일종의 정형.. 더보기
수필 객체지향, 객체지향과 추상화 객체지향 개발에 익숙한 개발자들이 있다. 그들은 자신이 제일 잘쓰는 에디터를 구동하는 순간부터 저절로 객체지향적인 코딩이 진행된다. 그러나 갑자기 객체지향 코딩에 익숙한 개발자에게 ‘객체지향’ 개발이란 무엇인가요? 그리고 왜 객체지향적으로 개발을 하는건가요? 객체지향적으로 개발한다는 것은 어떤 뜻인가요?라고 호기심 가득한 신입 후배가 묻는다면 갑자기 머릿속이 가비지 컬렉터 되면서 아무 생각도 떠오르지 않지 않을까 짐작된다. 질문에 왠지 명쾌하게 답하기가 어렵기 때문이다. 그래서 저런 어려운 질문에 대하여 곰곰히 생각해본적이 있다. 답은 잘 떠오르지 않았다. 한때 이 문제로 고뇌했다. 한참 후에 결국 ‘객체지향 개발이란 세상의 모든 요소를 객체와 객체간의 관계로 추상화 하여 추상화시 얻을 수 있는 유연함과.. 더보기
수필 객체지향, 클래스(Class) 클래스(Class)는 일반명사이다. 일반명사는 저 사람~ 저 물건~ 처럼 유일한 사물을 가르키는 단어가 아니다. 사람, 나라, 자동차, 컴퓨터처럼 사물을 공통적으로 부를 수 있는 단어로 묶은 것이다, 예를 들어 맥북, 센스, X노트 등으로 불리는 고유명사인 사물은 노트북이란 일반명사로 묶어서 부른다. 노트북, 휴대폰, 자동차처럼~ 우리가 부르는 일반명사는 명확하게 어느 사물을 가리켜 부르는 것이 아니고 뭉뚱그려 부르기 때문에 그 실체가 애매모호하다. 일반명사는 명확하게 가리키며 부를 수 있는 눈앞에 존재하는 사물이 아니며 우리 인간의 사고과정을 통해 한단계 추상화시킨 존재이다. 그래서 클래스는 아직 사람 머릿속에 존재하는 개념이고 아직 객체로 생성하여 세상에 나온 개념은 아니다. 객체지향 언어인 자바로 .. 더보기
수필 객체지향, 응집도와 결합도 객체지향 개발을 하는 이유는 객체지향적으로 제대로 개발하면 유연하고 확장성 높고 유지보수 편리한 개발이 가능하기 때문이라고 한다. 객체지향적으로 개발하면 왜 유연하고 확장성 높고 유지보수가 편리하냐고 누가 단도직입적으로 묻는다면 나는 총으로 겨냥당한것처럼 돌부처가 될것 같다. 그래도 우격다짐으로 말해보면 객체지향적으로 개발하면 모듈간 응집도는 높고 결합도는 낮아지기 때문이라고 말할것이다. 하지만 역시 열심히 공부하려는 우리를 당혹스럽게 하는 뜬구름 잡는 얘기이기도 하다. 응집도는 높고 결합도는 낮아야 된다는 이 공대 용어 스러운 말이 무슨 뜻이야? 응집도가 높다는 말은 비슷한 일을 하는 기능들이 하나의 모듈로 얼마나 잘 뭉쳐 있냐와 비슷한 말이고 결합도가 낮다는 말은 그 일을 완수하기 위해서 얼마나 다른.. 더보기
수필 객체지향, 객체(Object) 객체(Object)란 단어는 낯설다. 객체지향 개발이 두려우면서 범접하기 어려운 기술로 느껴지는 이유중에 하나는 객체(Object)란 단어부터 낯설기 때문이다. 객체(Object)의 사전적인 뜻은 ‘실체로 존재하는 대상 또는 개념’ 이다. 이 뜻을 우리 사람사는 세상에서는 어떻게 표현하면 되는지 불러보았다. 저 사람~, 저 사물~, 저 물건~, 저 동물~, 저 것은~, 그것은~, 이것은~ 으로 불리는 것 같다. 그러고보니 저 사람, 사물, 물건, 동물, 그것은, 이것은 등을 하나로 통합하여 사람 입에 불리어지는 단어는 없다. 그냥 저 사람이고 저 물건으로 불리어질 뿐이다. ‘실체로 존재하는 대상 또는 개념’이라고 정의되는 대상을 우리는 저 사람~ 저 물건~ 하며 친숙하게 부르는데 다만 하나로 통합하여 부.. 더보기
수필 객체지향, OCP(open-closed principle, 개방-폐쇄의 원리) 사람 사는 세상은 복잡다단하다. 예를들어 마른하늘에 정말로 날벼락이 칠수도 있다. 어플리케이션은 사람 사는 세상을 고스란히 옮겨놓았다. 틀림없이 어플리케이션도 마른하늘에 날벼락이 치는 변화무쌍한 요구사항이 발생할것이다. 요구사항에는 기존 개발된 기능의 변경 건이 있거나 새로운 기능의 확장의 경우가 있다. 이런 요구사항이 생길때 객체지향 설계자는 어플리케이션을 어떻게 변경하거나 확장할지 고민한다. 기존의 소스를 변경하는 방법이 있다. 이 경우는 가장 직관적으로 해결하는 방법일 것이다. 하지만 위험하다. 기름바닥에 라이타불을 던져서 불폭탄을 만드는 광경을 영화에서 본적이 있는가. 기존의 소스를 변경하는 방법은 기름바닥이라는 높은 결합도에 라이타불을 던지는 것과 마찬가지이다. 기존의 소스는 이미 여러 클래스들.. 더보기
책쓰기 일정에 애자일 프로세스 적용해보니 내가 생각하는 글쓰기 최고 높은 단계의 작업은 바로 책쓰기다. 블로그 스피어같은 경우 다시한번 제대로 활동해보려니 필력이 딸리긴 하지만..저번에 '내 인생의 첫 책쓰기'란 책을 읽어보고 글쓰기의 최고 정수인 책쓰기에 도전해보기로 했다. 비유 그대로 못하면 '무'라도 자를 계획이다. 어떤 책을 쓸지 계속 고민되었다. 지금 결론은.. ‘수필 디자인패턴’ 이라고 수필 문체 같은 문학적인 문장에다가 깊은 사색이 필요한 디자인 패턴 내용을 결합하여 뭔가 인문/문학적인 향기가 느껴지는 색다른 디자인 패턴 책..IT서적을 써보기로 했다. 자신 있진 않지만 그냥 쓰는거다. 사실 서점에 객체지향 또는 디자인 패턴 책이 널려 있기때문에 창의적인 아이템은 아니라 갑갑하지만..출판내서 대박나기 보다는 책쓰기 통해 프로그래밍+.. 더보기
수영에서 배우는 글쓰기 드릴 연습 나의 꿈 중 하나는 자전거 여행의 김훈 작가처럼 독특하고 멋진 나만의 문체를 갖는 것이다. 김훈 작가의 문장을 읽다보면 음악처럼 리듬과 운율이 느껴지고 문장에 취한다는 표현을 쓸 정도로 문장 고유의 맛이 느껴진다. 나 역시 나만의 멋진 문체를 갖고 싶다. 하지만 천부적인 재능도 부족하고, 블로그 통한 글쓰기 연습도 뜸하니 지속적인 노력도 부족하다. 그러나 요즘 글쓰기 관련 책을 읽으면서 적어도 이정도 글쓰기 드릴 훈련을 꾸준히 하면 김훈 작가처럼 최고의 문장은 아니더라도 읽기 쉽고 깔끔한 문장을 쓸 수 있다는 것을 알게 되었다. 요즘 수영을 열심히 배운다. 수영에 빠지면서 세상의 모든 요소를 수영에 비교하곤 한다. 글쓰기도 수영과 비슷하다. 나의 영법은 나의 문장과 같다. 나의 몸이 물을 미끄러지듯 우아.. 더보기