2021-12-13 hashmap은 순서가 보장된 자료구조가 아니기 때문에 list와는 달리 루프를 돌면서 데이터를 가져올 수 없다. 때문에 iterator를 이용해 키값들을 추출하고, 해당 키값이 저장된 iterator를 이용해 hashmap의 전체 value 값들을 가져와야 한다. 오늘은 이와 같은 방법을 알아보자. - 예제 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest public class HashMapTest {..
2021-12-11 마이바티스 또는 아이바티스에 부등호가 존재하는 쿼리를 옮겨 사용 시 오류가 발생하는 경우가 있다. 이는 부등호를 mapper에서 인식하는 과정에서 문제가 발생하는 것인데 이를 해결하는 방법을 알아보자. - 비교 표현식 비교표현식이란, 부등호를 문자열로 표현한 것을 말하는데, 형식은 아래와 같다. 부등호 문자열 예제 > 25 SELECT * FROM WHERE AGE =]]> 25 SELECT * FROM WHERE AGE 25 메인 이미지 출처 : Photo by Y S on Unsplash
2021-12-08 파일 통신 시에 vsftp를 사용하는 경우가 있다. 다만 모든 사용자에게 서버의 vsftp 접속을 가능하게 하면 보안 및 서버에 이슈가 발생할 수 있어 특정 아이피만 허용해줘야 한다. 오늘은 이와 같은 방법을 알아보자. - 설정 우선적으로 vsftp는 깔려있다는 전제하에 진행한다. 1. xinetd 설치 기본적으로 vsftpd.conf 설정 listen=YES로 두면 기본값으로 xinetd로 받아들인다. 때문에 데몬을 통해 프로세스 실행을 위해서 해당 라이브러리를 설치한다. # yum -y install xinetd 2. vsftp IP 설정 이후 hosts파일 별 설정을 통해 접속 아이피와 제한 아이피를 설정한다. [hosts.allow] # vi /etc/hosts.allow # ..
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