• [Spring]Eclipse로 Spring Boot 시작하기

    Spring Boot 최근 몇 년 사이 순수 Spring Framework보다는 Spring Boot로 만들어진 애플리케이션들이 상당히 많아졌다. 가장 큰 이유로는 Spring Framework의 복잡한 초기 설정들을 기본적으로 다 해결해준다는 점과 가벼움과 간편함이 아닐까 생각한다. 실제로 Spring Boot를 이용한 웹 프로젝트를 생성해보면 클릭과 타이핑 몇 번으로 심플한 웹 MVC 프로젝트가 만들어진다. 회사에서는 Spring Framework를...


  • [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 공격을 막기 위해서 보통은 사용자에서 입력받은 값을 서버로 넘길 때,...