- 부제 : 테스트를 통과하면 문서가 생성되는 서비스가 있다?! - 들어가며 이 글에서는 Spring REST Docs, openapi3, swaggerUI를 다룰 것이다. 각각에 대해 자세히 다루지는 않겠지만, 세 가지의 서비스를 한번에 적용하는 글이 많지 않아 직접 정리해볼 생각이다. 왜 Spring REST Docs일까? swagger Documentation, 하면 swagger를 떠올리는 사람들이 많을 것 같다. 첫 프로젝트를 할 때에는 그것조차 몰라서 google spread sheet로 API 명세서를 정리하곤 했다. 그러다 API 테스트까지 해볼 수 있는 툴(이게 swagger였다.)이 있다는 걸 알게 됐지만, 사용하고 싶지는 않았다. annotations 컨트롤러에 많은 annotatio..
FNF FNF는 Fail Not Found의 약자로, 한 달동안 공부한 내용을 공유하는 발표 모임이다. 비대면 온라인으로 진행되며 2022.03.27.일요일 첫 번째 모임이 진행된다. 제 1회 발표자로서 그동안 열심히 준비해 발표하게 됐다. 발표자로 참여하겠다고 했을 때에는 운영체제 내용을 발표하고 싶었지만, 데이터베이스 설계를 새로 할 일이 생겨 겸사겸사 Index에 대해 공부해야 했기 때문에 주제도 B-Tree Index로 정했다. 준비하며 정리한 글 - Index 개요 : https://heather-dev.tistory.com/22?category=1014946 - Index 구조 및 추가/수정/삭제 : https://heather-dev.tistory.com/23?category=1014946 ..
들어가며 읽기 쉬운 코드, 이해하기 쉬운 코드를 위해 네이밍에 시간을 들이지만 쉽지 않았다. 이 변수/메서드/클래스의 존재이유나 역할을 생각해 단어를 찾아보지만 생소한 단어가 나오거나 이름이 길어질 뿐이었다. 클린 코드를 읽기 시작한지 얼마 되지 않았지만, 지금 가장 필요한 방법에 대해 알려주는 글이라 생각되어 내용을 정리한다. 의미 있는 이름 짓기 의도를 분명히 밝혀라 변수/메서드/클래스의 이름은 다음과 같은 세 가지 질문에 모두 답할 수 있도록 지어야 한다. (1) 존재 이유 (2) 수행 기능 (3) 사용 방법 예시 상담원에게 담당자가 없는 문의 건들을 배분하는 메서드의 이름을 지으려고 한다. (기능 상세) - 매니저가 사용할 기능이다. - 매니저는 자신이 담당하는 카테고리의 문의 건과 상담원을 관리..
들어가며 지난 글인 B-Tree Index(3)에서는 인덱스를 통해 Data를 읽는 방법을 살펴봤다. 그 방법에는 네 가지가 있는데, 아래에 정리했다. (1) Index Range Scan (2) Index Full Scan (3) Loose Index Scan (4) Index Skip Scan 이 글에서는 그 두 번째, Index Full Scan에 대해 정리해보겠다. Index Full Scan 언제 사용될까? 대표적으로, 조건절에 사용된 컬럼이 인덱스를 구성하는 첫번째 컬럼이 아닌 경우에 인덱스 풀 스캔이 적용된다. 다만 쿼리가 인덱스에 명시된 컬럼만으로 조건을 처리할 수 있는 경우 주로 이 방식이 사용되고, 인덱스 뿐 아니라 데이터 레코드까지 모두 읽어야 한다면 절대 이 방식으로 처리되지 않는다..
들어가며 지난 글 B-Tree Index(2)에서는 인덱스 사용에 영향을 주는 요소들을 살펴보았다. 네 가지 요소가 영향을 줄 수 있음을 알게 되었고, 요소들은 아래에 정리되어 있다. (1) 키 값의 크기 (2) B-Tree 의 깊이 (3) 기수성과 선택도 (4) 읽어야 하는 레코드 건수 이 요소들이 인덱스 사용에 미치는 영향을 알았으니, 이번 글에서는 B-Tree Index를 통해 데이터를 읽는 방법에 대해 살펴보자. 그 전에 데이터를 읽는 방법에 대해 알아보기 전에 먼저 스캔에 대해 알아보자. 스캔 스캔은 인덱스를 차례대로 읽는 것을 말한다. 위에서부터 아래, 즉 정방향으로 읽거나 아래에서부터 위, 즉 역방향으로 읽는 것 모두 스캔이라고 한다. 방법 MySQL B-Tree Index를 사용해 데이터를..