JMH(Java Microbenchmark Harness) JMH는 Java 언어로 작성된 코드의 성능을 측정하는 도구로, 특히 벤치 마이크로벤치마크를 수행하는 데 사용한다. 마이크로벤치마크는 작은 단위의 코드에 대한 경과 시간, 명령어 처리 속도 등을 측정하는 프로그램을 의미한다. 이는 성능 최적화나 코드 변경에 대한 영향을 정량적으로 측정할 때 유용하게 사용할 수 있다. 환경 설정 신뢰할 수 있는 결과를 얻기 위해서는 Maven을 사용해서 jar 파일로 빌드하고 이를 실행해서 테스트하길 권장하고 있다. IDE에서 실행하는 테스트는 결과의 신뢰성이 떨어진다는게 공식 문서의 입장이다. 샘플 maven project 생성 $ mvn archetype:generate -DinteractiveMode=fals..
2023.04.14 금요일 몸 푸는 추신수 승요답게 경기는 승리 2023.06.04 일요일 어느 한적한 도시의 자라 거북이 너무 빤질거려서 모형인 줄 2023.09.30 토요일 올해도 어김없이 자란 엄빠 밭의 롬복 매웠다 한동안 블로그 활동을 안 했다 회사일도 바빴지만 블로그를 대하는 내 태도가 불량해졌다. 어느 순간 글 쓰는 게 조금 귀찮고 부담스럽달까... 마음은 조금씩 떠나갔지만 공부는 꾸준히 해왔고 조만간 다시 끄적이겠다는 다짐은 있었는데 이렇게 길어질지 몰랐다. 어떤 개념을 잘 정리해서 퍼블릭한 공간에 올리는 것과 그냥 머릿속에 저장하는 건 지식을 대하는 태도나 이해하는 측면에서 깊이가 다른 것 같다. 그런 의미에서 다시 블로그의 필요성을...
✍️ 브릿지 패턴, 소개 브릿지 패턴은 하나의 클래스로부터 파생되는 두 가지 개념을 분리하여 각각을 독립적으로 확장하고, 이를 두 개의 컴포넌트로 결합하는 디자인 패턴이다. 이 패턴을 도입하는 대표적인 케이스는 두 가지 다른 속성을 조합하여 하나의 클래스로 표현하는 작업이 반복적으로 발생할 때이다. 브릿지 패턴을 설명하는 대표적인 예시로 도형과 색을 이야기할 수 있다. Shape에서 파생되는 두 가지 개념 도형과 색을 조합하여 하나의 클래스로 표현하다 보면 중복 코드 증가, 코드의 결합도 상승, 기능 수정과 확장에서 문제가 발생한다. 브릿지 패턴은 서로 다른 속성을 클래스로 분리하고, 한 쪽 클래스가 다른 쪽 클래스를 포함하는 컴포지션을 통해 문제를 해결한다. 이 물리적인 클래스 분리로 클라이언트가 직접..