안녕하세요
궁금한 점이 있어서 고수님들께 여쭤봅니다.
루비온레일즈로 홈페이지를 만들었다는 가정하에, 하이브리드앱으로 만들어보신분 계신가요?
혹 계시다면 어떤식으로 접근을 해야하나요?
링크드인이었나 외국 유명 사이트가 루비온레일즈로 서비스하다가 느려서 다 바꿨다고 들었습니다.
언어가 자유도가 높긴한데 레일즈 성능 별로 안 좋습니다.
기존 php 나 node.js 가 대세인거 같습니다. 참고가 될까 싶어 글 적습니다.
우리나라 스타트업에서도 꽤 쓰고 있습니다.
그러나 개발자 역량을 달리 생각해야 합니다. 실리콘밸리나 국내 최상급의 스타트업의 개발자 수준은 필요한 아키텍처를 스스로 고안하고 만들어 낼수 있는 사람들이 많습니다. 시험적으로 뭔가 해봐도 지장이 없는 분들이죠.
그러나 국내의 대다수 개발자들은 한사람 분의 역할만 할 수 있어도 회사 입장에서는 과분하지요. 아키텍처고 뭐고 없이 일단 구현에 급급하니 널리 알려지고 충분한 자료가 있고 인력이 그나마 충분한 php, java 등이 쓰이는 겁니다.
첨언.
단순하게 php 로 한다. 루비로 한다 수준이 아닌겁니다.
빅데이터나 빠른 서버 처리를 위한
redis 나 memcached, NoSQL 과 SQL DBMS 등의 복합적인 DB 설계와 cdn 등의 관리, 캐시나 릴레이 처리...
일반적인 국내 스타트업에서는 전혀 고려대상이 아니잖아요.
루비로 한다 php로 한다가 중요한게 아니라는 거죠. 어차피 루비로 하나 php 로 하나 서버 스크립트 코딩 작업 자체는 전체를 놓고 봤을때 그리 오래 걸리는게 아니거든요.
말씀에 대해서 저는 생각이 좀 다른데요.
레일즈에 관해서...
성능 문제에 이르러 서비스를 바꾼 정도는 여러가지 관점이 있겠지만, 서비스가 그만큼 커져서 이지 않을까 싶어요.
스타트업이 어느 수준까지 이르러 편리하게 개발하기 위해서 루비온 레일즈(이하 Rails, RoR, 레일즈)를
선택하는건 매우 추천할 만한 일이라고 생각합니다.
프레임웍은 충분히 원숙하고, 모든 기술셋에 대한 모범 사례가 열려되어 있습니다. 좋은 것에 대해서 매우 빠르게
공유되는 편이라고 생각하구요. 그래서 Rails 는 스타트업이 많이 논의 되면 뜨다가 다시 정체기가 되면 지는 상태가
되곤합니다.
Rails 를 걷어 낼만큼 심각한 성능이 이슈가 될때가 되면 당연히 자금 문제가 없는 고성장 상태라고 볼수 있습니다.
후반 node.js, php 추천에 대해서...
node.js 는 아직은 추천하기에 주저 합니다. 이유는 성능은 괜찮은데, 빠른 개발을 위해서 풀스택이 덜갖추어져 있어요.
문서가 없는건 둘째치고, 정말 다양한 문제들이 튀어나오기 때문에, 기술 관점에서 개개인이 관심이 많은 구성원들로
이루어진 업체들에게 추천합니다. 성향이 그러한 팀조차 아직 부담이 있었습니다.
php는 왜 php를 쓰면 안되는가에 대한 수많은 고민들이 있습니다. php를 배우시는 입장이라면, 실행하기전에
이정도를 숙지하시고 조심스럽게 학습을 시작하시면 좋겠네요. 굉장히 많이 쓰이는 언어입니다.
http://ko.blog.influx.kr/2012/04/php.html
----
그래서 저는 지금 당장 서비스를 만드실꺼면 현재 가장 잘하는 언어와 프레임웍을 쓰시고, 배우면서 하시려면 Rails 나 django, flask 를 추천합니다.
Ruby on Rails 든 Python + Django 든 node.js 든 자기 입맛에 쓰면 될 것 같에요
어디 블로그에서 성능비교 한거 봤었는데, 사실 규모가 엄청 크지 않은 이상 별 차이 없다고 보심 되요. 그냥 자기가 쓰기에 편하고 생산성 좋은거 쓰는데 좋을 것 같습니다.
요건 완전 관련된건 아니지만 성능비교한거 : http://ppassa.wordpress.com/2012/01/28/server-solution-benchmark/
근데 "장사가 잘되면 나중에 개편해야 하는" 그런 플랫폼(혹은 랭귀지)은 무조건 문제점을 안고 가는건데요....
작으니까 상관없다는 마인드는 좀 아닌거 같습니다.
루비로된 프로젝트들이 장사가 잘되면 언어를 바꿔야 한다는 목소리가 높다면, 그리고 실제 사례로 계속 드러난다면
애초에 배제 해야 하는거 아닌가 싶습니다.
생산성이 좋은것도 한계점이 있습니다. 생산성이라는건 대부분 오랫동안 했던 사람이 있으면 해결이 가능한 문제에 속하고,
비교적 쉬운 해결책에 속합니다.
하지만 퍼포먼스라는건 오래해서 끌어올리는것도 아니고, "진정한 전문가"가 필요한 경우가 많습니다.
그리고 아무리 전문가라도 기존의 히스토리라는 벽이 있는데 중간에 들어와서 퍼포먼스를 내는것은 쉽지 않습니다.
루비를 쓰나 자바를 쓰나 php를 쓰나 비용이 비슷하다면 무조건 퍼포먼스가 나오는쪽으로 가는게 맞다고 봅니다.
생산성과의 균형이 어느정도 필요하긴 하지만 핵심 개발자가 가능한한 최대한의 것으로 하는게 맞다고 생각합니다.
소프트웨어 공학에서 버그를 발견하는 시점이 늦으면 늦을수록 비용은 기하급수적으로 늘어난다고 했습니다.
근데 왜 이런 선택에서는 이런 사실을 망각하는지 이해가 잘 안됩니다.
버그는 단순히 "개발자의 실수나 망각"뿐만이 아닙니다. 기획과 아키텍쳐 선택의 미스도 버그입니다.
루비온레일즈는 서버 스크립트입니다.
모바일에서 접근은 서버스크립트가 어쩌고의 문제는 아닙니다. php 로 만들었든 asp 로 만들었든 그런게 중요한게 아니라는 겁니다.
모바일이든 아니든 클라이언트 입장에서 서버스크립트는 동작만 하면 그만이라는 겁니다.
물론 node.js 나 파이썬 장고 프레임워크같은 롱폴링에도 유용한 것은 입장이 다르지만 기본적으로 서버상에서만 동작하는 겁니다.
그럼 뭐가 중요한가?
클라이언트에서 해석되는 코드들입니다.
자바스크립트가 기본적으로 쓰이는 클라이언트 사이드 스크립트라고 할 수 있고
html, css 등이 프레젠테이션 영역에서 쓰여집니다.
그래서 html5 가 어쩌고 이야기가 나오는 겁니다. 아직 표준으로서 미확정된 영역이 많아서 문제는 있지만 지속적으로 필요한 부분이지요.
웹개발 영역은 한가지만 알아서 될 일이 아닙니다. 실제 업무 영역이 한가지일지라도 전부 다 할 줄알아야 합니다.