2021-11-28 실시간으로 처리해야 하는 요청이 있는 반면에 정해진 시간에 처리해야 하는 작업이 있을 수 있다. 예를 들자면 백업 작업, 사용자에게 특정 시간에 메일을 보내야 할 경우가 그 예가 될 수 있다. 오늘은 특정 시간에 동작하도록 설정할 수 있도록 해주는 @Scheduled에 대하여 알아보자. - 예제 @Scheduled(cron="10 30 12 * * *") public void sendMail() { //특정 시간에 매일을 보내는 메소드 System.out.println("메일을 발송합니다.") } 위의 코드를 보자. 스케줄러를 설정하고 싶은 메소드에 @Scheduled 어노테이션을 붙여주면 해당 메서드는 @Scheduled에 지정해준 시간에 따라 동작하게 된다. cron은 유닉스 계열..
2021-11-13 JWT 형식의 데이터를 주고받으면 따로 DB의 저장하지 않아도 해당 토큰의 값만 가지고 데이터 처리를 할 수 있다는 장점이 있다. 다만 base64로 인코딩 되어 있어 누구나 해당 토큰 정보를 확인할 수 있는데, 이러한 단점을 보안하기 위해서는 내부의 데이터는 따로 암호화 작업을 거쳐서 전달하는 것이 바람직하다. 바로 사용한 라이브러리와 예제 코드를 보자. - 라이브러리(build.gradle) // https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1' - 예제 import java.io.UnsupportedEn..
2021-10-26 기존에 @Controller라는 어노테이션은 이미 MVC 구조의 프로젝트를 다루면서 많이 익숙해졌을 것이라고 생각한다. @Controller 경우 자신에게 맵핑된 view를 찾아가는 것이 주요 목표이다. 하지만 view이외의 JSON과 같은 데이터 형식을 전달하기 위해서 @ResponseBody와 같은 어노테이션과 같이 사용되는 경우도 많은데, 이러한 두 가지 기능을 하나의 어노테이션으로 사용하고 조금 더 RestFul API 적합한 개발을 위해 나온 어노테이션이 바로 @Restcontroller이다. 사용방법은 간단하며, 아래의 스프링 문서에서 제공하는 예제 코드를 보자. - 예제1 @RestController public class MyController { @RequestMapp..
2021-09-26 오늘은 오픈 API를 연동하는 과정을 알아보도록 하자. 예제는 https://open.assembly.go.kr/portal/openapi/main.do를 활용해서 진행할 예정이며, 가이드라인도 열린 국회 정보 API를 따른다. - 예제 먼저 아래는 View를 구성하는 jsp 화면이다. api 연동으로 얻어진 정보를 openInfo라는 하나의 객체로 담아 간단히 나타낼 것이기 때문에 매우 간단하다. 얻어온 Open API 정보 ${openInfo } API화면 아래는 api 정보를 받아올 dto 객체이다. package com.test.test.dto; public class ApiDto { private String billId; private String billNo; privat..
2021-06-19 - 사전 준비 ● pom.xml 추가 코드 commons-io commons-io 2.5 스프링을 사용함에 있어 파일 업로드 라이브러리를 사전에 준비해 두어야 한다. 사용 라이브러리는 commons-io를 사용했으며, 해당 라이브러리 기준으로 설명한다. ● servlet-context.xml 추가 코드 빈으로 CommonsMultipartResolver도 기본적으로 등록되어 있다는 전제가 필요하다. ( 위의 두 코드는 해당 파일에 붙여 넣기 하면 된다.) - 로직 처리 아마 게시판이 삭제되면서 이미지를 제거해야 하거나 사용자 프로필 사진 삭제에 따른 디렉터리 내에서 해당 파일을 지워야 될 경우 이러한 고민을 하게 된다. 방법은 간단하다. 코드를 살펴보자. //파일 경로 지정 Strin..