본문 바로가기

Spring/Spring17

[Spring] Web.xml 설정(세팅)하기 스프링에서 사용되는 web.xml파일은 Deployement Descriptor(배포 서술자)라고 불리어 집니다. 결국 어떤 프로젝트를 배포하게 되면 그 프로젝트에 대한 설정에 대한정보를 가지고 있는 파일이라고 이해하면 되는데 기본적인 설정정보를 가지고 있다보니 모든 Spring프로젝트는 실행되기전에 1차적으로 web.xml을 거쳐가게 됩니다. 그래야 어떠한 설정이 있는지 확인하고 그 설정에 맞게 동작하니깐요. 이 포스팅에서는 스프링의 설정값에 대한 정보가 담긴 web.xml파일의 작성법과 각 설정이 어떤한 의미를 가지고 있는지 알아보는 시간을 가지도록 하겠습니다. 공통부분 xml파일이라고 선언하는 부분이며 설정에는 한글이 들어가는 경우가 간혹 있기 때문에 인코딩 속성은 UTF-8을 권장합니다. 태그는 .. 2020. 1. 26.
[Spring] @ResponseBody, @RequestBody와 Ajax, JSON 오늘은 여러 어노테이션 중 @ResponseBody와 @RequestBody에 대해서 알아보고자 합니다. 이 두개의 어노테이션은 가장 대표적인 @Service, @Controller와 같은 대장급(?) 어노테이션을 제외한다면 가장 많이 사용하는 어노테이션이고 또 사용하는 방법도 무척이나 간단하여 한 번 알아두고 기억하고 있는다면 웹 개발에 있어서 많은 도움이 되리라 생각합니다. 우선 이 두개의 어노테이션의 공통 접점은 JSON이라는 데이터 타입입니다. JAVA에서는 JSON이라는 데이터 타입이 없기 때문에 프론트단에서 자바에게 JSON타입의 데이터를 전달해주거나 혹은 반대로 JAVA의 객체데이터를 JSON형태로 프론트단에 전달해야 하는 경우 각각 @RequestBody와 @ResponseBody가 그 역.. 2020. 1. 25.
[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.