본문 바로가기

혼자이야기/책이야기

유지보수하기 어렵게 코딩하는 방법: 평생 개발자로 먹고 살 수 있다

반응형

책 제목을 보시고 무슨 생각이 드시나요?

 

개발자 분들은 조금 의아해 하실지도 모르겠습니다.

 

유지보수를 어렵게 코딩한다? 유지보수를 쉽게 코딩한다가 아니고??

 

네.. 맞습니다. 말그대로 유지보수 어렵게 코딩하는 방법을 알려주는 책입니다.

 

 

 

 

 

 


유지보수 어렵게 코딩하는 방법

저자
로에디 그린 지음
출판사
한빛미디어 | 2011-12-23 출간
카테고리
컴퓨터/IT
책소개
-
가격비교 글쓴이 평점  

 

 

그럼 왜!! 왜 그런걸 알려주는 건데!!

 

-평생 개발자로 먹고 살 수 있다- 라는 부제가 달려있는 걸 보니.. 아마 코딩 어렵게 해서 남들이 알아보지 못하게 하여 자기의 몸값을 올리는 방법을 알려주려나 봅니다...ㅡ.ㅡ;; (네 맞습니다.!!!)

 

일단 개발자 분들은 재미로라도 한 번 읽어보시기를 추천합니다. (책 내용이 많은 것도 아니고, 무료라 구입 비용도 없습니다. 포스팅 맨 아래에 보시면 책을 다운로드 받으실 수 있는 링크를 걸어두었습니다.)

 

책 내용도 인정사정 없습니다.ㅎㅎ

 

 

이 책은 다른 설명을 드리는 것보다는 보면서 배꼽잡게 만든 내용들 일부를 추려서 올려보도록 하겠습니다.^^ 재미있는 글들이 훨씬 더 많습니다. ㅎㅎㅎ

아래는 실제 책 내용을 발췌한 것입니다. (글 뒤에 짧막한 글 또는 ㅡ.ㅡ; ㅋㅋㅋㅋ 이런 표현은 제가 붙인 것입니다. ㅎㅎ)

변수를 재사용하라!!!

... 하나의 임시 변수를 전혀 관련이 없는 다양한 상황에서 사용할 수 있다(변수를 재사용함으로써 스택 슬롯을 절약하는 것처럼 위장할 수 있다.) ... ㅡ.ㅡ;

 

삼천포로 인도하는 이름 

메소드의 이름을 의미하는 것보다 더 많은(혹은 더 적은) 동작을 수행하도록 프로그래밍하자. 예로 isValid(x)라는 메소드에 기능을 추가해 x값을 이진수로 변환하고 결과를 데이터베이스에 저장하도록 구현한다면 모두가 깜짝 놀랄 것이다. ... ㅡ.ㅡ;

 

쉽게 찾지 못하게 숨겨라

16진수 값 $0204FB를 할당할 상수 변수명으로 blue 대신 LancelotsFavouriteColour와 같은 이름을 사용하라. 화면에는 완전한 파랑색이 나타나겠지만, 유지보수 프로그래머는 0204FB값을 판독(아마 그래픽 도구를 이용해서)해야 의미를 파악할 수 있을 것이다. 몬티 파이썬의 성배Monty Python and the Holy Grail라는 1975년 영국 영화를 좋아하는 광팬이라면 랜슬롯Lancelot이 좋아하는 색이 파랑색이라는 사
실쯤은 금방 알아차릴 수도 있을 것이다. 몬티 파이썬의 성배 영화 전체 내용을 기억하지 못하는 유지보수 프로그래머가 있다면 프로그래머로서 자질이 없는 분이라고 생각할 수 밖에 없다. ㅋㅋㅋㅋㅋ

 

길고 비슷한 변수명

... 따라서 swimmer와 쉽게 구별하기 어려운 swirnrner도 좋은 변수명이다. ... ????

 

문제점

코드의 문제점을 문서화하지 않는다. 클래스에 버그가 있을 수 있다는 사실을 발견했으면 혼자만의 비밀로 간직한다. 코드를 어떻게 재조직하거나 재작성해야 할지 아이디어가 떠올랐을지라도 문서로 남겨놓지 않는다. ... ..;;;;

 

폄하하는 말을 주석에 사용하기
외부 회사와 유지보수 계약을 체결할 수 없도록 다른 소프트웨어 선도 업체를 폄하하는 글을 추가한다. 특히 현재 회사와 계약할 수 있는 가능성이 있는 회사를 공격할수록 좋다. 예를 들면, 다음과 같다.
/* 내부 루프 최적화 Software Services Inc.,의 굼뱅이들은 아래와 같은 코드를 꿈에도 몰랐겠지. 그 녀석들은 아마 답답한 <math.h>의 기능을 이용해서 50배나 느리고 메모리도 많이 사용했을 꺼야. */ 으아아아아~~

 

검증을 멀리하라
입력 데이터에 대한 어떤 종류의 불일치 검사나 정확성 검사를 수행하지 않는다. 즉, 우리는 회사 장비를 온전히 신뢰하고 있으며 모든 프로젝트 파트너와 시스템 운영자를 신뢰하는 완벽한 팀원임을 보여줄 수 있다. 입력 데이터가 이상하거나 문제가 있는 듯 보이더라도 항상 합리적인 값을 반환하기 위해 노력해야 한다. -_-;;;

 

테마와 변형
하나의 메소드에 파라미터를 사용하기보다는 되도록이면 여러 메소드를 만드는 것이 좋다. 예를 들어, 왼쪽, 오른쪽, 가운데 정렬을 의미하는 상수를 파라미터로 넘겨줄 수 있는 setAlignment(int alignment)보다는 setLeftAlignment, setRightAlignment, setCenterAlignment와 같이 세 개의 메소드를 정의하는 것이 바람직하다. ...

 

퉁퉁 부은 클래스
중요하지 않고 잘 알려지지 않은 메소드와 속성을 모든 클래스에 포함시킴으로써 외부에 둔감한 클래스를 만들 수 있다. 일례로, 천체 기하학적 궤도를 정의하는 클래스에 해수면 조류 스케쥴과 크레인Crane 날씨 모델을 구성하는 속성을 포함할 수 있다. 이와 같은 기법으로 클래스에 수많은 기능을 정의할 수 있을 뿐만 아니라 시스템에서 필요한 부분을 검색하는 작업을 서울에서 김서방 찾기처럼 힘들게 만들 수 있다. ... (김서방 찾아 봅시다..;;;)

 

읽을 수 없는 C
인터넷의 읽을 수 없는 C 경연대회에 참석하고 스승님의 책상다리 근처에 앉아 경청하라 ... (실제 있는 대회야???!!!)

 

긴 줄
가능하면 많은 내용을 한 줄에 담으려 노력하라. 이 기법은 임시 변수를 줄이고, 줄바꿈 문자나 공백 문자를 제거함으로써 소스파일 크기를 줄이는 효과를 제공한다. ... ㅡ,.ㅡ;;

 

언제 예외를 사용해야 하는가?
예외가 발생하지 않는 상황에서만 예외를 사용하라. ... ㅋㅋㅋ

 

테스트

프로그램에 버그를 남겨둠으로써 유지보수 프로그래머에게도 재미있는 일거리를 제공해야 한다. 잘 만든 버그라면 어디서 어떻게 발생했는지에 관한 단서를 남기지 않는다. ... (알았다..)

 

세상이 무너져도 성능 테스트를 하지 않는다
프로그램이 좀 느리다고? 고객에게 더 빠른 컴퓨터를 사라고 말하자. ... 게다가 고객사에 성능 문제가 불쑥 나타난다는 것은 이국적인 곳으로 공짜 여행을 할 수 있는 기회일 수 있다. 정말로 우리가 해야 할 일은 여권을 항상 가까이에 소지하면서 상황을 예의주시하는 것이다. (그렇군... 좋은 내용이다..;;;)

 

디버거 차단
... 특히 브레이크 포인트를 잡기 어렵게 if와 then을 한 줄에 모두 사용하면 더욱 효과적이다. ... (대단한 방법이다!!!)

 

서드파티 라이브러리
프로젝트에 막강한 서드파티 라이브러리를 포함하고는 사용하지 않는다. 추가하고 사용하진 않았지만, 우리의 이력서 “기타 도구” 부분에 사용하지 않았던 도구 이름을 추가할 수 있다. ... ......;;

 

 

서적을 돈 받고 팔기에는 조금 걱정이 앞섰나봅니다..^^;; 그렇다고 책의 값어치가 전혀 없는 것은 아니고, 안 읽어보는 것보다는 읽어보는 것이 훨씬 도움이 됩니다. 그리고 개발자라면 책 내용을 이해해 가면서 재미있게 볼 수 있습니다. 마치 개발자 농담 같은 것을 모아 놓은 책이라고 할까요?

 

그리고 한편으로 책에서 말하는 내용 반대로 실천하면 유지보수를 쉽게할 수 있는 코딩법을 습득하실(?) 수 있습니다.^^

 

책 마지막까지 읽으시면 아시겠지만.. 저자도 애초에 재미로 쓴 글임을 언급하고 있습니다.^^

 

 

이 서적은 현재 판매되지 않고 있는 서적이지만, 한빛미디어 사이트에서 무료로 e-book(PDF) 파일로 다운로드 받으실 수 있습니다.

 

한빛미디어에서 유지보수 어렵게 코딩하는 방법 책 다운로드 받기

http://www.hanbit.co.kr/ebook/look.html?isbn=9788979149418

반응형