지난 금요일에 컬트스토리( http://blog.cultstory.com/ ) 를 창업하신 분을 만나서,
이런저런 재미있는 이야기들을 나누며 저녁식사와 함께 오랫만에 소주 한잔 했다.
지금도 좋은 회사이고, 훌륭한 회사로 발전할 것 같다는^^ 대표님, 번창하시길 바래요..

여러가지 재미있는 이야기를 나누었는데,
그중에 잠깐 이야기를 나누었던 것중에 한가지 생각나는 것이 있어서,
비슷한 고민을 하시는 많은 분들께 도움이 될까 싶어서 내 생각을 블로그에 써 볼까 한다.

"아이폰 앱과 연동할 서버를 개발하는데 PHP로 하려고 한다?"

아이폰 앱 개발을 하는데, 서버 연동 기반의 서비스를 구상중이라면 Ruby on Rails를 추천한다.

이유는 아래와 같이 꼽을 수 있겠다.
어떻게 보면, 트위터가 초기에 개발 공수를 많이 들이지 않은 시점 부터,
수많은 App이 널리 퍼치게 된 이유도 이런 이유가 아닐까 싶다.

1. html과 동일한 json, xml 등의 http response를 쉽게 얻을 수 있다.
아래 예와 같이, html, xml, json 가 기본 제공되고,
http://repling.com/jaehyun
http://repling.com/jaehyun.xml
http://repling.com/jaehyun.json

나중에 멀티 디바이스 html view가 필요하면,
http://repling.com/jaehyun.iphone, http://repling.com/jaehyun.android
등의 mime-type을 쉽게 추가할 수 있다.
MVC에서 View를 자유로이 멀티 환경으로 쉽게 구성할 수 있다.

2. 위와 유사한 이야기 인데, 앱에서 필요로 하는 자원을 RESTful (http://en.wikipedia.org/wiki/Representational_State_Transfer )
하게 접근할 수 있게 지원해 주므로, 따로 프로토콜을 구상하지 않아도 된다.
위 RESTful 통신 방법을 따르다 보면 많은 설계 요소가 standard로 잘 잡히게 된다.
괜히 RESTful 안쓰면서 서버, 앱간의 통신 요소를 request, response를 하나하나 정의해 가며 시간낭비 하지 말자. (Getting Real에 언급된 것 처럼, 작고 Agile하게 해야지.. 급하게 막 코드를 늘려가면 안되요..)

3. Ruby on Rails 웹 개발 프레임웍은 쉽고, 직관적으로 되어 있다고 개인적으로 생각한다.
DB쿼리를 직접 다룰 필요가 없는데도, 제약사항이 있긴 하지만 우연한 편이며,
Javascript Ajax로 동적인 웹 UI를 만드는 데도 상당히 직관적으로 개발할 수 있도록 만은 배려를 해 놓았다.

그리고 내가 좋아하는 말.
Don't Repeat Yourself.
소스코드를 중복해서 작성하지 말라.
심지어 최근 루비온레일즈를 만들었고,, 만들고 있는 @DHH 님의 트윗에서 본 글에는
Why do you need a signature in your emails if it's just name + email address? Why repeat information that's already in the from field?
라고 써있다. 이메일에도 의미없는 서명 중복을 피하라는..ㅎㅎ -_-;;
http://twitter.com/dhh/status/7532661418

Ruby on Rails를 배우고 싶은 분들에게 강추하는 스크린캐스트 강의
http://railscasts.com/
Ruby on Rails 배우기 좋은 사이트를 더 알려드리고 싶지만..
많이 소개해 드리면 하나도 안본다는..ㅎ,, 더 필요하신 분은 @jaehyun 

물론, Ruby, Ruby on Rails라는 새로운 것들을 배우는 것은 쉽지 않다.
개발자들은 기존 익숙한 언어를 사용하고 싶다.
그리고, 이런 장점 외에 Ruby on Rails의 단점도 있다는 사실.

제가 주로 Java 웹개발만 해와서, Java와 Ruby on Rails를 조금 아는 상태에서..
PHP를 잘 모르고 단면만 보고 주장 할 수도 있다는 사실도..

회사와 달리,,
내 목소리를 낼 수 있는 블로그.


Posted by jhkim
스택오버플로우 사이트는 개발자 QNA사이트로서 훌륭한 점들을 많이 가지고 있는 사이트다.

오늘은 tags의 질문 개수 순위를 보다 보니, 우리나라와 크게 다른 경향을 보이고 있는 듯 하여,
외국(영어권?)의 소프트웨어 개발 트랜드와 국내의 트랜드의 다른 점을 비교해 볼까 한다.


1. 왜 C#이 1위 일까?
스택오버플로우가 조엘이 MS플랫폼으로 만든 사이트라서 1등이 된것인지..
실제로 우리나라보다 외국에서 C#이 더 많이 쓰이든지 할 것 같다..

2. Java는 역시 상위권 3위.
우리나라의 개발 트랜드라면 Java가 1위 하지 않았을까?

3. PHP가 의외로 상위권으로 5위.
facebook이 사용중이고, 아직도 많은 웹사이트에서 사용중이다.
우리나라에서는 Java 를 선호하는 웹개발자들에게 무시받는(?) 경향이 있는 듯 한데, 외국에서는 많이 쓴다.
(물론 무시받는건 잘못된 것 같고..)

4. python > django 인데 ruby < ruby on rails
파이썬의 웹 프레임워크인 장고는 파이썬보다 하위권이고
루비는 특이하게,, 루비의 웹 프레임워크인 루비온레일즈가 루비보다 상위권이다.
이것은 RoR이 잘 만들어지고, 많이 사용되어지는 웹 프레임웍이라는 것을 짐작하게 한다.
우리나라였으면 이 4개 테그 모두 순위에 들지 못하지 않았을까.?

5. jquery
javascript framework으로서 jquery가 독보적이다.

6. iphone 약 10위권, 그리고 꽤 순위가 높은 objective-c
App Store에서 돈을 벌 수 있으니까,,
최근에 이슈가 된 것에도 불구하고, 시장 논리에 따라 순위가 막 올라가 있다.

7. eclipse
툴에 대한 문의가 이렇게 많나? 하는 생각을 해봄..

8. ibatis는 이 글을 쓰는 순간 46건으로..
순위와는 거리가 멀다.
우리나라였으면 꽤 상위권에 있지 않았을까..?
ibatis는 왜 우리나라만 쓰는 거 같다는 생각이 들까..?

9. spring, struts2, webwork 등의 우리나라에서 많이 사용되는
java웹 개발관련된 것은 찾아 볼 수 없다는 점.

10. 역시나 흐름대로..  웹 관련된 기술이 많이 보인다는 점.




Posted by jhkim