코딩 테스트 , 개발 책 읽기
2025/05/30
스터디 진행 일시
날짜 : 5월 30일 (금요일)
시간 : 오후 3시 ~ 9시 (6시간)
장소 : 강남 (오프라인)
🔧 금주 스터디 일정
- 개발 책 6장과 7장 읽기
- Echo 프로젝트에 그라파나 연동
- 라이브 코테 진행
📖 개발 책 6장 & 7장
- 6장
- CAP 정리
- CP : 데이터 일관성 (consistency)을 충족하는 시스템
- AP : 가용성 (availability)을 충족하는 시스템
- CAP 한줄로 설명하자면, “지금 조회하려는 데이터가 최신 데이터가 아닐 수 있는데, 이거 받을래(AP) ? 아니면 거절할래(CP) ?”
- 높은 가용성과 안정성을 확보하기 위해서는 데이터 다중화가 중요하다.
- 정족수 합의 (Quorum Consensus) 프로토콜를 사용하면 읽기/쓰기 연산 모두에 일관성을 보장할 수 있다.
- 정족수 합의(Quorum Consensus) 프로토콜은 다수결 원칙처럼 일정 수 이상의 노드가 응답하면 OK! 라고 합의하는 방식을 말한다.
- W(쓰기 작업에 필요한 노드 수) + R(읽기 작업에 필요한 노드 수) > N(복제본의 총 개수)를 만족한다면 일관성이 보장될 수 있다.
- 데이터를 다중화하면 가용성은 높아지지만, 사본 간 일관성이 깨질 가능은 높아진다.
- 버저닝과 벡터시계는 데이터 일관성 문제를 해결할 수 있는 기술이다.
- 가십 프로토콜(Gossip Portocol)은 노드들이 주기적으로 이웃 노드들과 정보를 주고받으며, 시스템 전체에 정보를 점진적으로 전파하는 분산 통신 프로토콜이다.
- 머클 트리(Merkle Tree)는 해시 트리(Hash Tree)라고도 불리며, 각 노드가 자식 노드들의 해시 값을 이용해 만든 해시를 저장하는 구조의 트리다.
- 7장
- auto increment 속성은 분산 환경에서 기본 키로 쓰기엔 문제가 있다.
- 분산 시스템에서 유일성이 보장되는 ID를 만들는 방법은 여러 가지다.
- 다중 마스터 복제 (multi-master-replication)
- UUID
- 티켓 서버
- 트위터 스노플레이크(twitter snowflake) 접근법
💻 라이브 코테
- 문제 : https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/description/
- 제한 시간 내 풀 것.
- 왜 이렇게 풀었는지 설명할 것.
- 공간복잡도와 시간복잡도가 어떤지 설명할 것.