2021-12-11 마이바티스 또는 아이바티스에 부등호가 존재하는 쿼리를 옮겨 사용 시 오류가 발생하는 경우가 있다. 이는 부등호를 mapper에서 인식하는 과정에서 문제가 발생하는 것인데 이를 해결하는 방법을 알아보자. - 비교 표현식 비교표현식이란, 부등호를 문자열로 표현한 것을 말하는데, 형식은 아래와 같다. 부등호 문자열 예제 > 25 SELECT * FROM WHERE AGE =]]> 25 SELECT * FROM WHERE AGE 25 메인 이미지 출처 : Photo by Y S on Unsplash
2021-12-07 View에 존재하는 기존의 데이터를 복사해서 사용자에게 전달해야 하는 경우가 있다. 이러한 기능을 손쉽게 처리하는 방법을 알아보자. - 예제 사용할 자바스크립트 코드는 document.execCommand("copy");라는 명령어이다. 이는 view에서 현재 select()된 text를 클립보드에 복사해주는 기능을 수행한다. 아래의 예제 자바스크립트 함수 코드를 보자. //클릭했을 경우 클립보드에 복사된다. function clickCopy(value){ var tempInput = document.createElement("input"); tempInput.style = "position: absolute; left: -1000px; top: -1000px"; //input 창 생..
2021-11-28 실시간으로 처리해야 하는 요청이 있는 반면에 정해진 시간에 처리해야 하는 작업이 있을 수 있다. 예를 들자면 백업 작업, 사용자에게 특정 시간에 메일을 보내야 할 경우가 그 예가 될 수 있다. 오늘은 특정 시간에 동작하도록 설정할 수 있도록 해주는 @Scheduled에 대하여 알아보자. - 예제 @Scheduled(cron="10 30 12 * * *") public void sendMail() { //특정 시간에 매일을 보내는 메소드 System.out.println("메일을 발송합니다.") } 위의 코드를 보자. 스케줄러를 설정하고 싶은 메소드에 @Scheduled 어노테이션을 붙여주면 해당 메서드는 @Scheduled에 지정해준 시간에 따라 동작하게 된다. cron은 유닉스 계열..
2021-11-20 팝업을 띄운 부모 창을 새로고침해야 하는 경우가 종종 있는데, 이럴 때 코드 한 줄로 부모 창을 새로고침 하는 방법이 있다. - 예제 function parentRefresh(){ opener.location.reload(); } 바로 위의 코드이다. 메소드명도 굉장히 명시적으로 표현되고 있으며 말 그대로 팝업을 띄운 부모 창(opener)의 경로(location) 정보를 새로고침(reload)한다. 위의 코드를 사용하면 기존의 부모창이 새로고침 되는 것을 확인할 수 있다. 메인 이미지 출처: Photo by XPS on Unsplash
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..