2022-04-27-TIL TIL Today I Learned Music App Open Sources GitHub의 음악 플레이어 오픈소스 프로젝트를 모았다. 대부분 Android 앱이다. 저장소 설명, 언어, 라이선스, 보관 여부는 나중에 GitHub에서 다시 확인한 상태를 기준으로 적었다. 보관(archived) 상태인 저장소는 더 이상 유지 보수되지 않으므로 코드 구조를 참... 2022/04/27 2022-TIL
2022-04-25-TIL TIL Today I Learned ZGC vs G1GC 둘 다 HotSpot JVM의 가비지 컬렉터이고, 목표가 다르다. G1(Garbage-First): 힙을 같은 크기의 리전으로 나누고, 쓰레기가 많은 리전부터 수집한다. 처리량과 정지 시간 사이의 균형을 목표로 하며 -XX:MaxGCPauseMillis로 목표 정지 시간을 지정한다. JEP ... 2022/04/25 2022-TIL
2022-04-22-TIL TIL Today I Learned B-Tree Index 대부분의 RDBMS 인덱스는 B-Tree 계열 자료구조다. 키가 정렬된 상태로 저장되고 트리 높이가 낮게 유지되므로, 일치 검색뿐 아니라 범위 검색(BETWEEN, >, LIKE 'abc%')과 정렬(ORDER BY)에도 쓸 수 있다. 데이터가 추가되거나 삭제되면 노드를 분할하거나 합쳐 균형... 2022/04/22 2022-TIL
2022-04-21-TIL TIL Today I Learned JPA Duplicated JPA 엔티티는 같은 이름으로 여러개 생성할 수 없다. 엔티티 이름은 JPQL에서 엔티티를 가리키는 이름이고, 따로 지정하지 않으면 패키지를 뺀 클래스 이름이 된다. 그래서 다른 패키지에 같은 이름의 클래스(order.domain.Item과 product.domain.Item)를 각각 엔티티... 2022/04/21 2022-TIL
2022-04-20-TIL TIL 2022-04-20-TIL Today I Learned QueryDSL https://jojoldu.tistory.com/401 https://blog.leocat.kr/notes/2019/09/05/querydsl-sql-case-statement https://bottom-to-top.tistory.com/45 https://... 2022/04/20 2022-TIL
2022-04-18-TIL TIL Today I Learned Memory Leak Java는 GC(가비지 컬렉터)가 메모리를 회수하므로 C처럼 free를 잊어서 생기는 누수는 없다. 그런데도 메모리 누수는 생긴다. Oracle의 트러블슈팅 가이드는 애플리케이션이 의도치 않게 객체 참조를 계속 쥐고 있어서 GC가 그 객체를 회수하지 못하는 상황을 Java의 메모리 누수로 정의한다.... 2022/04/18 2022-TIL
2022-04-16-TIL TIL Today I Learned Index 인덱스는 특정 컬럼 값으로 행을 빨리 찾기 위한 자료구조다. MySQL 문서는 인덱스가 없으면 MySQL이 첫 행부터 테이블 전체를 읽으며 찾아야 하고, 테이블이 클수록 비용이 커진다고 설명한다. 인덱스가 있으면 데이터 중간의 어느 위치로 이동해야 할지 바로 알 수 있다. 대신 인덱스는 공짜가 아니다. 행을... 2022/04/16 2022-TIL
2022-04-15-TIL TIL Today I Learned Health Checks with Spring Boot Spring Boot Actuator의 /actuator/health 엔드포인트는 애플리케이션과 DB, 디스크, Redis 같은 의존 대상의 상태를 모아 UP/DOWN으로 알려 준다. Actuator 문서에 따르면 상세 정보 노출은 management.endpoin... 2022/04/15 2022-TIL
2022-04-13-TIL TIL Today I Learned Content-Type in HTTP GET Reqeust Content-Type은 메시지에 담긴 바디(payload)의 미디어 타입을 알려 주는 헤더다. RFC 7231은 바디를 담은 메시지를 보내는 쪽이 Content-Type을 보내야 한다(SHOULD)고 하고, 같은 문서의 4.3.1절은 GET 요청의 바디에는 정... 2022/04/13 2022-TIL
2022-04-12-TIL TIL 2022-04-12-TIL Today I Learned API 응답으로 code와 message를 보내는데 에러코드를 어떻게 분류할지에 대해서 팀원들과 논의하던 중에 그 필요성이나 실효성이 있는지 고민하게 되었다. 반대의 의견으로는 그냥 RuntimeException만 던지고 에러메시지만 적절히 적어두면 충분하며, 어차피 에러코드에 매핑되는 커스텀... 2022/04/12 2022-TIL