반응형
2011년 2월 10일 - 수정 사항
- json-taglib 수정(http://antop.tistory.com/99). 이에 따른 js에서 강제 파싱부분 제거
- ExtJS 3.3.1 업그레이(아무 변화 없음 -_-) 및 필요한 라이브러리만 담음
- IE에서 열라 느린거 해결 못함 ㅠ_ㅠ
forecast.part1.rar
forecast.part2.rar
해보시려면 sql(/WEB-INF/sql/*.sql)로 스키마 세팅하고, WEB-INF/applicationContext.xml 에서 DB 설정을 해줘야 합니다.
새로 개편하여 화면을 만들었습니다. 데이터베이스 구조만 빼고 완전 다 바뀌었군요....
- Cron을 이용하여 돌리던 배치(스케쥴링)를 Quartz를 이용(Spring과 연동)하여 처리 하였습니다.
- 화면은 ExtJS 3.2.1 + (Hightcharts 2.0.5 + jQuery 1.4.3)을 사용하였습니다
- 서버단은 쓰던대로 Spring 2.5.6.SEC02를 사용하였습니다.
아래 그림은 전체 흐름 구상입니다.
그림의 서버단은 다 따로 돌아가게 그려졌는데 -_-.. 다 스프링과 연동되어 돌아갑니다.
클라이언트에서는 풀 AJAX를 사용하고 서버에서는 url로 요청을 받고 json으로 응답합니다.
클라이언트의 레이아웃 구성은 아래 그림과 같습니다.
center의 tab panel의 레이아웃 구성은 아래와 같습니다.
Parameter
URL 요청 파라미터와 응답 아래와 같습니다.
- 현재날씨 목록 : http://antop.nerv.kr/forecast/whole.do?action=list&stn_id=100&from_date=2010-07-01&to_date=2010-07-14
파라미터 | 필수 | 포맷 | 설명 |
stn_id | ○ | 숫자 | 지역 코드 |
from_date | ○ | yyyy-MM-dd | 시작 날짜 |
to_date | ○ | yyyy-MM-dd | 마지막 날짜 |
- 현재날씨 상세 : http://antop.nerv.kr/forecast/whole.do?action=detail&stn_id=100&date=2010-07-08
파라미터 | 필수 | 포맷 | 설명 |
stn_id | ○ | 숫자 | 지역 코드 |
to_date | ○ | yyyy-MM-dd | 날짜 |
- 현재날씨 제한 날짜 : http://antop.nerv.kr/forecast/whole.do?action=limit
- 현재날씨 지역 목록 : http://antop.nerv.kr/forecast/whole.do?action=stn
- 동네예보 목록 : http://antop.nerv.kr/forecast/town.do?action=list&area=1100000000&from_date=2010-08-02&to_date=2010-08-10
파라미터 | 필수 | 포맷 | 설명 |
area | ○ | 숫자(10자리) | 지역 코드 |
from_date | ○ | yyyy-MM-dd | 시작 날짜 |
to_date | ○ | yyyy-MM-dd | 마지막 날짜 |
- 동네예보 상세 : http://antop.nerv.kr/forecast/town.do?action=detail&area=1100000000&date=2010-10-01
파라미터 | 필수 | 포맷 | 설명 |
area | ○ | 숫자(10자리) | 지역 코드 |
date | ○ | yyyy-MM-dd | 날짜 |
- 동네예보 제한 날짜 : http://antop.nerv.kr/forecast/town.do?action=limit
- 동네예보 지역 목록 : http://antop.nerv.kr/forecast/api.do?action=area
파라미터 | 필수 | 포맷 | 설명 |
parent | × | 숫자(10자리) | 상위 지역 코드 |
- 주간예보 목록 : http://antop.nerv.kr/forecast/week.do?action=list
파라미터 | 필수 | 포맷 | 설명 |
location | ○ | 문자(8자리) | 도시 코드 |
from_date | ○ | yyyy-MM-dd | 시작 날짜 |
to-date | ○ | yyyy-MM-dd | 마지막 날짜 |
- 주간예보 제한 날짜 : http://antop.nerv.kr/forecast/week.do?action=limit
- 주간예보 지방 목록 : http://antop.nerv.kr/forecast/api.do?action=province
- 주간예보 도시 코드 : http://antop.nerv.kr/forecast/api.do?action=location
파라미터 | 필수 | 포맷 | 설명 |
province | × | 문자(8자리) | 지방 코드 |
Database Structure
테이블은 하이버네이트로 생성하였습니다.
동네예보
주간예보
전국예보
※ Toad Data Modeler 3.5 로 뽑아낸 데이터베이스 구조 입니다.
hey30 님의 질문 답변
아래는 조금 더 자세하게 그린 그림입니다.
이 프로젝트를 이해 하려면 최소한 'ExtJS'와 'Spring MVC', 'JSON' 정도는 아셔야 합니다. ㅠ_ㅠ
클라이언트단과 서버단은 완전히 분리 되어 있습니다. 100% AJAX로만 주고 받습니다. 2
클라이언트단은 꼭 ExtJS가 아니어도 되고, 서버단도 역시 뭘로 만들던지 JSON으로 응답만 하면 됩니다.
클라이언트에서 서버와 통신하는 객체는 JsonStore 밖에 없습니다. Store에서 알아서 서버에 요청 후 받아서 처리합니다.
store의 config properties를 autoLoad: true로 설정 하면 자동으로 요청 url을 만들어 서버단에 요청합니다.
그러면 서버단에서 contorller - (service - service impl) - (dao - dao impl) 을 거쳐서 controller에서 mav를 리턴하면 마지막에 해당 JSP 까지 가게 됩니다.
JSP에서는 jstl + json-taglib를 이용해서 JSON을 출력합니다.
그걸 다시 클라이언트단의 ExtJS Store에서 받아서 처리하게 됩니다.
vo(Value Object)는 뭐 자기가 정해서 쓰는거니.. 적당히.... ㅠ_ㅠ
반응형
'Mini Project' 카테고리의 다른 글
Image Pyramid (0) | 2014.01.30 |
---|---|
Proftpd Manager (0) | 2012.12.10 |
게시판 2.0 (5) | 2011.07.27 |
Sudoku (0) | 2011.06.09 |
간단한 JAVA 실행기(?) (1) | 2011.03.21 |
Sales History API (2) | 2010.05.27 |
Order Entry API (0) | 2010.05.13 |
Human Resources API (0) | 2010.05.10 |
게시판 1.0 (1) | 2010.03.11 |
비밀번호 생성기(Generate Password) (1) | 2010.02.10 |