본문 바로가기

2018년 스타트업 기술 스택 이야기

by 식 2018. 3. 12.

최근 하는 일이 유지보수에 프론트엔드 위주라 매너리즘에 빠져 있었는데

새로운 서비스를 시작단계부터 참여하게 되었다

주어진 상황에 맞게 기술 스택을 쌓고 구축하는 과정은 설렌다

계절밥상에서 자리 지정받은 다음 앉아보지도 않고 첫접시를 들고 한바퀴를 둘러보는 기분 @_@


계획

  • 커뮤니티 형식의 20~30 페이지 앱 서비스
  • 서버, 관리자, 앱(iOS/Android)


상황

  • 1인 개발
  • 기획자 있으나 디자이너 없음(디자인 감각이 뛰어난 개발자는 있음)
  • 일정을 빨리할수록 좋음
  • 사용화 서비스 경험한 언어/프레임워크
    서버 : php(laravel, codeigniter), java(spring), javascript(nodejs)
    웹: html, css, javascript, etc.
    앱: ios-swift/objc, android-java



개발 언어와 프레임워크에는 정답은 없다고들 하지만

개발 환경과 규모, 안정성을 보고 따라서 최선을 다해서 고르는게 중요하다

현업에서 무조건 빠르게 개발하려다보니 익숙한것만 찾다가 옛날 기술만 쓰다가 버전 업데이트나 지원중단으로 낭패보는 경우도 봤고.(내가 그랬다)

새로운 기술에 대한 욕심에 우선적으로 적용하려다보니 최적화 문제와 안정성 문제로 낭패보는 경우도 많이 봤다..(내가 그랬다)


고려한 우선순위

  1. 낮은 러닝커브와 높은 생산성
  2. 가볍고 빠른 속도의 안정적인 서비스
  3. 향후 기술 전망과 개인적인 커리어 관리
  4. 확장성과 유지보수


3번은 조금 이기적일수 있는데.. 어쩔수없다..

이걸로 대박나서 놀고먹으면 좋겠지만 안되면.. 나도  쌀은 사야지..


백엔드 프레임워크에 대한 고민


 장점

 단점

laravel 

 깔끔하고 완성도 있는 프레임워크

 더러운 언어

firebase 

 높은 생산성, 안정적인 서비스

 유지보수비용, 최적화, 커스터마이징이 힘듬

node.js 

 뛰어난 성능

 콜백 지옥, 프레임워크가 자주 업데이트 됨, 에러 발생시 서버 전체 중단..?!


많은 고민끝에 결국 선택한건 node.js

2년전에는 사용하려다가 너무 안좋다는 말들이 많아서 포기했었는데

동안 많은 문제점들이 개선되거나 플러그인이나 디자인 패턴으로 풀어나가고 있어서 이제는 써도 괜찮을만큼 안정적으로 보였다

서비스 규모가 크지 않고 대규모 대상자를 한 서비스가 아닌 상황에서

고려했던 다른 프레임워크들보다 상대적으로 빠른 처리속도와 손쉬운 개발환경 설정이 매력적이었다

개발언어를 전체적으로 javascript기반으로 방향성을 잡고 있었고,

IDE도 많은 기능을 제공하기는 하지만 무거운 intellij대신에 vscode만 사용해서 작업 해보겠다는 생각도 있었다


버전은 안정적인 8로.. 9는 건너뛰어야 할듯하다

참고: http://d2.naver.com/helloworld/4994500


라라벨은 PHP에서 제일 많이 쓰고 있는 서버사이드 웹 프레임워크다(codeigniter 망해서 기분좋다)

PHP 7.0이 적용되고 최신기술도 많이 적용되어있고 완성도 있는 라이브러리들로 다른 라이브러리 없이도 충분히 완성도 있는 모습을 보여주고 있다

사실 요즘에도 유지보수로 PHP를 쓰고 있는데다 자주 써본 경험이 있어서 이걸 가려고 했다.

개발 시간 단축을 위해서는 사실 이게 제일 괜찮을것 같긴 했는데..

변수에 $$ <??>이런거 붙는거부터 보기 싫기도 하고 다른 프레임워크들도 자바스크립트 위주였어서 통일성을 위해 변경함..

빨리 PHP자리를 파이썬이 대체하고 django가 자리잡는 방향으로 갔으면 좋겠다..


파이어베이스는 홍보영상들에 혹해서 완전히 서버리스로 가려고 리서칭했으나 실제로 이것저것 작업하고 조사해보고 포기했다

몇년뒤에는 결국 서버리스로 파이어베이스기반으로 가지 않을까 생각은 들지만..

아직까지는 데이터베이스 FireStore도 베타버전인데다 미완성의 느낌이 너무 강해서 일부 기능만 떼서 쓰기로 했다..

사용자 통계와 버그 리포팅때문에라도 당연히 파이어베이스를 써야 했고

회원가입 로그인쪽에서 SSO와 세션은 작업하기 싫어서 Firebase Auth사용

푸시서비스도 마찬가지 이유로 다 너에게 맡긴다!

스토리지는 아직 좀 고민중인데 몇번 해보고 어떻게 할지 생각해봐야겠다..


프론트엔드 프레임워크

서버보다는 프론트엔드쪽이 고민이 쉬웠다

앱개발자로서 크로스플랫폼은 분명히 매력적이지만 정말 함정이 곳곳에 도사린다

네이티브를 지원하는 크로스 플랫폼 프레임워크 xamarine, phonegap, cordva, react native 는 모두 포기

예전부터 쓰고싶지는 않지만 진짜 개발자 커뮤니티에 평이 안좋다..

개발없이 디자이너만으로 앱을만듭니다! 이런느낌으로 윈도우 모바일 교육받으러 다녔었는데

네이티브 개발 없이 절대 안되고 일만 이중으로 할때가 많다.


예전에 어떤분이 모바일개발은 자마린으로 다할거라고 얘기하셨었는데 그때도 그말 듣고 웃었는데 지금도 절대 그럴일은 없을거같다

최대한 퍼포먼스 이슈가 없는 공통 부분은 웹으로 가고 앱 기본 기능을 포함한 나머지는 네이티브로 가기로 결심!

angular.js는 개발 편의성부분에서나 분명히 매력적이지만 퍼포먼스 한계나 발전가능성이 너무 명확해서 바로 포기했다

react.js를 써볼까 했는데 요즘에는 vue.js로 이사가는 추세라길래 찾아보니 이게 훨씬 좋은거 같아서 선택...

경량화, 빠른 속도, 간결한 코드에 낮은 러닝 커브.

더 필요할게 없지..


결론

  • 데이터베이스: MySQL
  • 백엔드: Node.js + Express, Firebase(인증, 통계, 푸시)
  • 웹: Bootstrap, Vue.js
  • 앱: iOS/Android Native


별거 아닌데 되게 장황하게 써놓긴 했는데

컨셉은 일하기 싫어서 시험공부하는데 필통사러 가는 느낌으로 써봤다

반응형

'' 카테고리의 다른 글

Class VCWeakObjectHolder is implemented in both  (0) 2018.07.11
Node.js 개발 시작하기  (3) 2018.03.14
엔진코인 스캠인듯하다 2편  (16) 2018.03.04
CSS Grid Changes EVERYTHING  (0) 2018.02.03
엔진코인 스캠인듯하다  (17) 2017.12.30