개발공부/원티드 챌린지 정리 (11) 썸네일형 리스트형 7월 백엔드 챌린지 3. 사용자 수에 따른 규모를 확장하는 방법 2 1) 메세지 큐 메세지 큐에 일단 보관한 메시지는 소비자가 꺼낼 때까지 안전하게 보관할 수 있다 장점 : 서비스 또는 서버 간 결합이 느슨해져, 규모 확장성이 보장되어 안정적인 애플리케이션을 구성할 수 있다. 생산자는 소비자의 프로세스가 다운되어도 메시지를 발행할 수 있고, 그 반대도 가능하다 사용 사례 알림 푸시 발송, 이메일 발송, 이미지 보정 등 시간이 오래 걸릴 수 있는 프로세스를 비동기로 처리한다 이벤트 큐 : 메시지 큐와 다르게 한 번 읽은 데이터는 즉시 삭제되지 않는다 오늘날의 애플리케이션은 이벤트 기반 MSA를 구현할 뗴 이벤트 큐를 많이 활용한다 특징 : 단일 진실 공급원, 장애가 일어난 시점부터 재처리 가능, 많은 양의 실시간 데이터를 효율적으로 처리 가능 https://www.yout.. 7월 백엔드 챌린지 2. 사용자 수에 따른 규모를 확장하는 방법 1) 데이터베이스 다중화 (1) 목적 대부분의 애플리케이션은 읽기 연산의 비중이 쓰기 연산보다 훨씬 높다. 따라서 더 나은 성능을 위해 데이터 변경은 주 데이터베이스에서, 읽기 연산은 서브 데이터베이스로 분산한다 -> 주 데이터베이스 : 쓰기 연산(INSERT, UPDATE, DELETE)/ 서브 데이터베이스 : 주 DB에서 사본 전달받음, 읽기 연산(SELECT) (2) 스프링에서.. spring: datasource: url: jdbc:mysql://127.0.0.1:3306/kotlin_spring?serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 1234 하나의 데이터소스를 사용할 경우 ya.. 7월 백엔드 챌린지 1. 기술 면접에서 시스템 설계 문제가 가지는 의미 1. 시스템 설계 문제란? 1) 무엇을 원하는가? - 기술 면접에서 구직자에게 주어진 문제를 어떻게 해결할 것인지 문제 해결 능력을 파악하기 위해 출제한다 - 정답은 없고 설계 기술을 면접관들에게 보여주면 된다 - 협력할 수 있는 지, 압박을 잘 견뎌낼 수 있는 지를 판단하기 위해 2) 피해야 하는 점 : 비용을 고려하지 않은 오버 엔지니어링 2. 효과적 면접을 위한 4단계 접근법 1) 문제 이해 및 설계 범위 확정 - 바로 답만 얘기하지 말자 - 깊이 생각하고 질문해 요구사항과 가정을 분명히 하기 - 올바른 질문하기, 적절한 가정하기, 시스템 구축에 필요한 정보 모으기 ex) 뉴스피드 시스템 설계 - 가장 중요한 기능이 무엇인가? - 정렬 상태는 어떻게 되어야 하는가? - 최대 사용자? 친구 상태? -.. 이전 1 2 다음