Full of Troves, Blog
Development Blog
-
[Java]Oracle Blob to Base64 (Data URI Scheme)
서론 보통 이미지 파일 처리는 웹루트 밖의 첨부파일 폴더에 업로드를 하고 DB Table에서는 해당 파일의 경로와 이름만 가지고 있도록 쓰고 있다. DB에 직접 Blob 타입으로 저장할 수도 있지만 보편적으론 전자의 방법을 많이 이용하는 것 같다. (용량 문제도 있고 Blob 타입은 변환도 해야하고 여러모로 귀찮은 것 같다.) 그런데 이번에 고객사의 DB...
-
[Java]특정 날짜가 특정 기간 사이에 있는지 체크하기
서론 달력이 들어가는 페이지를 개발하다보면 오늘 혹은 사용자가 선택한 날짜가 어느 기간 안에 들어가는지 체크해야할 때가 있다. 예를 들면 오늘 날짜인 ‘2019-03-20’이 ‘2019-03-01’ ~ ‘2019-03-21’ 사이에 포함되는지 체크해야하는데 이것을 위해 Java8부터 추가된 java.time 을 이용해서 기능을 구현해보았다. 본론 /** * date가 startDate와 EndDate 사이에 있는지 반환 * * @param date...
-
[Spring]Apache POI를 이용한 Excel Download
서론 이전에는 특정 페이지를 엑셀로 다운로드 받으려면 JSP를 이용하곤 했다. <% String fileName = "Excel File_"+DateTime.getDateTimeMinSec()+".xls"; response.setHeader("Content-Disposition", "attachment; filename="+new String(fileName.getBytes("utf-8"),"8859_1")); response.setHeader("Content-Description","JSP Generated Data"); %> 위와 같이 JSP 상단에 적어주면 html 코드들이 엑셀로 저장이 된다. 간편하긴 하지만 <table>을 이용하여 표를 다 그려줘야하고 제일 치명적인 단점이 엑셀 97~2003버전(xls)으로만 저장이 된다는 것이다. 그래서...
-
[Spring]HTMLTagFilter
HTMLTagFilter? 크로스 사이트 스크립팅(Cross-Site Scripting, XSS)은 쉽게 설명하자면 악의적인 스크립트 코드를 서버로 전송시켜 실행하여 사용자의 쿠키나 세션을 탈취하거나 이상한 페이지로 이동시키는 등의 행위를 하는 것이다. 이러한 XSS 공격은 어떤 프로젝트를 하든지 취약점 점검에 꼭 하나씩은 필터링 되곤 한다. 이러한 XSS 공격을 막기 위해서 보통은 사용자에서 입력받은 값을 서버로 넘길 때,...
-
[MySQL]A테이블 검색 시 B테이블의 특정 컬럼 값 이용하기
내용 전자정부+MySQL 기반의 웹 프로젝트를 개발하던 중에 하나의 기능이 필요하게 되었다. A라는 테이블의 리스트를 뽑아오는 화면인데 또다른 B라는 테이블의 특정 컬럼에 있는 특정 값을 검색 조건으로 달아줘야 했다. 대략적으로 테이블 구조를 그려보자면, Table A USER_ID USER_NM 1 이름_1 2 이름_2 3 이름_3 Table B PKID ADMIN_ID 1 1,3 2 1...