카테고리 없음2011. 1. 6. 17:10

회사에서 채용사이트를 오픈하려는데 문제가 발생했다고 한다.
문제인 즉은 2대의 서버를 운영하여 부하와 장애에 어는정도 대비 했는데
이미지가 문제란다. 이 이미지란 채용등록시 자기 사진을 업로드 하게 되는데
업로드시 서버 한대만 업로드가 되고 한대는 업로드가 안되어 이미지를 못보는 경우가 발생한다고 한다. 해서 문제해결을 위해서는 업로드시 나머지 한대에도 이미지를 같이 업로드해서 동기화 시키면 되는거 아니냐구 반문했다. 그런데 개발업체에서 못한다고 했단다.
우리 파트 일이 아니라 업체에 뭐라 하구 싶어두 참았다. 암튼 이미지 서버와 이미지 사이트용 도메인을 구매해야 하는지 검토해야한다고 해서 꼭 그렇게 해야하는지 의문스러워 해결방법을 생각해봤다.
일단 각 서버마다 이미지에 대한 싱크만 맞추면 되는 문제 아닌가!!
필요한 기능을 나열해 보면
1. app 프로그램을 못 고친다고 버티고 있으니 서버에 데몬을 띄워서 해결할 수 밖에 없다.
2. 이미지 폴더를 실시간으로 감시하고 있다가 이미지가 업로드 되면 나머지 하나의 서버에 이 이미지파일을 보내줘야 한다.
3. 어느쪽에 이미지가 업로드 될지 모르니 데몬은 양쪽 서버에 모두 설치해야한다.
4. 시간이 없으니 최대한 심플하게 갈수 있는 프로그램이여야 한다.
5. 데몬은 서버에 부하를 주지 말아야한다. (몰릴 때는 작은 부하도 문제가 될터..)



해결책을 찾아보자 . 예전에 회사서버에 FTP를 통해 허가 받지 않고 업로드되는 파일을 제어할 수 있는 프로그램을 만들려구 이거저것 준비하던게 기억나서 그때 자료를 찾아보면 쓸만한게 나올까 싶었는데 꼼꼼하지 못한 성격으로 어디 있는지 알수가 없어 구글을 다시 뒤져서 아래 와 같은 걸 찾아냈다.
http://twit88.com/blog/2007/10/02/develop-a-java-file-watcher/

File Watcher라는 건데 일단 이런걸 만들 능력이 안되니 가져다 쓸 능력이라도 있어야 하지 않겠는가~!
1. 일단 이클립스로 프로젝트를 만들자
2. 받아온 소스를 풀고 에러가 없도록 약간 손을 보자
3. Main메소드가 있는 클래스를 열어 감시할 폴더를 입력할 수 있도록 수정하자.
4. 파일이 입력될때 실행되는 메소드를 찾아 FTP를 열고 전송할 서버에 전송하도록 코딩하면 끝..
5. 로컬에서 5000개의 파일을 가지고 테스트 해본 결과 괜찮은 듯...
6. 양쪽 서버에 설치하고 서로 동기화 하는지 테스트 해본 결과 잘 작동됨.
7. 해당 파트에 제공하고 이미지 서버와 이미지 도메인 구매는 pass하기로 함.
Posted by 베니94
Gxt, Gwt2011. 1. 6. 17:09

날자 형식을 표현할 경우 어떻게 되는지 알아보자.
1. 데이터베이스 테이블 필드의 type이 date이다. 이때는 시분초까지 저장되겠다.
2. rs.getDate("필드명")로 꺼내온다.
3. 꺼내온 값을 객체에 담아줄때 setter, getter메소드를 사용하는데 두개의 메소드도 아래와
 같이 date를 인자로 사용한다.
    public Date getBuy_dt() {     return (Date) get("buy_dt"); }
    public void setBuy_dt(Date buy_dt) { set("buy_dt", buy_dt); }
4. 화면에 보여줄 경우에 아래와 같은 코드가 들어간다.
ColumnConfig confirmDt    = new ColumnConfig("buy_dt", "구입일",120);
confirmDt.setDateTimeFormat(DateTimeFormat.getFormat("yyyy.MM.dd"));

이렇게 할 경우 grid나 다른 컴포넌트에서 년월일을 출력하게 된다.
그런데 년월일 뿐만 아니라 시분초까지 표현하고 싶어 setDataTimeFormat을 아래와 같이
수정하고 확인하니 시분초가 모두 00:00:00으로 찍힌다.
confirmDt.setDateTimeFormat(DateTimeFormat.getFormat("yyyy.MM.dd HH:mm:ss"));

삽질 좀 하다 나온 결론은 시분초까지 표현할 경우 서버쪽 코드인 rs.getDate("buy_dt:")
이부분을 아래와 같이 수정해주자.
// DateFormat
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

// ResultSet를 객체에 저장
p.setBuy_dt(sf.parse(rs.getString("buy_dt")));

이제 아래와 같이 시분초가 표현되는 것을 확인할 수 있다.

'Gxt, Gwt' 카테고리의 다른 글

Gxt Scheduler Touch Support  (3) 2011.01.11
Ext GWT Book  (0) 2011.01.11
GXT Scheduler  (0) 2011.01.11
스크린 샷  (0) 2011.01.06
Posted by 베니94
일상2011. 1. 6. 17:07

이탈리아 ADR스튜디오에서 컨셉디자인으로 내놓은 iWatch란다.
아이폰도 없는 내가 아이폰보다 더 갖고 싶은 요놈은 아직 만들어지지도 않은
걍 컨셉이란다. Sony Ericson의 live view를 눈여겨 보다 live view가 안드로이드만
지원되다하여 아이폰쪽은 비슷한 물건이 없을까 해서 찾은 것이다.

빨랑 나왔음 좋으련만.. ^^

라이브뷰에 대한 기사는 여기

'일상' 카테고리의 다른 글

생각을 정리할 수 있는 Mind Map  (0) 2011.01.18
Posted by 베니94