목록java (63)
개발자는 기록이 답이다
2024.04.19 - [SQL/쿼리 최적화] - 1000만건의 데이터를 대상으로 쿼리최적화 with. 복합인덱스, 커버링인덱스 1000만건의 데이터를 대상으로 쿼리최적화 with. 복합인덱스, 커버링인덱스2024.04.05 - [SQL/쿼리 최적화] - Index를 활용한 10만건의 레코드 Join쿼리를 최적화하자 Index를 활용한 10만건의 레코드 Join쿼리를 최적화하자 마이페이지에서 유저가 발급받은 쿠폰 이력을 조회하는strong-park.tistory.com 지난번 포스팅에서 쿼리 최적화에 대해 작성했었는데, 복합인덱스와 커버링인덱스를 적용했음에도 대규모 데이터셋이라 속도가 느린편이었습니다. 그리고 MySQL상에서 최적화를 해도, API로 연동하고나면 1~2s 정도 더 느려지는 현상이 있었습니..
Baeldung에 올라온 포스팅을 한글로 번역한 글입니다. Java의 throw 키워드는 사용자 정의 예외 혹은 내장 예외를 명시적으로 발생시키는데 사용됩니다. 하지만 때로는 catch블록에서 동일한 예외를 다시 발생시켜야 할때도 있고, 이로 인해 예외가 다시 발생합니다. 1. Rethrowing Exceptions 때로는 예외를 더 높은 수준으로 전파하기 전에 몇 가지 수행해야 할 것이 있습니다. 예를 들어 DB트랜잭션을 롤백하거나 예외를 기록하거나 이메일을 보낼 수 있습니다. catch블록에서 이러한 활동을 수행하고 예외를 다시 발생시킬 수 있습니다. 이러한 방식으로 시스템에서 예외가 발생했음을 상위레벨에 알립니다. 예시를 들어보면, 아래 코드에서는 동일한 예외가 다시 발생합니다. 그리고 오류 메세지..
UtilityClass는 lombok v1.16.2에서 실험적인 기능으로 도입되었다. @UtilityClass를 사용하면, 컴파일 시점에 생성자 private 으로 만들어 주고, 모든 메서드를 static으로 만들어 준다. package com.devkuma.tutorial.lombok; import lombok.experimental.UtilityClass; @UtilityClass public class UtilityClassTutorial { public int plus(int a, int b) { return a + b; } } 위 코드는 @UtilityClass로 인해 아래와 같이 변경된다. package com.devkuma.tutorial.lombok; public final class Ut..
테스트 코드도 코드이기 때문에 중복되는 코드를 리팩토링을 하려고 합니다. 리팩토링하면서 발견한 점과 리마인드해야할 사항에 대해서 정리하고자 합니다 테스트 클래스에 @어노테이션은 1개만 존재할 수 있습니다. 상속을 단순히 재사용하기 위해 사용하면 많은 문제가 발생합니다. 현재 프로젝트에서 SecurityTest랑 MemberRepositoryTest에서 각 단일 테스트 전에 @BeforeEach어노테이션을 사용하여 Member를 데이터베이스에 저장하는 코드가 중복되어 사용되고 있습니다. 이 코드는 유저 중복을 확인하거나 로그인이나 로그인 실패 테스트를 위해서 사용하기 위해 작성되었습니다. 다른 테스트코드에서도 중복되는 부분을 별도의 상위 클래스를 상속 받도록 구현했기 때문에, 이번 상황도 SetupMemb..