JSP,Servlet
[JSP] 통신은 최소한으로! /JSP script단에서 쓸모없는 통신 줄이기
ChrisJang
2021. 4. 6. 15:48
연초부터 1년정도 전에 시작된 프로젝트에 합류하게 되었다.
문제 발생
이미 많이 진행된 프로젝트기 때문에 그전의 틀에 맞춰 구현을 진행하였는데 어느날 페이지 로딩시 쓸데없는(쓸데없는게 아니라 1번의 통신으로 모든 정보를 받아올 수 있는데 그렇지 않고 여러 번 통신으로 데이터를 가져오는 경우를 발견) 네트워크 통신이 여러번되고 있는 것을 발견하였다.
해결
- 컨트롤러에서 페이지 로드시 가져오는 정보들을 해당 로직에 넣어 통신이 한번만 이루어지도록 한다.
/* SelectBox 쿼리 */
<select class="wp60" name="workerUserNm" id="workerUserNm">
SELECT USER_ID AS userId,
USER_NM AS userNm
FROM tb_user_info
WHERE COMP_CD = #{sessionBukrs} /* 공통 코드*/
AND RTIRE_YN = #{rtireYn} /* 은퇴 여부*/
</select>
//메뉴에 매핑된 화면이 열릴 때 코드를 미리 조회하여 가져옵니다.
//ex.접수화면을 예시로 작성합니다.)
//요청을 여러 번 보내지 말고 한 번에 필요한 데이터를 조회합니다.
//다른 서비스를 사용할 경우 해당 서비스를 Resource 합니다.
/**
* 접수 화면 오픈.
* @return String
* @throws Exception
*/
@RequestMapping(value = "/xxxxRcption/xxxxRcption.do")
public String initDrftRcptionScrn(Model model) throws Exception {
//코드 가져오기.
CodeVO paramMap = new CodeVO();
paramMap.setpCode("1030");
model.addAttribute("ddlb1030List", codeService.selectCommonDetailCode(paramMap));
//사용자가져오기.
paramMap = new CodeVO();
paramMap.setRtireYn("N");
model.addAttribute("ddlbUserList", codeService.selectUserInfoCode(paramMap));
return "xxxxRcption/xxxxRcption";
}