
Introduction to AssertJ dependencies dependencies { testImplementation "org.junit.jupiter:junit-jupiter" testImplementation "org.assertj:assertj-core" } single static import를 통해 test class를 쉽게 추가할 수 있다. import static org.assertj.core.api.Assertions.*; 참고로, assertThat() 메서드만으로는 아무것도 증명할 수 없다. 증명의 대상을 설정하는 정도로 생각하면 좋을 것 같다. assertThat(anything); Object isEqualTo() 메서드는 객체의 참조를 비교한다. 따라서, 객체의 필드를 비..

인트라넷 PC에 인증서 추가하기 인트라넷 PC 에서 API 를 활용하다보면 SSL 인증서 문제와 자주 마주치게 된다..🤔 "unable to find valid certification path to requested target" 이 경우, API 페이지에 등록된 Root CA 인증서를 PC 의 jre 에 등록해 주면 된다. 인증서를 빨리 등록하고, API 를 활용해보자 ! (참고로 필자는 한국어기초사전 API 를 예로 작성하였다.) ROOT CA 인증서 확인 API ROOT 페이지에서 Root CA 인증서 확인 Chorme 기준 사이트 정보 보기 버튼은 URL 입력칸 왼쪽에 위치 이 사이트는 보안 연결(HTTPS)이 사용되었습니다. 인증서가 유요함 인증경로 -> Root CA -> 인증서 보기 인증서..

한국어 기초 사전 API 사용하기 한국어기초사전 백과사전 API 를 찾아 보다가, 다국어 번역도 지원하는 무료 API를 발견하여 사용해 보려고 한다.👀 Start Open API 사용 신청 후 인증키를 발급받자. 인증키는 사용자 당 한 개만 발급받을 수 있으며 서비스 요청은 하루에 50,000건으로 제한 Dependency lombok Open Api Request URL https://krdict.korean.go.kr/openApi/openApiInfo 검색 요청 변수는 Request Parameters 로 요청되므로 생각보다 간단하다. HTTP Request https://krdict.korean.go.kr/api/search?key=your_key&q=나무&advanced=y&method=exac..

[Spring Boot] RESTful API ResponseEntity Example 제대로된 API Response 형태를 전달한 경험이 주로 없다보니.. 문득 REST API Response Body 전달 형식이 궁금해졌다. :0 간단한 Response 구조로 테스트해보자. Class package com.example.responseApi.api.* DTO Response 결과로 넘겨줄 객체 @Data public class Member { private Long id; private String name; private String dept; public Member(String name, String dept) { this.name = name; this.dept = dept; } } Repo..

Java Quartz Scheduler Java의 Scheduling Library를 활용해서 일정 시간마다 코드를 실행시켜보자. Quartz Quartz는 다중 Thread Architecture기반 Thread 환경 관리를 위해 ThreadPool 에 의존 주요 Interface Scheduler – scheduler 와 상호작용하는 기본 API Job – 실제 작업을 수행하는 개체 JobDetail – Job instances 정의에 사용 Trigger – 주어진 작업(Job)이 수행될 조건 결정 (특정시간, 횟수, 반복주기 등) JobBuilder – Job의 instances 정의하는 JobDetail instances 빌드에 사용 TriggerBuilder – Trigger instances ..

Copy text, image to clipboard in javascript 웹 개발에서 종종 사용되는 텍스트, 이미지를 클립보드에 복사하는 방법을 기록해보았다. Copy Text const tempArea = document.createElement("textarea"); // 임시 element 생성 document.body.appendChild(tempArea); tempArea.value = $("#copyTextId").val(); // 복사할 영역의 값 저장 tempArea.select(); document.execCommand("copy"); document.body.removeChild(tempArea); Copy Image 이렇게 간단하게 이미지를 클립보드에 복사하는 코드가 많이 없었는..

Java Write a text file Files Paths.get() 결과 파일 저장 경로 주어진 URI를 Path 객체로 변환 public static Path get(URI uri) Files.deleteIfExists() 해당 경로에 파일이 존재할 경우 삭제 public static boolean deleteIfExists(Path path) throws IOException Files.write() 파일에 텍스트 작성 (각 줄은 char sequence) 줄 구분 기호로 끝나는 각 줄을 사용하여 파일에 순서대로 기록 문자는 지정된 문자 집합을 사용하여 바이트로 인코딩 public static Path write(Path path, Iterable

Java MultiThreading AtomicInteger Integer 자료형을 가지고 있는 wrapping 클래스 멀티쓰레드 환경에서 동시성을 보장 (synchronized 보다 적은 비용으로 동시성을 보장) Reference https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html https://codechacha.com/ko/java-atomic-integer/ LinkedBlockingQueue 한정된 메모리 사용을 위해 초기 Queue Size 세팅 Queue Data(empty/full) 상태에 따라 Thread가 Blocking 할 수 있는 기능 제공 Queue에서 아이템을 가져올 때 비..