Sky Archive

java 9

[JAVA] Map - getOrDefault

데이터를 주고 받다보면 DB 쿼리문에서 nvl체크 하는거처럼 java 소스에서도 값이 없을 경우에 디폴트 값을 설정하고 싶은 적이 있을 것이다. 데이터를 주고받을때 VO로 주고 받겠지만 Map으로 주고 받게 될 경우 대체로 공통메소드에 String타입 nvl체크하는 메소드를 사용할 것이다. 이럴 경우 map.get(key) 값에 nvl체크 할 필요없이 map.getOrDefault(key, "")으로 간편하게 바로 사용할 수 있다. Map - getOrDefault(key, default value) key에 해당하는 값이 있다면 찾는 키의 값을 반환하고 없다면 디폴트로 설정한 값으로 반환한다. getOrDefault에 대한 자료들을 찾아보니 대부분의 블로그들에서 알고리즘 문제로 활용하는 것으로 더 유명..

Java 2022.02.06

[JAVA] Cron, 스케줄러의 표현식

- Cron이란? 유닉스 계열 컴퓨터 운영 체제의 시간 기반 작업 스케줄러이며, 반복 작업을 예약하는 데 가장 적합합니다. Cron의 작업은 주어진 일정에 따라 주기적으로 실행되도록 셸 명령을 지정하는 구성 파일 crontab(cron 테이블)에 의해 구동됩니다. crontab 파일의 각 줄은 작업을 나타내며 다음과 같습니다. # ┌───────────── 분 (0 - 59) # │ ┌───────────── 시간 (0 - 23) # │ │ ┌───────────── 요일(1 - 31) # │ │ │ ┌───────────── 월(1 - 12) # │ │ │ │ ┌───────────── 요일(0 - 6)(일요일~토요일, # │ │ │ │ 7은 일부 시스템에서 일요일이기도 함) # │ │ │ │ │ # ..

Java 2022.01.19

[JAVA] 가변매개변수(매개변수 동적 사용/오버로딩 X)

프로그램 개발을 하다보면 동일한 매개변수를 필요한 개수에 따라 오버로딩하여 개발하는 상황이 올 수 있다. 하지만 오버로딩으로 처리가 된다고 해도 동일한 메소드를 매개변수가 늘어남에 따라 추가하는 것은 비효율적이다. 아래 소스와 같은 상황일때 매개변수가 하나 더 필요하다고 하면 매개변수가 4개짜리 매소드를 또 추가하기 찜찜할 것이다. public static void show(String param) { System.out.println(param); } public static void show(String param1, String param2) { System.out.println(param1 + " " + param2); } public static void show(String param1, St..

Java 2021.10.26

[JAVA] URL링크 공유 웹사이트 크롤링(Jsoup 라이브러리)

사용자가 원하는 링크 공유 시 다음과 같이 해당 사이트의 썸네일이나 사이트명에 대해서 크롤링하는 방법이다. Jsoup 은 실제 HTML 작업을 위한 Java 라이브러리입니다. HTML5 DOM 메서드와 CSS 선택기를 사용하여 URL을 가져오고 데이터를 추출하고 조작하기 위한 매우 편리한 API를 제공합니다. URL, 파일 또는 문자열에서 HTML을 긁고 구문 분석 DOM 순회 또는 CSS 선택기를 사용하여 데이터 찾기 및 추출 HTML 요소, 속성 및 텍스트 조작 XSS 공격 을 방지하기 위해 수신 허용 목록에 대해 사용자 제출 콘텐츠 정리 깔끔한 HTML 출력 https://jsoup.org/download 그래들에 1.13.1버전으로 설정했다. implementation 'org.jsoup:jsou..

Java 2021.10.26

[Java] KCB 본인인증 ssl.HandshakeException 해결방법

실무에서 KCB 본인인증 모듈을 사용해서 휴대폰 본인인증을 하는데 SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 라는 SSL 통신 에러가 뜰 때가 있다. [2021-07-08 15:59:28.173] ERROR OO.OOOO.OOKcbCertifiedController.kcbCertified 233 | [[[CODE:50]]]:getServerRSApubKey Error - javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inap..

[Eclipse] Logger 자동생성

eclipse Logger 자동생성 템플릿 설정 방법 1. References - Java - Editor - Templates 로 진입 2. [New..} 버튼 클릭 --pattern-- ${:import(org.slf4j.Logger,org.slf4j.LoggerFactory)} /** * Slf4j Logger */ private static final Logger logger = LoggerFactory.getLogger(${enclosing_type}.class); 3. log 사용법 - 템플릿 설정 후 에디터에서 log의 일부를 치고 Ctrl + Space를 하면 아래의 사진처럼 표시 - 생성된 코드

Tools/Eclipse 2021.08.02

[Eclipse] DAO namespace 자동생성

eclipse DAO namespace 자동생성 템플릿 설정 방법 1. eclipse > References > Java > Editor > Templates 로 진입 2. [New..] 버튼을 클릭 -- pattern /** * {@link ${enclosing_type}} Name Space */ private static final String NAMESPACE = ${enclosing_type}.class.getName() + "."; 3. DAO에서 namespace 사용법 - 템플릿 설정 후 DAO로 돌아와서 namespace의 일부를 치고 Ctrl + Space를 하면 아래의 사진처럼 표시 - 생성된 코드

Tools/Eclipse 2021.08.02

[Java] Emoji 문자 제거

현재 웹에서 제공하는 이모지 [ win + . ] 또는 모바일 단말기에서 제공하는 특수문자들이 유니코드이지만 DB에 저장 시 지원하지 않는 경우 에러를 유발하게 됩니다. 😊 정확하게는 uft8mb4를 지원하도록 초기에 설정하는 게 좋지만, 그러지 못한 경우 이모지가 들어갈 경우 에러가 발생합니다. 이러한 문제 때문에 이모지 제거 작업을 정리해봤습니다. 😆 Emoji 제거 방법 🤞 1. [Java] Emoji 제거 - Emoji 제거 작업에 있어서 구글링 하여 가장 간단하게 찾을 수 있는 Java에서 이모티콘을 공백으로 치환하는 방식입니다. 해당 방식을 사용하면 하이픈 ( - ) 도 공백으로 치환이 되어 권장드리지 않습니다. Pattern emoji = Pattern.compile("[\\uD83C-\\u..

Java 2021.07.19

[JSTL] JSTL 내장 함수 정리

함수 매개변수 설명 리턴 타입 contains String, String 첫번째 입력 문자열에 하위 문자열이 포함되었는 지 확인 boolean containsIgnoreCase String, String 첫번재 문자열에 하위 문자열이 대소문자 구분 없이 포함되었는 지 확인 boolean endsWith String, String 첫번째 문자열이 하위 문자열로 끝나는 지 확인 boolean escapeXml String XML 마크 업으로 해석 될 수있는 문자를 escape처리 String indexOf String, String 첫번째 문자열이 하위 문자열에 포함되어 있다면 처음으로 검색된 index를 반환한다. int join String[], String 배열의 모든 요소를 ​​문자열로 결합 Stri..

Java/JSP 2021.07.02