아침에 일어나 오늘의 날씨를 확인하고 뉴스를 읽고 버스나 지하철이 언제 도착하는지 확인할 때, 여러분들은 보통 무엇을 활용하시나요? 예전 같으면 TV나 PC를 통해서만 가능했던 일들이 이제는 우리 손 안의 '모바일'을 통해 이루어지고 있습니다. 많은 비영리 조직에서도 현재 모바일을 활용하고 있거나 앞으로 모바일을 활용할 계획이 있으실텐데요.


우리가 흔히 사용하고 있음에도 불구하고 용어나 기능적으로 보면 모바일은 다소 생소하거나 어려운 부분들이 많습니다. 그래서 체인지온에서 모바일 개발 및 커뮤니케이션과 관련된 세 가지의 용어들을 쉽게 정리해보았습니다. 이미 잘 알고 계신 분들도 있겠지만 아직 모바일 활용에 대한 감이 잘 안서는 분들은 꼭 참고해보시기 바랍니다. 


 # 가장 흔하게 이용하는 앱, '네이티브 앱' 



크기변환_mzl_ehljnmpg_320x480-75.jpg  크기변환_mzl_tlbqxejj_320x480-75.jpg 


네이티브앱은 우리가 보통 iOS 운영체제나 안드로이드 운영체제의 스토어에서 다운 받아서 사용하는 앱들을 말합니다. 즉 네이티브앱은 각 운영체제의 개발언어를 통해 작성된 플랫폼에서만 작동하는데요. 초기의 스마트폰 시장은 이 네이티브 앱을 중심으로 형성되었고, 지금도 가장 큰 부분을 형성하고 있습니다. 네이티브앱은 어플리케이션 간의 확장성이 용이하고 UI 구성요소가 대부분 패키지화 또는 라이브러리 형식으로 기본 제공되기 때문에 로딩 속도가 빠른 것이 특징입니다. 다음세대재단이 제작한 소리아카이브 아이폰 앱이 바로 네이티브 앱이라고 할 수 있습니다. 


네이티브 앱은 그러나 앞서 말씀 드린 것처럼 특정 플랫폼에서만 작동하고, 앱의 업데이트는 보통 앱스토어를 통해서만 이루어지는 단점이 있습니다. 기관이나 단체에서 네이티브 앱의 제작을 고민 하신다면 이러한 장점 및 단점을 사전에 잘 확인해보실 필요가 있습니다^^



 # 생각보다 가까이에 있는 '모바일 웹' 



크기변환_IMG_0814.PNG  크기변환_IMG_0815.PNG 


모바일웹은 우리가 웹페이지를 이용할 때에 흔히 마주 대하는 HTMLCSS, 그리고 Jquery 등을 활용하여 브라우저에서 작동되는 모바일 환경을 의미합니다. 모바일웹은 무엇보다 브라우저 자체의 환경적인 특성을 제외하고는 대부분의 브라우저에서 볼 수 있는 것이 가장 큰 장점인데요.


더불어 모바일앱과 달리 개발 시에 즉각적인 화면 체크와 변경 및 수정이 가능하고, 별도의 플랫폼용 언어가 아닌 기존의 웹 개발 방식과 동일한 언어를 사용하기 때문에 개발 비용의 절감도 가능하다고 합니다. ChangeON.org도 모바일웹의 이러한 장점을 이용하여 모바일 웹을 제공하고 있는데요. 특정한 웹사이트를 모바일로 열었을 때 사이트가 열리지 않거나 깨지는 경우가 바로 모바일 웹이 적용되지 않은 경우라고 할 수 있습니다.  


그러나 모바일웹은 인터넷이나 와이파이의 연결 없이도 어느정도의 기능은 작동하는 네이티브앱에 비해 연결상태에 따라 구동 자체가 불가능할 수도 있다는 점과 모바일에서 사용되는 API의 활용이 불가능 하다는 단점도 동시에 존재합니다. 하지만 최근 들어서 HTML5나 웹 OS와 같은 웹 기반의 기술이 발달하면서 이러한 모바일웹의 단점도 어느정도 극복이 되는 상황이라고 합니다.



 # 모바일앱과 모바일웹의 장점은 극대화하고 단점은 보완한 '하이브리드 앱' 



크기변환_IMG_0818.PNG  크기변환_IMG_0816.PNG 


하이브리드 앱은 네이티브앱과 모바웹의 장점은 함께 가지면서 단점은 보완한 것이라고 보시면 될 것 같습니다. 환경적으로는 네이티브앱과 동일한 환경을 가지고 있지만, 부분적으로는 HTML5 및 CSS를 사용하여 호환성이 확장된 것인데요. 인터넷 및 와이파이 환경에도 유연하고 모바일웹에 비해 빠른 로딩 및 실행이 가능한 것도 장점입니다.


예를 들어 다음이나 네이버의 앱같은 경우가 하이브리드 앱이라고 할 수 있습니다. 네이티브 앱의 형태로 앱스토어에서 배포되지만, 실제적인 구성을 보면 브라우저를 기반으로 하는 모바일 웹 형태로 구성되어 있는 것입니다. 하이브리드앱은 서버를 통한 화면 구성 및 디바이스 접근 제어가 가능하고 개발에 있어서의 수고도 상대적으로 절감되기 때문에 하이브리드앱은 앞으로 더욱 더 많이 등장할 것으로 판단됩니다.  


지금까지 모바일 어플리케이션을 활용하는데 있어서 필요한 세 가지의 용어에 대해 살펴보았는데요. 나름 쉽게 설명해드리려고 애썼는데 이해에 도움이 되었는지 모르겠습니다. 단지 하나의 운영체제나 기기를 위한 앱을 만들었다고 해서 모바일 환경에 대한 적절한 대응을 했다고는 볼 수 없는 현실입니다.


만약 모바일 환경 대응을 고민하시는 경우라면 우리의 기관 또는 조직을 이용하는 사람들이 가장 많이 활용하는 모바일 기기 및 플랫폼은 무엇인지와 비용, 시간, 인력 등을 고려하였을 때 가장 적합한 모바일 전략은 무엇인지를 먼저 고민해보셔야 할 것 같습니다. 


출처 - http://changeon.org/98772


===================================================================================


하이브리드 웹이란?


하이브리드앱(Hybrid App)의 정의


하이브리드앱은 스마트폰으로 도메인을 입력해서 접속하는
‘모바일 웹사이트’와 애플리케이션을 다운받아 접속하는 ‘앱’이 합쳐진 형태이다.
하이브리드 웹의 원리는  웹 표준을 준수한 모바일 웹을 만든 이후에 앱에 연동하는 형태이다.
따라서 애플리케이션을 다운 받거나 또는 북마크, 도메인을 입력해서 접속해도 동일한 형태의 모바일 페이지를 볼 수 있다는 장점이 있다.
보통 하이브리드 웹이라는 이름으로 통용되지만 앱을 설치하는 형태의 경우는 하이브리드 앱(Hybrid App)이라는 이름으로 사용한다.

 

왜 하이브리드 앱인가? 
모바일 웹페이지는 따로 다운받을 필요가 없고 제작비용이 저렴하다는 장점이 있는 반면,
네트워크에 접속해야 하기 때문에 페이지가 넘어갈 때마다 로딩 시간이 길다.
또 웹을 변형한 형태이기 때문에 다양한 웹브라우저와 각기 다른 해상도를 지원하는 스마트폰에서는 보기 불편한 점이 많다.
(ex. 아이폰의 경우는 플래시로 된 컨텐츠를 표시하지 못한다.)

 


  

 


앱의 경우는 일단 설치만 하면 반응 속도가 무척 빠르고, OS별로 제작되어 있기 때문에 스마트폰에서 보기 편한 장점이 있습니다.
하지만 개발비가 많이 들고 OS별로 따로 제작해야 하기 때문에 3~4가지 버전을 제작해야 할 수도 있습니다. 게다가 업데이트를 할
때마다 계속해서 재설치를 해야 하고 개발사는 앱스토어 심사를 받아야 한다는 불편함도 있다.
불편한 점을 대부분 해결한 것이 하이브리드 앱이다.

 

하이브리드앱의 작동원리 


   기본적으로 하이브리드앱은 웹기술을 통해 내부 구조와 인터페이스를 만들고, 카메라나
   단말기 센서 조작 등 웹 기술이 지원하지 않는 기능만 단말기 전용 애플리케이션 프로그래밍
   인터페이스(API)를 쓴다. 그뒤 HTML와 CSS, 자바스크립트 API 코드로 구성된 프로그램
   소스를 일반 앱처럼 단말기에서 실행되는 형태로 변환한다. 이를 '감싼다(패키징한다)'고
   표현한다. 알맹이는 웹이지만 일반 앱처럼 포장한다는 뜻이다.

   앱을 다운 받아서 접속하면 빠르고 편리하다는 장점이 있지만 OS별로 제작형식이 다르다.
   아이폰용 앱은 ‘Object C’를 이용하고, 안드로이드 는 ‘Java’를 주로 이용한다. 그에 비해
   하이브리드 웹은 HTML 국제 표준화 기구인 W3C에서 규격화한 ‘HTML5’를 사용합니다.
   이 형식은 어느 OS, 플랫폼에서도 동일한 형태로 볼 수 있으며 별도의 플러그인 없이
   플래시나 동영상, 멀티미디어 파일을 구동시킬 수 있어 매우 편리합니다. 게다가
   플러그인이 없으니 속도도 일반 모바일 웹에 비해서는 빠르다.

 

하이브리드앱 개발에 쓸수 있는 툴

 

하이브리드앱을 개발할 때는 터치스크린을 사용하는 모바일 기기에 특화된 프레임워크가 쓰인다.

센차터치는 아이폰과 안드로이드에서 HTML5기반 모바일웹으로 앱을 만들 수 있는 자바스크립트 프레임워크다.
 
웹페이지jQ터치는 자바스크립트 프레임워크 j쿼리(jQuery)와 함께 쓰는 터치 인터페이스 플러그인으로,
사용과 수정이 간편하다고 알려졌다. 모바일 브라우저 주소창과 메뉴를 가려 앱처럼 보이게 만드는 것이 주요 기능으로 별도 패키징툴이 필요
(최근 'j쿼리 모바일' 알파2 버전 출시)
 
폰갭은 웹앱을 여러 스마트폰 플랫폼 일반 모바일 앱으로 감싸주는 오픈소스 플러그인 기술이다.
통합 개발 환경(IDE)이 없으므로 아이폰 앱을 만들 경우 X코드(Xcode)를 써야 한다.
전용 지원 플랫폼은 아이폰, 안드로이드, 블랙베리, 심비안, 팜 등이다.
운영체제(OS)별 차이는 있지만 대부분 환경에서 지오로케이션, 진동, 가속도계, 소리, 단말기 주소록 API를 다룰 수 있다.  
앱셀러레이터의 티타늄은 웹개발자들이 자바스크립트, CSS, HTML같은 웹기술과 루비, 파이썬같은 스크립트 언어를 사용해 아이폰,
안드로이드용 앱을 개발할 수 있게 해주는 플랫폼이다. 무료 버전과 전문 개발자용 유료 버전으로 제공된다.

 

☞적용 사례 
쇼핑몰로는 GS숍이 하이브리드 웹을 적용한 곳입니다. HTML5를 기반으로 제작되어 있으며,
상품이 수시로 바뀌더라도 업데이트를 해줄 필요가 없이 바로 적용할 수 있어 무척 편리하다.
 
우리은행과 음악서비스사인 멜론이 출시한 ‘아이패드 멜론 웹’ 역시 하이 브리드 웹을 적용했다.
특히 멜론의 경우는 앱을 설치하지 않고 그냥 모바일 웹으로 접속해도 바로 음악을 들을 수 있어 편리해 앱의 존재이유가 없어짐.

지금도 수 많은 서비스가 하이브리드 웹으로 바뀌고 있는 과도기다.
업데이트 때마다 매번 재설치 해야 하는 앱의 불편함, 답답하고 느린 모바일 웹페이지가 위협받고 있다.


출처 - http://blog.naver.com/PostView.nhn?blogId=jazzroi&logNo=30104338625


===================================================================================


1. 하이브리드 웹의 정의




하이브리드 웹(Hybrid Web)이란, 웹서비스를 app에서 이용가능하게 하는 것으로써 기존 애플리케이션 및 OS와 이들을 포함하면서 정보 플랫폼으로 진화해 가는 웹이 공존하는 현상을 일컫는다.



콘텐츠를 여러 모바일 플랫폼에서 쓸 수 있는 모바일 웹 기반 구현방식과, 모바일 기기의 고유한 특성을 극대화할 수 있는 모바일 애플리케이션 개발 방식을 절충하는 것이다. 이처럼 일반적인 애플리케이션 내부에 자바스크립트, HTML, 스타일시트 등 웹 기술을 적용해 정보를 다루는 개발방식을 도입한 것을 하이브리드 웹(또는 App.)이라고 부른다.



기본적으로 하이브리드앱은 웹기술을 통해 내부 구조와 인터페이스를 만들고, 카메라나 단말기 센서 조작 등 웹 기술이 지원하지 않는 기능만 단말기 전용 애플리케이션 프로그래밍 인터페이스(API)를 쓴다. 그뒤 HTML와 CSS, 자바스크립트 API 코드로 구성된 프로그램 소스를 일반 앱처럼 단말기에서 실행되는 형태로 변환한다. 이를 '감싼다(패키징한다)'고 표현한다. 알맹이는 웹이지만 일반 앱처럼 포장한다는 뜻이다."



2. 기존 모바일 앱과 웹 그리고 하이브리드 앱(웹)의 특징 


  
3. 하이브리드앱의 가능성 


모바일 웹이 지닌 속도가 느리다는 단점을 어느정도는 포함하고 있는 하이브리드 앱, 4G시대가 오면서 통신속도가 비약적으로 상승되고 새롭게 출현한 HTML5로 인해 이는 더 이상 단점이 될 수 없다. 게다가 HP의 Web OS, 삼성의 바다OS, 마이크로소프트의 새로운 윈도우모바일의 등장으로 터치기기 및 스마트폰을 위한 운영체제는 갈수록 다양해지고 있다. 그런 점에서 속 알맹이는 그대로 놔두고 각 OS에 맞춰 패키징만 다시 하면 되는 개념의 하이브리드앱은 앞으로 크게 각광을 받게 될 것이다.





4. 개발을 위한 Tool

터치스크린 기기용 모바일웹 개발 프레임워크는 센자터치(Sencah Touch)와 JQ터치(JQTouch)가 있고, 패키징툴로는 폰갭(PhoneGap)과 한국의 KTH에서 개발한 앱스프레소(Appspresso)가 있다. 개발부터 패키징까지 다 할 수 있는 앱셀러레이터 티타늄(Appcelerator Titanium)이라는 툴도 있다.





5. 추가자료 


"실제로 스마트폰이나 태블릿pc 등의 스마트기기가 활성화 됨에 따라, 기업은 애플리케이션과 같은 적극적인 마케팅 수단을 활용하여 고객의 접근성을 극대화하길 원한다. 그러나 높은 개발 비용과 쉽지 않은 유지관리로 인하여 규모있는 기업이나 인지도 있는 브랜드만이 제공 가능한 서비스가 되어버렸으며, 대다수의 기업들이 상대적으로 저렴한 비용으로 구축 가능한 모바일 웹사이트만을 준비하여 서비스하는 실정이다."

앱은 고객의 접근성을 극대화시키고, 자발적 고객참여를 유도하며 브랜드 가치를 상승시킨다는 장점이 있고 웹은 구축과 운영하는데 비용이 상대적으로 저렴하고 쉽고 빠른 업데이트가 가능하며 디바이스 구분이 불필요하다. 이런 장점만 모아 하이브리드 웹을 만들어 비용절감과 동시에 효율적이 유지, 관리를 가능하게 한다.



앱스토어를 통해 다운로드되고 어플리케이션을 통해서 접속되는 모바일 앱의 요소와 내부의 구성을 브라우저로 하는 모바일 웹적인 요소가 결합된 형태로 둘 모두의 장점을 지니고 있다. 어플리케이션으로 다운을 받아 쓰기에 로그인이 필요없다는 점이 특징이지만 내부는 모바일 웹의 형태를 띠기 때문에 무선통신이 안되면 사용할 수 없다는 단점도 있다. <- 이 단점은 HTML5로 인해 해결될 것 으로 보인다.



또다른 단점은 불법위치추적등의 제작사가 유포시키는 악성코드로 구글이 앵그리버드에 사용자의 위치기반형 맞춤광고를 위하여 불법 위치추척광고를 배너광고처럼 보이게 해서 시행했다.



웹 기반의 크롬 OS와 안드로이드가 공존하는 구글의 이원화 전략이 이에 해당된다. 브라우저 기반의 웹 애플리케이션과 플랫폼 별 고유 애플리케이션이 공존하는 형태로 웹과 앱의 경계가 점차 무너질 것으로 예상된다.


출처 - http://i-bada.blogspot.kr/2012/03/blog-post_1235.html


===================================================================================


모바일 웹 애플리케이션이라는 말을 뜯어보면 3가지 단어로 이루어져있습니다. 모바일, 웹, 애플리케이션입니다. 아이폰이 처음 등장했을때만 해도 모바일에서는 앱 형식의 배포만이 진리라고 생각했습니다. 몇몇 분들이 웹을 이야기했을때에도 아직 머나먼 이야기가 아닐까 생각했습니다.

머나먼...이라는 단어가 요즘에는 너무 달라진것 같은 느낌입니다. 마치 타임워프를 하는 느낌이네요. 하여간 웹 기술을 활용한 애플리케이션 개발은 점점 강력해지고 대중성을 기반으로 영역을 확장하고 있습니다.



하지만 아직은 웹 기술만으로 배포하기에는 모바일 브라우저 의존성때문에 몇몇 문제를 가지고 있습니다. 특히 사용자의 다양한 요구를 받아들이기에는 한계가 있다는 것입니다. 그렇다고 네이티브 애플리케이션을 개발하기에는 부담을 가질 수 있으며 다양한 시장을 확보하기 위해 비용의 문제를 가지게 됩니다.

요즘 많이 이야기되고 있는 하이브리드 모델은 이런 면에서 웹과 네이티브 2가지의 장점을 잘 결합한 모델입니다. 하이브리드 애플리케이션을 만드는 것은 웹 콘텐츠와 모바일 디바이스의 기능 사이의 연결고리를 만들어주는 것입니다. 주소록, GPS, 카메라, 기타 필요한 기능과 연결되는 고리를 만들어주는 것이지요.

이 과정에서 오해하고 있는 것중에 하나가 모든 모바일 디바이스가 동일하게 동작한다고 생각하는 겁니다. 하지만 아이폰과 안드로이드가 다르고 동일한 안드로이드 기반이라고 하더라도 장비에 따라 달라지게 됩니다.

그리고 콘텐츠를 만들때 웹의 요소만을 사용할지 아니면 디바이스의 특성에 맞는 기능을 활용할지도 고민해야 합니다.

http://www.ibm.com/developerworks/kr

http://www.ibm.com/developerworks/kr


dw에서 소개하고 있는 '하이브리드 애플리케이션 프로그래밍 모델을 사용하여 WebSphere Commerce용 모바일 애플리케이션 빌드' 라는 긴 제목의 글은 작년에 올라온 글이긴 하지만 하이브리드 애플리케이션을 개발하면서 어떤 고민을 해야 하는지에 대한 질문이 담겨져 있습니다.
특히 기존의 시스템과 통합하고 서버단 프로세스를 고민해야 한다면 좀 더 도움이 될 것입니다.
http://www.ibm.com/developerworks/kr/websphere/library/techarticles/1009_shum/1009_shum.html 


출처 - http://koko8829.tistory.com/1090


===================================================================================


얼마전 페이스북에 모질라 OS에 대한 기사를 올렸다가 (2초 정도 광고 후 기사가 나옵니다;) 모바일앱에 대하여 잠시 이야기가 있었는데, 제가 알고 있는 부분에 대해서 혼동이 왔습니다.
이 글은 개인적으로 간략하게 정리한 내용입니다. 이해는 하고 있으면서도 자주 그 범주와 개념에 대해서 혼동이 오는 경우가 있어서요.
제 기억이 장기간 신선도가 보존되지 않는 관계로 정리를 위해 남기는 글 입니다. 젠.. ㅠ_ㅠ

모바일용 앱은 Native App (네이티브 앱), Hybrid App (하이브리드 앱), Web App (웹 앱) 의 세 가지로 나뉜다. 또는 Mobile Web (모바일 웹)을 웹 앱이라고 말하기도, 또는 그의 반대로 표현하기도 한다고 한다. 하지만 엄밀히 따져보면 웹 앱과 모바일 웹은 웹에 바탕을 두고는 있으나 차이점이 좀 있다.

따라서 개인적인 생각에는 모바일용 앱은 네이티브 앱, 하이브리드 앱, 웹 앱 의 총 세가지, 또는 모바일 웹과 웹 앱으로 세분화 하여 네가지로 로 나누는 것이 맞지 않을까 생각한다.
모바일 웹은 html 마크업 언어를 통해 사이트를 구현하는 것이며, 웹 앱은 html5 (와 jquary 등)를 통해 웹에서 구현되는 게임등의 앱을 구현하는 것이기 때문이다.

 

네이티브 앱

이미지 출처 : 애플코리아

모바일 OS제조사에서 제공하는 개발언어를 이용하여 자신들의 제품에서만 동작되는 앱을 말함.
UI 등 앱제작에 필요한 다양한 요소가 패키지화 되어있고, 편리한 개발툴 제공 및 라이브러리나 함수들이 내장되어있어 개발이 쉽고 유지가 쉽다.
가령 애플의 iOS는 개발언어가 Object-C이며, 개발언어를 완벽히 모르더라도 Xcode라는 개발자툴을 제공함으로서 어느정도의 간단한 앱은 쉽게 개발할 수 있는 환경을 제공한다.

단점으로는 특정 플랫폼에서만 동작하며 앱스토어를 통해 업데이트가 가능하기 때문에 업데이트가 느린 단점이 있다.
또한 안드로이드 같은 경우는 버전 별, 제조사 별 단편화가 심각하기 때문에 (가령 제품마다 다른 해상도) 모든 제품을 지원할 수 없다.

 

모바일 웹

모바일 웹은 모바일에 최적화된 웹사이트라고 보면 된다.
웹사이트 개발방식과 거의 동일하여 별도의 개발방식이 필요하지 않고 인터넷 (또는 온라인 네트워크)에 접속이 가능하다면 어떠한 모바일 플랫폼으로도 접근이 가능하다.
하지만 모바일 플랫폼에서 작동되는 API를 통한 특화된 다양한 기능들의 활용이 불가능 하다. 이를 어느정도 해결하기 위해 Sencha Touch (센차 터치)나 jQuary Mobile (제이쿼리 모바일) 등의 프레임워크를 사용하지만 어느정도 극복 가능한 상황이지만 한계가 있다.

 

웹 앱

대부분 모바일 웹과 웹 앱을 하나로 보지만 개인적으로는 따로 구분할 수도 있다고 본다. 또한 웹 앱은 모바일 웹의 일부로 볼 수 있을 것이다. html5, 다양한 프레임워크, 프러그인 등을 통해 제공할 수 있는 서비스가 있다. 웹메일, 에버노트나 온라인 문서작성 같은 웹서비스, 웹에서 할 수 있는 게임등이 그것이다.

위의 스크린샷은 웹브라우저에서 실행한 게임이다. http://chrome.plantsvszombies.com/에 가면 유명한 아이폰용 게임 중 하나인 Plants VS Zombies라는 게임을 브라우저에서 즐길 수 있다.

구글은 크롬OS와 크롬 브라우저로 Chrome 웹 스토어를 통해 이런한 온라인 서비스인 웹 앱을 제공하고 있으며, 위 게임에서 알 수 있듯이 이것은 앱이 아닌 온라인 서비스의 링크를 제공하는 것과 같다.

 

하이브리드 앱

장단점 모두 네이티브 앱과 모바일 웹 (웹 앱)의 중간적인 앱이며 UI나 내부구조, 하드웨어에서 지원하는 기능을 전용 API로 앱 자체를 구성하고 컨텐츠는 웹으로 구성하여 앱처럼 실행되도록 하는 경우가 많다.

앱스토어를 통해 배포 되어야 하나 컨텐츠 등의 업데이트 등은 재배포가 필요하지 않는 등의 장점도 있지만 아직까지는 단점이 더 많다.
주변의 앱 개발자들의 이야기도 그렇고, 하이브리드 앱에 대해서 회의적이거나 반대적인 입장을 취하는 개발자들도 많은편이며 개발의 용이성이나 운영상의 입장에서 좋은평가를 받지 못하기도 한다.
하이브리드앱의 또다른 관점? 참고.

 

 

아래의 내용은 위 링크의 내용과는 별도로 iOS개발업체 대표님께 받은 메시지를 정리한 내용이다. 명제나 기능에 대한 정리를 한 것이 아니므로 참고용 정도.

네이티브 앱: 개발은 편하지만 각 디바이스 별로 만들어야 하고 특히 안드로이드는 파편화가 심해서 다양하게 지원이 힘듬.

하이브리드 : 기본 UI는 네이티브로 개발하고 수시로 업데이트 되는 컨텐츠만 웹으로.
아이폰과 안드로이드의 기본 UI프레임워크만 쓰고 컨텐츠는 웹과 연동해서 안드로이드의 파편화 문제를 어느정도 해결 가능.

모바일웹 : 한 번만 개발하면 되지만 고해상도로 나오지 않고, 네이티브앱 처럼 토치 인터페이스 효과를 넣을 수 없음.
이러한 대안으로 sencha나 jquary Mobile을 사용. sencha나 jquary로 모바일용 프레임워크 컴퍼넌트와 토치 인터페이스를 흉내 낼 수 있음.
센차 터치나 제이쿼리 모바일로 개발하는걸 하이브리드라고 하기도 한다고 함. 모바일 웹의 한계 때문에 이것으로 개발한다고 함.

센차, 제이쿼리는 모바일 디스플레이, UI에 최적화 된 프레임 워크.
가령 swipe, pinch 등 터치스크린에서 가능한 UI를 구현 가능.

 

센차터치 데모 사이트. http://www.sencha.com/products/touch/demos/
제이쿼리 모바일 사이트.  http://jquerymobile.com/

이 두 프레임워크는 표현 방식도 다르지만 지향하는 바가 다르다고 한다.
센차 터치는 네이티브 앱 처럼 보이는 웹앱을, 제이쿼리 모바일은 기존의 제이쿼리 처럼 모바일용 웹을 지향한다고 함.

웹앱은 크롬OS나 크롬 브라우저의 웹스토어에서 볼 수 있는데, 개인적으로는 웹앱을 선호하지 않는다.

모질라에서 공개하는 모바일 OS도 크롬OS 처럼 웹을 기반으로 동작할 것으로 보이며, 웹 앱과 센차 터치, 제이쿼리 모바일의 역할도 커지지 않을까 생각함.

—————————————————————————–

글을 적다보니 굳이 웹 앱과 모바일 웹을 구별하지 않아도 될 것 같다.
어차피 구성은 html5와 프레임 워크로 동일하게 구성되는 것이므로 어떻게 호칭을 말하더라도 의미만 파악하면 될 것이다.


출처 - http://www.appleblog.co.kr/?p=4015


===================================================================================


필자는 스마트폰 Application 에서, 하이브리드 앱에 대해 상당히 부정적인 사람이다. 그리고 끊임없이 부정적 의견을 표현하고 있다. HTML5 로 인해서 하이브리드앱/웹앱의 비중이 중대해질 것이라고 말하는 사람이 많지만, 개인적으로는 동의하지 않는다.

물론 웹앱에 대한 부분은 고려할 점이 많은데, 이놈의 하이브리드 앱은 정말 일고의 가치도 없다.

여기 또 하나의 예를 보자. 국내에서 출시한 사진 SNS 이다.


(이런거 말해도 별 문제는 없겠지?) 필자는 iPhone 프로그램 개발에 참여했고, 이 글을 쓰는 현재 참여하고 있다.
 버전 1.0 당시 꽤 많은 부분을 WebView 를 통해서 UI를 구현했다. 공지 화면이나 알만한 친구/추천 친구 등등의 화면은 물론, 인기사진 목록도 html 로 구성된 화면이었다. 로그인/회원 가입 화면도 html 로 구현되어 있었다.

앱이 release 되고 나서, 사용자들에 의해 보고되는 각종 문제점들과 버그를 개선하는 작업이 이어지고 있다. (모든 서비스들이 다 그렇듯 말이다) 그런데 주요 문제점들을 보면, 대부분 WebView 를 통한 하이브리드 구현때문에 일어나는 일들이 많았다는 것이다. 심지어, 많은 화면을 WebView 로 하다보니 메모리 소비가 많아져서 일어나는 문제도 있었다. 속도 문제는 말할 것도 없다. 비교적 느리다는 불만들은 모두 하이브리드 UI 화면에서 발생했다.

지금 두 번의 업그레이드가 있었다. 현재 버전은 많은 부분의 하이브리드 화면 구현이 순수한 Native Code 구현으로 바뀌어 있다. 지금은 회원 가입과 로그인, 트위터/페이스북 연동 설정부분도 모두 Native Code 로 바꾸는 작업을 하고 있다.
결국, 서비스 런칭 이후로 계속 작업된 업그레이드 작업의 대부분이 하이브리드 구현을 제거하는 것이었다.

앞으로 스마트폰의 성능이 무지막지하게 좋아지면 상황이 나아질까? 절대로 그렇지 않다. 성능이 좋아지는 만큼 Native Code 를 사용한 UI 의 구현 퀄리티는 높아질테고, 그렇게 높은 품질을 요구하는 사용자의 요구에 만족시키려면 또 하이브리드 구현으로는 부족하게 된다. 결코 따라잡을 수 없는 화살과도 같다.

'그냥 만들기'로 따지면 하이브리드 솔루션으로 많은 일을 할 수 있을 것이다.
다른 서비스들과 속도/성능을 경쟁하려는 경우라면, 하이브리드는 잊어버려라. 결코 당신은 하이브리드 앱으로 경쟁에서 이길 수 없을 것이다.


출처 - http://iphoneos.co.kr/zbxe/news/76041


이런 글을 읽어보았는데요.

 

아직 하이브리드앱 개발은 해본적 없고

네이티브앱만 개발해봤습니다.

 

현재 댓글기능이 들어간 어플을 구상중이고

하이브리드앱쪽으로 개발 방향을 잡고 있었는데

 

위 글을 읽고 나니 뭔가 망설여네요.

 

어플의 콘텐츠를 주 1~2회 정도 업뎃해야 하고

(이건 DB에서 받아오는 텍스트 수준)

댓글 기능을 구현하려고 하는데

 

전 하이브리드앱이 적당하다고 생각했는데

이 시점에는 네이티브앱으로 구현하는게 맞는건가요?

 

또 어플에 댓글기능에 대해서 알아볼려면 구글링밖에 없는지,

혹시 잘 나와있는 서적같은건 없는지 조언을 구합니다.

 

또 하이데X, 헤헤케케웃X 와 같은 어플들은

하이브리드앱인가요 네이티브앱인가요?

 

실제 하이브리드앱이라 불리는 앱 두가지를 찾아서 실행해봤는데

뭔가 버벅이는 느낌이 느껴지긴 하더군요.

 

반면에 m.naver 같은 웹앱은 버벅이는 느낌이 안느껴지고

위에 언급한 유저들이 많이 사용하는 두개의 앱들도 버벅이는 느낌은 들지 않았는데

 

개발을 한다면 일단 관리가 힘들다 하여도

성능적으로 깔끔하게 실행되는 앱쪽으로 개발하고 싶습니다.

 

그렇다면 네이티브 앱으로 개발해야 된다고 생각되기도 하고....

 방향을 잡기가 혼란스럽네요...



출처 - http://www.androidpub.com/2108472












'Android > Common' 카테고리의 다른 글

android - app 버전 관리  (0) 2012.10.07
service - Service API 변경  (0) 2012.09.28
android - SharedPreferences  (0) 2012.09.24
android - 이클립스 환경 설정  (0) 2012.09.21
android - 2012년 구글 I/O rewind  (0) 2012.09.11
Posted by linuxism
,


XML 예약문자

<, >, &는 XML tag 표시와 entity를 표시하는 XML 예약문자로, XML 문서에 그대로 사용할 수 없다.

< (less-than sign)&lt;
> (greater-than sign)&gt;
& (ampersand)&amp;


그리스문자

그리스 문자는 풀어서 사용한다.

αalpha
βbeta
γgamma
δ,Δdelta
εepsilon
ζzeta
ηeta
θtheta
ιiota
κkappa
λlambda
μmicron
νnu
ξxi
οomicron
πpi
ρrho
σ, Σsigma
τtau
υupsilon
φphi
χchi
ψpsi
ω, Ωomega


기호 & 부호

&lt; or =
&gt; or =
±+/-
˚degrees
degrees C
--&gt;
㎍, μGmicrogram
㎕, μLmicroliter
㎛, μMmicrometer
®(R)
(TM)
χ2chi─square


화학기호

화학기호는 윗첨자나 아랫첨자를 지정하지 않고 그대로 입력한다.

K+K+
Cl-Cl-
Mg2+Mg2+
CO2CO2
H2OH2O


수학기호

수학기호는 윗첨자나 아랫첨자를 괄호 "( )" 안에 넣어서 입력한다.

10210(2)
10-210(-2)
height2.239height(2.239)


출처 - http://www.kamje.or.kr/special.html





In SGMLHTML and XML documents, the logical constructs known as character data and attribute values consist of sequences of characters, in which each character can manifest directly (representing itself), or can be represented by a series of characters called a character reference, of which there are two types: a numeric character reference and a character entity reference. This article lists the character entity references that are valid in HTML and XML documents.

Contents

  [hide

[edit]Character reference overview

numeric character reference refers to a character by its Universal Character Set/Unicode code point, and uses the format

&#nnnn;

or

&#xhhhh;

where nnnn is the code point in decimal form, and hhhh is the code point in hexadecimal form. The x must be lowercase in XML documents. The nnnn or hhhh may be any number of digits and may include leading zeros. The hhhh may mix uppercase and lowercase, though uppercase is the usual style.

In contrast, a character entity reference refers to a character by the name of an entity which has the desired character as its replacement text. The entity must either be predefined (built into the markup language) or explicitly declared in a Document Type Definition (DTD). The format is the same as for any entity reference:

&name;

where name is the case-sensitive name of the entity. The semicolon is required.

[edit]Predefined entities in XML

The XML specification does not use the term "character entity" or "character entity reference". The XML specification defines five "predefined entities" representing special characters, and requires that all XML processors honor them. The entities can be explicitly declared in a DTD, as well, but if this is done, the replacement text must be the same as the built-in definitions. XML also allows other named entities of any size to be defined on a per-document basis.

The table below lists the five XML predefined entities. The "Name" column mentions the entity's name. The "Character" column shows the character. To render the character, the format &name; is used; for example, &amp; renders as &. The "Unicode code point" column cites the character via standard UCS/Unicode "U+" notation, which shows the character's code point in hexadecimal. The decimal equivalent of the code point is then shown in parentheses. The "Standard" column indicates the first version of XML that includes the entity. The "Description" column cites the character via its canonical UCS/Unicode name, in English.

NameCharacterUnicode code point (decimal)StandardDescription
quot"U+0022 (34)XML 1.0double quotation mark
amp&U+0026 (38)XML 1.0ampersand
apos'U+0027 (39)XML 1.0apostrophe (= apostrophe-quote)
lt<U+003C (60)XML 1.0less-than sign
gt>U+003E (62)XML 1.0greater-than sign

[edit]Character entity references in HTML

The HTML 4 DTDs define 252 named entities, references to which act as mnemonic aliases for certain Unicode characters. The HTML 4 specification requires the use of the standard DTDs and does not allow users to define additional entities.

In the table below, the "Standard" column indicates the first version of the HTML DTD that defines the character entity reference. HTML 4.01 did not provide any new character references.

NameCharacterUnicode code point (decimal)StandardDTD[a]Old ISO subset[b]Description[c]
quot"U+0022 (34)HTML 2.0HTMLspecialISOnumquotation mark (= APL quote)
amp&U+0026 (38)HTML 2.0HTMLspecialISOnumampersand
apos'U+0027 (39)XHTML 1.0HTMLspecialISOnumapostrophe (= apostrophe-quote); see below
lt<U+003C (60)HTML 2.0HTMLspecialISOnumless-than sign
gt>U+003E (62)HTML 2.0HTMLspecialISOnumgreater-than sign
nbsp U+00A0 (160)HTML 3.2HTMLlat1ISOnumno-break space (= non-breaking space)[d]
iexcl¡U+00A1 (161)HTML 3.2HTMLlat1ISOnuminverted exclamation mark
cent¢U+00A2 (162)HTML 3.2HTMLlat1ISOnumcent sign
pound£U+00A3 (163)HTML 3.2HTMLlat1ISOnumpound sign
curren¤U+00A4 (164)HTML 3.2HTMLlat1ISOnumcurrency sign
yen¥U+00A5 (165)HTML 3.2HTMLlat1ISOnumyen sign (= yuan sign)
brvbar¦U+00A6 (166)HTML 3.2HTMLlat1ISOnumbroken bar (= broken vertical bar)
sect§U+00A7 (167)HTML 3.2HTMLlat1ISOnumsection sign
uml¨U+00A8 (168)HTML 3.2HTMLlat1ISOdiadiaeresis (= spacing diaeresis); see Germanic umlaut
copy©U+00A9 (169)HTML 3.2HTMLlat1ISOnumcopyright symbol
ordfªU+00AA (170)HTML 3.2HTMLlat1ISOnumfeminine ordinal indicator
laquo«U+00AB (171)HTML 3.2HTMLlat1ISOnumleft-pointing double angle quotation mark (= left pointingguillemet)
not¬U+00AC (172)HTML 3.2HTMLlat1ISOnumnot sign
shy U+00AD (173)HTML 3.2HTMLlat1ISOnumsoft hyphen (= discretionary hyphen)
reg®U+00AE (174)HTML 3.2HTMLlat1ISOnumregistered sign ( = registered trademark symbol)
macr¯U+00AF (175)HTML 3.2HTMLlat1ISOdiamacron (= spacing macron = overline = APL overbar)
deg°U+00B0 (176)HTML 3.2HTMLlat1ISOnumdegree symbol
plusmn±U+00B1 (177)HTML 3.2HTMLlat1ISOnumplus-minus sign (= plus-or-minus sign)
sup2²U+00B2 (178)HTML 3.2HTMLlat1ISOnumsuperscript two (= superscript digit two = squared)
sup3³U+00B3 (179)HTML 3.2HTMLlat1ISOnumsuperscript three (= superscript digit three = cubed)
acute´U+00B4 (180)HTML 3.2HTMLlat1ISOdiaacute accent (= spacing acute)
microµU+00B5 (181)HTML 3.2HTMLlat1ISOnummicro sign
paraU+00B6 (182)HTML 3.2HTMLlat1ISOnumpilcrow sign ( = paragraph sign)
middot·U+00B7 (183)HTML 3.2HTMLlat1ISOnummiddle dot (= Georgian comma = Greek middle dot)
cedil¸U+00B8 (184)HTML 3.2HTMLlat1ISOdiacedilla (= spacing cedilla)
sup1¹U+00B9 (185)HTML 3.2HTMLlat1ISOnumsuperscript one (= superscript digit one)
ordmºU+00BA (186)HTML 3.2HTMLlat1ISOnummasculine ordinal indicator
raquo»U+00BB (187)HTML 3.2HTMLlat1ISOnumright-pointing double angle quotation mark (= right pointing guillemet)
frac14¼U+00BC (188)HTML 3.2HTMLlat1ISOnumvulgar fraction one quarter (= fraction one quarter)
frac12½U+00BD (189)HTML 3.2HTMLlat1ISOnumvulgar fraction one half (= fraction one half)
frac34¾U+00BE (190)HTML 3.2HTMLlat1ISOnumvulgar fraction three quarters (= fraction three quarters)
iquest¿U+00BF (191)HTML 3.2HTMLlat1ISOnuminverted question mark (= turned question mark)
AgraveÀU+00C0 (192)HTML 2.0HTMLlat1ISOlat1Latin capital letter A with grave accent (= Latin capital letter A grave)
AacuteÁU+00C1 (193)HTML 2.0HTMLlat1ISOlat1Latin capital letter A with acute accent
AcircÂU+00C2 (194)HTML 2.0HTMLlat1ISOlat1Latin capital letter A with circumflex
AtildeÃU+00C3 (195)HTML 2.0HTMLlat1ISOlat1Latin capital letter A with tilde
AumlÄU+00C4 (196)HTML 2.0HTMLlat1ISOlat1Latin capital letter A with diaeresis
AringÅU+00C5 (197)HTML 2.0HTMLlat1ISOlat1Latin capital letter A with ring above (= Latin capital letter A ring)
AEligÆU+00C6 (198)HTML 2.0HTMLlat1ISOlat1Latin capital letter AE (= Latin capital ligature AE)
CcedilÇU+00C7 (199)HTML 2.0HTMLlat1ISOlat1Latin capital letter C with cedilla
EgraveÈU+00C8 (200)HTML 2.0HTMLlat1ISOlat1Latin capital letter E with grave accent
EacuteÉU+00C9 (201)HTML 2.0HTMLlat1ISOlat1Latin capital letter E with acute accent
EcircÊU+00CA (202)HTML 2.0HTMLlat1ISOlat1Latin capital letter E with circumflex
EumlËU+00CB (203)HTML 2.0HTMLlat1ISOlat1Latin capital letter E with diaeresis
IgraveÌU+00CC (204)HTML 2.0HTMLlat1ISOlat1Latin capital letter I with grave accent
IacuteÍU+00CD (205)HTML 2.0HTMLlat1ISOlat1Latin capital letter I with acute accent
IcircÎU+00CE (206)HTML 2.0HTMLlat1ISOlat1Latin capital letter I with circumflex
IumlÏU+00CF (207)HTML 2.0HTMLlat1ISOlat1Latin capital letter I with diaeresis
ETHÐU+00D0 (208)HTML 2.0HTMLlat1ISOlat1Latin capital letter Eth
NtildeÑU+00D1 (209)HTML 2.0HTMLlat1ISOlat1Latin capital letter N with tilde
OgraveÒU+00D2 (210)HTML 2.0HTMLlat1ISOlat1Latin capital letter O with grave accent
OacuteÓU+00D3 (211)HTML 2.0HTMLlat1ISOlat1Latin capital letter O with acute accent
OcircÔU+00D4 (212)HTML 2.0HTMLlat1ISOlat1Latin capital letter O with circumflex
OtildeÕU+00D5 (213)HTML 2.0HTMLlat1ISOlat1Latin capital letter O with tilde
OumlÖU+00D6 (214)HTML 2.0HTMLlat1ISOlat1Latin capital letter O with diaeresis
times×U+00D7 (215)HTML 3.2HTMLlat1ISOnummultiplication sign
OslashØU+00D8 (216)HTML 2.0HTMLlat1ISOlat1Latin capital letter O with stroke (= Latin capital letter O slash)
UgraveÙU+00D9 (217)HTML 2.0HTMLlat1ISOlat1Latin capital letter U with grave accent
UacuteÚU+00DA (218)HTML 2.0HTMLlat1ISOlat1Latin capital letter U with acute accent
UcircÛU+00DB (219)HTML 2.0HTMLlat1ISOlat1Latin capital letter U with circumflex
UumlÜU+00DC (220)HTML 2.0HTMLlat1ISOlat1Latin capital letter U with diaeresis
YacuteÝU+00DD (221)HTML 2.0HTMLlat1ISOlat1Latin capital letter Y with acute accent
THORNÞU+00DE (222)HTML 2.0HTMLlat1ISOlat1Latin capital letter THORN
szligßU+00DF (223)HTML 2.0HTMLlat1ISOlat1Latin small letter sharp s (= ess-zed); see German Eszett
agraveàU+00E0 (224)HTML 2.0HTMLlat1ISOlat1Latin small letter a with grave accent
aacuteáU+00E1 (225)HTML 2.0HTMLlat1ISOlat1Latin small letter a with acute accent
acircâU+00E2 (226)HTML 2.0HTMLlat1ISOlat1Latin small letter a with circumflex
atildeãU+00E3 (227)HTML 2.0HTMLlat1ISOlat1Latin small letter a with tilde
aumläU+00E4 (228)HTML 2.0HTMLlat1ISOlat1Latin small letter a with diaeresis
aringåU+00E5 (229)HTML 2.0HTMLlat1ISOlat1Latin small letter a with ring above
aeligæU+00E6 (230)HTML 2.0HTMLlat1ISOlat1Latin small letter ae (= Latin small ligature ae)
ccedilçU+00E7 (231)HTML 2.0HTMLlat1ISOlat1Latin small letter c with cedilla
egraveèU+00E8 (232)HTML 2.0HTMLlat1ISOlat1Latin small letter e with grave accent
eacuteéU+00E9 (233)HTML 2.0HTMLlat1ISOlat1Latin small letter e with acute accent
ecircêU+00EA (234)HTML 2.0HTMLlat1ISOlat1Latin small letter e with circumflex
eumlëU+00EB (235)HTML 2.0HTMLlat1ISOlat1Latin small letter e with diaeresis
igraveìU+00EC (236)HTML 2.0HTMLlat1ISOlat1Latin small letter i with grave accent
iacuteíU+00ED (237)HTML 2.0HTMLlat1ISOlat1Latin small letter i with acute accent
icircîU+00EE (238)HTML 2.0HTMLlat1ISOlat1Latin small letter i with circumflex
iumlïU+00EF (239)HTML 2.0HTMLlat1ISOlat1Latin small letter i with diaeresis
ethðU+00F0 (240)HTML 2.0HTMLlat1ISOlat1Latin small letter eth
ntildeñU+00F1 (241)HTML 2.0HTMLlat1ISOlat1Latin small letter n with tilde
ograveòU+00F2 (242)HTML 2.0HTMLlat1ISOlat1Latin small letter o with grave accent
oacuteóU+00F3 (243)HTML 2.0HTMLlat1ISOlat1Latin small letter o with acute accent
ocircôU+00F4 (244)HTML 2.0HTMLlat1ISOlat1Latin small letter o with circumflex
otildeõU+00F5 (245)HTML 2.0HTMLlat1ISOlat1Latin small letter o with tilde
oumlöU+00F6 (246)HTML 2.0HTMLlat1ISOlat1Latin small letter o with diaeresis
divide÷U+00F7 (247)HTML 3.2HTMLlat1ISOnumdivision sign (= obelus)
oslashøU+00F8 (248)HTML 2.0HTMLlat1ISOlat1Latin small letter o with stroke (= Latin small letter o slash)
ugraveùU+00F9 (249)HTML 2.0HTMLlat1ISOlat1Latin small letter u with grave accent
uacuteúU+00FA (250)HTML 2.0HTMLlat1ISOlat1Latin small letter u with acute accent
ucircûU+00FB (251)HTML 2.0HTMLlat1ISOlat1Latin small letter u with circumflex
uumlüU+00FC (252)HTML 2.0HTMLlat1ISOlat1Latin small letter u with diaeresis
yacuteýU+00FD (253)HTML 2.0HTMLlat1ISOlat1Latin small letter y with acute accent
thornþU+00FE (254)HTML 2.0HTMLlat1ISOlat1Latin small letter thorn
yumlÿU+00FF (255)HTML 2.0HTMLlat1ISOlat1Latin small letter y with diaeresis
OEligŒU+0152 (338)HTML 4.0HTMLspecialISOlat2Latin capital ligature oe[e]
oeligœU+0153 (339)HTML 4.0HTMLspecialISOlat2Latin small ligature oe[e]
ScaronŠU+0160 (352)HTML 4.0HTMLspecialISOlat2Latin capital letter s with caron
scaronšU+0161 (353)HTML 4.0HTMLspecialISOlat2Latin small letter s with caron
YumlŸU+0178 (376)HTML 4.0HTMLspecialISOlat2Latin capital letter y with diaeresis
fnofƒU+0192 (402)HTML 4.0HTMLsymbolISOtechLatin small letter f with hook (= function = florin)
circˆU+02C6 (710)HTML 4.0HTMLspecialISOpubmodifier letter circumflex accent
tilde˜U+02DC (732)HTML 4.0HTMLspecialISOdiasmall tilde
AlphaΑU+0391 (913)HTML 4.0HTMLsymbolGreek capital letter Alpha
BetaΒU+0392 (914)HTML 4.0HTMLsymbolGreek capital letter Beta
GammaΓU+0393 (915)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Gamma
DeltaΔU+0394 (916)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Delta
EpsilonΕU+0395 (917)HTML 4.0HTMLsymbolGreek capital letter Epsilon
ZetaΖU+0396 (918)HTML 4.0HTMLsymbolGreek capital letter Zeta
EtaΗU+0397 (919)HTML 4.0HTMLsymbolGreek capital letter Eta
ThetaΘU+0398 (920)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Theta
IotaΙU+0399 (921)HTML 4.0HTMLsymbolGreek capital letter Iota
KappaΚU+039A (922)HTML 4.0HTMLsymbolGreek capital letter Kappa
LambdaΛU+039B (923)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Lambda
MuΜU+039C (924)HTML 4.0HTMLsymbolGreek capital letter Mu
NuΝU+039D (925)HTML 4.0HTMLsymbolGreek capital letter Nu
XiΞU+039E (926)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Xi
OmicronΟU+039F (927)HTML 4.0HTMLsymbolGreek capital letter Omicron
PiΠU+03A0 (928)HTML 4.0HTMLsymbolGreek capital letter Pi
RhoΡU+03A1 (929)HTML 4.0HTMLsymbolGreek capital letter Rho
SigmaΣU+03A3 (931)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Sigma
TauΤU+03A4 (932)HTML 4.0HTMLsymbolGreek capital letter Tau
UpsilonΥU+03A5 (933)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Upsilon
PhiΦU+03A6 (934)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Phi
ChiΧU+03A7 (935)HTML 4.0HTMLsymbolGreek capital letter Chi
PsiΨU+03A8 (936)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Psi
OmegaΩU+03A9 (937)HTML 4.0HTMLsymbolISOgrk3Greek capital letter Omega
alphaαU+03B1 (945)HTML 4.0HTMLsymbolISOgrk3Greek small letter alpha
betaβU+03B2 (946)HTML 4.0HTMLsymbolISOgrk3Greek small letter beta
gammaγU+03B3 (947)HTML 4.0HTMLsymbolISOgrk3Greek small letter gamma
deltaδU+03B4 (948)HTML 4.0HTMLsymbolISOgrk3Greek small letter delta
epsilonεU+03B5 (949)HTML 4.0HTMLsymbolISOgrk3Greek small letter epsilon
zetaζU+03B6 (950)HTML 4.0HTMLsymbolISOgrk3Greek small letter zeta
etaηU+03B7 (951)HTML 4.0HTMLsymbolISOgrk3Greek small letter eta
thetaθU+03B8 (952)HTML 4.0HTMLsymbolISOgrk3Greek small letter theta
iotaιU+03B9 (953)HTML 4.0HTMLsymbolISOgrk3Greek small letter iota
kappaκU+03BA (954)HTML 4.0HTMLsymbolISOgrk3Greek small letter kappa
lambdaλU+03BB (955)HTML 4.0HTMLsymbolISOgrk3Greek small letter lambda
muμU+03BC (956)HTML 4.0HTMLsymbolISOgrk3Greek small letter mu
nuνU+03BD (957)HTML 4.0HTMLsymbolISOgrk3Greek small letter nu
xiξU+03BE (958)HTML 4.0HTMLsymbolISOgrk3Greek small letter xi
omicronοU+03BF (959)HTML 4.0HTMLsymbolNEWGreek small letter omicron
piπU+03C0 (960)HTML 4.0HTMLsymbolISOgrk3Greek small letter pi
rhoρU+03C1 (961)HTML 4.0HTMLsymbolISOgrk3Greek small letter rho
sigmafςU+03C2 (962)HTML 4.0HTMLsymbolISOgrk3Greek small letter final sigma
sigmaσU+03C3 (963)HTML 4.0HTMLsymbolISOgrk3Greek small letter sigma
tauτU+03C4 (964)HTML 4.0HTMLsymbolISOgrk3Greek small letter tau
upsilonυU+03C5 (965)HTML 4.0HTMLsymbolISOgrk3Greek small letter upsilon
phiφU+03C6 (966)HTML 4.0HTMLsymbolISOgrk3Greek small letter phi
chiχU+03C7 (967)HTML 4.0HTMLsymbolISOgrk3Greek small letter chi
psiψU+03C8 (968)HTML 4.0HTMLsymbolISOgrk3Greek small letter psi
omegaωU+03C9 (969)HTML 4.0HTMLsymbolISOgrk3Greek small letter omega
thetasymϑU+03D1 (977)HTML 4.0HTMLsymbolNEWGreek theta symbol
upsihϒU+03D2 (978)HTML 4.0HTMLsymbolNEWGreek Upsilon with hook symbol
pivϖU+03D6 (982)HTML 4.0HTMLsymbolISOgrk3Greek pi symbol
enspU+2002 (8194)HTML 4.0HTMLspecialISOpuben space[d]
emspU+2003 (8195)HTML 4.0HTMLspecialISOpubem space[d]
thinspU+2009 (8201)HTML 4.0HTMLspecialISOpubthin space[d]
zwnj U+200C (8204)HTML 4.0HTMLspecialNEW RFC 2070zero-width non-joiner
zwj U+200D (8205)HTML 4.0HTMLspecialNEW RFC 2070zero-width joiner
lrm U+200E (8206)HTML 4.0HTMLspecialNEW RFC 2070left-to-right mark
rlm U+200F (8207)HTML 4.0HTMLspecialNEW RFC 2070right-to-left mark
ndashU+2013 (8211)HTML 4.0HTMLspecialISOpuben dash
mdashU+2014 (8212)HTML 4.0HTMLspecialISOpubem dash
lsquoU+2018 (8216)HTML 4.0HTMLspecialISOnumleft single quotation mark
rsquoU+2019 (8217)HTML 4.0HTMLspecialISOnumright single quotation mark
sbquoU+201A (8218)HTML 4.0HTMLspecialNEWsingle low-9 quotation mark
ldquoU+201C (8220)HTML 4.0HTMLspecialISOnumleft double quotation mark
rdquoU+201D (8221)HTML 4.0HTMLspecialISOnumright double quotation mark
bdquoU+201E (8222)HTML 4.0HTMLspecialNEWdouble low-9 quotation mark
daggerU+2020 (8224)HTML 4.0HTMLspecialISOpubdagger, obelisk
DaggerU+2021 (8225)HTML 4.0HTMLspecialISOpubdouble dagger, double obelisk
bullU+2022 (8226)HTML 4.0HTMLspecialISOpubbullet (= black small circle)[f]
hellipU+2026 (8230)HTML 4.0HTMLsymbolISOpubhorizontal ellipsis (= three dot leader)
permilU+2030 (8240)HTML 4.0HTMLspecialISOtechper mille sign
primeU+2032 (8242)HTML 4.0HTMLsymbolISOtechprime (= minutes = feet)
PrimeU+2033 (8243)HTML 4.0HTMLsymbolISOtechdouble prime (= seconds = inches)
lsaquoU+2039 (8249)HTML 4.0HTMLspecialISO proposedsingle left-pointing angle quotation mark[g]
rsaquoU+203A (8250)HTML 4.0HTMLspecialISO proposedsingle right-pointing angle quotation mark[g]
olineU+203E (8254)HTML 4.0HTMLsymbolNEWoverline (= spacing overscore)
fraslU+2044 (8260)HTML 4.0HTMLsymbolNEWfraction slash (= solidus)
euroU+20AC (8364)HTML 4.0HTMLspecialNEWeuro sign
imageU+2111 (8465)HTML 4.0HTMLsymbolISOamsoblack-letter capital I (= imaginary part)
weierpU+2118 (8472)HTML 4.0HTMLsymbolISOamsoscript capital P (= power set = Weierstrass p)
realU+211C (8476)HTML 4.0HTMLsymbolISOamsoblack-letter capital R (= real part symbol)
tradeU+2122 (8482)HTML 4.0HTMLsymbolISOnumtrademark symbol
alefsymU+2135 (8501)HTML 4.0HTMLsymbolNEWalef symbol (= first transfinite cardinal)[h]
larrU+2190 (8592)HTML 4.0HTMLsymbolISOnumleftwards arrow
uarrU+2191 (8593)HTML 4.0HTMLsymbolISOnumupwards arrow
rarrU+2192 (8594)HTML 4.0HTMLsymbolISOnumrightwards arrow
darrU+2193 (8595)HTML 4.0HTMLsymbolISOnumdownwards arrow
harrU+2194 (8596)HTML 4.0HTMLsymbolISOamsaleft right arrow
crarrU+21B5 (8629)HTML 4.0HTMLsymbolNEWdownwards arrow with corner leftwards (= carriage return)
lArrU+21D0 (8656)HTML 4.0HTMLsymbolISOtechleftwards double arrow[i]
uArrU+21D1 (8657)HTML 4.0HTMLsymbolISOamsaupwards double arrow
rArrU+21D2 (8658)HTML 4.0HTMLsymbolISOnumrightwards double arrow[j]
dArrU+21D3 (8659)HTML 4.0HTMLsymbolISOamsadownwards double arrow
hArrU+21D4 (8660)HTML 4.0HTMLsymbolISOamsaleft right double arrow
forallU+2200 (8704)HTML 4.0HTMLsymbolISOtechfor all
partU+2202 (8706)HTML 4.0HTMLsymbolISOtechpartial differential
existU+2203 (8707)HTML 4.0HTMLsymbolISOtechthere exists
emptyU+2205 (8709)HTML 4.0HTMLsymbolISOamsoempty set (= null set = diameter)
nablaU+2207 (8711)HTML 4.0HTMLsymbolISOtechnabla (= backward difference)
isinU+2208 (8712)HTML 4.0HTMLsymbolISOtechelement of
notinU+2209 (8713)HTML 4.0HTMLsymbolISOtechnot an element of
niU+220B (8715)HTML 4.0HTMLsymbolISOtechcontains as member
prodU+220F (8719)HTML 4.0HTMLsymbolISOamsbn-ary product (= product sign)[k]
sumU+2211 (8721)HTML 4.0HTMLsymbolISOamsbn-ary summation[l]
minusU+2212 (8722)HTML 4.0HTMLsymbolISOtechminus sign
lowastU+2217 (8727)HTML 4.0HTMLsymbolISOtechasterisk operator
radicU+221A (8730)HTML 4.0HTMLsymbolISOtechsquare root (= radical sign)
propU+221D (8733)HTML 4.0HTMLsymbolISOtechproportional to
infinU+221E (8734)HTML 4.0HTMLsymbolISOtechinfinity
angU+2220 (8736)HTML 4.0HTMLsymbolISOamsoangle
andU+2227 (8743)HTML 4.0HTMLsymbolISOtechlogical and (= wedge)
orU+2228 (8744)HTML 4.0HTMLsymbolISOtechlogical or (= vee)
capU+2229 (8745)HTML 4.0HTMLsymbolISOtechintersection (= cap)
cupU+222A (8746)HTML 4.0HTMLsymbolISOtechunion (= cup)
intU+222B (8747)HTML 4.0HTMLsymbolISOtechintegral
there4U+2234 (8756)HTML 4.0HTMLsymbolISOtechtherefore sign
simU+223C (8764)HTML 4.0HTMLsymbolISOtechtilde operator (= varies with = similar to)[m]
congU+2245 (8773)HTML 4.0HTMLsymbolISOtechcongruent to
asympU+2248 (8776)HTML 4.0HTMLsymbolISOamsralmost equal to (= asymptotic to)
neU+2260 (8800)HTML 4.0HTMLsymbolISOtechnot equal to
equivU+2261 (8801)HTML 4.0HTMLsymbolISOtechidentical to; sometimes used for 'equivalent to'
leU+2264 (8804)HTML 4.0HTMLsymbolISOtechless-than or equal to
geU+2265 (8805)HTML 4.0HTMLsymbolISOtechgreater-than or equal to
subU+2282 (8834)HTML 4.0HTMLsymbolISOtechsubset of
supU+2283 (8835)HTML 4.0HTMLsymbolISOtechsuperset of[n]
nsubU+2284 (8836)HTML 4.0HTMLsymbolISOamsnnot a subset of
subeU+2286 (8838)HTML 4.0HTMLsymbolISOtechsubset of or equal to
supeU+2287 (8839)HTML 4.0HTMLsymbolISOtechsuperset of or equal to
oplusU+2295 (8853)HTML 4.0HTMLsymbolISOamsbcircled plus (= direct sum)
otimesU+2297 (8855)HTML 4.0HTMLsymbolISOamsbcircled times (= vector product)
perpU+22A5 (8869)HTML 4.0HTMLsymbolISOtechup tack (= orthogonal to = perpendicular)[o]
sdotU+22C5 (8901)HTML 4.0HTMLsymbolISOamsbdot operator[p]
lceilU+2308 (8968)HTML 4.0HTMLsymbolISOamscleft ceiling (= APL upstile)
rceilU+2309 (8969)HTML 4.0HTMLsymbolISOamscright ceiling
lfloorU+230A (8970)HTML 4.0HTMLsymbolISOamscleft floor (= APL downstile)
rfloorU+230B (8971)HTML 4.0HTMLsymbolISOamscright floor
langU+2329 (9001)HTML 4.0HTMLsymbolISOtechleft-pointing angle bracket (= bra)[q]
rangU+232A (9002)HTML 4.0HTMLsymbolISOtechright-pointing angle bracket (= ket)[r]
lozU+25CA (9674)HTML 4.0HTMLsymbolISOpublozenge
spadesU+2660 (9824)HTML 4.0HTMLsymbolISOpubblack spade suit[f]
clubsU+2663 (9827)HTML 4.0HTMLsymbolISOpubblack club suit (= shamrock)[f]
heartsU+2665 (9829)HTML 4.0HTMLsymbolISOpubblack heart suit (= valentine)[f]
diamsU+2666 (9830)HTML 4.0HTMLsymbolISOpubblack diamond suit[f]

Notes:

  1. ^ DTD: the full public DTD name (where the character entity name is defined) is actually mapped from one of the following three defined named entities:
    • HTMLlat1 maps to:
    • HTMLsymbol maps to:
    • HTMLspecial maps to:
  2. ^ Old ISO subset: these are old (documented) character subsets used in legacy encodings before the unification within ISO 10646.
  3. ^ Description: the standard ISO 10646 and Unicode character name is displayed first for each character, with non-standard but legacy synonyms shown in italics between parentheses after an equal sign.
  4. a b c d spaces: a blue background has been used to display each space's width.
  5. a b ligature: this is a standard misnomer as this is a separate character in some languages.
  6. a b c d e black: here it seems to mean filled as opposed to hollow.
  7. a b ISO proposed: these characters have been standardized in ISO 10646 after the release of HTML 4.0.
  8. ^ alefsym: 'alef symbol' is NOT the same as U+05D0 'Hebrew letter alef', although the same glyph could be used to depict both characters.
  9. ^ lArr: ISO 10646 does not say that 'leftwards double arrow' is the same as the 'is implied by' arrow but also does not have any other character for that function. So lArr can be used for 'is implied by' as ISOtech suggests.
  10. ^ rArr: ISO 10646 does not say that 'rightwards double arrow' is the 'implies' character but does not have another character with this function so rArr can be used for 'implies' as ISOtech suggests.
  11. ^ prod: 'n-ary product' is NOT the same character as U+03A0 'Greek capital letter Pi' though the same glyph might be used for both.
  12. ^ sum: 'n-ary summation' is NOT the same character as U+03A3 'Greek capital letter Sigma' though the same glyph might be used for both.
  13. ^ sim: 'tilde operator' is NOT the same character as U+007E 'tilde', although the same glyph might be used to represent both.
  14. ^ sup: note that nsup, U+2283 'not a superset of', is not covered by the Symbol font encoding and is not included. Should it be, for symmetry? It is in the ISOamsn subset.
  15. ^ perp: Unicode only defines U+22A5 as the "up tack". The Unicode symbol for "perpendicular" is U+27C2. The two symbols look similar, but are separate in Unicode. However, HTML uses U+22A5 as its "perpendicular" symbol. This is a discrepancy between HTML and Unicode. As well, the U+22A4 character (the "down tack" symbol) rendered in a browser such as Firefox 3.6 can match the font of either "up tack" or "perpendicular", but not both, depending on whether a fixed-width or a proportional font is used. When viewed in Firefox 3.6, the symbols rendered in the order U+22A5, U+22A4, U+27C2 in a proportional font: ⊥ ⊤ ⟂ and a fixed width one: ⊥ ⊤ ⟂, shows that the "down tack" has a similar look to U+22A5 (HTML's "perpendicular") in the first case but matches U+27C2 in the second. This exemplifies the difficulties of the semiotics involved in interpreting glyphssymbols and characters generally.
  16. ^ sdot: 'dot operator' is NOT the same character as U+00B7 'middle dot'.
  17. ^ lang: 'left-pointing angle bracket' is NOT the same character as U+003C 'less than', U+2039 'single left-pointing angle quotation mark', U+2329 'left-pointing angle bracket', U+27E8 'mathematical left angle bracket', or U+3008 'left angle bracket' though the same glyph may be used for all of them.
  18. ^ rang: 'right-pointing angle bracket' is NOT the same character as U+003E 'greater than', U+203A 'single right-pointing angle quotation mark', U+232A 'right-pointing angle bracket', U+27E9 'mathematical right angle bracket', or U+3009 'right angle bracket' though the same glyph may be used for all of them.

[edit]Entities representing special characters in XHTML

The XHTML DTDs explicitly declare 253 entities (including the 5 predefined entities of XML 1.0) whose expansion is a single character, which can therefore be informally referred to as "character entities". These (with the exception of the &apos; entity) have the same names and represent the same characters as the 252 character entities in HTML. Also, by virtue of being XML, XHTML documents may reference the predefined &apos; entity, which is not one of the 252 character entities in HTML. Additional entities of any size may be defined on a per-document basis. However, the usability of entity references in XHTML is affected by how the document is being processed:

  • If the document is read by a conforming HTML processor, then only the 252 HTML character entities can safely be used. The use of &apos; or custom entity references may not be supported and may produce unpredictable results.
  • If the document is read by an XML parser that does not or cannot read external entities, then only the five built-in XML character entities (see above) can safely be used, although other entities may be used if they are declared in the internal DTD subset.
  • If the document is read by an XML parser that does read external entities, then the five built-in XML character entities can safely be used. The other 248 HTML character entities can be used as long as the XHTML DTD is accessible to the parser at the time the document is read. Other entities may also be used if they are declared in the internal DTD subset.

Because of the special &apos; case mentioned above, only &quot;&amp;&lt;, and &gt; will work in all processing situations.

[edit]See also

[edit]References

[edit]External links

출처 - http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references






'Development > XML' 카테고리의 다른 글

XPath  (0) 2013.02.19
XML - XML 스키마(XSD) 및 xsi 접두어 의미  (0) 2012.10.02
xml namespace  (0) 2012.03.24
XML, DTD, XSD, XSL 관계  (0) 2012.02.13
Markup Language  (0) 2012.01.27
Posted by linuxism
,


by kth 기술전략팀 박민우

고가용성을 요구하는 시스템에서 수많은 request를 디스크 I/O 없이 빠르게 처리하기 위해서 in-memory key-value store (또는 in-memory key-value DB)가 각광받고 있습니다. 그 중 가장 널리 쓰이는 memcached 가 Twitter, Facebook, Wikipedia 등의 사이트에서 사용되며 유명해졌고 최근에는 Redis가 더 많은 기능과 다양한 data type 지원 등을 무기로 github, craigslist, blizzard, digg 등의 커다란 레퍼런스를 확보하며 좋은 평가를 받고 있습니다.

Redis 는 vmware 가 지원하고 있는 오픈소스(BSD 라이센스) 프로젝트로서 2009년도에 발표되었습니다. 메모리를 주 저장영역으로 사용하고 디스크는 보조적으로만 지원하며, key-value 형식의 데이터 저장을 지원합니다. 최근 각광받고있는 node.js에서도 사용할 수 있는 등 다양한 언어를 지원하며 ANSI C 로 되어있어 포팅이 용이하기 때문에 언어의 제약은 없다고 할 수 있습니다. 속도는 버전 2.0대로 진입하면서 많은 개선이 되어서 memcached 보다 조금 더 빠르거나 비슷한 정도라고 알려져 있습니다. Memcached 에서 replication 을 지원하기 위해서는 별도의 패치를 해야 하는 반면, Redis는 기본적으로 vertical, horizontal replication 을 지원하여 확장이 용이하다는 장점을 가지고 있습니다.

Redis를 사용하기 위해 기존DB를 Redis로 완전히 갈아 탈 수 있기때문에 특정한 기능을 위해서나 쓰기속도 등을 위해 실제로 많은 사람들이 Redis를 주 DB로 사용하고 있습니다. 하지만 Redis는 기본적으로는 메모리보다 더 많은 data set 을 저장할 수 없기 때문에 커다란 데이타를 저장해야 하는 경우에 적합하지 않습니다. Redis를 보조적으로 사용하면서 속도문제를 개선하고, 예전에는 불가능 했던 새로운 것을 하거나 오래된 문제들을 해결하는 데에 사용할 수 있습니다. Redis를 기존환경에 추가하여 Redis의 장점을 취한 사례를 몇 가지 소개해 드리도록 하겠습니다.

1. 홈페이지에서 최근 글 보여주기

SELECT * FROM foo WHERE … ORDER BY time DESC LIMIT 10
와 같은 쿼리 익숙하지 않나요?

“사용자에의해 추가된 최근 아이템” 등과 같은 최근 item을 보여주어야 하는 일은 웹 어플리케이션에서 매우 자주 발생합니다. 우리가 최근 20개의 댓글을 보여주고 싶은 웹 어플리케이션이 있다고 가정하겠습니다. 근처에는 20개 이상의 글을 보고싶은 사람들을 위한 “모두보기” 링크가 있고, “모두보기” 페이지에는 페이징을 보여주는 부분이 있어서 페이지를 이동하며 전체 댓글을 볼 수 있습니다.

아래와 같은 쿼리로 첫페이지와 “전체보기” 페이지를 만들 수 있습니다.

댓글이 입력될 때마다 id를 Redis list에 추가한다.
LPUSH latest.comments <ID>

Redis가 5000 개의 글만 가지도록 특정길이 이상은 잘라 없앤다.
LTRIM latest.comments 0 5000

글이 필요할 때마다 아래와 같이 가져올 수 있다. (pseudo 코드)

1
2
3
4
5
6
7
FUNCTION get_latest_comments(start,num_items):
id_list   = redis.lrange("latest.comments",start,start+num_items-1)
IF   id_list.length < num_items
id_list = SQL_DB("SELECT ... ORDER BY time LIMIT ...")
END
RETURN   id_list
END

이렇게 Redis를 사용해 최신의 cache 를 유지할 수 있습니다. Start/count 파라메터가 Redis 가 저장하고있는 범위를 벗어날 떄에만 주DB에 직접 접근하기 때문에 메인페이지나 댓글 첫페이지에서는 절대 주DB에 접근할 일이 없습니다.
삭제가 필요할 시에는 LREM 명령으로 코멘트를 쉽게 삭제할 수 있습니다.

2. 최신 item의 랭킹 관리하기 (게임 / 뉴스 등)

  • 현재 게임의 랭킹 순위를 100등까지 보여주기
  • 현재 user 의 순위가 몇 등인지 보여주기
  • 인기뉴스 페이지 관리하기

와 같은 작업을 Redis를 이용하면 매우 쉽게 관리할 수 있습니다.

유저가 점수를 땄을 때에는

ZADD leaderboard <score> <username>
(leaderboard 가 key 입니다)

와 같이 데이터를 쌓은후,

100등까지의 순위를 보여주려면
ZREVRANGE leaderboard 0 99

특정 user 의 순위를 보여주려면
ZRANK leaderboard <username>

과 같이 쉽게 해결할 수 있습니다.

이 방법은 조금 응용하여 인기 뉴스기사를 보여주는데 등에도 응용될 수 있습니다. 최신 뉴스기사 1000개를 리스트에 유지하면서 (LPUSH + LTRIM 사용) 그 결과를 사용하여 ZADD를 하면서 인기뉴스의 목록을 관리하는데 응용할 수 있는 등 응용 방법은 무궁무진 합니다.

3. 기타 기능들

최신기사들만 뉴스 메인페이지에 보여주는 서비스 등을 위해서는 Redis 의 EXPIRE 기능을 사용해서 특정 시간이 지나면 item이 자동으로 지워지도록 할 수도있고 unix timestamp 를 value로 가지는 리스트에서 ZRANGE … WITHSCORES 로 최신글만 유지하고 나머지는 지우도록 할 수도 있습니다.

Redis는 유용한 counter 관련 함수들을 가지고 있습니다. 또한 Redis의 atomic 한(원자성을 보장하는) 카운터 함수들을 사용하여 카운터를 빠르게 관리하고, expire 를 이용하여 특정시간후에는 만료시키는 등의 작업을 할 수 있습니다.

이외에도 Stack 과 Queue 관리, 캐싱이나 자동완성(auto-complete) 기능구현, Pub/Sub 기능, 데이터베이스에 부하가 가기 때문에 하기 힘들었던 다양한 통계나 스팸관리 기능 등을 부하없이 빠르게 구현하는 데에 Redis를 사용하실 수 있습니다. 이외에도 Redis의 응용방법은 무궁무진 하다고 할 수 있습니다. 더 가볍고 빠른 서비스를 구현하는데 Redis의 다양한 기능과 data 형식을 응용해 보시기 바랍니다.

레퍼런스

  1. How to take advantage of Redis just adding it to your stack
    http://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html
  2. Redis 홈페이지
    http://redis.io/
  3. Browser 에서 직접 따라하는 Redis tutorial
    http://try.redis-db.com/
  4. Redis와 memcached 의 속도 벤치마크 (memcached 가 더 빠르다는 벤치마크에 대한 반박글)
    http://antirez.com/post/redis-memcached-benchmark.html
  5. In-memory database 소개
    http://www.mcobject.com/in_memory_database


출처 - http://dev.kthcorp.com/2011/07/28/redis-buildingfast-lightweight-webapp/


'OpenSource > Common' 카테고리의 다른 글

루씬(Lucene) 개요 및 원리  (2) 2012.09.24
MINA 소개  (0) 2012.09.20
FOSS(Free and Open Source Software)  (0) 2012.04.28
부드러운 종신 독재자  (0) 2012.04.08
[현장] “얘기해봐요, 오픈소스란…”  (0) 2012.03.07
Posted by linuxism
,