본문 바로가기

Spring24

[Spring] 에서 엑셀파일 생성 후 다운로드 방법 Spring프레임워크에서 엑셀파일 생성 업무프로젝트에서 자주 나오는 서비스중에 단골로 나오는 대표적인 기능이 엑셀파일 기능입니다. DB상에 있는 데이터가 되었던 아니면 다른 데이터이든 엑셀파일 형태로 다운로드를 받아 업무적으로 사용하는 경우가 많기 때문에 현업에서 일을 한다면 반드시 알아야 하는 기능중 한가지라고 생각합니다. 다행이 스프링프레임워크에서는 POI라고하는 좋은 엑셀라이브러리가 있어서 개발자가 보다 손쉽게 개발할수 있습니다만 가끔씩 라이브러리를 가져다가 사용만 하다보니 내 자신이 개발자가 맞나? 라는 의문이 듭니다. 하지만 생산성을 위해서는 이미 있는 좋은 라이브러리를 쓰지 않을 이유는 없다고 생각합니다.(물론 직접만들 능력이 없기도 하지만...) 엑셀에 대한 파일처리는 서버가 가지고있는 정보.. 2020. 1. 13.
[Spring] Properties파일 사용하기 Properties파일 사용하기 Spring프로젝트에서 Properties파일을 이용하여 변수를 사용하는 경우에 대해서 알아보겠습니다. 1. Properties 파일작성 #Local db.url=jdbc:mysql://127.0.0.1:3306/study_db db.username=user db.password=1234 2. properties bean등록 3. properties 사용 @Controller public class HomeController { @Value("${db.url}") private String url; @RequestMapping(value = "/", method = RequestMethod.GET) public String home() { return "home"; } } 2020. 1. 12.
[Spring] Rest API 요청, 전달 Controller 만들기 Rest API 요청, 전달 Controller 만들기 이 포스팅에서는 Spring에서 RestAPI를 만드는 방법에 대하여 기술하겠습니다. 구글을 통해서 검색해보면 대부분 스프링부트로 구현한 게시글이 많아 일반 스프링에서 RestAPI를 만들고자 하는 분들에게 도움이 되었으면 좋겠습니다. 이포스팅에서는 RestAPI가 무엇인지에 대해서는 자세히 다루지 않고 간단히 개념적인 부분만 설명하며 대부분의 내용은 순수하게 기능을 구현하는 방법위주로 작성되었습니다. 1. RestAPI 란? Rest는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 정보를 주고받는 모든 것을 의미합니다. 일반적으로는 서버에 특정 URL을 던져주면 서버에서 JSON형태의 데이터.. 2020. 1. 5.
[Spring] Interceptor개념과 세팅 예제 Spring에서는 어떠한 로직이 실행되기전에 실행하는 공통된 로직을 작성하는 기능이 있습니다. 그것도 한가지가 아닌 무려 3가지나 있다보니 처음 공부하는 개발자 입장에서는 사실 많이 당황스럽습니다. 앞서말한 3가지는 동작하는 위치기준으로 로우단에서 부터 filter, Interceptor, AOP 입니다. 이중에서 오늘 세팅해볼 기능은 Interceptor인데 인터셉터는 컨트롤러에서 들어오는 요청인 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채어 미리 선행되어 실행이 됩니다. HttpRequest, HttpResponse의 전후로 실행되다보니 DispatcherServlet실행 전에 동작하는 filter와는 다르게 DispatcherServlet이 실행 된 후 동작을 하게되며.. 2020. 1. 1.
[Spring] 나만의 Spring 프로젝트 만들기 Step2. Pom.XML 설정 나만의 Spring 프로젝트 만들기 Step2. Pom.XML 설정 2019. 12. 23.
[Spring] 나만의 Spring 프로젝트 만들기 Step1. Maven 생성 나만의 Spring 프로젝트 만들기 Step1. Maven 생성 저의 처음 Spring프로젝트는 SpringLegacyProject이였습니다. STS에서 기본적으로 틀을 만들어서 제공하는 형태의 프로젝트 였는데 어느순간부터 나만의 Spring프로젝트를 만들고 싶다는 욕구가 생겼습니다. 어찌됬든 Spring프레임워크지만 개인적으로 수정을 했으니 이 세상에 한가지밖에 없는 나만의 프레임워크라고 할 수 있겠습니다. 전자정부프레임워크도 사실 이런식으로 만들어 졌구요. 하지만 항상 기본적으로 제공되는 레거시프로젝트로 프로젝트를 수행하다보니 Maven프로젝트를 만든 이후에 어떻게 설정을 해야 MVC Spring프로젝트 처럼 사용할 수 있는지 감이 오질 않았고 내가 아직 Spring에 대하여 모르는 부분이 많다는걸 .. 2019. 12. 22.
[Spring] Scheduler 세팅 및 사용하기 Scheduler 세팅 및 사용하기 Spring프로젝트를 만들다 주어진 시간마다 정기적으로 동작하는 로직을 추가해야 할 일이 발생했습니다. Thread를 이용한 데몬을 만들 수도 있었지만 보다 간편한 Spring Scheduler를 이용하기로 결정했고 결정하기 이전에 Quartz에 대해서 잠시 고민했었지만 Scheduler에는 없는 Quartz의 다양한 기능들 까지는 필요가 없다고 판단하여 보다 간단판 Scheduler를 이용하기로 결정했습니다. 1. XML설정 Spring Scheduler를 사용하기 위해서 따로 추가해야 하는 maven은 없습니다. 따라서 바로 xml설정을 시작하면 되는데 기본적인 xml설정과는 별개로 Scheduler함수에 대한 설정을 xml에서 할수도 있고 @Scheduler를 이.. 2019. 12. 22.
[Spring] 멀티 파일업로드, 파일다운로드 구현 Spring 설정멀티 파일업로드, 파일다운로드 구현 파일처리는 웹프로젝트를 공부하면서 마주치는 큰 고비중 한가지 입니다. 저의 경우에는 파일처리와 네트워크통신 이 두가지가 가장 저를 힘들게 했는데 오늘 저를 힘들게 했던 파일처리에 대해서 정리해 볼려고 합니다. 파일처리는 크게 파일업로드와 파일다운로드 이렇게 두가지로 나뉘어 집니다. 이제 여기서 세부적으로 들어가면 DB에 파일정보를 입력하는 과정과 보안을 위하여 확장자체크, 용량체크등의 작업을 하고 안정적으로 관리하기 위하여 파일이 저장되는 디렉토리관리, 파일명중복 방지등 부수적으로 해야할 업무들이 많습니다. 이 포스팅에서는 먼저 JSP프론트단의 작업후에 파일업로드를 구현하고 마지막으로 파일다운로드를 구현하는데 그 과정에 있어서 보안적인 부분과 기타 부수.. 2019. 10. 13.
[Spring] Logback, log4jdbc를 이용한 시스템로그, DB로그 출력방법 1. 들어가며 이 포스팅에서는 Spring을 이용한 Log를 콘솔과 파일형태로 남기는 방법에 대해서 알아볼려고 합니다. 기존에는 log4j를 이용하여 로그를 출력했다면 최근에는 Logback을 이용한 방식을 많이 사용하고 있습니다. 그 이유는 더 빠르기 때문인데 logback자체가 log4j가 만들어진 이후에 log4j의 단점을 보완하여 만들어진 방식이기에 어찌보면 당연하다고 볼수 있습니다. 앞서 말한 이유로 이 포스팅에서는 Logback을 이용하여 로그를 출력할 예정 이지만 그러기 위해서는 우선 기존에 Spring에서 사용하는 commons-logging 라이브러리를 대체해야하기 때문에 SLF4J도 같이 사용해야만 합니다. SLF4J는 java로 따지면 인터페이스의 역할을 하는데 이를 이용해서 Logb.. 2019. 8. 30.