본문 바로가기

스프링프레임웍5

POI를 사용하여 엑셀 출력하기 스프링프레임웍에서 아파치 POI 라이브러리를 사용해서 엑셀을 출력해 봅니다. 이번 예제는 "스프링 프레임웍에서 MyBatis, Oracle 사용하기" 에서 사용한 게시판 목록을 출력하는 것을 이용하여 엑셀로 출력하도록 구성한 것입니다. 전체 예제소스를 글 하단에 첨부하였습니다. 테스트를 위한 데이터베이스 생성 관련해서는 이전 글을 참조하시기 바랍니다. 1. POI 라이브러리 의존성을 pom.xml 파일에 추가하기 - POI 3.17 버전을 사용합니다. org.apache.poi poi 3.17 2. 엑셀 출력 작성하기 - 컨트롤러에 엑셀 출력 부분을 작성합니다. @RequestMapping(value = "/excelDown.do")public void excelDown(HttpServletRespons.. 2018. 4. 20.
스프링프레임웍 - 메일 발송하기 스프링프레임웍의 JavaMailSenderImpl을 이용해서 메일을 발송하는 방법에 대해 알아 보겠습니다. 메일을 발송하려면 메일을 발송해주는 메일 서버(SMTP Server)가 있어야 합니다. 메일 서버를 통해 메일을 보낼때 서버에 접속하는 방법은 보통 두 가지가 있습니다. 첫 번째는 서버가 릴레이를 허용하는 경우 입니다. 메일 서버가 릴레이를 허용하는 경우 그 메일 서버에 계정이 없더라도 메일을 발송할 수 있습니다. 이렇게 릴레이를 허용하는 경우 타인에 의해 스팸 메일을 보내는데 악용이 될 수 있으므로 특정 IP에서만 릴레이가 되도록 하는게 일반적입니다. 두 번째는 메일 서버에 계정이 있어서 아이디와 비밀번호로 인증후 메일을 보내는 방법 입니다. 요즘은 두 번째가 가장 일반적인 방법일 것입니다. 1... 2018. 4. 17.
스프링프레임웍 - Ajax 통신(@RequestBody, @ResponseBody) 이번에는 스프링프레임웍을 사용해서 Ajax 통신을 하는 방법에 대해서 알아보도록 하겠습니다. jquery를 이용해서 Ajax로 데이터를 보내고, 결과를 JSON 데이터를 받는 예제입니다. 이번 예제는 "스프링 프레임웍에서 MyBatis, Oracle 사용하기" 에서 사용된 프로젝트를 기반으로 합니다. 또한 클라이언트 측은 "AX5UI - GRID 6 (페이징)" 에서 사용된 예제를 변형하여 AX5UI 그리드에 Ajax와 JSON 데이터를 이용해서 조회하는 예제를 만들어 보겠습니다. 전체 소스를 하단에 첨부 되어 있습니다. 먼저 실행 결과 화면을 보겠습니다. AX5UI 그리드에 구분, 완료 값을 조회조건으로 하여 조회합니다. 조회는 POST 방식과 GET 방식일 경우 각각 어떻게 데이터를 전송하고 서버측에.. 2018. 4. 9.
스프링프레임웍 - Spring Security(2) : 커스텀 로그인 화면 및 권한에 따른 접근 제어 앞의 글 "스프링프레임웍 - Spring Security(1) : 기본 설정"에 이어 이번에는 커스텀 로그인 화면을 만드는 방법을 알아보겠습니다. 전체소스는 하단에 추가되어 있습니다. 1. 스프링 시큐리티 태그라이브러리를 사용하기 위한 의존성을 추가합니다. 메인화면에서 로그인이 되어 있지 않으면 로그인 링크를 보여주고, 로그인이 되어 있으면 로그아웃 링크를 보여주기 위해서 사용됩니다. org.springframework.security spring-security-taglibs 4.2.1.RELEASE 2. 커스텀 로그인 화면을 사용하기 위한 설정을 추가 합니다. 커스텀 로그인 화면 제공 및 권한(역할)에 따른 접근 제어도 테스트 해봅니다. - provider 를 통해 ROLE_USER, ROLE_ADM.. 2018. 4. 8.
스프링프레임웍에서 POI를 사용한 대용량 엑셀 다운로드 업무중에 데이터를 엑셀파일로 내려 받아야 할 경우가 많이 있습니다. 이럴때 데이터량이 적을 경우는 문제가 되지 않지만, 다운 받아야 할 데이터가 수만건에서 수십만건 이상 된다면 여러가지 문제가 발생합니다. 첫 번째로 엑셀 자체의 한계가 있습니다. xls 형식의 엑셀 파일은 한 시트에 최대 65,535행의 데이터를 가질 수 있습니다. xlsx 형태의 엑셀 파일은 한 시트에 최대 1,048,576행의 데이터를 가질 수 있습니다. 현업에서 쓰고 있는 엑셀 버전과 다운로드 되는 최대 데이터량에 따라 어떤 방식을 사용할지 결정하게 해야 하겠습니다. 두 번째로 엑셀 라이브러리를 사용해서 엑셀 파일을 생성할 때 메모리 상에서 작업을 하게 되면 대용량 다운로드 중에 메모리 부족상황에 빠지거나 시스템이 현저히 느려지는 .. 2018. 4. 4.