DEV/JAVA 3

Java Thread Tutorial

예시 코드는 깃허브에서 확인하실 수 있습니다 https://github.com/hwanseok-dev/lucky-developer-tutorial/tree/main/io.lucky.java.thread Java Thread Tutorial STEP 1. 메인 쓰레드, 백그라운드 쓰레드 자바 프로그램을 실행하면 쓰레드가 항상 실행됩니다. GC 등을 위해서 백그라운드에서 실행되는 쓰레드도 존재합니다. class HelloWorld { // main 메서드를 실행시키는 하나의 쓰레드가 반드시 동작함 public static void main(String[] args) { System.out.println("Hello World"); } // GC 등 백그라운드 쓰레드도 함께 실행됨 /** * Hello Wor..

DEV/JAVA 2024.04.04

jevn 설정 (JDK 버전 변경하기)

1. jenv 설치 brew install jenv 2. jdk 설치 brew tap AdoptOpenJDK/openjdk brew install --cask adoptopenjdk8 brew install --cask adoptopenjdk11 아래와 같은 에러가 발생하는 경우에는 hwanseok@hwanseoks-MacBook-Pro ~ % brew install --cask adoptopenjdk8 Error: Cask adoptopenjdk8 exists in multiple taps: homebrew/cask-versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8 아래의untap을 해준 뒤 다시 install을 하면 된다 brew untap ado..

DEV/JAVA 2024.01.26

java-grok 라이브러리 수정해서 오픈소스로 배포하기 (with gradle 8.*)

오픈소스를 수정 배포하게 된 배경 저는 사내에서 로그 모니터링 서비스를 만들고 있습니다. 위 사진에서 파란색 태그는 임의의 로그(문자열)에서 semantic(의미를 가지는) 키워드로 추출된 값들입니다. 이렇게 추출된 태그를 기반으로 인덱스가 생성되고 로그를 조회할 수 있습니다. 임의의 형태로 수집되는 로그에서 유의미한 형태의 키워드를 추출하기 위해서 thekrakken/java-grok 라는 라이브러리를 사용하고 있었습니다. 직접 만들고 있는 로그 모니터링을 사용해서 운영환경에서 발생하는 문제를 분석하다보니 크게 2가지 문제의식을 갖게 되었습니다. 1. 다양한 환경에서 수집되는 로그와 인덱스를 체계적으로 관리할 필요성이 있다. 2. 로그를 메트릭스로 변환해서 메트릭스 기반으로 개발된 다양한 기능들을 사용..

DEV/JAVA 2023.09.18