아이폰의 시스템 경로와 타이타늄 파일시스템 경로

아이폰앱으로 개발을 하든 타이타늄으로 아이폰앱을 만들든 중요한 사실이 하나있다.
바로 아이폰의 각 시스템 폴더들은 각자의 역할들이 있다는 사실이다.
따라서 각 폴더의 역할이 무엇이지 제대로 알고 역할에 맞게 파일을 저장해야한다.
만약 따르지 않은면?? 애플은 여러분의 앱을 결코 용납하지 않을 것(?) 이다!!

일단 아이폰에서 특정 앱의 루트 파일 경로는 다음과 같다.

/Applications/apple_app_id/

아이폰 시뮬레이터는 다음과 같다.

/Users/user_name/Application Support/iPhone Simulator/ios_version/Applications/apple_app_id/

그럼 타이타늄 파일스템의 경로들이 어떤 경로들을 가르키고 있는지 정리해본다. 참고로 위 루트 경로는 중복되므로 생략한다.

  • Titanium.Filesystem.applicationDataDirectory:
    /Documents/ – iTunes와 공유되는 폴더
  • Titanium.Filesystem.applicationDirectory:
    /Applications/ – 애플리케이션 폴더
  • Titanium.Filesystem.applicationCacheDirectory:
    /Library/Caches/ – 설정이나 캐시등을 저장하는 폴더
  • Titanium.Filesystem.applicationSupportDirectory
    /Library/Application Support/ – iCloud 자동 백업, 다른 앱과 연동에 필요한 데이터를 저장하는 폴더
  • Titanium.Filesystem.resourcesDirectory
    /[AppName.app]/ – 타이타늄 앱 리소스 폴더
  • Titanium.Filesystem.tempDirectory
    /tmp/ – 임시파일, 앱이 죽거나 재시작하면 없어진다.

Mac에 기본으로 설치된 아파치를 이용해 가상 호스트 설정 하기

그동안 삽질의 삽질을 거듭한 끝에 가상호스트 설정에 성공했다. 유후~ 😀
일단 기본으로 설치된 아파치를 활용하는 팁은 아래 링크를 참고한다.
맥에 기본으로 설치되어 있는 아파치 활용하기

이제부터 본격 vhost 설정을 시작해보자.
맥에는 기본으로 설정된 사이트 경로가 두개 있다.

먼저 ‘localhost’ 로 설정되어 있는 루트 경로는 아래와 같고,

/Library/WebServer/Documents

‘localhost/~사용자이름’ 으로 설정된 경로는 아래와 같다.

/Users/사용자이름/Sites

그런데, 문제는 저 두 기본 경로말고 내가 원하는 경로에 가상 호스트를 설정하고 싶은 경우다.
가령, 이클립스 작업 경로 전체를 웹서버로 돌리고 싶은경우..
경로는 아래와 같다고 가정해보자.

/Users/사용자이름/Documents/workspace

그래서 가장 쉬운 방법은 아래 가상 호스트 설정 파일을 열어서,

/etc/apache2/extra/httpd-vhosts.conf

다음과 같이 작성하고 서버를 재시작한다.

서로 다른 이름으로 호스트를 설정하고 싶은 경우 설정한다.

NameVirtualHost *:80

기본 아파치 호스트 경로


   DocumentRoot “/Library/WebServer/Documents”
   ServerName localhost

가상 호스트 경로


     DocumentRoot “/Users/사용자이름/Documents/workspace”
     ServerName workspace


Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all

위 설정을 가만히 보면, 2개의 가상호스트를 설정하고 각각 이름은, localhost와 workspace다.
물론 localhost는 /etc/hosts 파일에 기본으로 설정되어 있지만, workspace는 설정되어 있지 않기 때문에 호스트(/etc/hosts)파일을 열어서 “127.0.0.1  workspace”를 추가해준다.

자, 그럼 http://workspace 를 브라우저 주소에 넣고 실행해보자!!
뚜둥~!! 이런 포비든이다.. ㅇㅎㅎ

> Forbidden >

> You don’t have permission to access / on this server. >

아마도 대부분이 여기서 막혔을 것이다. ㅇㅎ

이 문제의 원인은 파일 보안 시스템에 의해 접근이 제한된 것이다.  
따라서 해당 경로의 접근 권한을 풀어줘야한다.
터미널을 열고, 다음과 같이 권한을 수정한다.

/Users/사용자이름$> chmod 755 ./Documents

/Users/사용자이름$> cd Documents

/Users/사용자이름/Documents $> chmod 755 ./workspace

ls -al 을 이용해 설정된 권한을 살펴보자. 아래와 같이 설정이 됐다면,
이제 더이상 포비든이 뜨지 않을것이다!!

drwxr-xr-x+ 18 사용자이름  staff   612  8 18 16:14 Documents
drwxr-xr-x@ 18 사용자이름  staff   612  7 19 16:37 workspace 이상 끝~!!

맥에 기본 설치된 Apache 활용팁

Mac OS X 에는 tiger 버전 부터 기본으로 설치된 Apache2가 있다.
현재 내가 쓰고 있는 Mac 버전은 스노우래퍼드고,  apache2 의 위치는 아래와 같다.

/etc/apache2/


아파치 서버 실행 방법
그리고 맥에 기본 설치된 아파치를 실행하기 위해선 아래와 같이

시스템환경설정 > 공유 > 웹공유 를 체크하면 된다.
사용자 삽입 이미지

가상 호스트 설정

일반적인 가상 호스트 설정하는 방법과 마찬가지로, vhost-httpd.conf 라는 파일을 생성해,
httpd.conf 에서 Include 하는 방법을 알아보자.
먼저 기본으로 설치된 아파치 폴더에서 /etc/apache2/httpd.conf 파일을 열고, 맨아랫줄을 보면, 아래와 같이 주석처리가 되어있는 부분에서 주석(#)을 제거하자.

#Include /private/etc/apache2/other/*.conf

그리고 other 폴더에 가보면, 맥은 참으로 친절하게 이미 vhost-httpd.conf 파일을 만들어놨다것을 알수있다. 이제 vhost-httpd.conf 파일을 열어서, 원하는대로 호스트 설정을 하면 되시겠다!

대충 샘플은 아래와 같으니, 적당히 수정해서 쓰면 끝~!!

<VirtualHost *:80>
    DocumentRoot “/Library/WebServer/Documents/Me2Money”
    ServerName local.me2day.net
    ErrorLog “/private/var/log/apache2/local.me2day.net-error_log”
CustomLog “/private/var/log/apache2/local.me2day.net-access_log” common
<Directory “/”>
Allow from all
Options +Indexes
</Directory>
ProxyRequests Off
<Proxy /*>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /seleniumReport/ http://local.me2day.net:8088/seleniumReport/ retry=1
ProxyPreserveHost Off
</VirtualHost>
이제 테스트를 위한 /etc/hosts 파일을 열어서, 원하는 호스트를 설정을 한다.
#Me2Money
10.0.1.4 local.me2day.net
그리고, 브라우저에서 설정한 호스트(local.me2day.net)로 접속하면, 로컬 아파치로 접속하게 된다!

Apache + PHP 연동

맥에는 역시, php 모듈도 기본 설치 되어 있다. 연동은 너무나 간단하다.
사실상, 이미 연동되어 있다고 생각해보 무방하다.
기본으로 설치된 PHP 연동을 위해서는 httpd.conf 파일을 열면,
아래와 같이 주석으로 처리된, php 모듈만 로드해주면된다.

#LoadModule php5_module        libexec/apache2/libphp5.so

간단히 주석을 제거한후, 아파치를 다시 실행하자.
그리고 간단한 phpinfo(); 파일을 출력해보자.

사용자 삽입 이미지
올레~~ 성공~!!
차암~ 쉽죠~!!

아이폰 연락처 동기화 (맥을 쓸경우)

며칠전에 아이폰을 지르고, 뒷수습을 하고 있는 중이다.

가장 문제가 되는게 기존 핸드폰에 저장된 연락처를 옮기는 일인데..
아~ 이게 진짜 어뜩케 해야할까? 고민이 한두가지가 아니었다.
검색해보면, 아웃룩이나 구글등을 이용해서 연락처를 싱크하는 방법이 나와있긴한데..
조금 귀찮아서 고민을 좀 하고 있던 차에..
더 좋은 방법을 찾았다.
단, 지금부터 하는 얘기는 맥유저에만 해당한다. (ㅋㅋㅋ 역시 맥~~)
일단 기존 핸드폰을 가지고 있던 사람들은 기존 핸드폰 홈피가서
핸폰에 있는 정보를 PC로 옮겨주는 데이터 싱크 프로그램등을 다운로드 받아야한다.
난 CYON 핸드폰을 썼기 때문에 CYON 홈페이지가서..
데이터 싱크2 거시기 라는 프로그램을 받았다.
그리고, 간단히 내 주소록을 PC로 내보내기 하면 된다.
내보내기 할때는 csv 파일 형태로 내보내자!!
그리고, 맥에서 “주소록”을 열어서 내보낸 csv파일을 읽어들이자!!
그리고, 이제 아이폰을 연결하고 주소록을 싱크하면 끝~!!
아주 간단하다..ㅋㅋㅋ
글로 이해하려나?.. ㅋㅋ
여튼 이렇게 하면 매우 간단함.

맥용 Vmware Fusion에서 윈도우 Print Screen 키맵핑 방법

국내 맥 유저중에 많은 수가 맥OS와 함께 Windows OS를 겸 해서 쓰고 있다.  

내가볼때, 거의 90% 이상이라 생각된다. 이미 내 주변의 맥 유저중..
윈도우를 어떠한 형태로든 맥북에 깔아서 쓰고 있는 사람들이 100%다..
각설하고..
맥북에서 윈도우을 사용할때, 가장 불편한 것중 하나가 아마 키맵핑일것이다.
그중에서도 제일 먼저 골치를 썪히는게 한영키 맵핑~!!

ㅇㅎㅎ 나도 저 한영키 맵핑때문에 상당히 고생했다..
이제까지 내가 해본 한영키 맵핑의 최종 결정판은 
바로 Sharpkeys 라는 키맵핑 프로그램을 이용하는 거다. 
위 링크에서 다운로드 받아 실행후, 아래와 같이 키 맵핑을 하면, 한영키는 간단히 해결된다.
사용자 삽입 이미지
위와 같이 설정하면, 왼쪽 사과키는 윈도우키를 오른쪽 사과키는 한영키와 맵핑이 된다.
먼가 키맵핑이 이상하긴 한데.. 어쨋꺼나 저쨋꺼나.. 해보면 안다..
아마 한영키 까지는 대부분이 맵핑해서 잘 쓰고 있으리라 생각된다.
앞서 이미 밝혀두었지만, 난 맥용 Vmware Fusion 을 기준으로 얘기하는거다..
괜히 머 부트캠에서 안되느니 페러럴에서 안되는지 투정부리지말고.. 알아서 해결하시라..
자 그럼 프린트 스크린키를 맵핑해보자!!
아마 그럭저럭 한영키를 맵핑했던 사람들도, 프린트 스크린이 도대체 어딧는거야? 이러면서 좌절을 경험하신분이 분명 있으리라 생각된다.. 나도 한때 좌절했으니까….
그런데 바로 20분전에 누가 물어봐서 고민을 10분 해보고 해결했다.
(왜 그땐 찾아볼 생각 안하고 좌절부터 했는지…ㅇㅎㅎ)
맵핑방법은 여러가지가 있는데.. 
그중하나가.. 앞서 언급한 SharpKeys를 이용하는 방법이다.
샵키스를 이용할때, 불편한건 맥용 단축키가 우선순위가 높으므로, 윈도우에서 쓰려면..
맥용 단축키를 해제하거나 머 이런저런 설정으로 바꿔야 한다는거다..
그래서 난 다른 방법을 찾아보기로 했다..
이런 이건 모냐?.. 너무 쉽게 찾았다.
이미 Vmware Fusion에서 제공해 주고 있지 않은가? -_-
브이엠웨어 퓨전의 설정창을 열어보자.. 맥에서 설정창은 모두 사과키+콤마 를 누르면 된다.
그럼 아래와 같은 설정화면을 찾아볼수 있을꺼다.. 감이 오는가??
사용자 삽입 이미지
추가 설정은 당연히 위에서 + 키를 눌러 설정하면되고…
난 Print Scrn 키를 시프트+컨트롤+P 로 맵핑해놨다..
설명은 이걸로 끝!~
내가 밥상은 차려놨으니.. 밥은 알아서 떠먹길~!!