객체지향 → 역할, 책임, 협력을 투영하는 새로운 세계


토끼책에서 객체지향에 대해 가장 중요하게 여기는 개념은 오브젝트 사이의 메세지가 핵임이며 모든건 메세지 위주로 돌아가야한다는 점이다. 메세지가 곧 역할을 만들고 책임을 만들며 협력의 접점을 만들기 때문이다.

각 오브젝트는 결국 자기만의 역할, 책임을 분명하게 가지게끔 만들어야 하며, 협력을 하려 할때 오브젝트 A는 오브젝트 B의 역할, 책임 내부를 들여다보는(OOP의 패러다임을 깨버리는)순간 의존성이 강하게 걸리며 OOP의 사상과 멀어지게 된다. 오로지 내 입장에서 '무언가'를 하려한다는 메세지를 전파하는 것, 그 자체로 끝나야하며, 그게 좋은 구조의 OOP이고, 디커플링 된다.

현재 재직중인 회사의 개발 소스들은 역할과 책임, 협력 없이 한 프로세스에서 모든 역할을 하며 그러다 보니 파편화된 소스가 너무나도 많다. 그리고 그런 파편화로 인해 유지보수성에 어려움을 겪고, 많은 버그에 개발팀은 물론 운영 MD팀, CS팀, 배송팀까지 업무에 어려움을 겪고 있다. 이런 문제로 업무의 효율과 공수에 비효율이 생기고, 사용자들은 좋지 않은 사용 경험을 넘어 불쾌감을 느끼는 일도 허다하다.

소스 수정이 있을 때마다 개선을 한다고 해보지만 2014년부터 유지되오던 시스템의 방대함과 기한이라는 두개의 큰 벽앞에서 쉽지 않다. 그렇지만 당장의 시간 비용이 더 들어서 추후 비용을 덜 들일 수 있다면 어떤게 더 이득인지 생각해 볼 필요가 있다고 생각한다.


이 책을 읽고 역할, 책임, 협력을 나눠 잘 짜여진 구조의 시스템에 대한 목마름이 생겼다. OOP의 철학이 잘 녹아든 소스 위에서 일 하고싶다.

 
728x90
반응형

+ Recent posts