Sky Archive

Java 14

[Thymeleaf] number formatting Method, 간단한 숫자 포맷 지정

안녕하세요.🐱‍🐉 Thymeleaf를 사용하다 보면 숫자 값을 특정 포맷에 맞춰 표시해야 할 일이 있는데 (ex. 정수의 최소 자릿수를 지정) Numbers Method에 대해 간단히 정리해보려고 해요. Thymeleaf는 서버사이드 자바 템플릿 엔진의 한 종류로 지원하는 유틸리티 메소드는 Numbers 외에도 Dates, Arrays, Lists, Sets, Maps, 등 다양하게 있어요. -> https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#appendix-b-expression-utility-objects #numbers - integer numbers 형식 /* * 최소 정수 자릿수 설정 * * #numbers.formatInteg..

Java/Thymeleaf 2022.03.31

[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] 문자열을 합치는 여러가지 방법 (+, concat, StringBuilder, StringBuffer)

문자열을 합치는 여러가지 방법 (+, concat, StringBuilder, StringBuffer) 안녕하세요.🐱‍🐉 오늘은 String Concatenation 연산 방법(문자열을 합치는 방법)들과 차이에 대해 알아보려고 해요. concat 메서드 String 클래스에서 제공하는 기본 메서드로, 문자열을 합칠 때 마다 새로운 인스턴스를 생성하기에 연산량이 많은 경우 는 당연히 권장하지 않아요. (합쳐지는, 합쳐진 문자열 모두 독립적으로 메모리 할당.) 또한 초기화되지 않으면 연산이 되지 않아요. (null과 연산시 NullPointerException 발생) // 결과 : stir-fried anchovy String str1 = "stir-fried"; String str2 = " anchovy"..

Java 2021.12.07

[Java] window에서 자바 아카이브(JAR)로 압축하기

JAR(Java Archive)란? 이름에서 알 수 있듯 Archive파일로 여러 개의 자바 클래스와 리소스 등의 집합체이다. JAR 파일은 실제로 ZIP 파일 포맷으로 이루어진 압축 파일로서, 파일 확장자는 .jar이다. 사용자들은 JDK에 포함된 jar 명령어를 이용하여 JAR 파일을 만들거나 압축을 풀 수 있다. 실행 가능한 JAR 파일은 OS에 따라 직접 실행 시킬 수 있고 커맨드 라인을 통해 실행시킬 수도 있다. 실행시키기 위해서는 java -jar foo.jar라고 입력하여 실행할 수 있다. JDK가 설치 되어 있지 않다면? C:\Users\administer\Desktop\mng\e.g-Archive>javac -version 'jarvac'은(는) 내부 또는 외부 명령, 실행할 수 있는 프..

Java 2021.11.24

[JSTL] 페이징 변수를 이용한 간단한 글 번호 처리

안녕하세요🐱‍🐉 페이징을 이용한 간단한 글 번호 처리 방법을 소개해보려고 해요. 글 번호 나중에 처리하게 되면 쿼리 수정하는 것보다 화면에서 직접 처리하는 것이 더 편할 때도 있는데 그럴 때 한 번 참고해 보세요.😊 - 정순 ${(현재 페이지 * 페이지 당 행 개수) - 페이지 당 행 개수 - i.index} - 역순 ${전체 게시글 수 - (현재 페이지-1) * 페이지 당 보여지는 게시물 수 - i.index}

Java/JSP 2021.10.27

[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] Emoji 문자 제거

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

Java 2021.07.19

[JSP] EL이란? 기본객체와 eq, ne, empty의 사용법

EL(Expression language) 이란? EL은 Expression language의 약자이며 데이터를 표현하기 위한 언어로 JSP의 기본 문법을 보완해주고 자바 코드를 대신해 실행 시간에 태그의 속성 값을 지정하는 역할을 하고 JSP 2.0에 추가된 개념이랍니다.😊 초기의 EL은 JSTL의 액션 태그에서만 작동하는 문제가 있었는데, JSP 2.0부터는 JSP 컨테이너가 EL 표현식을 해석할 수 있게 도와주고 와 같은 방식의 표현식 대신 사용하거나 내장객체 또는 표준 액션 태그, 커스텀 태그, 템플릿 데이터와 같이 자바 코드를 사용해야 했던 모든 곳에 EL을 사용할 수 있어요. EL의 주요 기능 JSP의 네 가지 기본 객체가 제공하는 영역의 속성을 사용할 수 있어요. 집합 객체에 대한 접근 방법..

Java/JSP 2021.07.03

[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

[Java] Log4j Level 설정(로그 올바른 사용법)

프로그램 개발 시 로그 레벨을 생각하지 않고 DEBUG만으로 로그를 출력하는 경우가 많다. 로그 출력 시 올바른 사용법으로 출력하는 것이 좋다. 먼저 Log4j 각 단계에 대해 알아보자. log4j의 최근 버전에 의하면 높은 등급에서 낮은 등급으로의 6개의 로그 레벨을 가지고 있다. 로그레벨 순서 TRACE > DEBUG > INFO > WARN > ERROR > FATAL TRACE DEBUG보다 더 세분화 된 정보를 지정 DEBUG 프로그램 디버깅하기 위한 정보를 지정 INFO 상태변경과 같은 정보성 메세지 지정 WARN 처리 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메세지 지정 ERROR 요청을 처리 도중 문제가 발생한 경우 FATAL 프로그램을 중단 할 수 있는 심각한 오류, ..

Java 2021.07.01