Whiteship's Note

2010 SpringOne 2GX는 시카고에서 10월 19일부터 22일까지

모하니?/Planning : 2010.08.07 19:55


http://www.springone2gx.com/conference/chicago/2010/10/springone/event_schedule

2008년은 OSGi와 스프링 DM이 한참 뜨는가 했더니... 이번 컨퍼런스에서는 찾아보기 힘들다.  애초에 공부할때도 영.. 힘들다 싶었다. @_@;; 좀 더 사용하기 편해지고 뭔가 모듈화 가이드 라인이 확실해 지면 그떄가서나 다시 시도해볼까.. 그전엔 별로 하고 싶지 않다.

이번 컨퍼런스는 스프링 Roo와 클라우드 컴퓨팅이 대세인것 같다. 그 중에서 듣고 싶은 세션을 선택해 봤다. 아직 일정이 전부 공개된 상태가 아니라 별로 듣고 싶은 세션이 없는 시간대에는 빈곳을 선택해 뒀고.. 둘다 관심이 갈 땐 그냥 둘 다 칠해뒀다.

혹시라도 올해에도 가게되면.. 제작년처럼 한 주제로 올인하고 싶진 않다.



저작자 표시
신고
top


에그2를 샀다



몇일전 네이버에 스프링 3.0 강의를 하러 다녀왔다. 역시.. 똑똑한 분들이 많은 곳이라 그런지 이해력이 상상이셨던 분들이 많았다. 음.. 그런데 그런 좋은 회사들의 단점은.. 외부인의 인터넷 사용에 제약이 크다는 것이다. 이해한다. 외부인이 사내 네트워크에 접속해서 공유폴더라도 뒤지면... @_@.. 그래서 그냥 인터넷 없이 강의를 진행했다.

이미 강의에 필요한 모든 코딩 동영상, PPT, 소스 코드가 세팅되어 있는 맥북을 들고갔으니 굳이 인터넷이 필요하진 않았다. 그래도;; 가끔은 스프링 API 문서를 띄우거나 내 블로그에 정리했던 글을 띄워서 보여드리고 싶었지만 그럴 수 없는 것은 역시 조금 불편했다.

그래서 장만했다. 썬에그..

다 좋은데;; 이게 좀 뜨겁다;;; 


속도는 이정도.. 일단 업로드 속도가 매우 맘에 든다; 이제 집에서도 스크린캐스팅 업로드 할 수 있겠다;; 매번 회사가서 올리느라고 드랍박스로 옮기거나 USB로 옮겨다녔는데 그럴 필요 없어졌다.
저작자 표시
신고
top


서버 시간과 자바 시간 맞추기

Linux : 2010.08.04 11:36


현재 톰캣 위에 돌리고 있는 애플리케이션에서 보여주는 시간이 이상해서 
1. 서버에 들어가서 date를 쳐봤다. 그랬더니 현재 시간이 아니었다. 
2. 그래서 서버의 시간을 맞추고..
3. 다시 톰캣을 돌렸다.

그러나... 시간은 맞지 않았다. 어디가 잘못된 것일까? 톰캣 시간과 서버 시간은 애초에 별개였던 것이다. @_@;; 서버 시간 맞춘다고 자바 시간까지 서버 시간 따라서 맞춰지는게 아니엇다.

1. 서버 시간대 맞추기

export env TZ=KST-09:00:00 
rdate -s time.bora.net 
hwclock --systohc
date
hwclock --show

어디선가 보고 배껴만든 스크립트인데;; 잘 동작한다.

ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
rdate -s time.bora.net

저걸 만들고 보니 이미 예전에 이렇게 만들어둔 스크립트도 있었다. 하지만 잘 되는지 어떤지는 모르겠다. 이미 서버 시간은 맞은 상태였으니까;

2. 자바 시간대 확인하기

public class DateConfirm {

    public static void main(String[] args) {
        System.out.println(new Date().toGMTString());
        System.out.println(new Date().getTimezoneOffset());

        java.util.TimeZone tz = java.util.TimeZone.getDefault();
        System.out.println("Timezone offset from UTC reported as " +
                (tz.getRawOffset() / 1000 / 60) + " minutes");
        if (tz.getRawOffset() % (15 * 60 * 1000) != 0) {
            System.out.println("Warning: not a multiple of quarter-hours");
        }
        System.out.println(new java.util.Date());
        System.out.println(tz);

        TimeZone tz2;
        Date date = new Date();
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss (z Z)");

        tz2 = TimeZone.getTimeZone("Asia/Seoul");
        df.setTimeZone(tz2);
        System.out.format("%s%n%s%n%n", tz2.getDisplayName(), df.format(date));
    }

}

이것도 어디선가 보고 배껴 만든 코드인데 이걸로 기본 TimeZone을 확인한뒤, TimeZone을 서울로 설정한 다음에 다시 날짜/시간을 찍어본다.

4 Aug 2010 02:13:46 GMT
300
Timezone offset from UTC reported as -360 minutes
Tue Aug 03 21:13:46 CDT 2010
sun.util.calendar.ZoneInfo[id="America/Chicago",offset=-21600000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/Chicago,offset=-21600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]]
한국 표준시
2010-08-04 11:13:46 (KST +0900)

조금전(8월 4일 오전 11시경..)에 확인한 결과였는데.. 이렇게 결과가 엉망이다. 대신 마지막 값이 제대로 나왔다면 희망이 있다. 즉 TImeZone만 제대로 설정해주면 되는거니깐...

3. 자바 시간 설정하기

톰캣/bin 폴더에 환경 설정용 파일은 setenv.sh가 있으면 그걸 편집하고 없으면 그 안에 자바 옵션을 설정해준다.

export JAVA_OPTS="-server -XX:+UseParallelGC -Xmx768m -XX:MaxPermSize=160m -Djava.awt.headless=true -Dfile.encoding=utf-8 -Duser.timezone=GMT+09:00"

export CATALINA_OPTS="$CATALINA_OPTS -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true"

다른 설정은 뭐 때문에 추가했는지 모르겠고. 아마도 아틀라샨 지라를 설치하면서 해놨을 법한데.. 기억나진 않는다;

저렇게 해두면 톰캣/bin의 startup.sh 파일을 실행할때 저 환경변수가 적용되고 저 톰캣에서 돌고 있는 애플리케이션의 날짜가 제대로 먹히게 된다.

저작자 표시
신고
top


[GAE 시리즈] 7. 스프링 @MVC

모하니?/Coding : 2010.08.04 04:42


GAE 시작하기 메뉴얼을 따라하면서 들었던 생각은 스프링을 어서 도입해봐야겠다는 것이었다. 특히 PMF 라는 클래스를 만들때 간절했다. JDO의 PersistenceManagerFacotry를 싱글톤으로 사용하려고 만든 클래스인데.. 전혀 좋은 코드가 아니었다. 그뿐아니라 자바 코드와 HTML이 섞여있는 guestbook.jsp도 마찬가지이고, HttpServlet을 직접 상속해서 구현한 GurestbookServlet과 SignGuestbookServlet도 스프링 @MVC 컨트롤러로 고치고 싶었다.

그래서 일단해야 할 일은 스프링의 초간단 @MVC 컨트롤러를 추가하고 그게 동작하는지 확인하는 일이었다. 이전에 라이브러리는 넣어둔 상태라 간단하게 설정만 조금 추가하면 됐다.

web.xml

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext*.xml</param-value>
    </context-param>

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/app/*</url-pattern>
    </servlet-mapping>

spring-servlet.xml

<context:component-scan base-package="whiteship" use-default-filters="false">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>

applicationContext.xml

<context:component-scan base-package="whiteship">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>

그리고 컨트롤러

@Controller
@RequestMapping("/hello")
public class GreetingController {

    @RequestMapping("/{name}")
    public String hello(@PathVariable String name, Model model){
        model.addAttribute("name", name);
        return "/WEB-INF/views/hello.jsp";
    }

}

그리고 뷰

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page isELIgnored="false" %>
<html>
  <head><title>Simple jsp page</title></head>
  <body>잘잤니~ ${name}</body>
</html>

끝이다. 잘 돌아간다.



저작자 표시
신고
top


[GAE 시리즈] 6. 배포하기

모하니?/Coding : 2010.08.03 14:51


http://code.google.com/intl/ko-KR/appengine/docs/java/gettingstarted/uploading.html

드디어 GAE 시작하기 매뉴얼로는 마지막이군요. 하지만 아직 스프링 도입하기가 남았으니 GAE 시리즈는 계속 이어지겠지만 오늘은 오후에 일이 있어서 오늘로는 마지막 포스팅이 될듯 하군요.

https://appengine.google.com/

일단 저기에 접속해서 계정을 만들고 애플리케이션 ID를 생성합니다. 해당 ID를 웹 프로젝트의 appengine-web.xml의 <application> 엘리먼트에 설정해 줍니다.

그리고 이클립스나 인텔리J 같은 IDE에서 직접 업로드 하거나.. 콘솔에서 업로드 할 수도 있습니다. 저는 콘솔에서 해봤습니다. 

http://whiteshipgb.appspot.com



저작자 표시
신고
top

TAG GAE, 배포



: 1 : 2 : 3 : 4 : 5 : 6 : 7 : ··· : 528 :





티스토리 툴바