가상 면접 사례로 배우는 대규모 시스템 설계 기초 8장 - URL 단축기 설계
가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 URL 단축기는 말그대로 URL을 줄이는 모듈을 말한다. ✏️ 1단계 문제 이해 및 설계 범위 확정 여태까지 그래왔듯 질문을 통해 요구사항을 명확히 해야한다. 트래픽의 규모는? (예제에서는 매일 1억개의 단축url생성) url의 길이는? (예제에서는 최대한 ...
가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 URL 단축기는 말그대로 URL을 줄이는 모듈을 말한다. ✏️ 1단계 문제 이해 및 설계 범위 확정 여태까지 그래왔듯 질문을 통해 요구사항을 명확히 해야한다. 트래픽의 규모는? (예제에서는 매일 1억개의 단축url생성) url의 길이는? (예제에서는 최대한 ...
real-world project 구현 과정 카테고리 보기 개요 테스트 코드를 짜면서 어쩌다보니 쓰고 있는 이 클래스, 어노테이션들 정리할 필요를 느꼈다. 😎 MockMvc, @WebMvcTest @WebMvcTest어노테이션을 알기 전 MockMvc에 대해 알고 있어야한다. @WebMvcTest 문서를 보면 MockMvc에 대한 언급이 나오...
개요 auto_increment속성이 설정된 관계형 데이터베이스의 기본 키를 쓰는 방법이 있겠다. 하지만 분산환경에서 데이터베이스 서버 한 대로는 이 요청을 감당할 수 없을 것이고, 여러 데이터베이스를 쓰는 경우 서버들이 중복된 값을 반환하면 안되기에 이를 관리해줘야할텐데 이 때문에 지연시간을 낮추기가 어려울 것이다. ✏️ 1단계 문제 이해 및...
개요 자바12는 이전 버전에 비해 크게 바뀐 것은 없다. ✏️ 1. New String and Files methods String.indent() 이 함수는 메소드안에 있는 인자만큼 문자열을 들여쓰기 해준다. 여러줄에 걸쳐서 들여쓰기를 해야하는 경우 이 함수는 이를 감지하여 적용 시켜준다. @Test @DisplayName("String....
오타, 지적 환영입니다. ✏️CS스터디 저장소 프로세스(Process) 쉽게 말하면 실행중인 프로그램이다. 디스크에 있는 프로그램이 메모리에 로드되면 프로세스가 된다. 여기서 말하는 프로그램이란 .exe파일 같이 아직 실행되지 않은 명령어 집합체를 말한다. 1. 프로세스 문맥(Process Context) 여러 프로세스가 타...
가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 키-값 저장소는 키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스다. 여기에 저장되는 값은 이를 식별할 수 있는 고유한 키를 가져야하고, 이러한 연결 관계를 키-값 쌍(pair)이라고 한다. put(key,value): 키-값 쌍을 저장소에 저장한다. ge...
가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 요청 또는 데이터를 서버에 균등하게 나누는 것이 중요하다. 안정 해시는 이 목표를 달성하기 위해 보편적으로 사용하는 기술이다. ✏️ 해시 키 재비치(rehash) 문제 보편적으로 해시 함수는 다음과 같이 사용한다. serverIndex = hash(key) % N(서...
개요 자바 11버전부터는 LTS(Long-Term Support)개념이 들어간다. 일반적인 소프트웨어는 새로운 버전이 출시될 때마다 이전 버전에 대한 업데이트를 중지하는데, LTS는 긴 기간 동안 지속적인 지원을 받을 수 있기 때문에, 기업이나 조직 등에서 사용하여 안정성을 어느정도 보장받을 수 있다. ✏️1. Local-Variable Synt...
가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 이 장에서는 클라이언트가 보내는 트래픽을 제한하는 방법을 설명한다. 클라이언트의 요청 횟수를 제한하는것이 대표적이며, 처리율을 제한함으로써 얻는 이점은 다음과 같은게 있다. Dos(Denial of Service) 공격에 의한 자원고갈을 방지할 수 있다. 비용...
가상 면접 사례로 배우는 대규모 시스템 설계 기초 책 정리 글입니다. 개요 시스템 설계 면접은 두 명의 동료가 모호한 문제를 풀기 위해 협력하여 해결책을 찾아가는 과정이다. 때문에 정답도 없고 결과도 없다. 설계과정에서 내린 결정에 대해 방어하는 능력을 보는 과정이고, 면접관의 피드백을 건설적인 방향으로 처리할 자질이 있음을 보는 면접이다. 시...