웹과 모바일 개발 혁명 세미나

– HTML5 ?
HTML5 ~= HTML + CSS + Javascript API
Web 에서 Desktop 수준의  App 구현 -> Web App

– Web App ?
. 웹 브라우저에서 실행
. Reading -> Interaction with Audio/Video/Animation
. 데스크탑 소프트웨어 수준의 사용자 경험
. 서버에서 제공되므로 신속한 업데이트(?)
. 다양한 디바이스 동시 지원 가능(->모바일)

– HTML5 가 모바일에 중요한가?
각 모바일 플랫폼용 네이티브 앱을 모두 만들기 어렵다.

– HTML5 스펙
. HTML5 스펙 : http://clearboth.org/html5/spec.html
. HTML5 Spec 한글화 커뮤니티 : http://clearboth.org
. 웹 개발자를 위한 HTML5 스펙 : http://developers.whatwg.org/

– HTML5 적용
. HTML5shiv : HTML5 IE enabling script(by Remy Sharp. 2009). html5 를 지원하지 않는 IE 에서 지원할 수 있도록 함.
<!–[if lt IE 9]>
<script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script&gt;
<![endif]–>
_ Jonh Resig 의 제안 :   http://ejohn.org/blog/html5-shiv/, IE6 까지 지원

. Mordernizr : http://www.modernizr.com. 2010
_ HTML5Shiv 기능을 포함하여 CSS3 까지 더 폭넓은 지원
_ Modernizr 객체를 생성하여 HTML5, CSS3 기능이 지원되는지 검사

– HTML5 Boilerplate : http://html5boilerplate.com/
. 최적화에 도움이 되는 권고사항 게재
. 즉시 사용가능한 HTML5 기본양식
. 참고할만한 snippet 포함(다운로드)

– HTML5 Initializer
. http://initializr.com
. HTML5 템플릿 생성
. HTML5 Boilerplate 에 기반
.  jQuery
. Modernizer / HTML5shiv
. 서버 설정 파일

– HTML5 Video & Audio
. 20종의 HTML5 Video Player : http://praegnanz.de/html5video 
. Video.js : http://videojs.com/
. Audio.js : http://kolber.github.com/audiojs/, OpenSource(MIT)

– Javascript
. Javascript library for Mobile
. UI Frameworks
. Application Frameworks
. Server-side javascript
. Language that compilers to JS

– Javascript for Mobile
. Zepto.js – http://zeptojs.com
_ Mobile 만을 위한 자바스크립트 라이브러리(Mobile WebKit 최적화)
_ jQuery 와 유사한 문법 제공. jQuery(26.7 K), Zepto.js(2.3K)
_ 오픈소스(MIT License)

– UI Library for Touch Devices
: Web UI 는 Touch 와 친화적이 않다.
. jQTouch : http://jqtouch.com
. jQueryMobile : http://jquerymobile.com
. Sencha Touch : http://sencha.com
. DHTMLX Touch : http://dhmlx.com/touch/
. jo : http://joapp.com
. wink : http://winktoolkit.org
. cross plaform 지원 프레임웍들 증가
. GUI designer : 화면 설정을 GUI 로 가능하게. DHTMLX(alpha), Sencha(2011 Q2)

– Javascript Application Frameworks
. 데스크탑 수준의 Web application 작성
_ Sproutecore : Cocoa for Web.  http://sproutcore.com
_ Cappuccino : Objective-J. http://cappuccino.org
_ Qooxdoo : http://qooxdoo.org

. Javascript 기반 Web Framework
_ JavascriptMVC : http://javascriptmvc.com
_ Rails-Like Framework for mobile App : http://37signals.com
_ JJ : Javascript App Framework. KTH.

– Server-side Javascript
. Netscape Livewire 를 시작으로 다양한 접근
. Node.JS : Evented Server-Side javascript. http://nodejs.org/
_ Google Chrome 의 Javascript Engine V8 을 분리해서 사용
_ 모든 Network I/O 는 nonblocking, File I/O 는 asynchronous
_ thread 방식에 비해 뛰어난 성능, 다양한 서버 모듈 개발중 (S3, MySQL, …)
_ HTTPd, FTPd, IMAP, WebDAV 등 다양한 서버 모듈 개발 완료
. CommonJS :  ecosystem for javascirpt outside the browser. http://nodejs.org
_ 브라우저가 아닌 서버/데스크탑 어플을 작성하기 위한 스펙들
_ Server-side, Command Line, Desktop GUI, Hybrid (Titanium ..)
_ 모듈 시스템, 파일시스템, 유닛테스팅, 콘솔, Promise…

– Javascript 로 컴파일 되는 언어들
. List of Languanges that compile to JS : https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

– Responsive Web Design
http://www.alistapart.com/articles/responsive-web-design/
. Screen size / Platform / Orientation 에 반응
. CSS3 Media Query, Flexbile Grid & Layout
. Guideline for Responsive Web Design :  http://www.smashingmagazine.com/2011/01/12/guidelines-for-responsive-web-design/
. Collection of responsive web designs : http://mediaqueri.es/

– 다양한 Web Store : Chrome Web Store, Mozilla Web App Store, GetJar
– Device API
. WAC(Wholesale Application Community) : 40개 이상의 통신사/제조사 협의체
. WAC Enabled Device 의 증가
. Device 기능을 활용한 Web App 들 증가

– Native App
. 뛰어난 성능 / 게임
. 훌륭한 UX
. 디바이스 모든 기능 활용
. 수익모델(판매/광고)
. 개발이 어렵다 / 비싸다
. 크로스 플랫폼?

– Web App
. HTML5, CSS, JS
. 서버기반 & Offline
. Multi Device
. 속도?
. 디바이스 기능 활용?
. 판매?

– Hybrid App
. Native + Web
. Multi Device
. 서버기반 개발가능
. Device 기능 활용
. 수익모델
. Web 부분의 속도?
. 표준화?

– Hybrid 개발 방법
. Native + WebView : native 로 개발하고 특정 부분만 WebView 를 이용
* iPhone
_ Javascript 에서 Objective-C 호출
_ WebView 에 Javascript Injection : stringByEvaluatingJavascriptFromString()
_ 모든 click 을 Hooking : shouldStartLoadWithRequest()
* Android
_ WebView 에 자바코드 연결 인터페이스 삽입 : addJavascriptInterface
. Appspresso / Phonegap
_ Web App 을 Native App 으로 패키징
_ device 기능을 framework 에서 javascript 로 확장

. Titanium(appcelerator)
_ Web 기술로 작성후 Native App 으로 변환
_ Device 기능을 자체적으로 제공(외관상 javascript 형태)

– Hybrid Web App
. Native App + Web App
_ 하나의 웹소스로 모든 디바이스 동시지원
_ Web 으로는 불가능한 Device 기능 지원
_ 앱 스토어를 통한 앱 판매 가능

– Hybrid Frameworks
. Phonegap
. Appspresoo
.Titanium Mobile

– Appspresso
. Mobile App Builder by kth
_ Hybrid Web App 개발 플랫폼 : iOS, Android
_ Device API : WAC API(waikiki) 지원
_ one click 으로 iOS & Android 앱 빌드
_ Native Plugin 추가 기능 : Plugin Development Kit

. HTML5 Web App
_ Touch UI : Sencha, jQueyMobile, JoApp 연동
_ 내장 Javascript MVC Framework

– Web Tech 2011
. HTML5 관련 기술의 사용이 증대
. Device 가 더욱 세분화 -> Web App 의 필요성 증가
. Javascript 관련 기술이 Hot
. Responsive Web Design
. 다양한 Web App Strore 의 등장 및 성장
. Device API 적용 디바이스의 출현
. Hybrid 방식 개발 수용 증가
. Hybrid Web App 개발툴의 성장

By awesomejude Posted in Web

디브 온 컨퍼런스를 다녀와서.

쓸데없는 소리는 집어 치우고, 컨퍼런스 후기를 얼른 써야 겠다는 일념하나만 갖고 작성해야 겠다.

지난 금요일, ‘개발자, 커뮤니티, 그리고 소통’을 주제로 한 디브온 컨퍼런스에 다녀왔다. (http://devondaum.tistory.com/)

주제에서 드러나 있는 것처럼 이번 컨퍼런스는 기술 전달을 위한 Technical Seminar 와 더불어 다양한 오픈 커뮤니티들의 참여와 개발자의 존재와 그 중요성에 대해서 다시 한번 생각해보게끔 하는 대담으로 이루어졌다. 무엇보다 나에게 가장 인상깊었던 것은 IT 업계에서 소위 말하는 ‘성공’ 이라는 열매를 맛 본 사람들의 대담시간이었는데, 컨퍼런스 순서대로정리를 해야 하니 나중에 다루어 봐야겠다.

1. 커뮤니케이션  (‘개발자가 아름다운 이유’)  

– 김국현  님(낭만 오피스 작가), 이택경 님(다음 공동 창업주 및 전 CTO,  현 프라이머에서활동중),  김학규 님 (IMC 게임즈 대표 및 라그나로크 개발자)

“개발자가 아름다운 이유”를 주제를 갖고 위에소개된 분들이 서로 이야기를 나누는 자리였는데, 몇가지 기억이 남는 말들을 정리하자면다음과 같다.

김학규님은 회사를 처음 세우고 어려웠을 당시를 이야기 해 주었는데, 당시 회사를 차린 이유는 개발용역을 할 때, 회사가 있으면 유리한점이 있어서 이름뿐인 회사를 만들게 되었다고 말하며 자신에게 있어 회사는 “목적”이 아니라 단지 자기가 일을 할수 있게끔 하는 “도구”였다는 사실이었다. 다시말해, 자신은 원하는 서비스를 만들기 위해서 회사가 필요했던것이지, 회사를 창업해서 돈을 벌겠다라는 것에는 애초부터 생각치 않았다는 이야기였다.

자신은 마케팅 조직이 필요없는 회사를 지향한다고 말하며, 처음 개발했던 게임이 어떠한마케팅활동이 없었는데도 해외에서 직접 찾아와 서버를 늘려달라는 요청을 하고, 해외 유저들이 늘어났었다는 이야기를 했다. 물론 게임이라는 특징 자체가 일반적인 소프트웨어와는달리 사람들의 흥미를 이끌어내기 좋고, 재미있을 경우 소문을 타고 더 많이 퍼질 수 있는산업이라는 생각이 든다. 하지만, 그 분이 역설하고자 싶었던 부분은 소프트웨어의 품질이아니었나 싶다.  소프트웨어 라는 것은 사용자가 원하는 본질적인 기능과 서비스의 품질을개선하는 데 가장 많은 비용을 들여야하지만,그게 아니라 그것을 어떠한 프로모션을 통해판매해야하는 지를 더 많이 고민하는 것은 무언가 뒤바뀐 것이라고 생각되었다. 다음으로,자신들은 새로운 무언가를 개발할 때 과거의경험에 의존하여 해왔던 방식을 고수하지 않고 늘 새로운 방식으로 접근하려고 한다는 이야기를 했다. 비록 이전 방식이 성공을 거두었을 지라도, 급변하는 IT 시대와 사용자의Needs를 충족시키려면 한번 성공했다고 그다음번도 성공할 수 있으리라는 것은 보장 할수 없다는 점에서, Farmer가 아닌 Hunter 의 입장으로 새로운 서비스를 개발해야 한다는 의견이 옳다고 생각한다.

2. IT 서비스 변화의 흐름 (김지현 (다음커뮤니케이션즈 전략담당이사)

1. 신기술 등장

2. H/W Spec 경쟁

3. SW 표준화

4. Network Speed

5. 기술 상향 평준화

6. UI/UX 디자인

7. 서비스의 시대

위와 같은 순서로 새로운 기술이 도래하고 뒤이어 중요한 요소들의 변화로 다음 절차를 따라 가게 되는데, 그 기술을 리드하려면 현재 처한 상황에 맞게 대처를 해야 한다는 소리였다.

현재, 새로운 기술이라고 한다면, 스마트폰과스마트 TV 그리고 N-Screen 이라고 볼 수 있을 것 같다.

각각이 다른 상황에 처해 있는 것 같아, 따로정리하자면,

스마트 폰 : 우리나라의 스마트폰이 활성화 된시발점에는 아이폰이 있었다는 것을 어느 누구도 부정할 수는 없을 것이라고 생각한다. 삼성과 LG 기타 다른 하드웨어 업체에서 비슷한스펙으로 제품을 출시하기 시작했고, 플랫폼이 iOS, Android 등 (Window Mobile, Bada)으로 어느정도 정해지며, 그 위에서 제공하는 소프트웨어의 표준화가 진행되었다. 그리고 가장 큰 변곡점이 되는 Network Speed의 변화를가져온 4G가 등장하게 되었다.  내 생각은 스마트 폰은 Network Speed의 개선을 지나서 SW 표준화를 위한 활동과 기술 상향 평준화단계에 접어 들고 있는 것으로 보인다. 이미 자리잡고는 있지만 전체적으로 통합되지 않은App Market을 통합하려는 움직임이 꾸준히 진행중이며, 4G 시대에서 빠른 속도를 기반으로제공될 수 서비스 개발과 대역량을 줄이는 기술이 또 다른 승자를 낳지 않을까 싶다.

스마트 TV : TV의 경우에는 하드웨어의 구성요소와 단가 등의 이유로 아직도 H/W Spec 경쟁이 진행중인 동시에 SW 표준화도 함께 진행중인 것으로 보인다. 기본적으로 절대 다수를 차지 하는 플랫폼이 등장하지 않았고, TV용앱 시장에서 손꼽을만한 킬러 앱도 아직 나타나지 않았다. 현재는 다만 기존의 웹 서비스를어떻게 TV라는 환경에 최적화 시켜 최상의 경험을 제공하게끔 만들 수 있을까에 초점이 맞춰져 있는 듯하다.

3. 커뮤니티 세션 1 

3.1 반응형  디자인 (정승희다음)

– 하나의 소스로 멀티 디바이스를 대응하기 위한 기술

반응형 웹 디자인의 구성요소

a. Flexible layout

– Absolute가 아닌 Relative 속성을 통해 디자인 한다.

b. Flexible image & media

– max-width를 정하여 width맞는 이미지아영상의 크기와 해상도를 제어하게끔 한다.

c. media query

– CSS3에서는 디바이스마다 그에 맞는Feature를 설정할 수 가 있다.

중요한 것은 기존의 웹사이트에서 media query 추가하여 flexible site 제작하는방식이 아니라 최소한의 스펙을 지원하는site에서 media query 추가하는 방법을 통해  디바이스의 특징에 따라 최적화된 site만들어야 한다는 것이다.

3.2 스프링 소셜을 이용한 빠른 소셜 만들기 (박성철, KSUG)

스프링 소셜이란?

요즘 많이 사용되는 소셜 서비스를 자신이 개발한 앱과 연동하여 쉽게 사용할 수 있도록 필요한 API 를 모아 놓은 것으로 스프링 프레임워크의 확장기능.

OAuth : 기본인증인 아이디와 비밀번호를 사용하는 것은 보안상 취약하여, Opean API로개발된 표준 인증방식으로 각종 애플리케이션에서 사용자 인증을 거칠 때 활용할 수 있게 되었다. 어플리케이션 마다 사용하는 OAuth 버전 정보는 서로 다른며 다음과 같다.

·         OAuth 1.0 : Triplt, DropBox, NetFlix, MySpace

·         OAuth 1.0a : Twitter, Linkedin, Evernote, Yammer

·         OAuth 2 : Facebook, Google, Foursquare, GitHub ( not final specification)

OAuth 1.0 and 1.0a

Consumer  –  Service Provider

1.       Consumer 가 아직 인증되지 않은 상태에서 Service Provider에게  토큰을 요청

2.       SP는 CS에게 토큰을 돌려줌

3.       CS는 SP에게 인증 정보를 제공하기위한 사이트로 리다이렉트 됨

4.       인증 프로세스를 통해 CS 정보가 인증됨

5.       CS는 SP에게 Access Token을 요청함

6.       SP는 CS에게 Access Token을 돌려줌

7.       CS는 인증된 정보를 통해 SP의 서비스에 접근 완료

OAuth 2.0

Consumer  –  Service Provider

1.       Consumer 가 Service Provider에게인증 요청

2.       SP는 CS의 계정정보를 얻고 나서CS에게 인증된 코드를 돌려줌

3.       CS는 인증된 코드를 갖고 SP에게Access Token을 요청함

4.       SP는 REST API에 사용될 Access Token 을 돌려줌

위와 같은 프로세스들을 진행하는 데 있어, 공통된 오픈 API를 제공함으로써 개발자가 편리하게 사용 가능함.

3.3 미래의 웹표준 기술 (윤석찬, Mozilla)

Mozilla 에서 모바일 웹표준을 위해 현재 하고있는 활동을 소개하는 자리.

1. Firefox Mobile – Native UI

Android 내의 브라우저의 성능을 높이기 위해 URL Bar는 Native Android Widget을 사용하고, Display 영역은 Gecko로 부터 정보를 받아 비동기적으로 처리

Nightly Build – 11월 22일 개시

정식버전 – 2012년 4월

2.  Boot to Gecko

이종 디바이스 간 호환 가능한 JS API 구현,보안 및 안정성을 제공할 수 있는 모델 제공

Q4 2011 – Web API 및 UI 프로토 타입

Q1 2012 – Open Web Apps 및 제품 데모

Q2 2012 – 제품화 및 업데이트 개발, WebRTC (브라우저 사이에 서로 정보 교환을 위한 API)

1차로 갤럭시 S2 단말호환에 집중하고 있으며, 이외의 제조사 및 이통사와도 협력강화중에 있음.

3. Open Web Apps

– 웹 기반 기술, 콘텐츠와 공유 중심의 웹앱스토어를 계획하고 있으며, 현재 집중되어있는  iTunes와 Android Market의 대안이 되기위한 목표

Q4 2011 – 개발자 프리뷰

Q1 2012 – 베타버전

Q2 2012 – 정식버전

3.4  Improve your Javascript (최성락다음)

– 자바스크립트의 성능을 높이기 위한 방법

1. Code Tuning

1.1 Scope Chains

Document와 Element와 같은 요소를 함수내에 변수로 선언하여 호출함으로써 호출에 소요되는 시간을 줄인다.

1.2 Nested Member 

접근하려는 클래스가 하위에 있을수록 접근시간이 오래걸리므로 가능한 상위에 위치한nested class member를 사용한다.

예) location.href는 언제나window.location.href보다 빠르다.

1.3 Loop  개선

아무리 반복문이라고 해도, 반복문의 횟수자체를 줄일 수 있도록 설계하고,  lookup 해야 하는 횟수를 줄이도록 만든다.

-> 하지만이런 방법을 써도 크게 개선되지 않는다.

정말 성능에 영향을 미치는 부분은 아래의 세 요소이며, 많은 비용이 들기 때문에 최대한 사용을 자제해야 한다. 

1. DOM

DOM API 사용과 HTML Collection 사용을 줄임으로써 속도 개선에 기여할 수 있다.

2. Reflow

뷰 영역을 재조정 하는 프로세스인데, 한 객체의 크기가 변경될 경우 다른 여러 객체들의 크기도 함께 영향 받을 수 있는데,  이런 것들을재조정 하는 과정이라고 보면 된다. 예를들어 텍스트 글자가 길어져서 다음 라인으로 넘어가니, 그걸 담는 박스 높이도 길어지고.. 아래 있는 객체를 밀어내고 하는 등등.. 하나의객체만 움직여도 수많은 다른 객체들이 영향받을 수 있고, 그 객체들이 영향 받을 때에도또다시 reflow 가 발생해서 사이드이팩트가 꽤크게 발생하기도 한다.

– DOM Tree, Render Tree를 하나씩 바꾸지말고, 한꺼번에 변경

– CSS Class를 생성하여 사용.

예) http://hbs.pe.kr/50117823005

. UI Thread

JavaScript를 수행하고 렌더링하는 것은 하나의 스레드에서 이루어지므로 동시에 작업처리를 하는 것이 불가능하므로 UI Thread로 많은작업을 넘기면 안되고, Set Timer와 Set Interval를 사용하여 제어하도록 한다.

3.5 패턴인식을 이용한 멀티미디어검색 (최현철다음)

텍스트입력이 아닌 패턴인식을 통해 멀티미디어를 검색하는 기술로 아래와 같은 어려움이존재함.

1. 패턴의 다양성

2. 데이터의 연속성

3. 샘플 추출의 어려움

패턴인식을 통한 검색 절차

1. 학습용 DB 생성 : 표본이 될만한 멀티미디어 자료 수집 후, 미디어 내에서 유의미한정보를 추출. 하나의 사진이라도 여러 형태로 존재하기 때문에 정보 추출에도 많은 시간이 소요됨

2. 학습 or 모델 생성 : 특징 벡터를 추출해서, 입출력 함수를 생성

3. 테스트용 DB 생성 : 생성된 함수를 기반으로 테스트용 DB를 생성

4. 성능 테스트 : 반복적인 성능 테스트로 인식율을 높임

5. 실제 데이터 유입 테스트 및 검수

6. 최종 성능 확정

-> 실제로 1 ~4단계의 수많은 반복을 통해 인식율을 높이는 시나리오를 도출해내는 것이어려움

3.6  한국형  콘텐츠 접근성 지침2.0 사례적 접근 (장성민, KWAG)

월드와이드웹을 창시한 팀 버너스리는 웹이란“장애에 구애없이 모든 사람들이 손쉽게 정보를 공유할 수 있는 공간”이라고 정의 하였으며, 컨텐츠의 제작에도 누구나 접근할 수 있도록 제작되어야 한다고 했다.

따라서, 앞으로는 웹 서비스를 개발하는 하는부분에 있어 웹 접근성도 고려해야 하는데, 이는 장애인 뿐만 아니라 모든 사람이 해당 서비스를 접근하는데 아무런 불편함을 느낄 수 없도록 만들어야 하는 것을 의미한다.

예를 들어, 시각 장애인도 이용해야 하는 서비스에 번호나 위치로 컨텐츠로의 접근방법을설명하면 안된다는 것이다.

웹 접근성에 대한 법률은 2008년에 제정되었으며, 2013년까지 그 대상이 모든 법인으로 확대 됨에 따라, 2012년은 현재 존재하는 서비스들이 웹 접근성을 준수하도록 전환되는 시기를 맞게 될 것이라는 전망이 있었다.

4. Keynote (‘개발자와 창의성’ – 정재승, KAIST )

정재승 교수님이 개발자와 창의성이라는 주제를 갖고 어떻게 하면 창의적인 개발자가 될 수있는지 에 대한 이야기를 하며 다음의 행동가이드를 주었다.

1. 자신이 하는일을 세상과 연결시켜라

자신이 하고 있는 일을 단순히 일적인 측면에서만 바라볼 것이 아니라, 어떻게 하면 세상에긍정적인 영향을 미칠 수 있을 까라는 고민이필요하다. 그런 고민을 하는 것은 일을 처리하여 얻는 업무적 성과 뿐만아니라 자신이 성장하는 데에도 도움이 된다.

2. 다른 각도에서 문제를 바라봐라

예) BMW 의 마케팅 전략

BMW는 신차가 나오면 그것을 살 수 있는 능력을 가진 사람들만을 대상으로 프로모션 행사를 하는 것이 아니라, 그것을 갖기 원하는 사람들에게까지 프로모션함으로써 가질 수 있는자로 하여금 스스로 로열티를 느낄 수 있도록만드는 전략을 사용하였다.

3.  혁신의 실마리는 엉뚱한 곳에 있다

A는 B다. 에서 처럼 A와 B의 관계는 멀수록 통찰력 있는 발견이 될 수 있으며, 이는 서비스융합을 어떤 방법으로 해야하는지에 대한 고민에 있어  큰 도움이 될 것 같았다.

4. 쉬면서 하는 몽상

스마트폰이 등장하며, 사람들이 몽상하는 시간이 사라졌다. 지하철을 타고 가거나, 택시를타고 이동할 때, 매표소에서 줄서서 기다리거나 식사할 때, 사람들은 자기가 해오던일이나관심있는 분야에 대해 이런저런 몽상을 하곤했으나, 스마트 폰이 등장하며, 잠시라도 그렇게 하는 시간이 사라져가고 있다. 창의적인 아이디어를 생각해내려면 이처럼 꾸준히Idling하는 시간이 필요한 동시에 진지하게 놀며 두뇌를 쉬게하는 시간이 필요하다.

5. 실제 사용자의 기준에서 아이디어를 생각하고그걸 알아볼  있는 매니저의 눈이 필요하다.

개발자가 실제 사용자를 대상으로 좋은 아이디어를 내서 서비스를 개발했다고 치자, 그런데 그것을 서비스해야 할지 말지를 결정하는매니저의 눈에는 그것이 어림없는 서비스라는생각이 든다면 그것은 수정될 것이다. 여기서안타까운 점은 그것을 한번 경험한 개발자는사용자의 마음에 들기 위한 서비스를 개발하는 것이 아니라 매니저의 눈에 들기 위한 서비스를 개발하게 될 것이라는 것이다. 그렇게 해서 런칭한 서비스가 사용자의 니즈를 충족시켜줄리 없기 때문에 매니저는 그러한 감각을잃지 않기 위해 끊임없이 사용자의 입장에서생각하려고 지속적으로 노력해야 한다.

6. 지도를 보는 것이 아니라 나만의 지도를 만들어야 한다.

우리는 중학교, 고등학교, 대학교 시절동안 어떻게 하면 무엇이 될 수 있다라는 지도를 보기만 해왔다. 자신들 앞에 놓여있는 지도가 자신과 맞는지 안맞는지도 의심하지 않고 내 앞에놓여있으니 당연히 내 지도겠거니하고 그냥그렇게 하면 될 것이라고 생각하고 살아온것같다. 하지만 그렇게 지도를 보고 따라가는 것이 아니라 나만의 목표를 세워 나만이 갈 수 있는 지도를 만들어 나가는 것이 중요하다. 그래야만 주위의 시선에도 의연히 자신의 길을 묵묵히 걸어 나갈 수 있다.

7. 남다른 리더는 신중한 결정을 빨리 내리고,자신의 결정을 언제라도 바꿀  있는 태도를갖춰야 한다.

이 이야기는 예전에는 미처 생각하지 못했던시각인데, 이번기회를 통해 새롭게 알게 되어좋았다. 요는, 모든 결정은 그 상황에서 취할수 있는 정보들을 모두 고려하여 신속하게 결정을 내려야 하고, 예상치 못한 변화가 있을때, 기민하게 계획과 자세를 바꾸는 태도가 필요하는 것이다.

실제로, 신속한 결정을 내리는 리더는 그만큼남들보다 앞설 수 있다는 점에서 그 장점이 있다. 물론, 그 때 내렸던 결정이 조금 틀어졌다고 한들 다시 바꿀수 있는 태도를 갖고 있기 때문에 뒤쳐지더라도 금방 따라잡을 수 있는 기회가 있다. 하지만, 결정을 늦게 내리는 리더는시장의 진행상황을 파악하고 심사숙고하며 결정을 내리기를 미루다 최후의 순간에 결정을내리기도 한다. 또한 이들은 자신이 그렇게 오랫동안 심사숙고하며 내렸던 결정이기에 조금틀어졌다는 생각이 들어도 쉽사리 바꾸는 자세를 갖기가 어렵다.  따라서, 남다른 리더가되려면 신중한 결정을 빨리 내릴 수 있는 결단력과, 언제든지 바꿀 수 있는 유연한 태도를 갖춰야 한다.

5.  Conversation ( ‘개발자의 미래 ‘ )

– 이재웅(다음 공동 창업자   CEO),  허진호 (크레이지 퓌시 대표   인터넷기업협회회장), 김택진 (NC소프트 대표  창업주)

개발자의 미래에 대해서 위 세분들이 대담을나누는 형식으로 진행되었는데, 개발자에 대한 새로운 시각을 심어줬다는 점에 있어 가장인상깊었던 세션이었던 것 같다.

Q. 앞으로 어떻게 IT 산업이 변화 할것이라고생각하는지요?

– 미래의 시대를 예측할 수 있는 사람은 아무도 없다. 트렌드를 통해 자신이 가고자 하는 방향을 정해 나아가야 한다. (허진호)

Q. 지금이 개발자에겐  기회라고 하지만소위 말하는 대박은 어렵고 중박정도 밖에 가능하지 않을 것이라고 보는 시각이 있는  이것에 대해 어떻게 생각하는 지요?

– 저는 서비스를 개발하면서 중박, 대박을 이야기하는 게 맞지 않다고 봅니다. 자신이 원하는 서비스를 개발하는데, 목적이 있는 것이지돈을 많이 버는 것이 목적이 되어 서비스를 개발하는 것은 주객이 전도되어 있는 상황이라고 본다.

저는 대학시절 넷로그라는 게임에 빠져서 늘소스를 들고 다녔습니다. 이때, OS가 새로 나올 때 마다 포팅해서 해보고, 소스를 분석하고그랬는데, 이것이 발전한 것이 나중에 “리니지”가 되었습니다. (김택진)

– 중박, 대박을 돈이라고 한다면 저도 같은 의견이지만, 그것을 꿈의 크기라고 생각한다면,대박을 추구하는 것에 동의 합니다.  큰 꿈을꾸고 그것을 이루기위해 노력하는 것은 올바른 생각이라고 봅니다. (허진호)

Q. 개발자의 미래는 무엇입니까?

– 개발자는 0과1로 이루어진 디지털 세상에서무한한 창조력을 가진 존재이다. 우리는 지금 다른 어떤 나라보다 컴퓨터라는 나라에서 가장 많은 시간을 보내고, 앞으로도 그렇게 될 것이다. 이러한 컴퓨터 나라에서 사용되는 언어를 제대로 하지 못한다는 것은 참으로 안된 일이다.  그래서 우리 회사에서는 전직원의 프로그래머 화를 위해 회사내에서 비용청구를 하거나 휴가를 내는 프로세스에도 프로그래밍을통해 가능하도록 사내 API를 만들고 있다.  무엇이든 자신이 만들수 있는 것을 만들 수 있다는 존재라는 것에 자부심을 가지고 살아갔으면 좋겠다. (김택진)

– 사람들은 페이스북의 CEO인 마크 주커버그를 많이들 알고 있고, 대단하다고 하지만, 그뒤에는 브렛 테일러(현 CTO)가 있었기에 가능한 일이었다는 사실을 잘 모르고 있다. 구글에있던 브렛 테일러가 페이스북으로 온 후, 아키텍쳐를 획기적으로 바꾸었는데, 이를 통해 ”Like”버튼을 추가하는 것은 자바스크립트 한줄로 가능하게 되었고  ”Facebook Connect”를 단 사이트가 10만개에서 100만개로 증가하는 폭발적인 사용자 확대를 가져왔다. 이것은 개발자의 깊은 기술적 지식을 갖고 있어야만 생각해 낼 수 있는 발견이자 창조이며, 이러한 혁신적인 기술은 기획자의 아이디어에서는 절대로나올 수 없는 생각들이다. 우리 시대에서는 모두가 마크 주커버그가 되기를 바라는 것 보다는 깊고 통찰력있는 기술적인 식견을 가진 브렛 테일러 같은 사람이 더 많이 나왔으면 하고, 각자의 위치에서 할 수 있는 일에 최선을 다해주기를 바란다. (허진호)

이번 컨퍼런스를 마치며…

그 무엇보다 이번 컨퍼런스를 통해 개발자의가치에 대해서 다시한번 생각할 수 있는 좋은기회가 되었다는 것이다. 원하는 서비스를 무엇이든지 만들 수 있는 개발자는 무에서 유를창조하는 발명가이며, 세상을 바꿀 수 있는 힘을 가진 사람들이다. 너무나  가슴벅찬 깨달음을 얻은 거 같아 기분이 좋았고, 새삼 개발자가 너무나 자랑스러웠다.  자부심을 갖자.

By awesomejude Posted in Life