개발자들은 집안 가사일(?)에서 소프트웨어 설계를 깨우칠 수 있다. by 떵꺼리

요즘 주말에 집안 일을 자주(?)하고 있는데
문득 집안 가사일과 실무와 연관된 생각이 떠올라 몇자 적어봅니다.

집안 가사일을 하다보면 
칼, 도마, 설탕, 행주, 냄비, 그릇, 청소기, 책, 망치, 테이프, 옷걸이, 세재...기타 등등
어디에 있는지 알아야 잘 할 수 있습니다.
그러나 어디있는지 못찾을 경우는 어머니, 아내에게 물어보죠. ;)

"어머니, 설탕 어디에 있는지 아세요?'
"여보, 커피 어디에 있어?"



그래서 우리의 어머니, 아내들은 가사일이 쉽도록 찬장이나 농장, 책장, 서랍등에 잘 정리해서 둡니다.
이것들이 정리되어있지 않고 서로 뒤죽박죽 섞여있는 상태에서
가사일을 하게 되면 엉망진창이고 시간도 많이 걸리겠지요.
 
주방에서 냄비는 냄비끼리, 접시는 접시끼리, 조미료는 조미료끼리 찬장에 분류해서 넣어둡니다.
어린이에게 해가되는 물품들은 되도록 애들 손이 닿지 않도록 높이 분류해 놓아둡니다.
장롱, 옷장도 계절에 따라 옷, 이불을 정리해둡니다. 지금은 여름이니 여름옷과 여름이불을 꺼내놓고
겨울옷, 겨울 이불은 다음 겨울을 대비해 잘 보관해둡니다.

이것들이 막 이제 이사온 집처럼 한 박스나 한 방에 몰아넣었다고 생각해보십시요.
뭔가를 하려면 엄청 고생할 것입니다. ;)

이를 실무와 비교해보면....

간혹 실무에서 개발자분들의 성향중에

"자주 쓰는 것은 한 곳에 모으자!!!"

원칙을 고수하시는 분들이 계십니다. 
이런 원칙에 따라 변수나 상수, 데이타, 배열 등을 모아놓은 파일이 있지요.
가장 흔하게 쓰시는 이름이 resource.h Resource.java, Define.java, user_function.inc...기타 등등

물론 자주 쓰는 것은 가까운 곳에 모아두고 쓰면 편합니다.
그것이 감당할 수 있을 정도 또는 결합도가 낮을 경우는 좋습니다.

하지만 그 자주쓰시는 것들이 작으면 애완견처럼 이쁘고 좋지만 모여서 1000라인이 넘어간다면
뭔가 나쁜 냄새가 나고  괴물이 되어간다는 징조입니다.

요즘 IDE, Editor툴 들이 좋아서 어느정도 어렵지 않게 유지하시겠지만
각 기능, 각 화면, 각 클래스가 한곳에 조금씩 조금씩 모아서 만드신 거대한 괴물과
강하게 결합되면 유지보수시에 크나큰 비용을 지불해야할 때가 올 것입니다.

각 변수가 데이타, 상수들은 한 곳으로 모두 모으는 것은 좋은 방법이 아니고
그것들은 그들을 필요한 곳에 분류, 위치시키는 것이 좋다고 생각됩니다.

요즘 집안 일을 하다보니 별의 별 생각이 다 나네요. ;)
가사일에서 개발의 개념을 배우는 한 주가 되고 있습니다.


덧글

댓글 입력 영역