이 글을 쓰고 싶었던 이유는 한참 전에 내가 올린 포스팅에서 시작이다.
내가 SP를 반대하는것이 내가 SP를 잘 모르기때문이라는 말이 있어서였다.
내가 쿼리를 얼마나 잘 쓰는지(?), 내 DB 스킬능력을 이야기 하려다가 ^^
운영적 마인드에 대한 내 이야기를 해보려고 이번 포스팅을 하게 되었다.
서론은 여기까지하고..
내 개발인생에서 절반은 오로지 제품개발과 SI만을 하였었고
나머지 절반은 지금과 같은 운영과 개발을 같이 진행하고 있다.
개발인생 초반에는 운영을 참 무시하였다.
개발능력이 부족한 사람들이 가는 곳이라는 생각도 했었고
패배주의적으로 창의력도, 의욕도 없는 운영을 하는 사람들을 보면서 말이다.
매니징을 원하지 않고 오래 개발을 하려고 하다가 보면 설계라는 것에 관심이 생기는 때가 있고
그때 마침 운영도 알고 있어서인지 지금은 운영이라는 것에 대한 마인드가 전혀 다르다.
소프트웨어의 꽃은 운영이다.!!!!
자바와 같은 OOP의 소개에 보면 늘 이런 말이 있다. 재사용성이 높은 언어다!! 라는 말..
왜 이렇게 만들었어요.. 라고 물어보면 대답중에 꽤 많은 것들이 이렇게 만들게 되면 추후 변경에 용이합니다..
다 운영적인 편리성, 운영적인 마인드를 이야기하는 것이다.
그런데 참 아이너리컬하게도
운영을 해보거나 운영적인 마인드가 전혀 없는 사람들이 소프트웨어 설계나 컨설팅을 하는 모습을 보고
그들의 결과물을 보게 되면 오로지 이론적일뿐.. 현실감이 없는 운영적인 마인드에 많이 실망을 한다.
또 재밌게도 디자인 패턴이 나오면서 이런 현실감이 없는 설계나 개발이 더욱더 늘어나고 있다.
운영의 핵심은 심플함이다.
디자인 패턴을 그대로 사용하는 것이 아니라 지금 상황에 맞도록 불필요한 것들을 모두 제거한
컴팩트한 형태로의 변경을 할수 있어야만 디자인패턴을 사용하는 것이다.
일관된 형태의 유지를 위해서 한번 사용하기로 하였으면 계속 사용을 해야 하기에
초반에 어설프게 사용된 인터페이스 클래스의 사용이 지금은 걷잡을수 없을정도로 커져서
프로젝트에 있는 클래스의 1/3가 빈껍데기 형식 맞추기용 인터페이스인 것을 볼때마다
운영적인 마인드의 부족함을 절실히 느끼게 된다.
나는 다를수 있는 프로그램 언어가 몇가지 있다.
우리팀 개개인의 능력을 합치면 더욱더 많다.
많으면 많을수록 언제 어떤 것을 써야 할지, 지금 환경에서는 어떻게 해야 할지에 대한 고민은 더욱더 많다.
한개의 프로젝트, 서비스 안에서 여러개의 언어, 프레임웍을 사용하는 것은 피곤하다.
이유는 아주 간단하다..
관리포인트가 늘어나기때문이다!!!
내가 할수 있다고 마구잡이로 기술을 쓰는것은 운영적인 마인드가 부족한 것이다.
가장 간단한 기술로 사용자의 요구사항을 만족시키는 것이 소프트웨어의 설계인것이다!