Category: ETC

0

빌드 시 JAVA_HOME 변경하지 않고 JDK 버전 변경하기

토이 프로젝트를 진행 중인데 이때 아니면 언제 써보겠나 해서 java 11 버전을 사용하고 있다.(제대로 Java 11의 기능을 못쓰는게 문제지만…) 개발하고, 테스트코드 짜고, 로컬에서 돌려서 수동 테스트하고…프로젝트가 어느정도 진행이 되서 빌드를 하려고 했는데 BUILD FAILURE가 뜨는 것이었다… 처음엔 IntelliJ에서 JDK 설정이 문제인가

0

FileInput/OutputStream과 Finalizer, 그리고 메모리 leak에 대하여

프로젝트를 진행하면서 서버의 메모리 누수 측정을 하면서 겪은 일에 대해 정리하고자한다. 문제의 시작은, 서버에서 프로세스 메모리를 측정했을 때 발견되는 지속적인 메모리 증가였다.문제의 원인을 확인하기 위해 힙 덤프를 떠서 MAT으로Leak Suspects를 확인할 때 마다 가장 넓은 파이의 메모리가 자꾸 늘어나는 것이었다. (지금은 찔끔이지만 시간이 지나

0

람다 Checked Exception 처리

Stream API와 람다식을 사용하면 for, if 를 사용한 코드를 간결하게 변경할 수 있다.하지만 Checked Exception이 껴있으면 try-catch 문을 사용해서 핸들링을 해줘야하기 때문에 코드가 지저분해 보인다.그래서 개인적으로 람다식에 Checked Exception을 던지는 메서드를 호출하는 것을 꺼린다.아예 for 문을 사용할 때도

0

jstat 데이터 시각화

jstat으로 자바 애플리케이션의 메모리, GC 관련 성능을 측정할 수 있다.JDK를 설치하면 기본적으로 같이 설치가 되기 때문에 추가로 설치할 것은 없다.jstat 명령어로 실행할 수 있고 -help 옵션으로 사용법을 확인할 수 있다. 자세한 사용법과 데이터의 의미는 아래 블로그에서 참고하자. https://5dol.tistory.com/182 http

0

Non-fair, Fair mode of Lock

멀티 쓰레딩 환경에서 리소스의 쓰기 대비 읽기가 많은 기능의 경우 성능을 고려하여 synchronized를 사용하지 않고 ReentrantReadWriteLock을 사용하는 경우가 있다.하지만 이 경우에도 고려해야할 점이 있다. 바로 리소스 접근 우선순위이다. 만약 readLock을 사용하여 읽기 중인 리소스에 writeLock을 사용하여 쓰기를 시도한다고

0

What is javax?

javax : Java extension package (x stands for extension)자바 extension들이 포함된 패키지이다.흔히 볼 수 예로는 javax.servlet, javax.swing 등이 있다. 몇년 지나긴 했지만 이 quora 포스팅에서 javax 하위 패키지들을 볼 수 있다. 참고 : http://www.difference

0

[나의 로직] remote config 업데이트 시 config 사용 접근 막기 (나름 해답 추가)

일을 하면서 고민을 많이 한 로직에 대해 나는 어떻게 코드를 짰는지에 대해 글을 써보려고 한다.다시 보면서 나도 돌이켜 볼 수도 있고 더 좋은 로직도 생각해 볼 수도 있고… 기존 서비스에서 JNI와 연동할 때 사용하는 특정 설정값들을 Spring Boot의 application.properties에 박아서 사용했는데 이제 이 설정값들을 어드민 페이지에서

0

String 특수 문자 체크 regex

regex를 사용하여 문자열에 특수문자가 포함되어 있는지를 검사하는 코드이다. 1234// 공백 포함 특수문자 체크Pattern pattern1 = Pattern.compile("[ !@#$%^&*(),.?\":{}|<>]");// 공백 미포함 특수문자 체크Pattern pattern2 = Pattern.compile("

0

maven 프로젝트용 gRPC 세팅

회사에서 gRPC를 사용하려 했는데 gRPC를 세팅하는 예제는 거의 gradle용이었다. (gRPC 사이트에서도 gradle…) 하지만 회사에선 maven을 사용해서 정리하는 김에 gRPC 세팅하고 제대로 작동하는지에 대한 간단한 예제를 만들었다. gRPC pom.xml 설정은 https://github.com/grpc/grpc-java을 참고했고 아무런

0

String constant pool

먼저 코드를 보자 12345678String str1 = "hello";String str2 = "hello";String newString = new String("hello");String intern = newString.intern();System.out.println(str1 == str2); // trueSystem.out.println(str1