!101 [Java] 자바 문자열 치환 클래스 (StringSubstitutor, StringMapper) 문자열 치환 클래스 (StringSubstitutor, StringMapper) 문자열 안에 있는 약속된 기호 (${key} ${map1} 등등..)을 map에서 key를 가져와 value로 바꿔주는 클래스. 소스는 github에도 있음. apache의 commons-text 라이브러리에 StringSubstitutor 클래스를 써도 되는데, StringSubstitutor 클래스는 없는 키는 그대로 ${key} 형태로 남겨 놓는다. 이게 단점이라 직접 구현 했다. 또는 혹시 라이브러리 추가가 불가능한 환경에서 쓸수 있도록 클래스로 만들어놓음. 코드 따로 라이브러리 추가는 없음. package sunghs.java.utils.string; import java.util.Map; import java.ut.. 2020. 5. 30. [JAVA] CompletableFuture - 예제2 CompletableFuture 예제1 공통으로 사용할 로직 public class AsyncTest { public static final Logger log = LoggerFactory.getLogger(AsyncTest.class); public CompletableFuture task; public static void sleep(long time) { try { Thread.sleep(time); } catch (InterruptedException e) { e.printStackTrace(); } } public static void log(String s) { log.info(s); } public static void main(String[] args) { AsyncTest asyncTes.. 2020. 5. 26. [JAVA] CompletableFuture - 예제1 CompletableFuture 비동기 처리를 위해 JAVA 5에서 Concurrenty API의 Executor, Future, Callable이 등장 했지만 non-blocking 하지 않았다. 이걸 개선하려 Spring framework 4에서는 Future Interface를 개선한 ListenableFuture를 등장 시켰고, AsyncRestTemplate의 Return Type으로 이용 되었다. 이후 JAVA 8의 가장 큰 특징인 lambda와 functinal interface와 결합 된 CompletableFuture가 등장하면서 non-blocking 처리가 쉬워졌다. Spring의 ListenableFuture과 JAVA 8의 CompletableFuture 비교 아래 예제는 JAVA.. 2020. 5. 21. [JAVA] Optional 총정리 및 예제 Optional 총정리 및 예제 Java의 Optional Class는 NullPointerException에 유연하게 대처 할 수 있도록 JDK 8부터 지원하기 시작했다. if-else 지옥에 빠지지 않도록 하며, 객체의 null check를 메소드 호출로써 대체할 수 있다. (썸네일용) 대충 이렇게 생겼다. 선언과 instance Optional의 원형은 Optional 형태로 제네릭 T를 감싸고 있다. 이 T의 자료형이 null check의 타겟이 된다. public static Optional of(T value) { return new Optional(value); } public static Optional ofNullable(T value) { return value == null ? emp.. 2020. 5. 16. [메모] 티스토리 마크다운 코드블럭 지원 문법 apache bash coffeescript cpp cs css diff http ini java javascript json makefile xml markdown nginx objectivec perl php python ruby sql 2020. 4. 20. [MacOS] 터미널 사용시 한글이 물음표로 나오는 경우 터미널 사용시 한글이 물음표로 나오는 경우 로컬 터미널 사용시 한글 부분이 물음표(???)로 나오거나, SSH 사용 시 한글부분이 ???로 나온다면 locale 확인하고 아래 방법으로 해결이 가능했다. 먼저 세션에 locale을 쳐서 언어셋이 ko_KR.UTF-8로 되어있다면 아래 내용과 상관없이 다른문제로 인해 물음표가 생기는 이유다. 아래 내용은 언어셋을 ko_KR.UTF-8로 바꾸는 내용이다. export LC_ALL=ko_KR.UTF-8 위와 같은 명령어는 현재 세션에만 적용되는 것으로 설정된 세션을 끄거나 새로운 세션이 붙으면 똑같이 한글이 물음표로 나온다. bash shell의 profile에 설정을 하게 되면 계속 적용된 세션으로 사용이 가능하다. # bash를 사용하는 경우 vi ~/.ba.. 2020. 4. 18. [MacOS] Mac Vim Home/End키 설정 (for Karabiner, iTerm2) Mac Vim Home/End키 설정 vim에서 맨 뒤로 가는 키는 "$", 맨 앞으로 가는 키는 "^" 이므로 iterm2 기준으로는 키 매핑 시 Send Text with "vim" Special Chars 항목으로 해당 문자열을 보내면 된다. (맥 기본 터미널은 찾아 봐야함) Karabiner를 써서 Home/End 키를 맥의 Command+좌우 화살표로 바꾼경우 결국 Key Profile은 이렇게 된다. Karabiner 설정 Karabiner 설정 이후 iterm2 키 바인딩 Karabiner의 Home/End 키 (Cmd + 좌우 화살표) 는 vim을 제외한 줄 맨 앞으로, 줄 맨 뒤로와 같으므로 vim만 커스텀 해야 맥 어느 환경에서든 Home/End가 똑같이 동작한다. (DefaultKey.. 2020. 4. 10. [Jenkins] Jenkins 기본 명령어 Jenkins 이 글은 추가사항이 있으면 계속 업데이트 됩니다. last updated 2020. 04. 10 last updated 2020. 04. 13 Docker Image Jenkins 기본 Run 첫 컨테이너 생성 시 -v 옵션으로 볼륨을 만들어 줘야 commit시 플러그인이 포함된다. https://github.com/jenkinsci/docker/blob/master/README.md docker run -it -d -p 9999:8080 -p 50000:50000 --name jk jenkins/jenkins:lts-jdk11도커는 war로 구동되는 웹 어플리케이션이다. 그래서 -p 9999:8080로 주는경우 젠킨스 포트 8080이 호스트 9999에 포워딩 된다. 로컬로 띄운 경우 lo.. 2020. 4. 10. [Docker] Docker 기본 명령어 Docker 이 글은 추가사항이 있으면 계속 업데이트 됩니다. last updated 2020. 04. 10 Docker 명령어 기본 개념 docker는 항상 root로 실행 되어야 한다. (유저 권한이라면 sudo docker ..) docker 기본 명령어는 docker "cmd" 형태로 구성된다. (docker run, docker attach) Docker 배포판 찾기 Docker Hub에서 찾는다. docker search "keyword" docker search amazon 이미지 리스트 docker images 이미지 다운로드 docker pull "image" 위 search 명령어로 찾은 배포판:버전을 합쳐 쓴다. EX) 배포판 : amazonlinux, 버전(태그) : latest =.. 2020. 4. 10. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음