728x90
요즘 가장 핫(Hot)한 개발 트렌드는 무엇일까? 사람에 따라서 가장 관심있는 개발 기술이 다를 것이기 때문에 어떤 것이 가장 관심을 받고 있다고 잘라 말하기는 애매하다. 하지만 일반적인 개발 생태계 전체를 놓고 보면 눈에 띄는 것들이 몇몇 있다. 마이크로소프트가 열심히 밀고 있는 윈도폰, 윈도8을 위한 메트로 스타일(Metro Style) 개발이 그 중 하나일 것이다. 스마트 디바이스를 위한 개발은 여전히 아이폰과 Objective-C 가 가장 뜨거운 관심을 받고 있다. 

그렇다면 웹 개발 영역에서는 어떤 것이 가장 핫한 개발 트렌드 일까? HTML5 나 CSS3 를 이야기 하는 사람들이 많을 것이다. 하지만 개인적으로는 그 보다도 자바스크립트, 더 정확하게는 node.js 가 사람들이 가장 관심을 많이 갖고 있는 웹 개발 영역에서의 아이템일 것 같다.

node.js 가 도대체 뭘까?

node.js 는 뒤에 붙은 접미사가 .js 라는 것으로 미루어 보아 분명 자바스크립트(JavaScript)와 관련된 무언가라고 추측할 수 있을 것이다. 그러면 혹시 jQuery 처럼 클라이언트 사이드의 자바스크립트 라이브러리일까? 그건 그렇지 않다. node.js 는 클라이언트에도 사용될 수 있지만 그것은 제공되는 기능의 일부일 뿐이다. node.js 가 만들어진 주 목적은 바로 서버측에서 구동되는 자바스크립트 개발 환경을 위해서이다.

 
많은 사람들에게 자바스크립트는 브라우저에서 구동되며 웹 사이트에서 다양한 클라이언트단에서 프로그래밍적인 요소가 필요한 상황에서 사용되는 클라이언트 사이드(Client-side) 언어일 것이다. 그런데 쌩뚱맞게도 node.js 는 서버에서 구동되는 개발 환경이라니 이게 무슨 소리인가 싶을지도 모르겠다.

이 글을 읽고 있는 사람이라면 ASP.NET, JSP, PHP 와 같은 서버 사이드(Server-side) 스크립트에 대해서 잘 알고 있을 것이다. 서버 사이드 스크립트는 서버에서 구동되어 동적인 컨텐츠를 만들어 내어 클라이언트(보통 브라우저)에게 전달하는 역할을 하게 된다. 컨텐츠 전달의 중간에는 웹 서버(Web Server), 웹 어플리케이션 서버(Web Application Server)가 있다는 것은 길게 설명할 필요가 없을 것이다.

node.js 를 요약해서 이야기 하자면 웹 서버 혹은 웹 어플리케이션 서버이면서 동시에 서버 사이드 스크립트의 역할도 하는 자바스크립트 기반의 서버 개발 환경이다. 어떻게 자바스크립트가 서버에서 구동되고 쓰이게 되는지에 대해서는 더 자세한 이야기를 기술해 놓은 곳들이 많으니 한번 찾아보면 좋을 것 같다. 중요한 것은 자바스크립트 엔진의 발달로 자바스크립트의 구동속도가 서버에서 쓰일 수 있을 만큼 빨라졌고 오히려 그 간결함과 익숙함, 효율성을 통해 생각치 못했던 더 많은 것을 할 수 있다는 것이다.

[ node.js 관련 참고 URL ]
- node.js 공식 웹사이트 : http://nodejs.org 

- node.js 관련 추천 도서 : "모던 웹을 위한 node.js 프로그래밍" (한빛미디어) [바로가기]  


다음 포스팅에서는 node.js 를 윈도우 환경에서 직접 설치해 보고 간단한 샘플 코드를 통해서 node.js 를 통한 개발이 얼마나 쉬운지 한번 살펴보는 시간을 갖도록 하겠다.

- NoPD -
728x90
728x90
크로스 플랫폼에 대한 개발은 늘 개발자들의 로망이 되어 왔습니다.
같은 플랫폼 계열의 모바일, 데스크탑 어플리케이션 통합은 어느정도 가능했습니다.
윈도우 모바일과 윈도우 데스크탑은 Win32 혹은 .NET Framework 라는 공통분모가 있었죠.
최근에 각광받고 있는 아이폰과 맥 역시 윈도우의 그것과 비슷한 Subset + 알파 개념의 SDK 가 뒤에서 든든하게 지원을 해주고 있었습니다.

하지만 이기종 간의 개발은 어떨까요?
아이폰 앱을 개발하고 윈도폰 용으로 그대로 쓸수 있는 방법이 있을까요?
이제는 사람들의 관심에서 꽤나 멀어진 Delphi 가 재미있는 도구를 발표했습니다.
Delphi XE2 버전에서 이기종간의 크로스 플랫폼 개발을 하는 영상도 같이 공개 했습니다.

윈도우용 어플리케이션을 만들고 이를 맥으로 포팅할 수 있습니다.
맥용 어플리케이션을 만들고 이를 윈도우에도 쓸 수 있습니다.
물론 아이폰을 여기에 끼워 넣어도 됩니다.
일단 아래 동영상 보시고...

 

완벽한 이기종간의 크로스 플랫폼 개발은 아닙니다.
하지만 나름 리즈너블한 방법과 도구를 제시하고 있다는데 의미가 있겠네요.
개발 언어가 파스칼 계열인 것 같은데 (제가 델파이를 안써봐서 ;;;)
이 것에 대한 거부감만 없애면 간단한 시도들은 쉽게 할 수 있을 것 같습니다.

맥, 아이폰쪽 개발도 Xcode 에서 사용 가능한 형태로 Export 한 다음 다시 컴파일을 하는 과정이 있으니
앱에 대한 등록 심의도 큰 문제는 없어 보입니다.
다만 크로스 플랫폼을 지원하는 데 한계가 어떤것이 있는지는 한번 확인해 봐야겠지요 :-)

- NoPD - 
728x90
728x90
페이스북이 타임라인 (Timeline) 이라는 것을 발표한 이후 페이스북에 대한 관심이 더욱 높아지고 있습니다. 구글 플러스 출시 이후 빠른 기능 개선과 시장 발굴에 위협을 느낀 것일까요? 페이스북은 선두이면서도 변화의 보폭을 더욱 넓게 가져가는 느낌입니다. 시장은 역시 경쟁이 있어야 발전한다는 논리가 딱 어울리는 두 서비스가 아닐까 싶습니다.

페이스북의 인기 만큼이나 페이스북 앱 개발에 대한 관심도 높아지고 있습니다. 하지만 뭔가 접근하기 왠지 어려워 보이는 게 사실이었고 별다르게 개발에 대한 가이드나 책이 나온 것도 아니라 도전하는 사람만 많고 성과를 얻어낸 사람을 찾기 힘들었습니다. 그래서 준비했습니다. NoPD 스스로도 해본 거 없으면서 일단 준비했습니다 ㅎㅎ NoPD 의 시행착오와 함께 하는 페이스북 앱 개발! 지금 시작합니다 ㅋ

페이스북 개발자 페이지를 방문해 보자

오픈 API 의 제공과 개발자를 위한 도구 제공이 이제 웹 서비스의 기본이 된지 오래입니다. 페이스북 역시 개발자 페이지를 제공하고 있습니다. 주소는 http://developer.facebook.com 으로 페이스북에서 어플리케이션으로 만들 수 있는 것들과 어떤 어플리케이션이 있는지, 그리고 기타 여러가지 Open Graph 를 포함한 API 들에 대해서 다루고 있습니다.


크게 페이스북의 외부 인터페이스는 세가지로 나뉩니다. 1) 별도의 웹사이트, 블로그 등에 Plug-in, Add-On 방식으로 페이스북을 연계하는 방법 (Build for Websites), 2) 모바일 애플리케이션을 위한 인터페이스 (Build for Mobile), 3) 페이스북에서 구동되는 앱을 개발하는 방법 (Build Apps on Facebook) 이 바로 그것들 입니다. NoPD 는 우선 3번에 대해서 같이 알아보도록 하겠습니다. 시간이 되면 2번, 1번도...

페이스북 개발자 페이지의 Apps 메뉴

페이스북이 제공하는 세가지 중 빌트인 되어 구동되는 어플리케이션 개발이 아마 많은 분들이 가장 관심있어 하는 부분일 것 같습니다. 징가와 같은 게임 업체들이 제공하는 소셜 게임들도 다 이 방식으로 개발된 앱이라고 보시면 됩니다. 말은 복잡한데 인증만 공통 처리를 하고 필요한 소셜 데이터를 공유하면서 결론적으로 " 아이프레임 (iframe) 으로 웹 사이트 임베딩 하는 방식 " 이라고 보시면 됩니다. 참 쉽죠?

 
이곳으로 진입하기 위해서 개발자 페이지 상단의 Apps 라는 메뉴를 누르시면 됩니다. 이미 앱을 등록한 것들이 있다면 몇가지가 좌측 네비게이션 바에 떠오를 거구요 없다면 덩그러니 빈 화면과 위 그림에서 보이는 몇가지 버튼이 보입니다. 그 중 가장 구미가 당기는 Create New App 버튼을 한번 누질로 보겠습니다.  

만들기 위한 앱의 정보를 등록하자

앱을 만들기 위해서 가장먼저 해야 할 작업은 앱의 고유 ID 와 비밀키 (Secret Key) 를 받는 과정입니다. 페이스북이 제공하는 Open API 를 사용하기 위해서 호출자를 식별하고 향후 통계 작업을 위한 고유 ID 가 있어야 겠지요? 그리고 사용자의 인증과 데이터 트랜잭션을 하면서 정상적인 호출임을 파악하기 위한 토큰 (Token) 생성을 위해 비밀키를 알고 있어야 합니다. 앱 정보 등록 과정을 통해 바로 이런 정보를 만들 수 있습니다. 이해가 잘 안가신다면 그냥 " 그렇구나! NoPD 잘난척 하지 마라 재수없다! " 하고 넘어가시면 됩니다. 

 
여기서 부터 슬슬 저도 잘 모르는 부분들이 나옵니다. 친절하게도 You can update this later 같은 문구가 있어서 과감히 넘어갈 수 있었습니다 ㅎ. 사용자들이 앱을 사용할 때 화면에 표시되는 이름과 네임스페이스를 정하는 화면입니다. 제가 잘 모르는 네임스페이스는 나중에 다시 설명하도록 하겠습니다. 이름을 정하고 우리가 잘하는 개인정보 보호에 동의한다고 하고 Continue 를 누릅니다. 마음에 안들어도 동의 안하면 앱이 안만들어지니 무조건 동의하시기 바랍니다.

 
앱 자동 생성기가 있어서 뭐 할거냐 싶긴 하지만 친절하게 Captcha 점검도 합니다. 어려운 말이 나오면 Try different words 를 누르면 새로운 문자가 화면에 나옵니다. 실수로 an audio captcha 를 누르면 더 패닉상태에 빠질 수 있으니 주의하시기 바랍니다! 화면에 나온 문자를 입력하고 Submit 을 누르면 다음 화면으로 넘어갑니다.


어라? 그런데 화면이 넘어가지 않는다고 " 역시 NoPD 는 구라쟁이야! " 하시는 분들이 좀 보입니다. 무슨 문제일까요? 화면에 나온 영어를 자세히 읽어보면 답이 나와 있긴 합니다만... 혹시나 영어가 약하고 저처럼 귀찮아서 읽기 싫고 next, next 를 좋아하시는 분들을 위해 답을 드리자면, facebook, fb 와 같은 키워드는 앱 제목으로 사용이 금지되어 있습니다. 재빨리 다른 단어로 바꾸고 다시 보안 문자를 입력하면 오케이!


다음 화면을 가지 이제 뭔가 많이 나옵니다. 여기서 부터는 보안적으로 취급해야 할 것들이 많으니 주의 하셔야 합니다. 특히 최상단에 나온 정보들중 Secret Key 는 유출에 주의하셔야 합니다. 이 Key 는 페이스북 서버가 기억하고 있다가 우리가 만들 어플리케이션이 페이스북을 호출할때 사용하는 Token 을 위해 보안이 유지되어야 하는 Key 입니다. 그러면서 화면에 덩그러니 캡쳐해서 올렸다고 뭐라하실분 계시죠? 네, 화면 캡쳐하고 저는 Reset 을 눌렀습니다. 제 인생에 대박을 가져올 이 앱을 그냥 공개할 순 없겠죠 ㅋ Key 오른쪽에 Reset 을 누르면 key 가 재생성 됩니다만, 누르실때는 주의해야 겠죠!

자 일단 제가 아는게 여기까지라 포스팅은 여기서 마무리 하겠습니다. (응?) 다음 포스팅에서는 앱 설정 기능에 대해서 조금 살펴보도록 하겠습니다. 아는게 많이 없어 자세히 살펴보지는 않을 예정입니다. 쿨럭.

- NoPD -
 
728x90
728x90
페이스북으로 앱 개발을 해보신 분이라면 수억명을 가진 소셜네트워크 서비스의 위상에 걸맞지 않는 형편없는 개발자 지원에 좌절했던 적이 많으실 겁니다. 그나마 PHP 정도는 지원이 괜찮은 편이지만 C# 과 같은 언어로 웹 서비스를 개발할 때는 거의 패닉에 빠질 정도로 레퍼런스를 찾기 힘든게 현실입니다.

페이스북이 직접 제공하던 개발자 포럼의 코멘트는 이런 형편없는 개발자 지원에 대해 성토하는 댓글들이 참 많습니다. 변경된 API 스펙과 맞지 않는 것들은 기본이고 문의를 하고 답변을 받는 채널도 제대로 구성되어 있지 않았습니다. 페이스북도 이런 문제를 인지하고 있었던 것일까요? 개발자 커뮤니티로 유명한 Stack Overflow 에 페이스북 공식 지원 채널을 열고 지식의 공유를 시작했네요.

Stack Overflow 페이스북 채널 : http://facebook.stackoverflow.com/

 
 
채널이 열린지 얼마 되지 않았지만 벌써 수없이 많은 스레드들이 등록되고 있는 모습이 이채롭습니다. 개발자들이 얼마나 기술지원 채널을 갈구했는지 알 수 있는 대목입니다. 이제 이곳을 통해서 다양한 페이스북 API 와 SDK 사용에 관한 정보를 얻을 수 있을 것 같습니다.

- NoPD - 
728x90

+ Recent posts