cursor AI Editor 설정
·
기타/잡동사니
Font 변경VSCode 기반이기 때문에다음 경로에서 파일 설정 변경C:\Users\\AppData\Roaming\Code\{USER_NAME}\settings.json  {USER_NAME} 을 Windows 사용자명으로 변경  settings.json 설정editor.fontFamily, editor.fontSize 를 조정한다.{ "workbench.colorTheme": "Default Dark Modern", "security.workspace.trust.untrustedFiles": "open", "workbench.editor.empty.hint": "hidden", "editor":{ "fontFamily": "AppleSDGohticNeoM00", // ..
gradle 특정 테스트 제외하기
·
JVM
개요build.gradle 에서 특정 테스트 코드를 제외하고 싶을 수 있다.물론, 코드상에 `@Disabled` 어노테이션을 추가하여 비활성화 하는 것도 가능하지만, 코드를 직접 살펴야한다는 단점이 있다. 비활성화할 코드가 많은 경우 build.gradle 에 pattern, 리스트 형식으로 나열하는 것이 유용하게 쓰일 수 있다.test { filter { // MyClass.getNameTest() 메소드 테스트 비활성화 excludeTest("MyClass", "getNameTest") // my.pacckage.path 하위의 모든 테스트 비활성화 excludeTestsMatching("my.package.path.*") } useJ..
[Java] 람다 캡쳐와 Synthetic 람다 클래스
·
JVM/Java
개요HeapDump 파일에서 Class$$Lambda$2831+2938213123+0x00 과 같은 식이 나왔다.요녀석의 정체는 무엇일까? synthetic lambda class아래와 같이 단일 메소드를 갖는 인터페이스는 Lambda 표현식으로 호출이 가능하다.public class LambdaTest { interface Callback { void onComplete(String result); } static class Messanger { void test(String msg, Callback callback) { callback.onComplete(msg); } } @DisplayName("single method interface can be called ..
[Java] OutOfMemory 잡기
·
JVM/Java
🎯 GoalsOutOfMemory 발생 원인 파악 하는 법을 안다. 예제 코드JVM option 에 다음 설정을 추가한다.Intellij IDEA > Rum Configuration > Modify > Add VM Options-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError-Xms20m힙 최소 크기 20MB-Xmx20m힙 최대 크기 20MB 제한-XX:HeapDumpOnOutOfMemoryOOM 발생시 HeapDump 파일을 생성public class HeapOOM { static class OOMObject {} public static void main(String[] args) { List list = new ArrayList(); while (..
2024년 뭘 했을 때 성장했는가
·
Private
내 언어로 설명할 수 있어야한다.결국 공부해보니 다음 행위를 한 것만이 온전히 내 것이 됐다.(1) 기록으로 남긴것연습장에 손으로 갈겨쓰기연습장에 마인드맵 그리기||Notion / 블로그||컨플루언스 문서화medium 글 기고더 깊은 단계로 진행될 수록 기억에 오래 남았다.하위 단계는 기본적으로 '남'이 보고, 내가 설명하는 것을 토대로 만들기 때문이다.(2) 반복 사용결국 반복이다.기술도 '익숙해짐'에 따라 체감 난이도가 떨어지는 것을 경험했다.Kafka / Kafka-Streams1년 넘게 매일같이 썼더니 이제 그림이 그려진다.구조가 그려진다.매일 보다보니 이제 Kafka 로그도 읽힌다.Vim / Linux어쩔 수 없이 IDE에서 매일 쓰다보니 이제 왠만한 명령어는 다 익혀졌다.Redis거의 손 안댔..
[Redis] TTL - 어떤 방식으로 만료된 키를 제거할까?
·
DataBase/Redis
개요레디스는 키에 Time To Live (TTL) 이 지정된 경우 키가 만료(expired) 되면 해당 키를 제거한다.어떤 방식으로 만료된 키를 제거하는 것일까? 레디스는 2가지 방법을 제공한다.바로 Passive 방식과 Active 방식이다. Passive way클라이언트가 만료된 키에 접근하면, 그때야 비로소 해당 키를 제거한다.장점CPU 오베헤드가 발생하지 않는다.단점만료된 키에 클라이언트가 접근하지 않는다면?=> 만료된 키가 제거되지 않는다.=> 메모리 낭비 발생 Active way아래 과정을 1초에 대략 10회 진행한다.TTL 값이 있는 키 20개를 랜덤하게 뽑는다.뽑은 키 중 만료된 키만 제거한다.(2.)에서 25% 이상 키가 제거되었다면 (1.)로 돌아간다.(2.)에서 25% 미만 키가 제..