구루의 기술뉴스 : 유용한 Web Site 140개, iOS 4.3 정리, 구글 크롬과 H.264

구루의 기술뉴스 ( GuruNews ) 3회차입니다. 이 기술뉴스의 설명은 구루의 기술뉴스 : 2011년 첫번째 뉴스레터 를 참고하세요. 매주 월요일에 발행됩니다.

지난주에는 각 매체에서 쏟아진 2010년 각 분야 예상들을 모아봤습니다.
이번주는 140개 가량의 유용한 Web Site 들과 iOS 4.3 베타 펌웨어 및 Verizon 의 iPhone 소식, 구글 크롬의 HTML5 에서의 h.264 지원 제거가 주요 뉴스입니다.

[ 웹사이트, 웹서비스, 웹기술 ]

  • 유용한 웹 사이트 101개 http://j.mp/ijqQnw 웹 앱이라고 부를 수 있는 다양한 사이트들.
    • Screenr.com – 정말 쉬운 방법으로 데스크탑 화면을 동영상으로 캡쳐하고 웹에 공유합니다.
    • Bounceapp.com – 웹 사이트를 캡쳐하고 그 위에 피드백을 달아 지인들과 아이디어를 공유하기 쉽게 합니다.
    • Untiny.me – 짧은 URL 들을 원래의 긴 URL 로 바꿔줍니다. API 도 제공
    • printwhatyoulike.com – 웹사이트 프린트시 필요없는 부분을 지우고 원하는 부분만 프린트 하게 해줍니다.
    • tabbloid.com – RSS 피드를 타블로이드 형태로 만들어 이메일로 배달해 줍니다.
    • join.me – 소규모 컨퍼런스 & 미팅을 위해 화면을 쉽고 빠르게 공유
    • dabbleboard.com – 온라인 화이트 보드
  • 웹 개발자를 위한 멋진 웹 앱 사이트 8개 http://j.mp/e772rk min.us / Wirify / CSS Resetr / Head JS / C&P Char / DB Designr / Web2PDF / ScriptSrc
    • min.us – 드래그 & 드롭으로 이미지 업로드
    • Wirify – 특정 웹페이지를 와이어프레임으로 만들어주는 북마클릿
    • DB Designr – 온라인에서 Database Schema 를 생성해주는 툴
  • 창의적인 사람들을 위한 웹 앱 20선 http://j.mp/fdeomk Drawing&Painting/이미지편집/비디오편집/음악생성 까지! 웹 앱의 발전이 정말 놀랍습니다
    • DeviantART Muro , Sumo Paint , Pixlr , Photoshop Express , Picnik : 웹 상에서의 그림 그리기 및 이미지 편집툴
    • JayCut , YouTube Editor : 비디오 편집툴도 이제 온라인에서 제공됩니다.
  • 구글 랩이 제공하는 웹 개발자용 툴들 9종 http://j.mp/ecsL6k
    • Gruyere – 해커들이 어떻게 보안 약점을 찾아내고, 어떻게 웹 앱을 exploit 하는지를 알려주고 그걸 막는 방법까지 설명하는 웹앱 http://j.mp/gF4gnH 소스코드도 제공
    • Browser Size – 웹사이트 위에 브라우저 크기를 알려주는 마커를 오버레이 해서 실 사용자들이 어느정도까지 보는지를 알려줍니다. http://j.mp/hv014J
  • How-I-Work : 난 이렇게 생산성 있게 일한다! 라는 분들이 자신의 개발/업무방법을 공개하는 사이트 http://j.mp/h5lmiA 아직은 맥 & 루비 쪽이 많지만 더 쌓이면 멋진 사이트가 될 듯합니다. 국내에도 이런 사이트가 있으면 좋겠네요.
  • 구글의 단축주소 서비스 goo.gl API 공개 http://j.mp/hGFcji 주소단축/확장 기능 외에 이 단축주소를 사용한 통계까지도 API로 가져올 수 있습니다.

[ 모바일 – 아이폰/안드로이드 ]

  • Verizon 용 iPhone4 가 발표되었습니다. http://j.mp/htjBm5 , 2월 10일부터 판매를 시작합니다. Verizon 은 미국내 1위 이동통신사이지만 CDMA EV-DO 방식이여서 그동안 아이폰 사용이 불가능했습니다. 버라이즌이 올 한해 아이폰4 판매를 위해서 보조금 5조원정도를 준비했다는 루머가 있는데, 과연 얼마나 시장이 확대될지 주목됩니다.
  • iOS 4.3 변경사항 총정리. 스크린샷 포함 http://j.mp/gMazyG , Verizon 아이폰4에서 보여줬던 퍼스널 WiFi HotSpot 포함 및 아이패드의 락버튼을 원래대로 돌리는 설정, 아이패드에서 앱스위칭을 하기 위한 4-5핑거 멀티터치 제스쳐를 포함합니다. HotSpot 때문에 iPad 3G 의 효용성이 많이 줄것이라는 예상이 많군요.
  • 2010년 모바일 브라우저 사용통계 http://j.mp/gLhSQ4 정확하진 않겠지만 아이폰의 비중이 줄고 그외 모바일 폰들의 인터넷 사용량이 증가세
  • Mobile Perf Bookmarklet – 모바일 웹 개발자를 위한 북마클릿. 등록하면 모든 모바일 페이지에서 Firebug Lite/페이지 리소스보기/DOM몬스터/CSSess 등을 실행가능! 정말 유용합니다. http://j.mp/mperfb

[ 프로그래밍 ]

  • 다양한 화면사이즈의 플랫폼들을 동시에 지원하기 위한 Responsive Web Design 방법 http://j.mp/eWEYIJ , 모바일 웹에 디자인/개발자 분들은 필독!
  • 자바스크립트 Asynchronous 프로그래밍을 위한 서바이벌 가이드 http://j.mp/gNeis8 다양한 비동기 라이브러리들에 대한 설명이 담겨있어 비동기코딩이 필요할때 필독 포스트
  • Interact – 웹 앱에서 터치/마우스를 손쉽게 대응하기 위한 자바스크립트 라이브러리 http://j.mp/gsaJx8 화면줌할때 모바일에선 두손가락 Pinch로, 데스크탑에서는 휠로 대응
  • Multi-mechanize : 오픈소스 웹 퍼포먼스 & 로드 테스팅 프레임워크 http://j.mp/fmeOoY 파이썬으로 되어있고 Mechanize 라는 파이썬모듈을 제공하여 웹브라우징을 프로그램적으로 컨트롤가능
  • 웹 입력폼 관련 보안 처리 방법 정리 http://j.mp/h796Wp 웹사이트에서 입력폼은 보안이 가장 잘 뚤리는 곳중 하나입니다. 미리미리 대비하세요

[ HTML5/CSS/Javascript ]

  • 구글 크롬이 HTML5 Video 태그에서의 H.264 비디오 직접 지원을 제거한다고 발표 http://j.mp/hzwl5Q 이에 대해 많은 비난이 일자 다시 장문의 해명?글이 올라왔습니다. http://j.mp/i3r0qD , 이런 결정이 있게 한 이유가 Youtube 가 H.264 & WebM 동시지원 때문에 비용이 많이 들기 때문 아니냐는 포스트 ( http://j.mp/hu3ded )도 있고, 이 결정 때문에 Adobe Flash 가 회생하게 되었다는 얘기들도 많습니다. ( Flash 는 내부에서 h.264 를 기본으로 지원하기 때문 ) 이에 대해 “온라인 비디오의 이상주의 시나리오 와 현실주의 시나리오” 라는 번역 글도 한번 읽어보세요 http://j.mp/dJvA8v
  • Cloud Carousel – jQuery 용 3차원 이미지 캐러젤 http://j.mp/eph6yC 아주 멋진 효과를 보여줍니다만, 아직 모바일에서 쓰기엔 너무 느리군요.
  • HTML5 기반의 ImpactJS 웹 게임엔진으로 만든 HTML5 버전 웹 타이핑 게임 ZType http://j.mp/hZgjlk 과 슈퍼마리오 http://j.mp/ieDNLy ZType 은 꼭 한번 플레이해보세요.
  • Silk – HTML5 캔바스의 놀라운 활용 http://j.mp/gTiBSS 마우스로 클릭후 드래그 해보세요. Shift 누르면 마우스로 바람방향도 조절가능
  • 웹 게임을 위한 자바스크립트 게임 엔진 리스트 http://j.mp/hDmEL1 30개가 넘는군요
  • arbor.js – 웹워커와 jQuery 를 이용한 Graph Visualization 자바스크립트 라이브러리 http://arborjs.org/ 메인페이지 자체를 그래프로 만들었군요
  • 어디에 HTML5의 <section>을 써야하는가 http://j.mp/gPSvnF

[ DB,클라우드,웹서버 기술 ]

  • Megastore – 구글 앱 엔진을 지탱하는 데이터엔진. Megastore는 최근의 인터랙티브한 온라인 서비스를 지원하기 위해  NoSQL의 확장성과 RDBMS의 편리함을 잘 조화 시켰습니다. 이에 대한 구글의 논문 ” Megastore: Providing Scalable, Highly Avaliable Storage for Interactive Services” PDF 파일 http://j.mp/ePdl38 이 Megastore 논문을 아마존 웹서비스팀 부사장인 James Hamilton 이 깔끔하게 요약해서 정리했습니다. http://j.mp/e3hVTd

[ 해외 뉴스 및 블로그 ]

  • VC들이 소셜커머스 업체 Groupon에 투자한 이유는 “데이터의 힘” http://j.mp/gDOC3i 어떤 분야든 데이터를 잘 활용하는 회사들이 경쟁력을 가져가고 있습니다.
  • 프리젠테이션을 만들고, 웹상에 공유하는 방법 http://j.mp/e7nKrp 키노트를 이용해서 음성까지 포함한 슬라이드쇼 동영상을 만들고 Archive.org를 통해 HTML5 형식으로 공유

여기 까지 입니다. 피드백 환영합니다!
제 블로그를 RSS리더에서 구독하시거나 , 제 블로그를 이메일로 구독하실수 있습니다.

구루의 기술뉴스 : 2011년 Trend 예상 모음

지난주부터 블로그에 공개한 저의 기술뉴스 ( GuruNews ) 입니다. 회사내에서는 11월부터 발송을 해서 10회차인데, 블로그에 공개한건 2회차입니다. 이 기술뉴스의 설명은 구루의 기술뉴스 : 2011년 첫번째 뉴스레터 를 참고하세요. 매주 월요일에 발행됩니다.

지난주에는 2010년 결산글들을 모았고, 이번엔 각 매체에서 쏟아진 2010년 각 분야 예상들을 모아봤습니다.

[ 2011년 Trend 예상 기사 모음 ]

  • Mashable 의 2011년 예상. 18개 분야 95개의 예상 http://j.mp/ee3SW1 내용이 꽤 많지만 주요 이슈들을 살펴보면,
    • {소셜 네트웍} : 구글의 소셜네트웍( 구글 +1 )은 실패할 것, Myspace 는 매물로 나올 것 , 2011년 소셜 네트웍 트렌드는 모바일 포토
    • {모바일} : 태블릿에 대한 관심 최고조, 모바일 사진공유가 동영상까지 확대, HTML5앱의 폭증
    • {스타트업} : QR코드를 비롯한 오브젝트 태깅, TV/영화등 엔터테인먼트 체크인, 비공개 LBS, 모바일 사진공유 붐업
    • {웹 개발} : 다양한 크로스 플랫폼 모바일 개발툴 출현, 클라우드 기반 협업 개발툴, 터치가 대세, NoSQL 과 오픈소스의 사용 확대
  • 2011년 눈 여겨 봐둬야 할 100가지 http://j.mp/dM1tJT 슬라이드로 표현한 100가지 아이템들인데 IT 만이 아닌 다양한 분야를 얘기합니다. 3차원 프린팅/자동차용 앱/자동 체크인/어린이용 이북/스마트폰 카메라가 일반 카메라를 대체/맥주 소믈리에?/페이스북 대체재의 출현..
  • 오픈 API 들에 대한 2011년 전망 5가지 http://j.mp/dIrSYF
    • API 들이 실시간 및 대형화
    •  개발자들의 HTML5 수용 
    • JSON 이 대세로, XML은 더 약해질 것 
    •  더욱 많은 회사들이 API 를 RESTful 기반으로 재정비 할 것 
    • API 프레임워크들이 더 많이 출현할 것
  • 2011년 웹 디자인 트렌드 http://j.mp/fU8SdK , CSS3 + HTML5 에 더욱 집중 / 단순컬러 / 모바일 / 시차 스크롤링 / 터치 대응 / 거리 감각 / 대형 사진 배경 / 특이한 도메인명 / QR코드 / 구글 인스턴트 검색을 위한 썸네일 디자인 / 라이프스트림
  • 2011년에 눈여겨 봐야할 앱 10가지 http://j.mp/hWBvnC
    • 아이패드 전용 매거진 The Daily
    •  쉬운 파일 공유 서비스 Ge.tt
    •  체크인 서비스 GetGlue
    •  로컬 추천 서비스 Bizzy
    •  아이패드용 소셜 매거진 Flipboard
    •  모바일 전용 메신저 Kik
    •  자동 체크인 & 쿠폰 서비스 ShopKick
    •  지인들간의 사진공유 앱 Path
    •  모바일 사진공유 서비스 Instagram
    •  그룹 메시징 앱 GroupMe
  • 2011년에 눈여겨 봐야할 웹사이트 10곳 http://j.mp/i9TSZz
    •  크라우드 펀딩 플랫폼 Kickstarter
    • WikiLeaks 와 비슷한 OpenLeaks
    •  소셜 인플루언서를 평가해주는 Klout
    •  항공예약에 관련된 기존의 문제점을 모두 해결해주는 Hipmunk
    • Gilt 의 Groupe
    •  페이스북에 대항하는 Diaspora
    •  정돈된 Q&A 서비스 Quora
    •  음악 스트리밍 서비스 Grooveshark
    •  백악관도 선택한 오픈소스 CMS 시스템 Drupal
    •  여전한 LBS 의 강자 Foursquare
  • 2011년에 눈여겨 봐야할 웹기술 5선 http://j.mp/gZaFaM
    •  크로스 플랫폼 모바일 프레임워크 jQuery Mobile
    •  웹 브라우저의 하드웨어 가속 
    • Node.js 와 서버사이트 자바스크립트 
    •  실시간 클릭 공유 
    • NoSQL 데이터베이스
  • 2011년의 온라인 미디어 트렌드 http://j.mp/eJYkvE
    • 클라우드 기반의 미디어 라이브러리 
    •  웹들이 더욱 읽기 좋은 형태로 진화 
    •  이북시장에서 몇몇은 사라질 것 
    •  온라인 3차원 비디오 
    •  블로그가 새로운 모습으로 진화
  • 2011년을 위한 소셜미디어 액션아이템 8가지 http://j.mp/hipFUw
  • 비즈니스 인사이더의 2011년의 모바일 엔터테인먼트 예상 5가지 http://j.mp/gFVVX5
    • HTML5 와 모바일 브라우저가 중요 
    •  모바일 소셜 게이밍이 웹 브라우저로 확대 
    •  컨텐츠 내부에서의 모바일 커머스가 확대
  • 국내 미디어인 ebuzz 의 2011년 핫 트렌드 5 http://j.mp/hqMnEH
    •  스마트폰은 듀얼코어,NFC가 이슈 
    •  태블릿PC 의 운영체제가 늘어난다 
    •  본격적인 클라우드 컴퓨팅 시대 열린다 
    • PC, CPU 가 그래픽 기능 삼킨다 
    •  발동거는 스마트 TV
  • O’reilly 의 2011년 주목할 6가지 테마 http://j.mp/fMpZKa
    • Hadoop 패밀리 ( HBase , Pig , Hive , Mahout , Flume , Zookeeper )
    •  실시간 데이터 
    •  클라우드에서 GPU 활용의 증가 
    •  페이스북에 대항하는 Diaspora 를 비롯한 P2P 기반 기술의 귀환 
    • Privacy !!
    • Javascript 언어에 주목할 것
  • 주목해야할 테크컴퍼니 8곳 http://j.mp/e6F5eG
    • 아이팟 나노 시계를 만든 디자인회사 Minimal
    • 2001년에 만들어졌지만 Digg 의 실패와 함께 재주목 받는 StumbleUpon
    • Wireless HDTV 시스템 기술을 가진 이스라엘 회사 Amimon
    • Clean & Reusable 에너지 회사 Bloom Energy
    • VoIP 의 대명사 Skype
    •  마이크로 블로깅 서비스 Tumblr
    • TV 및 미디어 시청자를 위한 추천서비스 Clicker
    • 작은 회사를 위한 Financial 서비스 inDinero

[ 웹사이트, 웹서비스, 웹기술 ]

  • 체크인의 변화 : 로케이션 -> 컨텐츠 -> 브랜드 http://j.mp/f8CF8u , 위치기반 체크인 뿐만이 아니라 다양한 미디어 컨텐츠, 그리고 각 브랜드로의 체크인이 점점 많아질 것이다.
  • 오픈API 숫자가 2010년들어 2배로 증가했다는 프로그래머블웹의 발표 http://j.mp/fBUKnP 숫자로만 보면 소셜 API가 1등,클라우드&단축주소를 포함하는 인터넷API가 2등, 지도,검색,모바일 API 순
  • Zappos 가 제공하는 자신들의 CoreValue API http://j.mp/hdq1NV 핵심가치를 오픈API로 읽어볼수 있게 한다는 개발스럽지만 멋진 발상. 총 10개의 핵심가치
  • http://qhub.com/ Q&A 기능을 호스트 해주는 웹서비스. Rest API도 있고, 무료버전도 꽤 괜찮은 기능들 제공. 개설프로세스가 복잡해져버린StackExchange의 쓸만한 대안인 듯
  • 알카텔-루슨트 & 프로그래머블 웹 이 진행했던 “100 Apps In 100 Days”의 수상작들 http://j.mp/fGQph2 이동통신사가 OpenAPI를 제공하여 할 수 있는 것들을 보여주는 좋은 사례
  • http://facto.me/ 자신에 대한 진실을 공유하는 웹 서비스 , 자신을 아는 사람들에게 자기를 3단어로 표현해 달라고 얘기하는 웹서비스 http://threewords.me/ 이 두 개의 서비스를 보면 최근 웹 서비스들에서 개인의 Privacy 를 어떻게 Social 과 연결하는지를 볼 수 있는듯 합니다.
  • Gmail 의 Priority Inbox를 구성하는 사용자별 통계모델 학습 알고리즘에 대한 논문 http://j.mp/eQ7JNo
  • 웹 API 디자인을 위한 팁 4가지 http://j.mp/fpcLgE

[ 모바일 – 아이폰 / 안드로이드 / 블랙베리 ]

  • 하이브리드 앱을 아시나요 http://j.mp/gurXYY
  • “Tablet 마켓은 실제로 없다“ http://j.mp/ewMROj 아이패드로 대표되는 타블렛 시장이지만, 이건 단지 아이패드만을 위한 것이지 다른 타블렛 마켓은 없는 것이나 마찬가지라는 이야기. 안드로이드 기반의 갤럭시탭이나 모토로라 XOOM, 블랙베리 타블렛, HP 의 PalmPad 등의 새로운 타블렛이 정착하기 위해서는 하드웨어 뿐만이 아니라 소프트웨어적으로도 완성되어야 하고, 또한 완벽한 에코시스템을 갖춰 야할 것. 예를 들어.. 윈도우 와 맥을 위한 싱크지원/결제시스템/음악&영상 컨텐츠배급/SDK와 개발환경/다양한 앱&게임/악세사리.. 등 애플이 이미 아이팟/아이튠스/아이폰을 통해 구축된 시스템들이 있었기에 이렇게 기반을 다질 수 있었던 것인데, 과연 다른 타블렛들도 그런 에코시스템을 가질 수 있을지에 대해서는 의문스럽다는 Instapaper 창업자 Marco Arment 의 글
  • 웹상에서 iPad 오리엔테이션에 따라 다른 CSS 적용하기 팁 http://j.mp/eX9KOe
  • 아이패드용 잡지가 살아날 방법 “iPad Publishing : time to switch to v2.0” http://j.mp/gAzp4D 애플포럼 casaubon 님의 번역글
  • 블랙베리 PlayBook 의 웹 브라우징 시연 비디오 http://j.mp/exzvwb , Engadget 의 핸즈온 프리뷰 http://j.mp/fAjKP4
  • 구글이 직접 공개한 안드로이드 3.0 Honeycomb 프리뷰 동영상 http://j.mp/h2xk25 “완전히 타블렛용으로 제작되었다” 라는 문구가 인상적이군요
  • 아마존이 올해 오픈할 아마존 안드로이드 앱스토어를 위한 개발자포탈 오픈 http://j.mp/gnpPjo 개발자등록비 $99 애플과 마찬가지로 앱 검수후 등록하는 형식
  • 타블렛들이 넘쳐나는 CES에서 배운것 – “당신의 타블렛이 iPad와 경쟁할 방법은?” http://j.mp/epOCjR 대체로 공감가는 재미난 기사
  • 자바스크립트와 CSS3 로 만든 iPad Simulator http://j.mp/grNFTH

[ 프로그래밍 ]

  • CoffeeScript 1.0 발표- 컴파일하면 자바스크립트 코드가 나오는 루비&파이썬 문법에서 영향받은 스크립트언어 http://j.mp/f39wdN 재밌게 코딩하게 해주고 성능도 괜찮아 GitHub에서도 떠오르는 스타
  • 대형 jQuery 웹앱 개발을 위한 팁 http://j.mp/g1bH5k 의존성관리/자바스크립트MVC/템플릿/모듈간통신/빌드 프로세스/테스팅까지 총망라. jQuery기반 웹사이트를 만드신다면 필독!
  • Zombie.js – 웹앱 테스트를 위해 node.js에 모듈을 추가하여 Headless 브라우저로 사용하는 테스팅 프레임워크 http://j.mp/eGXIcP 이젠 node.js가 웹사이트 테스팅용으로!
  • WebKit 브라우저의 Image Mask 기능을 이용하여 Image Wipe 효과 구현하기 http://j.mp/gsho62 아이폰에서도 잘되는군요. 데모사이트 http://j.mp/hAMmXX
  • ELCTextFieldCell – 아이폰 TableView 에 입력 Form 개발시 유용한 입력 셀 클래스 http://j.mp/eCiYX6
  • Coverstory – 맥 XCode로 개발된 코드의 유닛테스트 커버리지를 쉽게 볼수 있도록 도와주는 UI http://j.mp/g8l8Xm
  • 더 좋은 Find & Replace UI 를 찾아서 http://j.mp/hpp2Se 내용을 가려버리는 팝업창에서 인라인 형태로의 변화

[ HTML5 / CSS3 / Javascript ]

  • Sencha팀이 작성한 2011년 HTML5 위시리스트 http://j.mp/ggiZ3U 많이 이루어져서 웹개발자가 편한 세상이 오길
  • HTML,CSS,자바스크립트로 웹에 구현한 윈도우즈 3.1 http://j.mp/eUVQ8C 꽤 리얼하군요
  • 웹표준 커뮤니티인 ClearBoth에서 한글화한 HTML5 표준 스펙 http://j.mp/eXa5Qq
  • 네이버me 에 HTML5 와 CSS3 적용기 http://j.mp/hpJS8q 국내에도 이런 사례들이 자꾸 공개되어야 다른 기획자/개발자/디자이너 분들이 쉽게 익숙해 질것 같습니다
  • HTML5를 이용한 이미지 업로더 개발방법 http://j.mp/i0ilR5
  • 자바스크립트로 만들던 효과들을 순수 CSS 로 교체하기 32가지 예제 http://j.mp/geYXbv 버튼/드롭다운/폼/탭/네비게이션/프로그레스바.
  • Selectivizr – IE 6-8 에서 CSS3 를 에뮬레이트 해주는 자바스크립트 유틸리티 http://j.mp/eW41Y7

[ DB / 클라우드 / 웹서버 기술 ]

  • 넷플릭스가 자사 데이터센터에서 AWS(아마존웹서비스) 로 옮기면서 배운 5가지 교훈 http://j.mp/hcHAYu 클라우드를 도입하려는 회사들이 읽어보면 좋을듯
  • 페이스북이 대용량/고성능 시스템에서 빠른 메모리 Allocation/Deallocation 을 위해서 jemalloc을 어떻게 확장했는지를 설명하는글 http://j.mp/hoVjRs jemalloc 이름은 만든 친구 이름이 Jason Evans 여서 그런건데.. 이 친구도 페북에 있군요. 윈도우즈의 malloc 구현이 그다지 성능이 좋지 않아 메모리를 많이fragment 시키는 바람에 모질라 파이어폭스 3 윈도우즈 버전에서도 사용되고 있습니다. 모질라버전의 jemalloc 이 윈도우용으로는 유일한 코드입니다.
  • 구글 앱엔진이 데이터 스토어에 Paxos 알고리즘을 사용하여 좀더 높은 가용성을 보장하는 High Replication Datastore 옵션을 제공시작 http://j.mp/eKi9jt 물론 가격도 3배..
  • Web App을 Multi-Tenant SaaS 솔루션으로 바꿀때 고려해야 할 것들 http://j.mp/eYIZWF SaaS 클라우드에서 멀티테넌시는 기본!

[ 해외 뉴스 및 블로그, 기타 읽을거리 ]

  • Quora에 올라온 인포그래픽(IG) 과 데이터 비주얼라이제이션(DV)의 차이 http://j.mp/gjTFxO 베스트답변은 IG는 스토리를 말하거나 답변을 하기 위한것, DV는 자신의 스토리를 만들거나 답변을 찾게하는것
  • 데이터베이스 개발시 개발자들이 주로 하는 실수들 http://j.mp/eY3Yl1 데이터베이스 관련 코드 개발 전 꼭 읽어보세요
  • 2011년에 지구상의 인구가 70억명 돌파. 이에 대해 내셔널 지오그래픽이 만든 3분짜리 모션 인포그래픽 http://j.mp/fsqWDl 우리에게 필요한건 “Balance”
  • 대한민국에서 게임 심의 받기 http://j.mp/ibQZIw 읽는내내 가슴이 답답합니다

여기 까지 입니다. Trend 예측관련 기사에다가 CES 때문에 이런저런것들이 발표가 되서 많아서 양이 좀 많았습니다.
그나저나 반응이 좋으면 계속 하려고 했는데.. 호응이 많지 않군요. DTL .. 피드백 환영합니다!
제 블로그를 RSS리더에서 구독하시거나 , 제 블로그를 이메일로 구독하실수 있습니다.

구루의 기술뉴스 : 2011년 첫번째 뉴스레터

제가 작년에 KTH 파란닷컴으로 직장을 옮기면서 새로 하고 있는 일중 하나가, 예전에 회사에서 취미삼아 운영했던 기술뉴스 발행입니다. 제가 트위터를 통해서 공유하는 IT/개발 관련 정보들과 좀더 다양한 분야의 기사들에 조금 더 살을 붙여서 KTH 전직원들과 공유하고 있는데요. 올해 저희 회사의 개발자 포털이 열리면 그쪽에도 같이 공유를 하려고 합니다만.. 그전에 베타테스트 형태로 사내에 보냈던 올해 첫 기술뉴스 메일을 블로그에 공개해 봅니다.

회사내에서의 정식 뉴스레터 명칭은 “KTH AG ( Architects Group ) 기술뉴스” 이구요.
AG는 KTH 내부의 아키텍트 ( SW 뿐만 아니라, 디자인/비즈니스 까지 포함 ) 들이 모인 조직입니다.

엄청 대단한 내용도 아닌도 서론이 길었네요. 아래부터 뉴스레터입니다. 꼭 기술전문뉴스라기 보다는 웹에서 얘기되는 다양한 분야의 뉴스/블로그 포스트 들을 다룹니다.

[ 2010년 Top List 글 모음 ]

  • Fimoculous.com 에서 제공하는 2010년의 Top 리스트 http://j.mp/e1WRn6 광고/도서/영화/게임/음악/사진/여행/TV/비디오등 37개분야 170개가 넘는 Top 5/Top 10/Top30 등의 리스트로 되어있습니다. 영어권 자료이긴 하지만 챙겨서 볼만합니다
  • 국내 유명 블로거인 @inuit_k 님이 매년 추천하는 올해의 책 Best 5 http://inuit.co.kr/2038 2010년을 결산하는 책 5권을 추천합니다. 행복의 지도/프리/생각의 속도로 실행하라/게으름에 대한 찬양/소유의 역습, 그리드락 까지 이렇게 다섯권입니다. 2006년부터 5년째 진행중인 리스트구요. 예전 추천도서들도 참고하시면 좋습니다.
  • 뉴욕 타임스 제공 “100 Notable Books of 2010” http://j.mp/dVe7VS
  • Yes24가 제공하는 네티즌 선정 2010년 올해의 책 http://j.mp/dPDpeN
  • 인생을 살아가는 방법과 GTD를 통한 생산성 향상에 대한 다양한 글을 제공하는 Lifehack.org 의 2010년 결산 Best 100 http://j.mp/hRPJ5g
  • Slideshare Zeitgeist 2010 – 프리젠테이션으로 보는 Slideshare.com 의 2010년 통계. 그리고 전체/비즈니스/테크놀로지 분야별 Top 5 프리젠테이션들 http://j.mp/dOvpHf
  • 2010년 Web Development 이슈 Top 8 http://j.mp/e4fTGD
  • NetTuts+ 팀이 작성한 2010년의 웹 개발 하이라이트 150선 http://j.mp/dKmQ3n
  • 2010년 최고의 인포그래픽 19개 http://j.mp/ij7VBo : 2010년은 정말 다양한 인포그래픽으로 손쉽게 데이터를 볼 수 있었던 한 해였습니다.
  • jQuery 를 이용한 멋진 웹사이트 데모와 코드 2010년 결산 by Smashing Magazine http://j.mp/f9Cm7B
  • 2010년 최고의 CSS3 튜토리얼 및 테크닉 38개 http://j.mp/fzLfbV
  • TutorialShock 이 제공하는 2010년 최고의 웹&디자인 튜토리얼 모음 http://j.mp/i8SAtC
  • Instapaper 를 통해 저장해두고 읽어 볼만한 글들을 추천해주는 Give Me Something To Read 의 2010년 베스트 글 14개 http://j.mp/idxeb1

[ 웹사이트, 웹서비스, 웹기술 ]

  • 당신의 웹사이트의 Focus 는 무엇인가요? 훌륭한 웹사이트는 모두 포커스를 가지고 있습니다 http://j.mp/ecdEPg 친절한 스크린샷으로 예를 들어 설명한 좋은 글
  • URL 디자인에 대한 상세한 가이드 http://j.mp/gKt1rQ 국내 사이트들의 URL 구성은 너무 복잡한 게 사실입니다. 간결한 URL을 사용하는 것이 시대의 대세

[ 프로그래밍 ]

  • Less Framework 3 – 미디어쿼리를 이용해서 여러 디바이스에서 호환되는 CSS 그리드 시스템. 화면크기에 따라 3/5/8/13 컬럼 레이아웃 제공 http://j.mp/gqXewJ
  • emscripten – LLVM 비트코드를 자바스크립트로 컴파일하는 오픈소스 컴파일러. Python과 Lua 로 만든 코드가 브라우저에서 실행되는 데모 http://j.mp/gpQ7P6

[ DB,클라우드,웹서버 기술 ]

  • 스탠포드에서 만든 무료이북 “Mining of Massive Datasets” 300페이지 가량의 PDF 파일 : 대용량 파일시스템, MapReduce, 유사 아이템 검색, 데이터 스트림 마이닝, 링크분석, 클러스터링, Web 광고 시스템 , 추천 시스템등에 대해서 다루고 있습니다. 내용도 내용이지만, 카피라이트 경고문이 일품입니다. “많은 사람들이 책 내용을 불법으로 가져다 쓰는걸 알고 있으며,이런걸 알아내는 방법을 3장에서 소개한다” http://j.mp/hJFvFZ
  • Salesforce.com 이 클라우드 기반의 데이터베이스 서비스 http://www.database.com/ 오픈. 클라우드를 통한 보안/백업/확장 지원 및 REST,SOAP & OAuth 기반의 Open API 제공 및 자바개발자를 위해 JPA ( Java Persistence API ) 도 제공. 웹 상에서 스키마 디자인이 가능한 GUI 에디터 지원. 커맨드라인 에디터도 지원. 쉽고 편한 모니터링 인터페이스 제공. 3명의 사용자 / 10만개 레코드 / 월 5만 트랜잭션까지는 무료. 10만개당 $10달러 , 15만 트랜잭션당 $10 달러로 가격이 책정되었습니다.

[ 해외 뉴스 및 블로그 ]

  • 어떻게 경쟁상황을 도표로 표현하는가 http://j.mp/gpEgon 포스퀘어의 경쟁자인 페북/구글/옐프/고왈라/야후..등을 한 도표위에 그리는 걸 예로들어 설명했네요. 경쟁서비스와 비교를 할 때 참고할만한 포스트 입니다.
  • 지난 10년간 배운 30가지 컴퓨터관련 교훈 http://j.mp/f94pbo

여기까지 입니다. 올해 첫 메일이라 휴가기간과 겹쳐 원래 중점인 모바일 & HTML5 뉴스 들이 많이 없어 그 부분은 빠져있구요. 2010년을 결산하는 리스트들을 좀 정리해서 적어봤습니다. 회사내에서는 매주 월요일마다 발행되고 사내메일로 발송됩니다만, 신년을 맞아 제 블로그에도 2-3회 연재해볼까 합니다 ^^;; ( 호응이 좋으면 조금 더 연재할수도.. )

구루의 2011년 예상 : The Year of Web Apps

제가 FutureCamp 2010 에서 발표한 자료입니다. FutureCamp 는 자신의 관점에서 미래를 전망해보는 Un-conference 입니다. 누구나 자신이 생각하는 미래에 대한 발표를 할수 있는 자리인데요. 2010년엔 년말에 진행되어서 2011년을 예상해보는 형태로 진행되었고, 저는 2010년에 계속 얘기를 해왔던 Web Application 의 미래에 대해서 발표를 했습니다.

2011 is the year of Web Apps

발표내용을 요약해 보면..

2010년은 HTML5 의 해 였습니다. 물론 HTML5가 2010년에 갑자기 발표되거나 한건 아니지만, 2010년에 들어와서 다양한 경로를 통해 언급되며 폭발적으로 저변이 확대되었습니다. 아이패드 발표후에 나왔던 스티브잡스의 “Thoughts on Flash” 글은 물론, 애플/MS/구글 등 각 업체를 통해 HTML5 에 대한 지지 선언 및 데모사이트들이 발표되었습니다.

HTML5 는 Web App 에서 Desktop 수준의 App 을 구현하는것“을 가능하게 합니다. 즉 Web App 으로 가는 필수요건이고, 또한 IE 6/7/8 이 버티고 있는 데스크탑과 달리 현재 주로 사용중인 모바일 디바이스에서는 거의 지원되고 있기때문에 모바일에서는 즉시 사용이 가능합니다. 모바일에서 HTML5 가 주목받는 이유는, 현재 모바일 기기 들을 위한 앱 개발이 너무 Fragmented 되어 있기 때문입니다. 아이폰/안드로이드만 보더라도 Objective-C,Java 로 언어가 다르고, 그 외 Bada,블랙베리,Symbian,Meego 등등의 다른 모바일 폰용 개발 환경들은 말할 것도 없습니다. 또한 2010년 가장 핫 이슈였던 타블렛기기들도 아이패드/갤럭시 탭을 비롯해서 안드로이드 3.0 허니컴이 탑재된 모토롤라 XOOM(가칭) 타블렛 , 블랙베리의 PlayBook , HP 의 WebOS 타블렛 등 올해는 경쟁이 더욱 치열해 질것입니다. 이렇게 다양한 기기를 동시에 지원하는 앱을 만들기 위해서는 HTML5를 이용한 Cross Platform Web App 이 가장 탁월한 선택이기 때문입니다.

그래서 2011년에 주목할 만한 이슈들을 몇가지 정리해 보면..

  • Web App Stores
  • Device API
  • Hybrid & Cross Platform

을 큰 아이템으로 볼 수 있을것 같습니다.

구글의 Chrome Web Store 는 이미 오픈되어, 다양한 웹 앱들이 등록되고 사용되고 있습니다. 이 앱들은 iPadification 이라는 용어처럼 우리가 iPad 에서 봤던 UX 를 비슷하게 제공하고 있습니다. 또한 Mozilla 역시 Open Web App Store 라는 이름의 웹 앱스토어를 올해 열 것으로 기대가 되고 있습니다. 그리고 GetJar 역시 다양한 모바일앱부터 모바일웹앱을 지원하는 멀티플랫폼 앱 스토어로 최근 HTML5 버전으로 런치된 Zinga 의 Mafia Wars 를 홍보하기 시작했는데요. 이를 시작으로 다양한 Web App 들이 공개되는데 힘을 실어줄 것입니다.

또한, 한참 논의 되었던 WAC ( Wholesale Application Community ) 는 작년 9월에 Waikiki API 베타출시를 기점으로 올해 2월 MWC 에서 첫 Demo 가 보여지고, 5월쯤에는 WAC 이 탑재된 모바일 기기들이 출시될 것으로 예상됩니다. WAC은 Device API 라고 일컬어지는 모바일 디바이스 내부의 기능들을 웹과 연동하는 API 를 제공하여, 웹 앱내에서 스마트폰의 카메라/갤러리/연락처/일정/파일 등에 접근하게 가능하게 해줌으로서 모바일 웹앱들이 좀더 기기 친화적인 형태를 가지게 될것입니다.

그리고 이미 많이들 사용중인 Hybrid 형태의 Cross Platform Web App 개발툴들도 다양해진 타블렛을 지원하는것이 필요해지면서 점점 더 활성화 될것으로 기대됩니다. 기존 외산툴인 Phonegap 외에 제가 몸담고 있는 KTH 에서 공개할 Appspresso , ETRI 의 HyWAI 등 국산 하이브리드 환경들도 많이 활성화 될것입니다. 모든 앱들이 Hybrid 로 개발되는것은 아니겠지만, 앱스토어에서의 판매를 목적으로 하거나 Device 기능들을 좀 더 활용하기 편하게 하는 용도의 앱은 점점 증가할것으로 기대됩니다. 앞서 얘기했던 WAC 의 경우 아이폰/아이패드와 같은 iOS 디바이스에는 탑재가 불투명 하기 때문에 WAC 호환 앱들의 경우에는 안드로이드나 피쳐폰은 직접 폰에서 지원을 하고, 아이폰은 하이브리드 프레임워크를 통해서 지원하는 방향이 유지될 것으로 보입니다.

개인적인 예상을 적어봤지만, 이미 가속화 되고 있는 부분들이 많아서 아마 거의 그대로 이루어질것이라고 자신있게 예상해봅니다 😉 물론 올해는 아마도 HTML5 와 모바일 환경에 관련해서 더욱 많은 예제와 웹앱 프레임워크/라이브러리 들이 쏟아져 나와서 웹 개발자들이 더이상 똑같은 바퀴를 만드는 일을 줄여줄거라고 생각하구요. 올해는 정말 많은 웹 개발자들이 모바일 웹앱 개발로 많이 넘어오게 되는 기념비적인 해가 될것이라고 생각합니다.

2011 will be the year of web apps!

HTML5 API 강좌 #3 – 아이폰 Web App 만들기

이 글은 HTML5 로 아이폰 앱 만들기 라는 제목으로 월간 W.e.b. 에 연재하는 글에서 발췌한 것입니다. ( 잡지에 기고한 글이라 원래 제 블로그의 글과 어투가 다릅니다. )

이 글 전에 먼저 “HTML5 API 강좌 #1 – Web Storage 와 Application Cache” , “HTML5 API 강좌 #2 – Web SQL Database 와 GeoLocation” 글을 읽어보시기 바랍니다.

지난글 까지 HTML5 API 중 Mobile Web App 을 만드는데 중요한 API 들을 살펴보았다. 이번 회에서는 아이폰에서 Web App 을 만드는 방법을 배워보고, 이전 회에서 만든 CheckList App 을 아이폰 웹 앱으로 바꿔보자.

아이폰 Web App 개발하기

현재 Mobile Web App 을 가장 잘 지원하는 것은 아이폰이다. 국내에 출시되지 않았던 아이폰 OS의 1.0 버전 때에는 App Store 가 없었기에 애플 측에서 Web App 의 사용을 권장했었기 때문이고, 아이폰 OS 2.0 버전부터 App Store 가 런칭 되면서 사용용도가 많이 줄기는 했지만, 아직도 애플 웹사이트의 Web App Directory ( http://www.apple.com/webapps )에는 약 5천개 정도의 Web App 들이 등록되어 있다. 현재도 계속 새로운 WebApp 들이 개발되고 추가되고 있으며, iPad의 출시와 함께 큰 화면에서 사용 가능한 웹 앱들도 개발되고 있다. 아이폰 상에서 어떻게 HTML5 Mobile Web App 을 만드는지를 알아보자.

iPhone 환경에서의 Web App 지원

먼저, iPhone 환경에서는 데스크탑용 웹 브라우저와 달리 사이트에 접근하는 방식이 차이가 있기 때문에 특이한 사항이 몇 개 있다. HTML5 지원과는 조금 다른 얘기이지만, HTML5 를 이용한 Mobile Web Application 을 만든다면 꼭 알아둬야 것 중의 하나다.

아이폰 사파리는 웹 사이트에 대해 “홈 화면에 추가 ( Add to Home Screen )” 이라는 기능을 제공한다. 사파리 브라우저에서 맨 아래 + 버튼을 누르면 “책갈피추가 / 홈 화면에 추가” 선택팝업이 뜨고, 이를 통해 아이폰 메인화면에 웹 사이트에 대한 바로가기 기능을 추가 할 수 있다. ( iOS 4.2 에서는 + 버튼에 Print 기능이 추가되면서 화살표 같은 형태로 아이콘이 바뀌었다. )

iPhone WebAppiphone WebApp 2

iPhone WebApp 3iphone webapp 4

추가된 아이콘은 일반 앱과 같은 형태이며, 삭제하는 방식도 똑같다. 클릭하면 바로 모바일 사파리가 실행되면서 해당 웹사이트로 이동하는 URL 바로가기 형태로 보면 된다. 이것은 데스크탑 크롬 웹브라우저의 “웹 애플리케이션 바로가기 만들기” , Mozilla 의 Prism ( Firefox 에선 확장기능으로 제공 ) 과 비슷한 기능이다.

안드로이드 에서도 비슷한 기능을 제공하긴 하지만 단계가 조금 복잡하다.

  1. 홈스크린에 추가하고자 하는 웹 페이지를 Bookmark 한다.
  2. 메뉴 버튼을 눌러서 Bookmarks 페이지로 간다.
  3. 홈스크린에 추가할 북마크를 길게 누른다.
  4. “Add to Home Screen” 을 선택하면 현재 페이지에 추가된다. (빈 공간이 있어야만 가능)

원하는 페이지에 직접 추가하려면 일단 웹페이지를 먼저 북마크 한후 홈스크린으로 간다.

  1. 추가할 홈스크린으로 가서 빈 공간을 길게 누른다.
  2. 나온 “Add to Home Screen” 메뉴에서 Shortcuts > Bookmark 선택
  3. 원하는 북마크 선택

안드로이드의 Add to Home Screen 기능은 단지 북마크를 화면에 추가하는 것일 뿐 추가적인 기능은 제공하지 않는다. 하지만 아이폰 사파리에서 웹 페이지에 대해 이렇게 + 를 눌러 “홈 화면에 추가”후 실행하면 iPhone 에서는 Mobile Web App 으로 동작하게 된다. 이때 Web App 의 지원을 위해 모바일 사파리는 몇 가지 태그를 지원한다.

모바일 웹 앱 개발자는 head 섹션에 아래의 4가지 태그를 추가할 수 있다.

[html]
<link rel="apple-touch-icon" href="/apple-touch-icon.png"/>
<link rel="apple-touch-startup-image" href="/startup.png">
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />[/html]

각각은 다음과 같은 기능을 지원한다.

  1. <link rel=”apple-touch-icon” href=”/apple-touch-icon.png”/ >

    등록되는 웹 사이트의 아이콘을 지정할 수 있다. apple-touch-icon.png 가 기본 이름

    일반적으로 아이폰에서 웹사이트 아이콘을 추가하게 되면 웹사이트 화면을 캡쳐한 내용을 아이콘으로 사용하는데 apple-touch-icon 이라는 링크를 추가하여 아이콘을 내가 지정한 것으로 사용할 수 있다. favicon 의 아이폰 버전이라고 생각하면 된다.

    아이폰은 57×57 , 아이패드는 72×72, 아이폰4는 114×114 사이즈의 png 이미지를 사용한다. 가능하면 114×114 이미지로 만들어두면 아이폰에서 자동으로 크기 리사이즈를 한다.

    이 아이콘은 기본적으로 아이폰이 제공하는 UI 처리 ( 모서리를 둥글게 하고 반원형의 밝은 부분을 추가해 주는 것) 가 된다. 원하지 않을 때는 rel 속성의 값을 apple-touch-icon-precomposed 라는 이름으로 지정하여 사용하면 된다.

    <link rel=”apple-touch-icon-precomposed” href=”/apple-touch-icon-precomposed.png”/>

    → 이렇게 지정한 precomposed 아이콘 이미지는 안드로이드의 Add to Home Screen 기능에서도 지원된다. 사이즈는 48×48 이다.

  2. <link rel=”apple-touch-startup-image” href=”/startup.png”>

    화면이 로딩될 때 스타트업 이미지를 지정할 수 있다. Web App 이지만 앱 처음 로딩시 로고화면 같은걸 보여줄 수 있다. 아이폰 기본 앱에 들어있는 Default.png 와 비슷한 역할이다.

    단, 이미지의 크기가 정확히 맞아야 한다. 아이폰은 320×460 , 아이폰4는 640×920 , 아이패드는 768×1004 로 정확히 맞춰야만 제대로 화면에 표시된다.

  3. <meta name=”apple-mobile-web-app-capable” content=”yes” />

    Web App으로 선언하여 브라우저의 UI ( URL 바 ) 를 안 보이도록 할 수 있다.

    즉, Web App 이 마치 일반 Native App 처럼 화면 전체 ( 최상단 상태바 20px 제외) 를 활용할 수 있도록 한다.

  4. <meta name=”apple-mobile-web-app-status-bar-style” content=”black” />

    상태바의 색상을 지정할수 있다. 바탕화면이 검정색인 어플리케이션의 경우 상태바만 회색인 이질감을 줄이기 위해 사용한다.

    3가지 스타일 : default (회색) , black , black-translucent ( 반투명 )

이렇게 4가지 기능을 지원함으로써 HTML5 기반의 Local 또는 Online Web Application 들이 마치 Native App 처럼 실행하는 효과를 지원할 수 있다.

아이폰 개발 환경 꾸미기

Web App 은 아이폰 Native App 과 달리 개발환경으로 꼭 Mac을 필요로 하지 않는다. 기존의 웹 개발 할때와 마찬가지로 손에 익은 툴을 이용하여 개발할 수 있다. 아이폰 상에서의 동작 화면을 테스트하기 위해서는 맥의 개발환경인 XCode 에 포함된 iPhone Simulator 가 테스트용으로 아주 적절하지만, Mac 사용자가 아니라면 사용이 어렵다. 또한 Web App 개발시 iPhone Simulator는 디버깅을 하는 용도로는 적합하지 않다.

Safari 의 개발자 도구 활용하기

Webkit 기반의 브라우저 최신버전들에는 개발자 도구가 들어있다. 이를 활용해 보자

Safari 의 메뉴에서 편집->기본설정 또는 “ Ctrl + , “ 를 눌러서 설정창을 연다. 우측 끝 고급탭을 선택하여 맨 밑에 “메뉴 막대에서 개발자용 메뉴 보기” 를 활성화 한다.

사파리 개발자 메뉴 활성화 시키기

활성화 하면 아래와 같이 개발자용 메뉴가 추가된다. 이 개발자 도구는 같은 WebKit 기반인 Chrome 브라우저에도 비슷한 기능이 있지만, Safari 가 더 많은 기능을 가지고 있다.

사파리 개발자 메뉴

개발자용 메뉴중 주요 기능을 몇 개 살펴보자.

  1. 사용자 에이전트

    만들고 있는 웹 사이트를 iPhone / iPad 및 각 브라우저별로 어떻게 표시되는지를 테스트해보기 위해 UserAgent 를 쉽게 바꾸는 기능을 제공한다

    Safari User Agent

    Chrome 이나 Firefox 에서는 확장기능을 설치해야 가능했던 동작인데 기본으로 포함하고 있다. Mobile Safari 로 설정시 거의 아이폰 화면과 비슷한 화면을 보여주기 때문에 아이폰용 Web App 개발후 테스트시 아주 유용하다.

    실제로 아이폰/아이패드의 UserAgent 앞부분은 아래와 같다.

    Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3
    Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML,like Gecko) Version/4.0.4…
    

    즉, 각 웹페이지 개발시 아래와 같은 방법으로 현재 접속한 브라우저에 맞는 화면을 보여줄 수 있다.

    [javascript light=”true”]Javascript : if((navigator.userAgent.match(/iPhone/i)) { }[/javascript]
    [php light=”true”]PHP : if (strpos($_SERVER[‘HTTP_USER_AGENT’],’iPad’) !== false) { }[/php]

    아래는 사파리 브라우저 사이즈를 아이폰과 비슷하게 맞춘후, UserAgent 를 iPhone 으로 설정하고, 아이폰용 UI 라이브러리인 jQTouch 데모 사이트를 불러온 화면 이다. 거의 비슷한 형태의 화면을 볼 수 있으며, Webkit 애니메이션들도 그대로 볼 수 있다. 아이폰용 Web App 을 만든다면 꼭 알고 있어야 할 필수 테스트 방법이다.

    jQtouch on Safari

  2. 웹 속성보기 – Web Inspector ( Ctrl – Alt – I , ⌥ – ⌘ – I )

    현재 웹 페이지의 상세 속성을 보는 창이다. 앞서 HTML5 API 를 설명할 때 잠깐 설명한 기능으로 조금 자세히 살펴보자.

    Safari Web Inspector

    • 요소 : 현재 페이지의 HTML 소스를 보여준다.
    • 리소스 : 현재 페이지에서 로딩한 리소스 파일들 ( CSS, JS , 이미지 등 ) 및 각 리소스의 로딩에 걸린시간을 보여준다.
    • 스크립트 : 현재 페이지내의 Javascript 소스를 확인하고 디버깅 할 수 있다.
    • 타임라인 : 리소스 로드/스크립트수행/렌더링 시간들의 타임라인을 볼 수 있다.
    • 프로파일 : 현재 페이지내의 스크립트가 CPU 자원을 얼마나 소모하는지 프로파일링
    • 스토리지 : Database , Local/Session Storage , Cookie 들을 일목요연하게 볼 수 있다.
    • 콘솔 : 에러 확인 및 자바스크립트 실행이 가능한 커맨드 라인 창

    마치 Firefox 에서의 Firebug 플러그인을 보는 것처럼 잘 만들어져 있다.

아이폰 브라우저 화면 & Viewport 알기

모바일 웹 개발시 브라우저의 화면에 대해 먼저 알아둘 필요가 있다. 아이폰/아이패드의 브라우저 화면에 대해 알아보자.

iPhone Viewport

아이폰/아이패드 공히 상단 20px 의 상태바와, 60px 의 URL 바 를 가지고 있다. 그리고, 실제 보이는 View Port는 아이폰의 경우 아무것도 지정안할 경우 980px 로 세팅되어있다. 즉 모바일웹에 대응안한 웹 사이트 접속시 980px 이내라면 축소되어서 한 화면에 보이도록 되어있다. 아이패드는 일반 웹브라우저와 같다.

만드는 모바일 웹앱이 화면에 정확하게 맞도록 하려면 위에 보이는 것처럼 태그를 이용하여 viewport 의 width 를 device-width로 맞추면 된다. 또한 사용자가 확대를 할 수 있도록 할지 말지를 user-scalable 로 조정이 가능하다. 일반적으로 사진확대가 필요한 페이지가 아니라면 no로 지정하면 웹 앱 사용시 터치하여 이동이 편하게 된다.

이 device-width viewport 옵션은 안드로이드에서도 동일하게 동작된다.

앞에서 태그에 대해 설명했다. 이 태그를 추가한 후에 Add to Home Screen 을 한 Web App 은 다시 실행했을 때 앞에서 말한 URL Bar 와 Button Bar 를 모두 제거하고 아래처럼 전체 화면인 320x460px 를 웹 앱에서 쓸 수 있다. ( 아이폰 4에서는 640x920px 로 정확히 가로세로 2배로 확대 되었다고 보면 된다. )

iphone web app viewport

이렇게 지정 했을 경우 URL Bar 가 아예 없어지기 때문에, 사용자는 현재 웹페이지만 사용가능하고 다른 페이지로 브라우징이 불가능하게 된다. 즉 독립된 앱 처럼 사용이 가능하다. 작성중인 Mobile Web App 이 다른 페이지로 갈 이유가 없는 앱이라면 이 방식으로 해주면 된다.

만약 개발중인 Web App 이 URL Bar 가 필요는 하지만, 화면에 꼭 보일 필요가 없다면 앞에 Meta 태그 대신 아래의 자바스크립트를 사용하여 자동으로 URL Bar 를 스크롤 시킬 수 있다.

[javascript light=”true”]
window.addEventListener(‘load’, function(){
setTimeout(scrollTo, 0, 0, 1);
}, false);
[/javascript]

CheckList 를 아이폰 앱으로 바꾸기

이전 회에서 만들었던 Checklist App 를 좀더 아이폰 앱 처럼 변경해보자. HTML 파일을 다음과 같이 변경한다.

[html]
<!DOCTYPE html>
<html manifest="webapp.manifest">
<head>
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="apple-touch-icon" href="iphone_icon.png"/>
<link rel="apple-touch-startup-image" href="startup.png" />
<script src="app.js"></script>
<script>
window.addEventListener(‘load’, function(){
setTimeout(scrollTo, 0, 0, 1);
}, false);
</script>
<title>Checklist WebApp ( Offline )</title>
</head>
<body>
<div id="checklist">
<div id="add">
New Check List <input type="text" id="description"/>
<input type="button" value="Add" id="addbutton" onclick="newToDo();"/>
</div>
<div id="items">
</div>
[/html]

앞에서 본 viewport 및 meta 태그들을 모두 추가한다.

[html light=”true”]<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0"/>[/html]
Viewport 를 Device 크기에 맞게 고정하고, 스크롤이 불가능하게 설정한다.
[html light=”true”]<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />[/html]
Add To Home Screen 했을 경우, URL Bar 를 없애고, 상태바를 검은색으로 보이게 한다.
[html light=”true”]<link rel="apple-touch-icon" href="iphone_icon.png"/>[/html]
Add To Home Screen 할 때 보일 아이콘을 지정한다.
[html light=”true”]<link rel="apple-touch-startup-image" href="startup.png" />[/html]
Add To Home Screen 한 후에 실행시 보일 Start Up 이미지를 지정한다.
[javascript light=”true”]<script>
window.addEventListener(‘load’,
function(){ setTimeout(scrollTo, 0, 0, 1);}
, false);
</script>[/javascript]
기본으로 웹페이지가 보일시에도 자동으로 URL Bar 가 가려지도록 한다. 단, 이 코드는 아이템리스트가 화면크기보다 많을 경우, 즉 페이지가 아래로 스크롤이 가능할 때에만 자동으로 실행된다.

이렇게 모두 수정하고 iphone_icon.png 와 startup.png 를 같은 폴더에 업로드 한다. 실행화면은 다음과 같다.

iPhone Checklist WebApp 1

Add to Home Screen 할 때 위와같이 지정한 아이콘 이미지가 보인다.

iPhone Checklist WebApp 2

이렇게 추가된 아이콘으로 실행시 지정한 startup.png 이미지가 보이게 된다.

iPhone Checklist WebApp 3

실행하고 나면 위와 같이 URL 바가 모두 사라지고, 상태바만 남은 형태로 사용할 수 있게 된다.

이렇게 해서 모바일 Web App 를 아이폰에 맞는 형태로 만들어보았다. 다음 회에서는 터치기반의 모바일 UI 를 만들어 볼 것이다.

.