Ubuntu 위에서 톰캣을 이용해서 웹 애플리케이션을 돌리고 있는데, 이놈의 시간대가 바뀌질 않는다.

"리눅스 시간 설정"을 키워드로 해서 검색한 글들을 참고해서 시스템의 타임존 설정 및 시간 동기화를 해보고,

톰캣에 JAVA_OPTS를 추가해서 톰캣의 타임 존을 설정해보기도 했으나 효과가 없다.

(startup.sh에 JAVA_OPT 변수를 추가한 것은 적용이 전혀 되지 않는 듯 하다. 아마 잘못해서 그런 거겠지만..쉘에서 date 명령어를 실행하면 원하는 대로 한국 시간대에 맞춰 KST로 표현이 되지만, 서버에서 출력하는 타임존은 계속 UTC다.


여러 방법을 시도하던 중에 dpkg-reconfigure tzdata 명령어를 이용해서 아시아/서울로 지정하니, 웹 서버에서 출력하는 시간대가 KST가 되었다.  (이 전에 /usr/share/zoneinfo에 있던 Asia/Seoul 타임존을 /etc/localtime에 링크 했었으나 원하는 대로 동작하지 않았다.)


dpkg-reconfigure tzdata 를 이용해서 서버의 로컬 시간대 설정


date 명령어에서 사용하는 timezone 정보와 자바(혹은 톰캣)에서 사용하는 timezone의 참조 하는 설정 값이 서로 다른가 보다. 이래서 모르면 몸이 고생한다. 얼마나 헤매었는지 모르겠네.


자바(혹은 톰캣)에서 사용하는 타임존의 설정은 /etc/localtime을 참조한다.

$ more /etc/localtime

타임존을 서울로 수정한 후 위 명령을 수행하면 KST-9를 확인할 수 있다.


현재는 해외에서 접속할 일이 없는지라 서버의 시간대를 한국표준시로 설정했지만 나중에 국제화나 지역화를 고려한다면 시간대에 대해 정확하게 이해하고서 사용해야겠다.


References...

리눅스 시간 설정(ikinox님) - http://ikinox.tistory.com/70

http://hacksforge.com/How-to-change-time-zone-in-Ubuntu-Linux.html

http://www.christopherirish.com/2012/03/21/how-to-set-the-timezone-on-ubuntu-server/

https://mail-archives.apache.org/mod_mbox/tomcat-users/200501.mbox/%3C45b72a5705012008352dcc3a39@mail.gmail.com%3E


  Moneycomb 서비스를 개발하면서 메인 도메인인 nabakcompany.com에 서브 도메인으로 moneycomb.nabakcompany.com을 추가하고, 같은 메인 도메인과 같은 웹 서버에서 리스닝 포트 번호만 달리해서 서비스를 하려고 했는데, DNS에 대한 이해가 부족한 탓인지 그게 안된다는 걸 이제야 알았다. 그러니까 포트 번호를 숨길 수는 없다.


  톰캣 문서와 검색을 통해서 서버 아이피가 동일하고, 서브 도메인이 다른 경우에는 웹 서버에서 가상 호스트를 추가하여, 각각의 서브 도메인에 대해 각각의 웹 애플리케이션을 제공할 수 있다는 것을 알게 되었다.


  현재 서버는 Apache 웹 서버 없이 Apache Tomcat 7로만 구동되고 있다.


| server.xml 파일에 호스트 추가

  $CATALINA_HOME 에 위치한 conf 폴더 내에 서버 설정을 위한 server.xml 파일이 있다. 호스트를 추가하기 위해서는  server.xml 파일을 아래와 같이 수정한다.


  Engine 엘리먼트 내에 Host 엘리먼트를 추가한다.

  톰캣을 설치한 후 설정을 수정하지 않았다면 파일의 끝부분에 localhost Host가 있다. 서브 도메인을 위한 호스트는 그 아래에 추가한다.


  Host의 속성으로 name에 DNS 호스팅 서비스(혹은 네임 서버)에서 추가한 서브 도메인을 입력하고, appBase는 웹 애플리케이션이 위치할 디렉토리를 지정한다. 상대경로로 입력할 경우 $CATALINA_HOME 아래가 기준이 된다.

다른 속성에 대한 설명은 아파치 톰캣7 문서를 참고.



| 디렉터리 및 ROOT.xml 파일 추가

  톰캣 5 이하에서는 server.xml 내에 Host 엘리먼트를 추가하면서 그 안에 Context 엘리먼트를 함께 추가해서 호스트 컨텍스트 정보를 포함시켰는데, 톰캣 6이상 부터는 따로 분리할 것을 권고한다.(라는 것을 다른 블로그에서 보았다..)[각주:1]

  $CATALINA_HOME/conf/Catalina 에 서브 도메인 이름과 같은 디렉터리를 만든다.

server.xml에서 설정한 서브 도메인이 sub.domain.com 이므로 디렉터리 이름도 sub.domain.com 이다.

/var/lib/tomcat7/conf/Catalina$ mkdir sub.domain.com 

(위의 /var/lib/tomcat7은 톰캣이 설치된 경로, 일반적으로는 /usr/local/apache-tomcat-7.x.x)

  그리고 만든 디렉터리 안에 ROOT.xml 파일을 생성하고 아래와 같이 입력한다.

docBase 속성은 컨텍스트의 루트로 사용될 애플리케이션이 위치한 경로이고,

privileged 속성은 값이 true일 때. 매니저 서블릿 같은 컨테이너 서블릿을 사용할 수 있도록 허용한다. (Set to true to allow this context to use container servlets, like the manager servlet. - 라고 되어있는데 무슨 의미인지 정확하게는 모르겠다..)



| 웹 애플리케이션 배치

  docBase에 설정한 경로에 웹 애플리케이션을 배치하면 webapps에 있는 것 맨치롬 서브 도메인으로 접속할 수 있다.


| 문제

  Host 엘리먼트의 appBase와 Context의 docBase의 정확한 기능이나..  unpackWARs 속성 값을 true로 했을 때 어디에 위치한 war 파일의 압축이 풀리는 건지 모르겠다.

appBase나 docBase에 넣어봤지만 어디에서도 압축이 풀리지 않아서 그냥 tar 명령어로 풀어서 배치했다. -_- (왜 있는데 쓰질 못하니!)

  매번 파일럿 프로젝트만 개발하고 운영 단계까지 넘어가지 않다보니, 그냥 '돌아만'가는 서버 구축을 하다가, '제대로 돌아' 가는 서버를 구축하려니 공부해야할 것들이 점점 더 쌓이는 것 같다. 웹 서버 로드밸런싱이나, DB 서버 확장 등 어디서부터 시작해야할 지 막막하다.


잘못된 내용이나, 빠진, 부족한 내용에 대한 태클은 환영입니다. :)


References


  1. http://www.sjune.net/archives/807 [본문으로]

Eclipse 기반의 ADT를 사용하고 있는데, 아래와 같이 오타를 냈다.


android:id="@+iv/ivAdPic"


+id로 해야하는 것을 오타로 +iv로 한 탓.

이렇게 된 걸 모르고 당최 R.id.ivAdpic이 잡히지 않아서 찾다보니 이유가 저 오타였다.


헌데 안드로이드에서 xml을 파싱하여 R 파일을 생성할 때 오타난 부분은 문법이 +로만 시작하는 문자열이면 되는지

R파일을 보니 iv 정적 클래스가 추가되어있다. xml에서 컴파일 오류를 알려줬다면 금방 알 수 있었을 테지만, 생각지 못한 부분이라 시간을 좀 잡아 먹은 듯


Moneycomb 앱의 SDK 개발 중에 Rest API 콜 하는 부붘의 코드를 정리하면서

리플렉션, 어노테이션, 다이내믹 프록시를 절용했더니

코드의 양은 획기적으로 줄어들었고

실행 속도는 폭발적으로 증가했다.


메서드를 백만번 호출 했을 때 속도 차이가

26초 vs 0.1초 정도 차이가 난다

이를 해결하기 위해서 리플렉션 부분을 캐싱했더니

속도는 26초에서 1초로 줄었으나 메모리가 문제 ㅡㅡ

'머리가 뛰다' 카테고리의 다른 글

오늘의 WPF, Kinect 관련 이슈  (0) 2013.11.24
책갈피 대신 책갈피 줄  (0) 2013.03.06
Behavior-Driven-Development BDD?  (0) 2013.02.22
Redmine 설치기  (0) 2013.02.16
Phonegap create 오류  (0) 2012.11.25

국제화Internationalization, i18n

여러 국가에서 사용할 수 있도록 설계하는 것

지역화Localization, l10n

사용 국가별 환경에 대해 지원하는 것

다국어화Multilingualization, m17n

사용 국가별 다양한 언어를 지원하는 것


국제화, 지역화(또는 현지화)의 영역[각주:1]

  1. 언어
    - 컴퓨터의 문자 인코딩
    - 글자의 그림 표현(인쇄물이나 텍스트를 담고 있는 이미지)
    - 녹음된 음성
    - 영상물의 자막
  2. 날짜/시간 형식, 다른 역법의 사용
  3. 시간대
  4. 통화(Currency)
  5. 이름과 직함
  6. 정부 지정번호(주민등록번호, 미국의 사회보장번호 등)와 여권
  7. 전화 번호, 주소, 국제 우편 번호
  8. 중량과 치수
  9. 종이 크기

지역화에만 적용되는 내용

  1. 번역
  2. 동아시아 언어(한자 문화권) 등에 대한 특별한 지원
  3. 지역의 관습
  4. 기호
  5. 정렬의 순서
  6. 미학(미적 감각)
  7. 문화적인 값어치, 사회적인 환경


시차 표현을 위해서 사용되는 규격? 뭐라고 하지 표현? 기준?

UTCCoordinated Universal Time, 협정 표준시

PSTPacific Standard Time, 태평양 표준시

GMTGreenwich Standard Time, 그리니치 표준시

CSTCentral Standard Time, 중부 표준시

KSTKorean Standard Time, 한국 표준시

DSTDaylight Saving Time

PDTPacific Daylight Time

ESTEastern Standard Time, 동부 표준시



참고 사이트

한글 위키피디아 국제화와 지역화 - http://ko.wikipedia.org/wiki/국제화와_지역화

영어 위키피디아 List of UTC time offsets - http://en.wikipedia.org/wiki/List_of_UTC_time_offsets

The Time Now - http://ko.thetimenow.com/pst/pacific_standard_time

영어 위키피디아 List of time zones by country - http://en.wikipedia.org/wiki/List_of_time_zones_by_country

영어 위키피디아 Daylight saving time by country - http://en.wikipedia.org/wiki/Daylight_saving_time_by_country

ISO 3166 Codes (Countries) - http://userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html


자바 타임 존 변경 예제

http://mwultong.blogspot.com/2006/11/java-world-time-timezone.html


 gentoo가 뭐지..? https://wiki.gentoo.org/wiki/Localization/HOWTO



자바의 시간 표현

TimeZone, DateFormat, Locale, Calendar, Time

sun.util 패키지..

Joda Time - http://www.joda.org/joda-time/quickstart.html

  1. http://ko.wikipedia.org/wiki/국제화와_지역화 [본문으로]

'밤을 지새다' 카테고리의 다른 글

웹 다이어그램 드로잉 툴  (0) 2014.07.08
Google Drive를 이용한 파일 버전 관리  (0) 2013.05.24
Linux Kernel Map  (0) 2013.03.24
C# ListBox Double Click 이벤트  (0) 2012.06.08
네이트온 광고와 팝업 없애기  (3) 2012.05.16



어젠 정월대보름 겸 발렌타인데이였다. 더불어 혜림이와 2주년이기도 했고.

엊그제, 꽉 찬 달을 보고서는 내일이 정월대보름이었다는 걸 기억했다.

당일엔 달을 보지 않았다. 달을 볼 생각을 하지 않았었다.

하루가 지난 오늘에서야 밤하늘을 보고 카메라를 들었다. 꽉찬 보름달 보단 조금은 작은 달일 것이다. 눈에 뵈기로는 여전히 보름달이다.

할머니가 계실 적에는 정월대보름이면 호두나, 딱딱한 것으로 부럼을 먹었다.

영주에 있을 땐 용성이네 집에서 쥐불놀이를 했던 적도 있었다.

용성이, 홍석이, 준하 또 누가 더 있었던가? EF가 용성이네 밭에 모여 쥐불놀이를 할 적에 카메라를 든 작가로 보이는 사람이 와서는 사진을 좀 찍어도 되냐고 했었다.

그 사진은 찍은 그분은 십 수년이 지난 지금 뭘 하고 계실까. 그때의 우리 모습이 궁금하다. 요새는 정월이라고 해서 별다른 일은 없다. 부럼을 깨 먹는 일도, 쥐불놀이도 하지 않는다. 어디선가는 부지런히 해왔을터인데, 나는 어느 새인가부터 그런 것들을 하지 않게 되었을까?

'사진을 찍다' 카테고리의 다른 글

@ 마장 휴게소  (0) 2014.02.10
눈 오는 가로등 @ 아인스원룸텔  (0) 2014.02.10

이상하게 바람개비만 보면 김유정역이 떠오른다.




'사진을 찍다' 카테고리의 다른 글

정월대보름 더하기 하루의 달  (0) 2014.02.15
눈 오는 가로등 @ 아인스원룸텔  (0) 2014.02.10

어제부터 눈이 온다. 10일로 넘어섰으니 엊그제부터라고 하는게 맞겠다.

요즘 통 카메라를 꺼내지 못했다.부산에서 짐빼랴, 대구로 이사하랴, 서울 올라와서 방구하랴, 다시 대구에서 짐 옮기랴.. 정신없는 것도 사실이지만 게을러진 탓도 있다.

굳이 돈들여 카메라를 사놓고서는 쓰지 않는 다는 건 낭비이며 나에겐 죄이므로, 다시금 열심히 찍어야지.

또 그 때처럼 다시 카메라가 다른 사람 손으로 넘어가는 건 싫다.






'사진을 찍다' 카테고리의 다른 글

정월대보름 더하기 하루의 달  (0) 2014.02.15
@ 마장 휴게소  (0) 2014.02.10



서비스 디자인 패턴

저자
로버트 다이뇨 지음
출판사
에이콘출판 | 2013-10-11 출간
카테고리
컴퓨터/IT
책소개
이 책은 웹 서비스를 사용하면서 반복적으로 직면하게 되는 문제의...
가격비교




REST API 디자인 규칙

저자
#{for:author::2}, REST API 디자인 규칙#{/for:author} 지음
출판사
한빛미디어 | 2013-04-22 출간
카테고리
컴퓨터/IT
책소개
사전처럼 찾아 쓰는 REST API 규칙과 팁사람들의 관심을 끌...
가격비교




아파치 톰캣 7 따라잡기

저자
타누즈 카르 지음
출판사
에이콘출판 | 2013-09-30 출간
카테고리
컴퓨터/IT
책소개
톰캣 7 가이드. 톰캣 7의 성능 튜닝, 다양한 설정 방법, 로...
가격비교




서블릿 컨테이너의 이해

저자
#{for:author::2}, 서블릿 컨테이너의 이해#{/for:author} 지음
출판사
한빛미디어 | 2013-04-22 출간
카테고리
컴퓨터/IT
책소개
웹 프로그래밍에 깊이를 더 하자!JSP/서블릿은 웹 개발에 많이...
가격비교




실전 클라우드 인프라 구축 기술

저자
공용준, 오영일, 심탁길 지음
출판사
한빛미디어 | 2014-01-02 출간
카테고리
컴퓨터/IT
책소개
클라우드 인프라를 구축하는 데 필요한 가상화부터 관리 기술까지 ...
가격비교


+ Recent posts