Lang/Java 16

log4j2.xml 샘플

작성을 직접하고 주석은 GPT가 잘 적어줘서 그걸로 하고 일부는 수정. 추가 설명Configuration status의 info는 log4j2에 발생하는 log (debug로 해보면 알 수 있다), 실제 level은 Root level 에서 지정debug 이상은 console이고 나머지는 info, warn, error 레벨별로 파일로 생성되게 처리 info, warn은 파일 최대 레벨 10MB로 10MB가 넘어가면 최대 5개까지 압축한다. 이후는 과거순부터 덮는다.error는 하루 기준으로 압축이 되고 용량 제한 등은 없다. 패키지로 구분되는 로그는 샘플용이다. ..

Lang/Java 2025.09.21

Java jar 윈도우 서비스 등록하기

2개 버전 테스트Eclipse Adoptium jdk-8.0.412.8-hotspot, 윈도우 11JDK 1.8 202, 윈도우 서버 2019WinSW(WinSW.NET4.exe) v.2.12.0 Spring Tool Suite 4 Version: 4.13.0.RELEASE 1. apache common daemon자료가 많이 없다. 2. nssm블로그에 참고 자료가 매우 많고 무난하게 사용하기 좋아보였다.Bugs in nssm can cause severe issues such as excessive CPU usage, memory exhaustion, data loss and even bluescreens. CPU, 메모리, 블루스크린 등의 버그가 생길 수도 있다고 하는데 중요한 서버라서 문제가 생길..

Lang/Java 2024.12.22

poi excel 로 빈 값 처리 시 주의해야 하는 부분

테스트 버전 org.apache.poi poi 5.2.3 org.apache.poi poi-ooxml 5.2.3 간단한 poi excel 소스이다. try (Workbook workbook = new XSSFWorkbook()) { Sheet sheet = workbook.createSheet("Sheet"); Cell cell = null; for (int i = 1; i  원하는 결과는 A, D로 생성 된 차트여야 하는데 ""로 값을 넣을 시 B처럼 차트가 생성된다.해당 셀은 어떤 상태인지는 알 수 없으나 C와 같이 엑셀에서 ' 하나만 넣었을 때와 비슷하게 동작한다.ctrl + 방향키 아래로 하면 다음 값으로 이동되지 않고 마지막으로 이동을 한다 (아래 gif 참고)빈 값을..

Lang/Java 2024.12.15

윈도우 버전별 자바 최소 버전

자바 8 무료 마지막 버전1.8.0_202 서버 2019, 윈도우 10 이후에는 유료 버전 또는 오픈 JDK, JDK 17(현재 무료)를 사용해야 한다.이후에 버전에서도 사용은 되나 성능상에 문제가 발생할 수도 있다.  오픈 JDK는 이클립스 adoptium를 많이 추천 하는 것 같다. MS에서 제공하는 OpenJDK도 있다.https://www.oracle.com/java/technologies/javase/products-doc-jdk8-jre8-certconfig.html Oracle JDK 8 and JRE 8 Certified System ConfigurationsATI Mobile GPUs: Mobility Radeon HD 3000, 4000, and 5000 series Desktop GP..

Lang/Java 2024.05.25

간단하게 Java synchronized 사용 방법

JDK 1.8 전체 코드 Thread는 2개로 이름은 A, B로 지정 A는 B보다 1초 늦게 시작하게 처리 각 메소드는 5초 대기한다. 간단히 synchronized는 static이나 공유하는 Class에서 대해서는 동시 접근이 되지 않는다. 해당 메소드가 아닌 class내의 모든 synchronized에 접근이 되지 않음 synchronized를 사용하지 않는 메소드는 접근이 가능하다. class SyncClass{ public void basic(String name) { System.out.println("basic: " + name); } private Object lockObject = new Object(); public void objectSyncTest(String name, int tim..

Lang/Java 2023.07.01

LocalDateTime 밀리세컨드 계산 및 범위 동적으로 사용

1.8 기준공식 문서 참고 - 동적으로 사용appendFraction(ChronoField.NANO_OF_SECOND, 0, 9, true)field - the field to append, not nullminWidth - the minimum width of the field excluding the decimal point, from 0 to 9maxWidth - the maximum width of the field excluding the decimal point, from 1 to 9decimalPoint - whether to output the localized decimal point symbol Thread 환경 주의This class is a mutable builder intende..

Lang/Java 2023.05.07

Java ArrayList, Map multiThread

읽기만 하면 Thread safe하나 수정하면 문제 발생 그래도 multi thread환경에서는 안 쓰는 편이 낫다고 한다. ArrayList, HashMap Thread safe 읽기, 쓰기 가능 CopyOnWriteArrayList, SynchronizedList ConcurrentHashMap, SynchronizedMap Thread safe 읽기만 가능 대신 원본에 접근가능하면 원본은 수정할 수 있음 unmodifiableMap unmodifiableList Google Guava 불변 immutablemap immutablelist JAVA 9 불변 list.of() unmodifiablemap vs immutablemap https://stackoverflow.com/questions/226..

Lang/Java 2023.02.12

STS thymeleaf 자동 완성 안 될 때

https://stackoverflow.com/questions/55879751/thymeleaf-content-assistant-not-working-with-spring-boot 4.13.0.RELEASE JDK 8 thymeleaf-spring5-3.0.15.RELEASE.jar org.springframework.boot 2.7.6-SNAPSHOT STS ini 파일에 --add-opens=java.base/java.lang=ALL-UNNAMED 추가 하는 방법으로 처리 다른 방법으로도 안 되는 경우 .. 원인은 모르겠음 Thymeleaf content assistant not working with Spring Boot The thymeleaf content assist is not workin..

Lang/Java 2022.11.20