자바 프로그래밍

날짜를 DB에 저장할 경우 작업의 편리함이나 효율을 위해 문자열 형태로 저장하거나 DB로부터 프리젠테이션 계층으로 불러올 때 문자열로 변환하여 불러올 경우가 많습니다. MySQL의 JDBC 문서를 봐도 Date 타입은 String 타입으로 매칭시키도록 하고 있습니다.

저의 경우 yyyy-MM-dd 형식의 문자열로 불러온 날짜값을 yyyy/MM/dd 형식으로 화면에 뿌릴 필요가 있었습니다. 물론 JavaScript를 이용하여 변환하거나, JSTL의 fn:replace() 함수를 이용하는 방법도 있겠으나, 둘 다 왠지 꼼수를 쓴다는 느낌이 강해서 정석대로 접근해 봤습니다.

문자열 → 날짜 값 → 날짜 형식 지정



fmt:parseDate 액션태그의 pattern 속성 값을 문자열 형식과 맞추어 해당 문자열을 날짜값date 변수에 저장한 뒤, 다시 fmt:formateDate 액션태그를 이용해서 날짜 형식을 지정해 줍니다. 간단한 예제지만 문자열을 다양한 형식의 날짜 형태로 간단히 뿌릴 수 있고 날짜값으로 변경하였기 때문에 날짜와 관련한 비교 등 연산도 유리합니다.

JSTL의 <fmt> 액션 태그를 이용하여 다국어 지원을 위한 메시지를 출력하는 방법입니다.

  • <fmt:bundle> : 번들 위치 설정
  • <fmt:message> : 번들의 메시지를 출력

message.properties

intranet.title=Intranet
intranet.admin=JeongSam

message_ko_KR.properties

intranet.title=인트라넷
intranet.admin=정샘

test.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>



    intranet.title
intranet.admin
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>





이클립스에서 개발을 해서 웹호스팅 서버로 올려서 관리하다 보면 가끔 귀찮은 상황이 발생을 하곤 합니다. JDBC 설정의 경우도 보통 server.xml에 <Context ...>안에 <Resource>를 이용해서 설정하지만, 이클립스에서 프로젝트 이름을 바꾼다던지 지웠다가 추가한다던지 하면 설정이 지워져서 매번 따로 복사해두었다가 끼워넣곤 합니다. 아마 이미 잘 알고 있겠지만 META-INF/context.xml 파일에 설정을 해 두면 이클립스로 개발할 때 매우 편리합니다.

참고 :

MySQL Reference Manual :: Using Connector/J with Tomcat
http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html#context.xml_configuration

Apache Tomcat 6.0 :: JNDI Resources HOW-TO
http://dev.mysql.com/doc/refman/5.0/en/connector-j-usagenotes-tomcat.html

참고 문서를 보면 톰캣 컨테이너의 리소스($CATALINA_BASE/conf/server.xml)를 설정하는 방법과 개별 웹 어플리케이션별(per-web-application)로 context XML 파일(META-INF/context.xml)을 설정하는 방법이 설명되어 있습니다. 개인적으로는 웹서버에는 server.xml에 설정을 해두고 이클립스에서는 context.xml에 설정을 해서 배포환경과 개발환경을 달리하여 사용하고 있습니다.

설정 예 :

$CATALINA_BASE/conf/server.xml

...

  

...

META-INF/context.xml



           
         

 

Properties 파일을 자바에서 사용할 수 있도록 하기 위해 UCS-2로 변환하여야 한다. 이때 한글과 같은 비 ASCII 코드의 경우 Lation1 인코딩으로 변환하여 저장하여야 하는데, 저장된 내용을 편집할 경우 여간 불편한게 아니다.

Properties Editor는 일본 프로그래머에 의해 만들어졌으며, Eclipse indigo의 경우 Help-Install New Software… 메뉴에 http://propedit.sourceforge.jp/eclipse/updates/ 경로를 추가하여 PropertiesEditor를 선택하여 설치하면 된다.

다음 문서는 톰캣 배포판내의 일부 문서를 번역하여 발췌한 것이다. 톰캣을 학습하는데 필요할 것 같아서 올려본다.

아파치 톰캣 6.0
===================
Dependency Changes
===================
Tomcat 6.0은 JRE 5.0 이상에서 동작하도록 설계되었다.

추가적으로 Tomcat 6.0은 JSP 컴파일시 Eclipse JDT 컴파일러를 이용한다. 이는 Tomcat을 운영하기 위해 더이상 완전한 JDK를 이용할 필요가 없다는 의미이지만 여전히 JRE는 요구된다. Eclipse JDT 컴파일러는 Tomcat 배포판에 번들되었다. Tomcat은 JDK로부터 JSP를 컴파일하기 위한 설정이 가능하며 아파치 Ant를 통해 다른 자바 컴파일러도 지원한다.

===================
JNI 기반 응용프로그램
===================

-- 미 번역 --

===================
번들된 API들
===================
표준적으로 설치된 Tomcat 6.0에서는 웹 어플리케이션을 위해 다음 API들이 사용가능하다.(lib에 위치)
* annotations-api.jar (Annotations package)
* catalina.jar (Tomcat Catalina implementation)
* catalina-ant.jar (Tomcat Catalina Ant tasks)
* catalina-ha.jar (High availability package)
* catalina-tribes.jar (Group communication)
* el-api.jar (EL 2.1 API)
* jasper.jar (Jasper 2 Compiler and Runtime)
* jasper-el.jar (Jasper 2 EL implementation)
* jasper-jdt.jar (Eclipse JDT 3.3 Java compiler)
* jsp-api.jar (JSP 2.1 API)
* servlet-api.jar (Servlet 2.5 API)
* tomcat-coyote.jar (Tomcat connectors and utility classes)
* tomcat-dbcp.jar (package renamed database connection pool based on Commons DBCP)

+ Recent posts