2023-06-23-TIL TIL 2023-06-23-TIL Today I Learned Redis Sentinel Redis Sentinel은 마스터-복제본 구성을 감시하다가 마스터가 응답하지 않으면 복제본 하나를 새 마스터로 승격하는 고가용성 장치다. 문서는 Sentinel의 역할로 모니터링, 알림, 자동 장애 조치, 클라이언트에 현재 마스터 주소를 알려 주는 설정 제공자 역... 2023/06/23 2023-TIL
2023-06-22-TIL TIL 2023-06-22-TIL Todady I Studied API Rate Limit vs Throttling 요청이 너무 많은 경우 429를 응답하면서 트래픽 유입량을 조절할 수 있다. https://12bme.tistory.com/504 https://www.redhat.com/architect/pros-and-cons-throttl... 2023/06/22 2023-TIL
2023-06-21-TIL TIL 2023-06-21-TIL Today I Learned UCI 한국저작권위원회 설명에 따르면 국가콘텐츠식별체계(UCI, Universal Content Identifier)는 식별 가능한 자원의 유통과 활용을 위해 개별 자원에 유일한 코드를 부여하고 관리하며, 서로 다른 식별 체계를 연계하는 표준 체계다. 책의 ISBN이나 논문의 DOI처럼 콘텐... 2023/06/21 2023-TIL
2023-06-17-TIL TIL 2023-06-17-TIL Today I Learned Study 중재자 패턴 MVC의 컨트롤러와 유사하다. 직접 통신하는 객체가 많을수록 복잡해진다. 이때 중재자 패턴은 서로 독립적으로 동작해야하는 컴포넌트 간의 통신을 중재한다. 의존관계를 줄여서 중앙집중식으로 객체를 하나 두면 관리가 용이하다. 하지만 중재자 역할을 하는 객체의 복잡도가 증... 2023/06/17 2023-TIL
2023-06-16-TIL TIL 2023-06-16-TIL Today I Learned 트랜잭션 격리 수준 격리 수준은 동시에 실행되는 트랜잭션이 서로의 변경을 어디까지 볼 수 있는지를 정한다. SQL 표준은 네 단계를 정의하고, 단계가 높을수록 막아 주는 이상 현상이 늘지만 동시성은 떨어진다. 격리 수준 Dirty Read N... 2023/06/16 2023-TIL
2023-06-15-TIL TIL 2023-06-15-TIL Today I Studied 로드 밸런싱 알고리즘 로드 밸런서가 요청을 어느 서버로 보낼지 정하는 방식은 서버 상태를 보지 않는 정적 방식과 상태를 반영하는 동적 방식으로 나뉜다. Kemp의 정리를 기준으로 대표적인 것은 다음과 같다. Round Robin: 서버를 차례로 돌아가며 보낸다. 서버 성능이 비슷하고 ... 2023/06/15 2023-TIL
2023-06-13-TIL TIL 2023-06-13-TIL Today I Learned Instagram Hashtag Architecture 해시태그 검색을 시스템 설계 관점에서 찾아봤다. 다른 링크들은 인스타그램이나 트위터를 예로 든 시스템 설계 글이고, 마지막 링크가 Instagram 엔지니어링 블로그의 2015년 글 “Search Architecture”다. 실제 구조를... 2023/06/13 2023-TIL
2023-06-12-TIL TIL 2023-06-12-TIL Today I Learned GraphQL server간 통신에서도 under fetching over fetching을 완화할 수 있다. GraphQL은 클라이언트가 필요한 필드를 쿼리로 직접 지정하고, 서버는 스키마에 정의된 타입 시스템에 따라 그 모양 그대로 응답하는 API 질의 언어다. REST에서는 엔드포인트... 2023/06/12 2023-TIL
2023-06-10-TIL TIL 2023-06-10-TIL Today I Learned GraalVM GraalVM은 Java 애플리케이션을 미리(ahead-of-time) 네이티브 실행 파일로 컴파일하는 Native Image로 잘 알려져 있다. 공식 사이트는 네이티브 실행 파일이 JVM에 비해 메모리와 CPU를 일부만 쓰고, 워밍업 없이 바로 시작하며, 애플리케이션에 필요한... 2023/06/10 2023-TIL
2023-06-07-TIL TIL 2023-06-07-TIL Today I Learned JPA의 @Lob @Lob은 필드를 대용량 객체(LOB) 컬럼에 매핑하라는 표시다. Hibernate 사용자 가이드의 예시처럼 그냥 String은 VARCHAR로, @Lob String은 CLOB으로 매핑되고, byte[]에 붙이면 BLOB이 된다. 실제 DDL 타입은 방언에 따라 달라서 M... 2023/06/07 2023-TIL