Ajax 사용시 시스템 구조

- 기존 DAO 계층은 수정하지 않는다.
DAO에서 XML, JSON 데이터 형식으로 바꾸는 작업을 해서는 안된다.
DAO는 단지 데이터를 가져올 뿐이다.

- Command 계층

1. Command에서 XML, JSON 형태로 출력을 한다.
Command의 역할은 WebRequest를 객체로 전달하고 결과를 받는 역할을 한다.
출력과는 무관하다.

2. 기존과 동일하게 JSP로 이동시키고 json.jsp에서 XML, JSON 형태로 출력한다.
출력을 별도의 JSP에서 처리하는 형태는 바람직하다.

3. Controller에서 JSP로 이동시키지 않고, XML, JSON 형태로 출력한다.
정형화된 형태라면 Controller에서 일괄적으로 처리하는 것도 좋을거 같다.
응답 데이터 형태는 요청(예를 들면 인자를 resType=JSON 처리)으로 처리하기 보다 설정파일 등으로 서버에서 처리하는 것이 좋겠다.

- Presentation 계층
Ajax를 사용하는 화면으로 수정한다.


JSP로 이동하는 기존 방식에서는 request에 데이터를 여러 개 담았다.
request.setAttribute("header", header);
request.setAttribute("data", list);

이렇게 한번에 여러 개의 데이터 전달하는 것이 JSON에서는 안되는 줄 알았다.
그래서 header를 가져오는 Command와 data를 가져오는 Command를 분리하려고 했었음.