결론적으로 얘기하면 개발 조직 내에서 지식 공유가 제대로 이뤄져야 한다는 내용입니다.

제가 경험한 대부분의 개발팀은 코드에 대해서 얘기하는 경우가 거의 없습니다. 단지 납기일 지켜라, 사고 내지 마라, 들여쓰기 잘 해라 정도일 것입니다. 개발자A와 개발자B가 인수인계를 할 때에도 코드단위로 인수인계하는 것이 아니라, 어느 화면이 어느 파일이다 정도만 알려주면 인수인계 끝입니다.

코드를 샅샅이 취조하는 때가 있기는 합니다. 항상 문제가 터지고 난 다음이죠. 그 소스를 짠 개발자는 마음이 천근 만근입니다. 잘못 짠 소스로 인한 손해가 몇 억이다. 이런 식이죠.
해당 소스는 전문가 그룹이 속속들이 파헤칩니다. 인민 재판에서 자아비판식으로 잘못을 저지른 것에 대해 참회를 하게 됩니다. 누가 시켜서 그런 것도 아닙니다. 자신이 손댄 프로그램에 에고(감정이입)처리가 된 것이죠. 내가 짠 프로그램이 오동작했으니 내가 잘못한거야 같은 의식이죠.

물론 좋은 팀장님을 만났다면 윗선에서 커버를 해줄 것입니다. 더 큰 피해가 가지 않도록 말이죠.

이렇게 사고가 나야 소스를 열어본다면 그 팀의 개발자들은 방어적이고, 소극적으로 변합니다. 그리고 다른 사람의 소스가 잘못되어도 함구하고 있습니다. 점점 애플리케이션은 미궁으로 빠져들어가겠죠.

악순환을 선순환으로 바꾸는 방법은 코드의 공유라고 생각합니다. 코드 리뷰, 짝프로그래밍, 메일링 등 수단과 방법을 가리지 말고 함께 일하는 팀원들끼리 코드는 공유되어야 합니다. 그래야 사전에 버그도 찾고, 개선된 코드도 생각해 볼 수 있고, 남이 짠 소스 있는 줄도 모르고 또 만드는 수고도 덜 수 있구요.

답답한 현실이기도 합니다. 사고 터지면 모두 조용히 모니터 보면서 "휴~ 내 업무영역이 아니네, 빨리 수습되어야 할텐데" 하는 식의 문화가 더 이상 아니면 좋겠습니다.
사용자 삽입 이미지
image from: http://www.jc119.go.kr/home/?doc=bbs/gnuboard.php&bo_table=s2_photo&page=17&wr_id=247 

오댈님(http://lovedev.tistory.com) 수고하셨습니다.

mp3용량이 커서 링크만 겁니다.
http://www.okjsp.pe.kr/bbs?act=DOWN&maskname=1219205270978&fileName=oh1.mp3 
http://www.okjsp.pe.kr/bbs?act=DOWN&maskname=1219205270987&fileName=oh2.mp3

경품이라고 할까요. “한국어도비시스템즈""에이콘출판사"에서 후원해주신 플렉스 서적 때문에 제법 훈훈하게 마칠 수 있었습니다. 부디 잘 읽고 서평 한 줄 부탁드립니다.

what's yours.

사용자 삽입 이미지


image from: 김제동

환경 문제로 지구를 떠난 지구인들, 그리고 그 뒤에 남아서 청소를 하는 로봇.
로봇의 이름은 WALL-e (Waste Allocation Load Lifter-earth class) 라고 불립니다. 로봇의 이름이라기 보다는 모델명이라고 할 수 있겠죠. 하지만 끈질기게 살아남은 한 로봇의 이름으로 사용하는 것도 무리는 아니라고 생각됩니다.

정체불명의 최신 로봇 하나가 나타나서 로맨스를 만듭니다. 로봇의 로맨스라는 것 자체가 상당히 진보된 기술의 결정체라고 할 수 있겠지만, 감정과 의지라는 것이 인간을 떠나 로봇에게 전이될만큼 인간이 인간이기를 포기하고 사는 것 아닐까 생각됩니다.

호기심은 의외의 행동을 유발시키고, 이것은 여러가지 사건을 일으킵니다. 정해진 틀 안에서 시계바늘처럼 살아간다면 호기심이 발동할 여지가 없을 것입니다. 월-e가 그냥 로봇이 아닐 수 있었던 이유는 이 때문이 아닌가 생각됩니다.

윌스미스가 나왔던 아이로봇과의 차이점은 인간의 감정을 가진 로봇을 너무 어렵지 않게 풀었기 때문일 것입니다.


초딩인 아이의 한 마디가 약간 씁쓸했습니다. "아빠 언제 끝나요?", "어, 얼마 안 남았어." 짜식 재밌게 봤으면서.

http://disney.go.com/disneypictures/wall-e/

진도를 마쳤습니다. 시험봐야죠. 다른 말로 테스트.
생활 속에서 이러한 이유로 테스트라는 단어는 항상 실체의 뒤에 위치합니다.

TDD, Test Driven Development. 흔히 테스트 주도 개발이라고 얘기하는 것입니다.
학원 안 다니고 주행에 도전했다가 몇 번 씩 탈락한 뒤에 합격해서 받은 운전 면허가 TDD로 받은 운전면허증일까요. ㅋㅋ. 이 경우는 테스트가 학습을 유발했다고도 볼 수 있죠. 영어로 Heuristic 이라고 얘기하는 학습법이요.

이와는 반대로 건드리기 전에 테스트를 해야하는 경우도 있습니다.

사용자 삽입 이미지

image from: http://www.esfi.org/workplace/test-before-you-touch.html 

전기 회로를 손대기 전에 전류가 흐르는지 아닌지 확인을 하는 경우처럼 말이죠.

리팩토링의 관점에서는 테스트 코드의 존재가 이와 같다고 생각합니다. 레거시 코드를 고치기 전에 소스의 특성을 알아내는 것이죠. 그 다음 테스트 코드가 신뢰할 만큼 누적되면 좀 더 안전하게 코드를 수정할 수 있겠지요. 변경으로 인한 사이드 이펙트를 금방 인지할 수 있으니까요.

작년 11월부터 손에 가지고 다닌 책입니다.
다 읽기는 했지만 글자만 다 읽었습니다. ^^; 사실 솔직히 얘기하면 마지막 10% 부분은 많이 설렁설렁 읽었습니다.

읽고난 후 소감은 음... "해 냈다."입니다. core j2ee patterns 이어서 두 번 째 완독한 원서라고 할까요.

사용자 삽입 이미지


책은 누더기가 되었습니다. ^^;
이제 몸으로 읽을 때가 된 듯 합니다. 체득해야죠.
Turn Table
사용자 삽입 이미지
사용자 삽입 이미지
부산의 음식은 저렴하고 맛있었습니다.
두 음식 모두 부경대 근처의 식당에서 먹은 음식이었습니다.
회가 참 맛있게 나오더군요. 칩스블루님 잘 먹었습니다. C1소주도 잘 먹었구요.
사용자 삽입 이미지


다음 날 점심은 부산대 앞의 윤복집(?)에서 복지리로 해장을 했고요, 저녁은 돼지국밥을 먹었습니다.
사용자 삽입 이미지


^^; 간단 로그입니다.

(점점 블로깅이 힘을 잃어갑니다.)

차세대 물류 IT기술연구사업단에서 초청한 JUnit테스팅 관련 세미나를 마쳤습니다.
오전 10시부터 오후 4시까지 5시간동안 테스트에 관한 이론과 이클립스를 활용한 JUnit/TPTP 에 대한 내용으로 진행했습니다.
실습 강의였기 때문에 천천히 진도를 나갔습니다.

자바 웹 쪽이 아니기 때문에 좀 다른 경험을 한 듯 합니다.
교육 듣느라 수고하셨습니다.

junit 기초입니다.

+ Recent posts