ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 좋은 개발이란 무엇일까.
    카테고리 없음 2016. 4. 30. 11:14

    요즘 몇 가지 서비스 프로젝트를 진행하면서 좋은 개발이란 무엇일까 많이 생각해 봅니다. 특히 3년전에는 관리자로써 바라보던 서비스 개발을 이제 직접 개발자로 접근해서 바라보니 많은 점이 달라 보이네요.

    관리자로써 접근했을 때는 사용자 요구사항만 만족하고 적당한 response time만 보장된다면 아무 문제없이 잘 종료된 프로젝트라고 생각했습니다. 이것이 프로젝트의 겉보기만 볼때이고요.


    그러나 프로젝트의 내부 코드 입장에서 보면 참 많은 점들이 추가로 필요하게 됩니다.

    첫번째로 자동화 정도입니다. 쉽게 말해 유지보수시에 관리자나 개발자가 얼마나 많이 몸빵으로 떼우냐 입니다. 뭐 하나 추가할때도 관리툴에서 가능한 것이 아니라 개발자가 배포를 해야 하고 그 때마다 버그가 발생하고 이런 경우가 흔합니다. 바로 자동화가 덜 되어 있기 때문입니다. 매 순간마다 개발자는 가급적 사람 손이 개입되지 않을 수 있도록 많은 부분을 시스템으로 만들어 두어야 하는데 순간의 유혹에 빠지면 딱 해당 기능만 구현하고 자동화로 확장해 나가지 않을 수가 있습니다. 그래도 서비스 오픈에는 아무 문제가 없기 때문입니다. 대신 유지보수 하는 인력이 매우 힘들겠지요.  


    두번째로 코드의 유지보수 수월성입니다. 다시 말해 코드가 얼마나 깔끔하고 중복이 없고 테스트 코드가 잘 갖추어졌느냐입니다. 테스트 코드가 있는 프로젝트는 정말 리팩토링 하기가 수월합니다. 믿고 기댈 수 있는 게 있기 때문이죠. 또한 코드 중복이 군데 군데 있으면 기능 추가 하기가 정말 힘들어집니다. 여러 군데를 반복해서 수정해야 할 가능성이 높아지고 이러면서 버그 확율이 높아집니다. 정말 이 부분은 SI 프로젝트에서는 거의 개판(?)을 많이 목격했습니다. 유지보수 없이 개발하고 바로 빠지는 프로젝트에서는 특히 조심해야 합니다. 코드 리뷰를 하는 문화에서는 유지보수 수월성이 훨씬 높아 집니다.


    세번째는 적정 기술 채택입니다. 너무 오바해서 도입해도 안되지만 너무 조심해도 안됩니다. 얼마전에 DOM을 client side에서 변경한다는 이유만으로 angularjs같은 MVVM 프레임워크를 안 쓴다는 개발자를 만난 적이 있었는데 많이 아쉽더군요. 물론 DOM handling을 MVVM 프레임워크에서 해 주기 때문에 효율성이나 속도 측면에서 손해를 볼 수 있지만 그러한 DOM automatic binding에서 오는 유지보수 수월성이라던지 개발의 편이성을 말로 다 할 수 없을 정도로 높습니다. jquery로 개발하는 조직에서는 조금 더 과감히 MVVM 프레임워크(angularjs, reactjs 등)를 고민해 볼 필요가 있습니다. 이것은 일례일 뿐이고, 매일 쓰는 기술만 쓰는 것이 아니라 최신 기술을 조금 더 과감하게 채택해 볼 필요가 있습니다. 추천 드리는 것으로 nodejs, mongodb, elasticsearch, graphql등이 있습니다.


    결국 하나의 프로젝트는 유지보수라는 문제때문에 겉보기의 동작으로만 판단할 수 없고 결국 코드 레벨에서 판단하는 것이 제일 좋은 프로젝트의 결과에 대한 판단이 될 수 있습니다.



Designed by Tistory.