어찌어찌하여 입사지원서에 써 있는 글들을 보다가 지원자의 블로그로 갔었는데, 내가 썼던 글들이 블로그를 통해 다시 다른 사람들에게 쭉 연결되고 있는 것을 보게 되었다.

내가 쓰는 글 하나하나를 지켜보고 있는 사람들이 적지 않다는 생각이 들었다.

오늘 회사에서는 팀원들을 대상으로 '리팩토링과 좋은 소프트웨어 디자인' 이란 주제로 세미나를 했다.

언제나 느끼는 것이지만, 나는 남에게 뭔가를 설명하다 보면서 아이디어가 떠오르거나 생각하지 못했던 개념을 추출해내는 적이 많다.

OOP 를 너무 재사용이란 관점에서 설명하다보면 느낌이 잘 와닿지 않는다. 스스로도 남에게 OOP 나 소프트웨어 디자인에 대해 설명해주면서 뭔가 다른 관점이 필요한게 아닐까 생각했는데, 오늘의 세미나에서 '변동성' 이란 관점에서 설명을 한 것이 재사용성이라는 관점보다 더 직관적이고 실질적 응용요소가 많아보인다는 느낌을 받았다.

시간이 나는대로 '변동성이란 관점에서 본 좋은 소프트웨어 디자인' 이라는 주제로 다시 글을 정리해볼 계획이다.

의존관계의 원칙. - '변동성이 높은 쪽이 변동성이 낮은 쪽에 의존하도록 만들어야 한다'
패키징의 원칙     - '변동성이 높은 것과 변동성이 낮은 것을 한 곳에 담으면 안된다'
따름정리 - '패키지의 변동성은 그 구성요소중 가장 변동성이 높은 것에 지배받는다'

내 세미나를 들은 팀원들이 문서화를 잘 해줘서 난 편집만 잘 하게 되면 편할텐데..

imcgames 의 김학규입니다