스프링 3

데이터베이스 인덱스 이해해보기

데이터베이스에서 인덱스란 데이터베이스에서 인덱스는 자료구조 형태로 저장 됩니다. MySQL에서는 일반적으로 B+ Tree 형태로 저장이 되는데요! B+ Tree란 B+ Tree에 데이터를 삽입, 검색하는 과정을 알아보면 왜 인덱스를 활용하면, 데이터 검색 속도가 왜 빨라지는지 알 수 있습니다. B+ Tree에 데이터를 삽입할 때, 상위 노드로 올라가는 기준은 page size가 꽉 찼을때의 데이터 개수가 n 이라면 n-1/2+2번째 입니다. 만약 n이 짝수라면, n-1/2번째가 상위 노드로 올라가게 됩니다. 아래 링크는 B+ Tree를 실습할 수 있는 사이트 링크 입니다. https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html 클러스터형 인덱스란? ..

디비 2022.09.11

책 단위테스트 느낀점 1편

사내에서 새로운 프로젝트를 시작하게 됐다. 이 프로젝트에서 단위 테스트를 도입 했는데, 어떻게 하면 단위 테스트를 잘 할 수 있을지에 대한 궁금증이 있었다. 단위테스트라는 책을 통해 이 궁금증이 해결되고 더 나은 단위테스트 코드를 작성할 수 있으면 좋겠다. 단위테스트 책을 요약할 때, 내가 느꼈던점 위주로 요약을 해보려고 한다. 필요하면 예제 코드도 함께 작성 해보려 한다. 느낀점 단위테스트란 작은 코드 조각 (단위)를 검증하고, 빠르게 수행하고, 격리된 방식으로 처리하는 자동화된 테스트다. 왜 작은 코드 조각일까? 내 생각으로는 오류를 빠르게 찾을 수 있고, 테스트 코드의 가독성이 높아지기 때문이라고 생각한다. 만약 양이 많은 코드를 검증한다고 생각하면 해당 테스트를 실행시킬때, 양이 많은 코드 중 ..

자바 2022.08.25

Kotlin Junit5 @ParameterizedTest

제가 토이 프로젝트를 진행할 때, 관리자가 호텔 이름을 통해 호텔을 조회할 수 있는 기능에 대한 테스트가 필요했습니다. 테스트에 들어가는 인풋값에 여러가지 데이터가 필요하게 되었는데 이유는 무작위로 검색한 이름마다 해당 이름에 맞는 호텔 정보가 잘 나오는지 확인하기 위함입니다. 그래서 사용한게 @ParameterizedTest 였습니다. 해당 어노테이션을 사용하면 하나의 테스트에서 여러개의 파라미터에 대한 결과 값을 검증할 수 있습니다. 즉 여러가지 호텔 이름으로 검색한 결과값을 검증할 수 있다는 뜻입니다. 아래 이미지와 같이 저는 호텔 이름 세개에 대한 결과값이 잘 검증되는지 확인 해보았습니다.

자바 2022.08.20