스타트업에서 필요한 스택과 SI에서 필요한 스택은 전혀 다릅니다.
우선 스타트업의 백엔드 측면을 살펴보겠습니다.
대부분의 스타트업은 자체 서비스를 만들기 위한 개발을 합니다.
망하자고 스타트업을 시작하는 사람은 없으므로 더 오래갈 수 있는 단단한 코드를 만드는 데 신경을 많이 씁니다.
만든 사람이 유지 보수해야 하기 때문입니다.
따라서 코드에 업무 도메인이 가능한 한 많이 녹아있는 형태로 만듭니다.
python이나 nodejs 등 스크립트 언어를 많이 쓰는 것도 수정해야 할 때 코딩양을 줄이기 위해서입니다.
ORM 을 쓰는 것도 언제 데이터베이스가 변경될지 모르기도 하고, 도메인 객체를 코드로 표현하기 위함입니다.
따라서 스타트업에게 데이터베이스는 그냥 저장소고, 업무는 코드에 녹아있습니다.
SI는 남이 쓸 프로그램 을 만듭니다.
일부러 단단한 코드를 만들 필요가 없는 이유는 프로그램을 유지 보수하는 건 내가 아니기 때문입니다.
SI의 당면한 과제는 기능 목록의 개수를 늘리는 것이지, 유지 보수하기 편한 프로그램을 만들어내는 것이 아닙니다.
SI에서 매년 차세대 프로젝트가 나오는 이유는 이런 식으로 만들어진 코드들을 SM (System Management) 팀에서 관리하다가 도저히 안 되겠다 싶은 순간에 새로 만들기 때문입니다.
코드에 업무 도메인이 없으므로 SI는 데이터베이스가 모든 것입니다.
프론트엔드 기술에서도 스타트업과 SI는 차이가 있습니다.
스타트업은 상대적으로 최신 기술을 쓰고 싶어 합니다. 최신 기술이 본인들의 서비스에 적당하다는 전제하에서요.
반면 SI는 안정성을 중시합니다. 또한, 기술지원을 받을 수 있어야 합니다. 따라서 솔루션을 구매합니다.
스타트업 개발자에게 x-platform이 뭔지 들어본 적이 있느냐고 물어보면 어리둥절한 표정을 지을 것입니다.
SI 개발자에게 react가 뭔지 물어보면 절반은 모를 것입니다.
결론적으로 스타트업은 스크립트 언어 + 아무거나 DB (NoSQL 무관) + 좋은 설계 + 최신 프론트엔드 프레임워크를 중요시합니다.
SI는 Java(Spring) + 안정성 높은 DB (RDBMS 한정) + 좋은 쿼리 작성 능력 + 안정된 프론트엔드 솔루션을 중요시합니다.