2008년 12월 11일
객체지향, 디자인 패턴 그리고 초보
백수인지라 아침 9시에 일어나 아들 유치원에 데려다 주고 며칠 동안 쌓아 놓은 RSS 피드 받아먹고 있는데 토비님이 뭔가 터트릴 것 같은 분위기를 조성하면 서설이 긴 글을 쓰셨다. 가벼운 글인 줄 알고 읽었는데 분위기가 살짝 무겁게 바뀌더니 갑자기 등장한 링크 하나와 그에 대한 반론.
그 글이 문제가 된 것은 평소 자기가 가지고 있던 생각을 말하는 듯하다가 토비님과 영회님을 초짜를 꼬셔서 이름값 좀 높이려는 (사기성) 장사꾼으로 폄훼했기 때문이다. 토비님과 영회님의 글을 평소 보물처럼 여기고 탐독하는 나로서는 글을 읽어보면 황당한 느낌을 지울 수 없었다. 어떤 주장을 펼치고 싶었다면 그냥 자기 얘기를 하면 될 것을 왜 잘 알지도 못하는 사람을, 블로그 글 좀 읽어본 것만 가지고 준 사기꾼으로 몰았는지 이해할 수 없다. 합당한 이유가 따로 있는지 모르겠지만 실수라고 할 여지조차 별로 없어 보이는 무례행동으로 생각된다.
좌우간 (이미 토비님이 차분하게 대응했고 따로 시비를 가를 것도 못되기에) 다 떠나서 이 사람이 가진 불만은 당장 해야 할 일이 있는데 왼쪽 오른쪽 구별 못 하고 원론책만 딥다파며 구름 위를 걷고 있는 초급 개발자들 때문인 듯하다. 맨날 말로만 무슨무슨 패턴, 무슨 무슨 방법론, 프레임워크를 주워 삼키면서 정작 일을 할 때에는 소화도 못 한 지식을 적용하느라 남들 일 다 끝내고 퇴근할 때까지 코드 한 줄도 작성 못 하고 끙끙거리는 모습을 보면 속이 왜 안 터지겠는가? 충분히 그 심정은 이해가 된다.
나름 개발 경험이 상당한 팀장급 개발자들과 만나서 얘기를 나누다 보면 객체지향이 기술이나 디자인 패턴은 물론 프레임워크나 각종 아키텍처 관련 지식에 대해 부정적인 의견을 가진 사람들이 많다. 어떤 사람은 거부 넘어 혐오하기까지 한다. 그냥 jsp로 한 파일에 넣으면 간단한데 왜 여러 파일로 나눠서 다른 사람이 손도 못 대도록 하는지 모르겠다는 말은 아주 쉽게 들을 수 있는 불평이다.
왜 이런 불평이 나오는 것일까? 좋으라고 만든 기술인데 왜 원망의 대상이 되는가?
가장 먼저 드는 생각은 잘못된 기술 적용이다. 어떤 기술도 만능일 수는 없다. 그런데 어디서 좋다는 말만 듣고는 적당하지 않은 상황에 억지로 쓰게 하는 경우가 있다. 프로젝트의 규모, 중요성, 기간, 투입 가능한 인력 수준 등을 종합적으로 판단해서 적용 기술을 결정해야 한다. 다양한 기술 카테고리를 확보하고 프로젝트를 시작할 때마다 완전히 그 프로젝트에 꼭 맞는 기술 조합을 만들어내라는 말은 아니지만 무리해서 맞지도 않는 기술을 적용하려고 고생하느니 안 쓰는 것이 낫다. S/W는 멋으로 만드는 것이 아니다 어떻게 하든 일단은 돌아가는 놈을 만들고 볼 일이다.
때로는 기술 자체가 문제있는 경우도 있다. 실무를 무시하고 밀실에서 만들어져 내려진 기술로 일을 하느라 고생하는 일이 한 두 번이 아니다. 별 이득도 없이 복잡도를 높인다거나 필요도 없는 기능만 잔뜩 만들어 놓고는 정작 필요한 기능은 눈 씻고 찾아볼 수 없는 경우가 허다하다.
하지만 가장 주요한 이유는 윗글에서 말하는 '초짜', 즉 미숙련 개발자들이다. 애석하게도 우리나라에는 필요 없는 IT 프로젝트가 너무 많아 개발자가 절대적으로 부족한 상황이다. 그러다 보니 프로그래머가 학원 몇 개월 다니고도 쉽게 일자리를 구해 돈을 벌 수 있는 직업이 되었다.
솔직히 초보가 죄는 아니다. 자동차 운전과 마찬가지로 개발자도 누구나 초보로 시작한다. 하지만 초보가 너무 많다. 그리고 세월이 흘러도 성장하는 속도가 너무 더디다. 왜 그럴까? 각 개발자 개인에게서 이유를 찾는다면 자기 재능이나 관심을 무시하고 그저 돈을 벌겠다는 생각에 개발자의 길로 들어선 것이 되겠지만 우리나라에 자기 길을 찾아서 가는 사람이 몇이나 되겠는가?
초짜가 문젯거리가 되는 이유는 초짜에게 초짜가 할 수 없는 일을 시키려는 욕심쟁이들 때문이다. 개발 인력도 없는데 일을 수주해서는 여기저기서 정체불명의 개발자들을 그러모아 개발팀을 구성한다. 인터뷰할 때는 대부분 2-3년 개발 경험이 있다고 했지만 정작 만나보면 갓 학원을 나왔거나 1년 채 안되는 생초보. 사실 2-3년 경력을 가지고 있는 사람들도 거기서 거기다. 그저 개발자 투입 계획에 맞춰서 머릿수만 채우면 되는 줄 아는 몽상가들...
이렇게 개발팀을 구성해 놓고 일을 시키니 나중에 일이 잘 진행되지 않으면 한다는 소리가 프레임워크가 너무 복잡하단다. 솔직히 프레임워크 교육을 아무리해봤자 이해하고 개발하는 사람이 몇이나 되나.
MVC 개념도 없고 Dao랑 Service가 어떤 것인지, Factory가 뭔지도 모르는 사람에게 업무별로 할당해서 만들라고하니 죽이 되는지 밥이 되는지 모르고 일단 만들 수밖에...
이렇게 만들어 놓은 결과물을 열어보고는 객체지향, 패턴 다 소용없다 그냥 jsp 통째로 짜는 게 최고다 하는 얘기를 안 하는 것이 오히려 이상하다.
여기 프로젝트가 있다. 그리고 기술, 비용, 업무범위, 품질... 마지막으로 초짜가 있다. 무엇이 정상일까? 초짜를 상수로 만들고 기술, 품질 같은 것을 맞추는 것일까? 어쩔 수 없는 선택이 될 수는 있어도 정상은 아니지 않나?
SPSG의 내용 하나가 생각나서 C&P 해본다.
정상이라면 미숙련자에게는 아주 단순한 일만 시켜야 한다. 충분히 업무처리 능력을 갖춘 사람을 선별해야하고 품질을 지키도록 노력해야 한다. 무엇보다 간신히 작동만 되는 S/W를 목표로 두지 말고 유지보수성이 어느 정도 확보된 S/W를 만들도록 노력해야 한다. 정해진 예산과 기간 안에...
살짝 문제의 글과 별 상관 없는 쪽으로 글이 흘렀는데 다시 마무리하기 전에 돌아와 보면 그 답답한 초짜가 잘한 것은 없다. 하지만 초짜는 초짜다. 자기가 뭘 해야 할지 안다면 초짜겠는가? 초짜는 성장하면서 이런저런 실수를 하게 마련이다. 100 미터 달리기를 한 후에 뒤돌아보면 내가 밟은 땅은 트랙이 차지한 면적의 1%도 안된다. 그렇다고 트랙이 필요 없다고 해야 할까?
글을 쓰고보니 애초에 쓰려고 한 글이 아니라 제목도 어찌 달아야 할지도 모르겠고 마무리도 어떻게 해야 할지도 모르겠고 졸리고... 그냥 나도 한번 투덜거려보는 것으로 끝내야겠다. -_-;
그 글이 문제가 된 것은 평소 자기가 가지고 있던 생각을 말하는 듯하다가 토비님과 영회님을 초짜를 꼬셔서 이름값 좀 높이려는 (사기성) 장사꾼으로 폄훼했기 때문이다. 토비님과 영회님의 글을 평소 보물처럼 여기고 탐독하는 나로서는 글을 읽어보면 황당한 느낌을 지울 수 없었다. 어떤 주장을 펼치고 싶었다면 그냥 자기 얘기를 하면 될 것을 왜 잘 알지도 못하는 사람을, 블로그 글 좀 읽어본 것만 가지고 준 사기꾼으로 몰았는지 이해할 수 없다. 합당한 이유가 따로 있는지 모르겠지만 실수라고 할 여지조차 별로 없어 보이는 무례행동으로 생각된다.
좌우간 (이미 토비님이 차분하게 대응했고 따로 시비를 가를 것도 못되기에) 다 떠나서 이 사람이 가진 불만은 당장 해야 할 일이 있는데 왼쪽 오른쪽 구별 못 하고 원론책만 딥다파며 구름 위를 걷고 있는 초급 개발자들 때문인 듯하다. 맨날 말로만 무슨무슨 패턴, 무슨 무슨 방법론, 프레임워크를 주워 삼키면서 정작 일을 할 때에는 소화도 못 한 지식을 적용하느라 남들 일 다 끝내고 퇴근할 때까지 코드 한 줄도 작성 못 하고 끙끙거리는 모습을 보면 속이 왜 안 터지겠는가? 충분히 그 심정은 이해가 된다.
나름 개발 경험이 상당한 팀장급 개발자들과 만나서 얘기를 나누다 보면 객체지향이 기술이나 디자인 패턴은 물론 프레임워크나 각종 아키텍처 관련 지식에 대해 부정적인 의견을 가진 사람들이 많다. 어떤 사람은 거부 넘어 혐오하기까지 한다. 그냥 jsp로 한 파일에 넣으면 간단한데 왜 여러 파일로 나눠서 다른 사람이 손도 못 대도록 하는지 모르겠다는 말은 아주 쉽게 들을 수 있는 불평이다.
왜 이런 불평이 나오는 것일까? 좋으라고 만든 기술인데 왜 원망의 대상이 되는가?
가장 먼저 드는 생각은 잘못된 기술 적용이다. 어떤 기술도 만능일 수는 없다. 그런데 어디서 좋다는 말만 듣고는 적당하지 않은 상황에 억지로 쓰게 하는 경우가 있다. 프로젝트의 규모, 중요성, 기간, 투입 가능한 인력 수준 등을 종합적으로 판단해서 적용 기술을 결정해야 한다. 다양한 기술 카테고리를 확보하고 프로젝트를 시작할 때마다 완전히 그 프로젝트에 꼭 맞는 기술 조합을 만들어내라는 말은 아니지만 무리해서 맞지도 않는 기술을 적용하려고 고생하느니 안 쓰는 것이 낫다. S/W는 멋으로 만드는 것이 아니다 어떻게 하든 일단은 돌아가는 놈을 만들고 볼 일이다.
때로는 기술 자체가 문제있는 경우도 있다. 실무를 무시하고 밀실에서 만들어져 내려진 기술로 일을 하느라 고생하는 일이 한 두 번이 아니다. 별 이득도 없이 복잡도를 높인다거나 필요도 없는 기능만 잔뜩 만들어 놓고는 정작 필요한 기능은 눈 씻고 찾아볼 수 없는 경우가 허다하다.
하지만 가장 주요한 이유는 윗글에서 말하는 '초짜', 즉 미숙련 개발자들이다. 애석하게도 우리나라에는 필요 없는 IT 프로젝트가 너무 많아 개발자가 절대적으로 부족한 상황이다. 그러다 보니 프로그래머가 학원 몇 개월 다니고도 쉽게 일자리를 구해 돈을 벌 수 있는 직업이 되었다.
솔직히 초보가 죄는 아니다. 자동차 운전과 마찬가지로 개발자도 누구나 초보로 시작한다. 하지만 초보가 너무 많다. 그리고 세월이 흘러도 성장하는 속도가 너무 더디다. 왜 그럴까? 각 개발자 개인에게서 이유를 찾는다면 자기 재능이나 관심을 무시하고 그저 돈을 벌겠다는 생각에 개발자의 길로 들어선 것이 되겠지만 우리나라에 자기 길을 찾아서 가는 사람이 몇이나 되겠는가?
초짜가 문젯거리가 되는 이유는 초짜에게 초짜가 할 수 없는 일을 시키려는 욕심쟁이들 때문이다. 개발 인력도 없는데 일을 수주해서는 여기저기서 정체불명의 개발자들을 그러모아 개발팀을 구성한다. 인터뷰할 때는 대부분 2-3년 개발 경험이 있다고 했지만 정작 만나보면 갓 학원을 나왔거나 1년 채 안되는 생초보. 사실 2-3년 경력을 가지고 있는 사람들도 거기서 거기다. 그저 개발자 투입 계획에 맞춰서 머릿수만 채우면 되는 줄 아는 몽상가들...
이렇게 개발팀을 구성해 놓고 일을 시키니 나중에 일이 잘 진행되지 않으면 한다는 소리가 프레임워크가 너무 복잡하단다. 솔직히 프레임워크 교육을 아무리해봤자 이해하고 개발하는 사람이 몇이나 되나.
MVC 개념도 없고 Dao랑 Service가 어떤 것인지, Factory가 뭔지도 모르는 사람에게 업무별로 할당해서 만들라고하니 죽이 되는지 밥이 되는지 모르고 일단 만들 수밖에...
이렇게 만들어 놓은 결과물을 열어보고는 객체지향, 패턴 다 소용없다 그냥 jsp 통째로 짜는 게 최고다 하는 얘기를 안 하는 것이 오히려 이상하다.
여기 프로젝트가 있다. 그리고 기술, 비용, 업무범위, 품질... 마지막으로 초짜가 있다. 무엇이 정상일까? 초짜를 상수로 만들고 기술, 품질 같은 것을 맞추는 것일까? 어쩔 수 없는 선택이 될 수는 있어도 정상은 아니지 않나?
SPSG의 내용 하나가 생각나서 C&P 해본다.
인력을 충원할 때 가용 인력이 있다고 해서 무조건 채용하지 말아야 한다. 자격을 갖춘 사람을 찾기까지 유보시켜야 한다. 12개월이 소요되는 프로젝트에서 자격을 갖춘 프로그래머를 채용하기 위해 1~2개월을 기다리는 것이, 능력이 떨어지는 개발자를 빨리 투입하는 것보다 나은 전략이다.
정상이라면 미숙련자에게는 아주 단순한 일만 시켜야 한다. 충분히 업무처리 능력을 갖춘 사람을 선별해야하고 품질을 지키도록 노력해야 한다. 무엇보다 간신히 작동만 되는 S/W를 목표로 두지 말고 유지보수성이 어느 정도 확보된 S/W를 만들도록 노력해야 한다. 정해진 예산과 기간 안에...
살짝 문제의 글과 별 상관 없는 쪽으로 글이 흘렀는데 다시 마무리하기 전에 돌아와 보면 그 답답한 초짜가 잘한 것은 없다. 하지만 초짜는 초짜다. 자기가 뭘 해야 할지 안다면 초짜겠는가? 초짜는 성장하면서 이런저런 실수를 하게 마련이다. 100 미터 달리기를 한 후에 뒤돌아보면 내가 밟은 땅은 트랙이 차지한 면적의 1%도 안된다. 그렇다고 트랙이 필요 없다고 해야 할까?
글을 쓰고보니 애초에 쓰려고 한 글이 아니라 제목도 어찌 달아야 할지도 모르겠고 마무리도 어떻게 해야 할지도 모르겠고 졸리고... 그냥 나도 한번 투덜거려보는 것으로 끝내야겠다. -_-;
# by | 2008/12/11 00:46 | 프로그래밍 이야기 | 트랙백(1) | 덧글(5)


![[수입] 요요 마가 연주한 엔니오 모리코네 [CD+DVD 듀얼 디스크]](http://image.aladdin.co.kr/coveretc/music/coveroff/2592437362_1.jpg)
![[SACD] 조수미 (Sumi Jo) - Journey To Baroque (바로크로의 여행)](http://image.aladdin.co.kr/coveretc/music/coveroff/1011203995_1.jpg)







☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
제목 : [짱가™]의 생각
초짜가 문젯거리가 되는 이유는 초짜에게 초짜가 할 수 없는 일을 시키려는 욕심쟁이들 때문이다 에 초공감!!! 백표!!!...more
이글루스에는 printf,
이렇게 두 뻘글러들이 있습니다.
인생의 스트레스를 뻘글로 풀려는 사람들이 여기저기 상처만 주네요 쯧.
문맥상으로 보면 '뜨고있는 토비님이 긍정적인 예로서 써니님을 평가하길래, 한번 봤는데 별로더라'라는 글을 왜 자책하듯 받아들이는지 모르겠군요.
토비님의 대응도 자기를 깍아내린 것에 대한 감정적인 것이 아닌 그 사람의 주장에 대한 반박이므로 오해를 했다고 하는 것도 결과적으로 자책은 아닌 듯 합니다.