커뮤니티

고용노동부, 산업인력공단과 함께하는 강원도 유일한 기업중심 IT전문교육기관 ICT융합캠퍼스만의 특별한교육입니다.
공인 IT숙련기술인의 다양한 접근방법으로 전문가다운 실무교육을 받을 수 있습니다.

Category

교육강좌

기타 프로그래밍 오리엔테이션 - 나에게 맞는 방법

페이지 정보

작성자 관리자 댓글 0건 조회 2,578회 작성일 20-06-03 11:44

본문

나에게 맞는 방법

저의 페이스북 담벼락에 올린 글을 그대로 옮겨왔습니다. 

문득 이런 생각이 들었다.

소프트웨어를 만들다보면 코드가 점점 복잡해져서 사람이 감당할 수 없는 상태에 곧 도달한다. 이 때 더 높은 복잡성에 도전하기 위해서는 복잡성을 낮추어야 하는데 소프트웨어 공학이라는 분야에서는 이런 것을 연구한다.

그런데 이것이 소프트웨어에서만의 문제는 아닐 것이다. 일상 속에서도 복잡도를 낮추는 행위 다시 말해서 '청소'는 영원히 풀리지 않은 골치거리다.

소프트웨어의 복잡도를 낮추는 활동과 일상의 청소를 '등가'로 놓고 청소의 관점으로 소프트웨어 복잡도를 바라보니 이런 생각이 들었다.

나는 청소의 3요소로
정리,
숨김,
버림을
꼽는데 그 중에 제일은 버림이라고 생각한다.

이를테면, 나는 대형 종량봉투에 물건을 보관한다. 그리고 봉투에 더 이상 손이 가지 않을 때 층동적으로 버린다. 결과적으로 살림이 별로 없기 때문에 체계적인 분류가 별로 필요없다. 오히려 분류를 잘 못하기 때문에 버리는 정책을 강력하게 시행하고 있을지도 모르겠다.

반면에 어떤 이는 버리지를 못하기 때문에 체계적인 분류를 만들어서 정리를 한다. 예술적 경지가 느껴지기도 한다.

물론, 어떤 사람은 더 이상 살림이 많아질 수 없을 정도까지 내버려두는 경우도 있다. 그렇다고 그게 꼭 나쁘다고 할 수는 없다. 일단 포화상태까지만 가면 더 이상 복잡해지는 않으니까. 소프트웨어에서는 포화상태가 존재하지 않는다는 것이 문제는 문제다.

이렇게 생각해보니 사람마다 청소에 대한 태도가 참 다르다. 그리고 그런 태도는 잘하고, 못하고의 문제라기 보다는 그 사람의 성향의 문제라고 할 수 있다.

지금까지 프로그래밍을 잘 하는 방법에 대한 많은 방법론들이 객체나 패키지와 같은 수단들을 활용에서 어떻게 이미 있는 코드를 잘 정리하고, 감출 것인가를 알려주고 있지만, 참으로 실행하기가 쉽지 않았다. 나는 잘 실천되지 않는 이 방법론들 때문에 적지 않게 좌절하곤 했다. 수련이 부족하다고 반성하기도 했고, 능력의 한계라며 의기소침하기도 했다.

청소에 대한 다양한 태도가 있다는 것을 인식한 이후부터는 어쩌면 그 방법이 나에게 맞지 않는 것이었기 때문이 아니었을까하는 생각을 하게 되었다. 또 청소에 대해서 자연스럽게 형성된 태도에서 나에게 맞는 개발방법의 단서를 찾을 수 있지 않을까하는 생각도 하게 되었다.

최근엔 오픈튜터리얼스의 이사회를 설득해서 기존의 기능을 대거 버리는 합의를 이끌어냈고, 사용자들에게 의견과 양해를 구하는 과정을 거쳤다. https://opentutorials.org/module/1588/13036 추가만 해봤지 버리는 것을 해본적이 없던 나에게 기존의 기능을 버린다는 것은 혁명적인 변화였다.

일상에서 가장 선호하는 청소 기법이 버림인데 개발에선 이걸 처음해본다는 것이 이상하다. 소프트웨어의 복잡도를 낮추기 위한 다양한 방법론들이 존재 하지만, 그 누구도 나에게 적합한 모델이 있을 수 있다고 말해주지는 않았다. 나에게 맞는 방식을 찾아봐야겠다.

  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

답변목록

등록된 답변이 없습니다.