반응형

안녕하세요. 웹표준화팀 박상혁입니다.

2009년 어느날
"우리도 모바일에 최적화된 모바일 전용 웹 서비스를 제공 하기로 했습니다~!!" 라는 결정이 내려졌다면... 우리 UI개발자들은 어떤 것부터 해야할까요?
서적이나 가이드문서를 옆에두고 참고하면서 진행하려고 하는데 관련 자료를 찾기가 힘들고 책은 더더욱 힘듭니다.
이런 상황에서 가장 먼저 쉽게 할 수 있는 것은 아마도 이미 모바일 서비스 제공중인 곳의 마크업을 살펴보고 코드를 응용해서 작업 하는 방법일 겁니다.
하지만 얼마전 구입한 최신 핸드폰으로 http://pda.naver.com에 접속했으나 모바일 웹 브라우저는 소스보기를 지원하지 않고 PC에서 접속하니 모바일 사이트는 접근 할 수 없습니다.

위와 같은 상황에서 PC 웹 브라우저로 모바일 사이트를 볼 수 있는 방법을 소개하려고 합니다. 물론 소스보기도 가능하구요.

일반적으로 브라우저는 User Agent 혹은 사용자 정보라고 불리우는 브라우저 고유의 정보를 가지고 있습니다. 이것은 사용자가 브라우저에 주소를 입력해 접속 요청을 하면 현재 사용자의 브라우저종류, 버전, OS 등을 서버에 알려주는 역할을 합니다.
이러한 정보를 이용해 특정 브라우저 사용자가 해당 웹사이트 접근을 할 수 없게 하거나 혹은 해당되는 사용자만 사용할 수 있도록 해 놓은 경우가 있습니다. (물론 특정 URL로 PC에서도 별도 설정 변경 없이 확인 가능한 서비스도 있습니다.)
모 바일 웹 브라우저도 PC 웹 브라우저와 마찬가지로 User Agent를 웹 서버에 전송합니다. 이것을 이용하여 사용자가 특정 서비스에 접속했을때 User Agent를 확인 해 PC,Mobile 에 최적화된 각각의 서비스로 연결시킵니다.

실제로 전송되는 User Agent 를 테스트 해본 결과 PHP의 $_SERVER['HTTP_USER_AGENT'] 로 아래와 같은 User Agent Strings 을 확인 할 수 있었습니다.

LG 아르고폰(LG텔레콤) - Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; 800*600;POLARIS 6.0;em1.0;lgtelecom;EB10-200090218-707682823;LG-LH2300;0);
iPod Touch - Mozilla/5.0 (iPod; U; CPU like Mac OS X; ko-kr) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3
옴니아 Opera Mobile - SAMSUNG-SCH-M490/(null)HK4 (compatible; MSIE 6.0; Windows CE; PPC) Opera 9.5
옴니아 IE Mobile - SAMSUNG-SCH-M490/(null)HK4 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)

Firefox (add-on)

위의 정보를 가지고 아래와 같이 설정하시면 확인 하실 수 있습니다.

  • User Agent Switcher - Firefox의 User Agent를 모바일 단말의 User Agent 로 설정하면 모바일 단말의 브라우저로 정보를 요청했을때와 같은 응답을 받을 수 있습니다.

    1. 설치 후 도구 > User Agent Switcher > options > options 선택
    2. 왼쪽의 User Agents > Add 클릭 > 단말기의 User Agent 입력(ex. iPod Touch)

      User Agent 입력화면
    3. 추가된 단말기 User Agent 선택

      User Agent 선택화면
    4. 모바일 웹 서비스 접속

      모바일 웹 서비스 접속화면
  • 비슷한 기능의 Firefox Add on 으로는 Modify Header 등이 있습니다.
  • XHTML Mobile Profile - Firefox 가 본래 지원하지 않는 application/vnd.wap.xhtml+xml mime-type을 지원합니다. 모바일 웹 스펙인 XHTML Mobile Profile을 위한 MIME-TYPE인 application/vnd.wap.xhtml+xml의 설정되어 있을 경우 이를 표시 해주는 Add on 입니다. 설치 후 별도 설정은 필요 없습니다.
  • wmlbrowser - Firefox 에서 WML page 를 보여주는 부가기능입니다. 설치 후 별도 설정은 필요 없습니다.

Safari

Safari 브라우저의 경우 브라우저에 해당 기능을 기본으로 제공하고 있습니다. DevelopMode 를 활성화 시켜 User Agent 를 iPhone 이나 iPod Touch 로 변경해서 동일한 결과를 얻을 수 있습니다. 설정 방법은 아래와 같습니다.

  1. 편집 > 기본설정 > 고급 > 개발자용 모드 보기에 체크
    Safari 설정화면

  2. 개발자용 메뉴 > 사용자 에이전트 > iPhone
    Safari 설정화면

iPhoney (Mac OS용) - iPhone을 기본화면으로 하고 있으며 iPhone 화면 크기에 맞게 작업물을 확인 할 수 있습니다. TestiPhone 이나 iPhone Tester 과 비슷하며 추가적으로 확대기능, 그리고 User Agents 를 변경 할 수 있습니다.

Internet Explorer

Internet Explorer 브라우저는 시스템 레지스트리값을 변경하여 확인 할 수 있습니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent] 의 데이터값을 위의 모바일 단말의 브라우저 User Agent 로 설정

하지만 매번 설정 변경과 원상복구를 해야하는 불편함과 레지스트리값 변경으로 인한 시스템 오류가 있을 수 있으니 권장하지 않습니다.

테스트 가능한 모바일 서비스

아래 서비스는 User Agent String을 체크해 PC와 Mobile 사이트로 각각 이동시켜 줍니다.

아래 서비스는 User Agent String을 체크해 Mobile 단말일때만 서비스 접근을 허용한 서비스 입니다. (주로 PDA용 사이트)

아래 서비스는 User Agent String 값과 관계없이 확인 가능한 모바일 서비스입니다. 주소에서도 알 수 있듯이 특정 브라우저에 최적화된 서비스가 대부분입니다.

마치며

위와 같이 Firefox add-on 및 Safari,IE 설정 변경으로 모바일 관련 서비스를 간단히 둘러보고 소스보기,응용 작업을 할 수 있습니다. (서버 설정에 따라 다른 사용자 정보를 가지고 접근을 제한할 때는 접근하지 못하는 경우도 있습니다. )
하지만 실제 마크업 작업 후 디버깅 시에는 브라우저 뿐만 아니라 다양한 단말의 화면크기에 따라 테스트를 해야 하므로 테스트 기기로 디버깅 하는 것이 정확합니다.

참고자료
  1. http://paininthetech.com/2007/10/03/fake-iPhone-user-agent/

 

반응형
반응형
1. 사이즈설정
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi" />
 
모바일 브라우저에 맞게 사이즈가 정해지도록 하는 소스.
densitydpi가 medium-dpi이면 아이폰이나 갤럭시나 같은 사이즈로 보이는 걸 보니다른 스마트폰에서도 동일하게 보일 것 같다.
high-dpi로 하면 갤럭시는 가로가 480사이즈로 보인다.


2. 주소줄 설정
<script type="text/javascript">
window.addEventListener('load', function() {
setTimeout(scrollTo, 0, 0, 1);
}, false);
</script>
 
주소줄이 없어지게 하는 소스라고 한다.


3. 모바일 홈페이지로 이동하기
모바일 홈페이지용 주소가 따로 없을 때,
일반 홈페이지와 같은 주소로 접속하면 자동으로 모바일용 페이지로 이동시켜주는 소스
접속환경을 체크해서 이동시키는 소스라 이 소스에 없는 모바일기종은 그냥 일반 페이지가 나올 듯...

3-1. PHP용
<?
$arr_browser = array ("iPhone","iPod","IEMobile","Mobile","lgtelecom","PPC");
for($indexi = 0 ; $indexi < count($arr_browser) ; $indexi++) {
if(strpos($_SERVER['HTTP_USER_AGENT'],$arr_browser[$indexi]) == true){
header("Location: 이동할 경로");
exit;
}
}
?>

3-2.ASP용
<%
mobrwz = "iPhone|iPod|IEMobile|Mobile|lgtelecom|PPC"
spmobrwz = split(mobrwz,"|")
agent = Request.ServerVariables("HTTP_USER_AGENT")
For i = 0 To UBound(spmobrwz)
If InStr(agent,spmobrwz(i)) > 0 Then
Response.Redirect("이동할 경로")
Exit For
End If
Next
%>

3-3. 자바스크립트
<script type="text/javascript">
var ua = window.navigator.userAgent.toLowerCase();
if(/iphone/.test(ua) || /android/.test(ua) || /opera/.test(ua) || /bada/.test(ua)) {
document.location.replace('이동할 경로');
}
</script>

반응형
반응형

기본적 검색의 섬세함 


어 떤 검색엔진이나 섬세한 검색을 지원한다. 다만 우리가 관심이 없거나 귀찮기 때문이다. 검색엔진에 따라서 방법이나 문법은 다르기 때문에 자신이 자주 사용하는 검색엔진에 따라서 찾아보고 여기에서는 구글의 검색에서 좀 더 섬세하게 검색할 수 있는 방법을 소개한다. 


구글 검색은 특별히 키워드만 잘 선택하면 자신이 찾고 싶은 정보들을 잘 보여주는 편이다. 다음의 내용을 알아두면 좀 더 섬세한 검색에 도움이 될 것이다.

참고: Operators and more search help by Google


image all the people → "imagine all the people"

jaguar speed →   jaguar speed -car  : 검색어 제외 

~food facts : 정확한 표현이 생각나지 않을 때 nutrition facts 등과 같은 유사한 내용을 검색에 포함 

Olympics site:nytimes.com  : 해당 사이트 내에서만 검색할 때 site: 

Olympics site:.gov : .gov 도메인을 가지는 사이트 내에서 검색할 때 

"a * saved is a * earned" : 전역 검색 (wildcard) 라고 불리우는 중간 키워드가 생각나지 않을 때, a saved is a earned 와 같이 생각나는 키워드만 입력해도 찾을 수 있지만 wildcard 를 사용하면 문장 구조에 맞는 검색을 찾아준다. 

olympics location 2014 OR 2018 : OR 검색을 한다. 

camera $50..$100 : from .. to 사이의 해당하는 모든 영역을 검색한다. 

"les miserables" filetype:pdf : 파일형식이 pdf 인 것을 찾는다. 


직 관적으로 알기 쉽기 때문에 검색 창에서 바로 문법을 이용해서 입력하면 좀 더 섬세한 검색이 가능하다. 특히 " " 으로 묶어주거나 제외 (- ) 검색어 그리고 site: 와 filetype: 은 아주 유용하기 때문에 해당 검색어는 습관적으로 익혀두고 있으면 좋을 것이다. 해당 문법은 구글 일반 검색 뿐만 아니라 다른 검색 형태의 검색엔진에서도 비슷하게 적용된다. 보다 섬세한 검색을 원한다면 

http://www.google.com/advanced_search  에서 검색하거나 생각나는 키워드를 검색한 다음 이후 검색 결과 위에 나와 있는 검색 옵션을 바꾸는 항목으로 좀더 검색 결과를 좁혀갈 수 있다. 


논 문 검색에 사용되는 구글 학술검색 (google scholar) 의 경우에도 일반적 검색 문법을 지원하지만 특정 저널 등을 정해주고 싶을 때는 검색창에 있는 ▼ 마크를 눌러 검색을 좀더 정확하게 할 수 있다. 일반적 검색 문법은 검색엔진 뿐만 아니라 쥐메일, 구글 드라이브와 같이 구글이 제공하는 웹 서비스 안에서도 동일하게 사용할 수 있다. 특히 쥐메일에서 특정인에게서 받은 메일이나 특정 내용이 포함된 메일에 라벨을 자동으로 붙일 수 있도록 필터를 만들때도 동일하게 사용될 수 있다. (참고: 쥐메일 검색에서 OR 와 함께 | 기호를 통해서도 포현할 수 있다.) 


구글 학술검색 (Google Scholar) 의 세부 검색 화면


주기적으로 검색하는 수고도 하기 싫다... 


자 신이 찾고자 하는 검색 내용이 주기적으로 입력해줘야 하는 번거로움이 있을 수 있다. 예를 들어 자신이 연구하거나 관심있어 하는 영역에서 어떤 내용들의 글이 올라오나, 어떤 정보가 새롭게 변경되었는지 생각날때마다 검색을 할 수 있지만 그러한 불편도 해결해줄 수 있는 서비스가 있다. 구글 알림(google alerts)이 바로 그런 서비스이다. 앞서 설명한 섬세한 검색을 소개한 이유는 일반적인 키워드 검색에서 발생할 수 있는 원하지 않는 정보들을 걸러내고 자신에게 필요한 정보를 가려내기 위한 방법이고 그렇게 가다듬어진 키워드와 문법을 매번 생각날때마다 주기적으로 검색할 필요없이 해당 키워드로 검색된 내용이 있으면 메일로 알려주는 서비스이다. 



자 신이 원하는 키워드, 검색 영역, 빈도, 검색 결과, 메일 수신인 등을 넣고 입력하면 설정에 따랏 자신에게 맞는 메일로 보내준다. 특별히 자신이 검색을 주기적으로 하지 않아도 관심 분야나 확인해야 하는 내용들을 받을 수 있다. 예를 들어 자신의 연구분야에 대한 주기적인 내용도 받아볼 수 있고 검색엔진에서 나타나는 자신의 개인정보 등 노출되지 않았으면 하는 내용, 자신의 블로그 글 내용을 복사하거나 무단으로 복사하는 내용 등을 검색하는데도 응용할 수 있을 것이다. 


자연스럽게 검색하자... 


검 색은 키워드를 기반으로 해서 검색을 하지만 자신의 문제를 해결하기 위한 동사를 적절하게 넣는 것이 좋다. 예를 들어 자신이 찾고 싶어하는 내용이 windows 7 에서 control panel 을 비활성화하는 방법을 찾고 싶을 때 명사에 해당하는 


windows 7 control panel  만 입력하게 되면 해당 키워드가 들어간 관련 없는 내용들도 포함되게 된다.


이때 좀 더 정확한 검색을 위해 묶음 표시를 먼저 사용하면... 


"windows 7" "control panel" 으로 검색할 수 있다. 그러나 해당 검색으로는 무엇을 하고 싶다는 내용을 표시하지 않기 때문에 비활성화하고 싶다는 disable 을 넣어서 검색한다. 


disable "windows 7" "control panel" 으로 범위를 좁혀 나갈 수 있다. 그런데 여기에서 자연어에 가까운 검색으로 변경해보자. 


disable "control panel" "windows 7" 으로 동사에 해당하는 목적어를 바로 뒤에 두는 것이 검색에 있어서도 더 현명한 판단이다. 왜냐하면 자신이 찾고자 하는 정보를 담고 있는 페이지도 자연어를 사용해서 정보를 포함하기 때문이다. 그 이외에 레지스트리를 건드리지 않는 것을 원한다면 -registry 해서 키워드를 넣을 수 있지만 이또한 -"edit registry" 와 같이 자신이 원하지 않는 동사, 목적어를 명시해서 제외시키는 방법도 더 좋을 것이다. 


결 국 검색어도 자연스럽게 대화하듯이 검색을 하게 되면 검색을 좀더 섬세하게 할 수 있다는 것이다. 그외 검색기간을 통해서 오래된 정보를 제외해야 하는 경우도 생각하고 파일 형식이나 다양한 검색 문법을 통해서 자신이 원하는 정보를 줄여 나가는 것도 가능할 것이다.

반응형
반응형


아이폰으로 블로그 관리도 할수 있네요

iPhone 에서 작성된 글입니다.
반응형
반응형