본문 바로가기

분류 전체보기100

InvocationTargetException (리플렉션을 통해 함수를 동적으로 실행할 시 예외 처리에 관한 글) 오늘은 Java와 Kotlin에서 리플렉션을 사용할 때 자주 마주치는 InvocationTargetException에 대해 이야기해보겠습니다. 이 예외를 효과적으로 처리하는 방법도 함께 알아볼게요.InvocationTargetException이란?InvocationTargetException은 Java의 리플렉션 API를 사용해 메서드를 동적으로 호출할 때 발생할 수 있는 예외입니다. 호출된 메서드 내부에서 발생한 예외를 감싸서 전달하는 역할을 하죠.주요 특징:원인 예외를 감싸서 전달: 발생한 예외를 그대로 감싸서 전달합니다.원본 예외 접근 가능: getCause()나 getTargetException() 메서드를 사용해 원본 예외에 접근할 수 있습니다.주로 발생하는 메서드: Method.invoke().. 2024. 6. 26.
Java Virtual Machine(JVM) 메모리 옵션 분석 Java 애플리케이션의 성능 최적화를 위해 자주 사용되는 JVM 옵션들인 XX:InitialRAMPercentage, XX:MaxRAMPercentage, XX:MinRAMPercentage, XX:MaxHeapFreeRatio, XX:MinHeapFreeRatio 에 대해 상세히 알아보겠습니다. 이러한 옵션들은 JVM의 힙 메모리 관리 및 성능 튜닝에 중요한 역할을 합니다.1. XX:InitialRAMPercentageXX:InitialRAMPercentage 옵션은 JVM이 시작할 때 할당받는 초기 힙 메모리의 크기를 호스트 머신의 전체 RAM 대비 비율로 설정합니다. 이 값은 퍼센티지로 표현되며, 예를 들어 시스템의 전체 메모리가 16GB이고 XX:InitialRAMPercentage를 10%로 설.. 2024. 4. 26.
인텔리제이 IDEA 한글 깨짐 인코딩 문제 문제사항 업무도중 원인 불명의 이유로 console-run화면에서만 한글이 깨지는 이슈 발생 하지만 인코딩 문제는 국비 학원 시절부터 몇 번 겪어봤기에 평소처럼 아래와 같이 인코딩 설정을 해주었다. 어지간한 한글 문제는 위 설정 정도로 문제가 해결됐었기에, 별 의심 없이 콘솔 인코딩과 글로벌 설정, 프로젝트 설정을 모두 EUC-KR(x-windows-949)로 잘 맞춰주고, IDE를 재구동 하였다. ?!?! 하지만 이번엔 문제가 해결 되지 않았다... 원인 파악 만들어진 로그 파일은 정상적으로 EUC-KR로 인코딩된 파일이 만들어졌기 때문에, intelliJ가 사용하는 JVM인코딩 설정에 문제가 있을 수도 있다고 생각했다. 결국 구글링 시작... 티끌모아개발님의 블로그를 참고하여 해결할 수 있었다. ht.. 2024. 1. 9.
For 컴프리헨션 (For Comprehension) 개념 설명 "For 컴프리헨션"은 함수형 프로그래밍에서 여러 모나드를 순차적으로 처리하는 간결한 방식을 제공합니다. 이는 명령형 프로그래밍에서의 for 루프와 비슷한 구문을 가지고 있지만, 다양한 함수형 개념을 더 효율적으로 활용할 수 있게 해줍니다. For 컴프리헨션은 다음과 같은 장점을 가집니다: 가독성 향상: 중첩된 함수 호출이나 복잡한 람다 표현식 대신, 보다 선형적이고 이해하기 쉬운 코드를 작성할 수 있습니다. 오류 처리: 오류 처리를 더 깔끔하게 관리할 수 있습니다. 비동기 프로그래밍: 여러 비동기 연산을 순차적으로 처리할 때 매우 유용합니다. 예시 상황 예를 들어, 사용자 이름을 가져오고, 그 이름을 사용하여 사용자 프로필을 가져오는 상황을 가정해 보겠습니다. 이 과정에서 여러 개의 비동기 .. 2023. 11. 28.