Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

Maserati Problem

https://lh5.googleusercontent.com/-5SXbsioPQLg/UaRSdCVYmKI/AAAAAAAADFg/QwTOFc0K6Io/s400/2007-edo-competition-maserati-mc12-front-angle-closeup-1280x960.jpg

마세라티라는 자동차 브랜드가 있나보다. 나는 자가용에 관심이 없어서 모르겠는데 (아마도)유명하고, (아마도)굉장히 비싼 브랜드인게 분명하다.

나는 차를 좋아한다. 나는 차를 구입해야 한다. 마세라티 브랜드의 수억원을 호가하는 고가 모델을 구입하고 싶지만, 아마도 10년 후에나 구입이 가능할 거다. 하지만 난 벌써 부터 "마세라티의 어떤 모델을 구입할 건지, 색깔은 어떻게 해야 할지, 기타등등의 옵션은 어떻게 해야 할지 결정할 수가 없어서 고민이다.

이 경우 해결 방법은 이렇다. 10년후의 일은 10년후에 걱정하고, 지금은 수준에 맞는 어번테나 소너타 정도에서 고민해라.

이런 문제는 개발과정에서도 생길 수 있다.
  • 비록 이제 막 개발하는 서비스이지만
  • 하루에 백만명이 접속할 지도 모르니
  • 그만큼의 유저 요청을 처리할 수 있는 확장가능한 서비스 모델을 개발해야 한다.
  • 이런 서비스에는 Hadoop이 대세라는 군, Hadoop를 써야겠어.
  • 엄청난 데이터를 빠르게 처리하려면 NoSQL이 있어야 한다더군. Mysql로는 안돼!!. MongoDB인가를 도입해야지.
  • Spark라는 것도 있다는 군.
  • 자동 백업, 자동복구도 해야해.
  • 소프트웨어 개발과 배포에 도커(docker)가 죽인다는 군.
  • 로그 수집.. 그거 카프카로 한번 해봐. 초당 수천수만건의 로그를 자유롭게 수집하고 처리 할 수 있데.
이러면서 시스템을 갈아엎고 재 설계하고, 새로운 방법/툴들을 도입하는 것을 반복한다.

MongoDB고 Hadoop이고 뭐고 됐고, 그냥 PHP+Mysql로 개발해라. 프로젝트에는 익숙한 걸로 개발하는게 맞다. 익숙한 걸로 개발해도 문제는 빵빵터지고, 일정은 늘어날 거다. 혁신을 위한 시간 투자 ? 그건 MongoDB든 hadoop이든 검색엔진이든지 스터디를 해서 경험을 축적한 다음에 다음 프로젝트에 적용하면 된다. 시간도 충분하고 연구인력도 충분하고 돈도 남아돈다면 ? 뭘하든 상관없다.

관련 글