분류 전체보기49 Kotlin inline 함수 Kotlin inline 함수란?inline 키워드로 생성된 함수를 호출하는 경우, 함수의 본문이 바이트코드로 변환될 때 그대로 인라인(inline)이 된다.즉, 바이트코드로 변환 시, 함수를 호출하는 코드로 변환되는 것이 아니라 함수 본문자체가 복사되어 변환되는 것이다.언제 쓸까?람다를 인자로 받는 함수의 경우함수 호출비용을 줄일 수 있음코틀린에서는 보통 람다를 무명클래스로 컴파일하고, 람다가 변수를 포획하는 경우에는 람다 생성 시점마다 무명클래스 객체가 생성이 된다. -> Heap 할당/ 람다 클래스 생성 / GC 비용이 발생해당 경우에 inline 함수를 사용하면 람다 클래스를 생성하거나 인스턴스를 생성하는 일이 없어지므로 메모리 성능상 이점을 가질 수 있음.예시inline을 적용하지 않은 함수에서.. 2025. 9. 29. @SpringbootApplication의 baseScanPackage 설정 이슈 이슈상황로컬에서 코드 수정하고 springboot 구동했을 때 애플리케이션은 띄워짐그런데 aws에 배포하니까 health 체크 실패하고 이벤트 수신도 못함Controller를 정의하여 /health api 호출 시 200응답 보내는 코드가 있음에도 health 체크 실패.AWS 설정에서 health 체크 path도 /health로 설정되어 있는 부분 확인하였음.이벤트 수신관련한 코드도 건드린적 없음.원인현재 패키지가 com.example.a 이고, com.domain에 있는 컴포넌트를 의존성주입 받을 일이 있어 @SpringbootApplication(scanBasePackages={"com.domain"})을 사용이 설정을 하고 Springboot 구동하니까 구동은 잘되는데, com.example.a .. 2024. 7. 13. Mockito verify()에서 파라미터 까지 검증하고 싶은 경우 Junit5 + Mockito를 함께 사용하는 예제를 준비했습니다.배경Mockito 사용 시 특정 메서드가 수행됐는지 확인하기 위해 verify()를 사용하는 경우가 많다.보통 이런 식으로 많이 사용할 것이다.verify(mock).doSomething(any(Person.class)); 이 때 메서드에 전달되는 파라미터 값까지 동일한지 확인하고 싶다면 어떤 방법이 있을까?(any()로 검증하는건 타입만 확인하는 것이라 불안하다.)ArgumentMatcher로 검증하기ArgumentMatcher 를 implements 혹은 익명 객체로 생성하여 파라미터를 검증할 수 있다.verify(list, times(2)).add(argThat(new ArgumentMatcher(){ public boolea.. 2024. 5. 29. java List.of에는 null이 포함될 수 없다. Java List.of() 에는 null이 요소로 포함될 수 없다.List.of()의 설명을 살펴보면 'Throws: NullPointerException - if an element is null' 리스트 요소가 null인 경우 NullPointerException을 발생한다고 명시되어있다. 위의 of()에서 호출하고 있는 ListN() 메서드의 구현을 살펴보면, Objects.requreNonNull()로 null 체크를 하고 있다. list.contains(null) 수행 시 NPE가 발생한다.추가로 List.of()로 생성된 불변리스트에 contains(null) 수행 시에도 NPE가 발생한다.이것도 코드 구현을 따라가보면 원인을 알 수 있다.contains() 내에서 indexOf() 라는 메서.. 2024. 5. 28. 이전 1 2 3 4 ··· 13 다음