본문 바로가기

Language/Kotlin34

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.
Sealed Class란 무엇인가? Kotlin에서 sealed class는 한정된 클래스 상속을 제공하여 표현력 있는 도메인 모델을 구성할 수 있는 방법을 제공합니다. 즉, sealed class는 자신을 상속할 수 있는 클래스의 종류를 제한함으로써, 특정 상태와 행동을 더 명확하게 표현할 수 있습니다. Sealed Class의 주요 특징 제한된 상속: Sealed 클래스의 모든 하위 클래스는 동일한 파일 내에 정의되어야 하므로 컴파일러가 가능한 모든 하위 타입을 알 수 있습니다. 상태 표현: Sealed 클래스는 앱의 명시적인 상태를 나타내는 데 사용될 수 있습니다. 각각의 하위 클래스는 앱의 상태의 일부 또는 전이를 나타냅니다. Exhaustive 체크: when 표현식에서 sealed 클래스를 사용하면, 모든 경우가 처리되었는지 컴.. 2023. 10. 13.
Event Sourcing을 통한 함수형 프로그래밍의 적용 함수형 프로그래밍은 이뮤터블한 데이터와 순수 함수들을 사용해 프로그램을 표현하는 패러다임입니다. 한편, Event Sourcing은 이와 관련 깊은 관계를 가지고 있는 아키텍처 패턴입니다. Event Sourcing이란? Event Sourcing은 시스템의 상태가 아닌, 상태를 변화시키는 이벤트들을 저장하고, 이를 기반으로 시스템의 상태를 구축하는 패턴입니다. 주요 특징은 다음과 같습니다. 이벤트 저장: 모든 상태 변화는 이벤트로 저장됩니다. 상태 재구축: 현재 상태는 초기 상태에서 시작하여, 저장된 이벤트를 순차적으로 적용하여 재구축됩니다. 이벤트 재생: 이벤트는 시스템의 다른 부분에서도 재생될 수 있어, 다양한 응답과 프로세스를 구현할 수 있습니다. Event Sourcing의 장점 이력 추적: 모.. 2023. 10. 13.