HOME
![[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 6장 : 키-값 저장소 설계](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUAmeZ%2FbtsLDN1NWvT%2FvD9EK0nLkTdRcYJWBk8PKK%2Fimg.png)
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 6장 : 키-값 저장소 설계
키-값 저장소(key-value store)는 비 관계형 데이터베이스이다. 이 저장소에 저장되는 값은 고유 식별자를 키로 가져야한다.키-값 쌍에서 키는 유일해야 하며 키에 매달린 값은 키를 통해서만 접근할 수 있다.아마존 다이나모memcachedRedis CAP 정리분산 시스템을 설계할 때는 CAP 정리(Consistency, Availability, Partition Tolerance theorem)를 이해하고 있어야 한다.CAP 정리는 데이터 일관성(Consistency), 가용성(Availability), 파티션 감내(Partition Tolerance)라는 세 가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다는 정리다.데이터 일관성 : 분산 시스템에 접속하는 모든 클라이언트는..
![[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 7장 : 분산 시스템을 위한 유일 ID 생성기 설계](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvSoMQ%2FbtsKLhjbOUE%2FFfd0DZdcXJcWTfdkBTmlZK%2Fimg.png)
[가상 면접 사례로 배우는 대규모 시스템 설계 기초] 7장 : 분산 시스템을 위한 유일 ID 생성기 설계
분산 환경에서 데이터베이스 서버 한 대로는 요구사항을 감당할 수 없을 뿐더러, 여러 데이터베이스 서버를 쓰는 경우에는 지연 시간을 낮추기가 힘들것이다.분산 시스템에서 유일성이 보장되는 ID를 만드는 방법은 아래와 같다.다중 마스터 복제(multi-master replication)데이터베이스의 auto_increment 기능을 활용한다.다음 ID의 값을 구할 때 1씩 증가시키는 것이 아니라, 데이터베이스 서버의 수(k)만큼 증가시킨다.단점여러 데이터 센터에 걸쳐 규모를 늘리기 어렵다.ID의 유일성은 보장되겠지만 그 값이 시간 흐름에 맞추어 커지도록 보장할 수는 없다.→ 로드밸런싱 로직에 따라 하나의 데이터베이스 서버에서 ID를 연속해서 생성하면, 이후 다른 서버에서 생성한 ID는 앞서 생성한 ID..

CAP 정리와 PACELC 정리
CAP 정리란? CAP 정리(브루어의 정리)는 아래 세 가지 조건을 모두 만족하는 분산 컴퓨터 시스템이 존재하지 않음을 증명한 정리이다. 일관성 (Consistency) 가용성 (Availability) 분할 내성 (Partition tolerance) 각 조건의 상세한 내용은 다음과 같다. 일관성 (Consistency) 모든 노드가 같은 순간에 같은 데이터를 볼 수 있어야 한다. 가용성 (Availability) 하나 이상의 노드가 작동 중지된 경우에도 데이터를 요청하는 클라이언트가 응답을 받을 수 있어야 한다. 분할 내성 (Partition tolerance) 메시지 전달이 실패하는 시스템 일부가 망가져도 시스템이 계속 동작해야한다. 노드 간의 통신 장애가 발생하더라도 동작해야한다. = 두 개의 노..

2022년 🐟🏃🏻♂️(회고라는 뜻ㅎ)
다사다난했던 2022년도 오늘을 마지막으로 끝난다. 작년만 하더라도 올해는 그냥저냥 지나가는 한 해가 될 줄 알았는데, 이렇게 많은 일들이 벌어질 지 몰랐다. 나름의 위기와 역경이 많이 있었고 잘 극복해냈던 해라고 말 할 수 있을 것 같다. 오늘은 2022년의 마지막을 맞이하며 올 한해를 되돌아보는 회고를 해보려고 한다. 이전까지는 자주 듣는 플레이리스트를 첨부했지만, 올해는 유튜브에서 봤던 가장 인상깊었던 영상을 첨부하려고한다. 나를 온 세상이 억까할때, 어떻게 극복을 해야하는지에 대해 우왁굳이라는 유튜버가 조언을 해주는 영상인데, 내용이 상당히 인상적이어서 개인적으로 유튜브 재생목록에 추가해둔 영상이다. 근데 중요한 거는 그런거잖아요. 그 노부부는 당나귀랑 같이 집에 무사히 잘 가는게 목표인거에요. ..
![[Jenkins] CentOS6에서 nvm 사용 시 node-error가 발생할 때](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAHcZ1%2FbtrUbrWNgvV%2FBlh1GeQnQos738B5XKyUnK%2Fimg.png)
[Jenkins] CentOS6에서 nvm 사용 시 node-error가 발생할 때
많은 서비스에서 CI/CD(Continuous Integration/Continuous Delivery, 지속적 통합/지속적 제공) 도구로 Jenkins를 사용합니다. 그중에서도 npm을 통해 의존성 패키지를 관리하는 프로젝트를 빌드하고 배포하는 경우가 있는데요, NVM(Node Version Manager)이라는 도구를 사용해 각 파이프라인별로 Node.js의 버전을 다르게 사용할 수 있습니다. 이번 포스팅에서는 그동안 잘 되고 있던 파이프라인에서 갑자기 발생한 node-error 오류와 그 오류를 해결하는 과정을 공유하고자 합니다. (문제가 발생하기 전 마지막 빌드가 반년 전인건 비밀...) 환경 🖥️ OS : CentOS 6.8 Jenkins 2.263.3 nvm-wrapper 0.1.7 npm을 ..

NHN FORWARD 22 발표 후기
어쩌다 발표를 하게 되었을까 지금 다니는 회사에서는 매년 NHN FORWARD라는 기술 컨퍼런스를 개최하고 있습니다. 작년에는 행사 사이트를 개발하는 스태프로 참여했었는데, 행사를 준비하면서 저도 언젠가는 발표자로 참여하고 싶다는 생각을 했었습니다. 그리고 그 생각을 까맣게 잊은채 8월이 되었고, 사내 시스템에 발표자를 모집하는 공지가 올라왔습니다. 업무가 바빠 공지를 제대로 확인도 못하고 일하고 있는 그때, 팀장님께서 DM을 주셨습니다. 🧑🏻 : 전에 하시던 데이터 수집. 정리해서 발표해보시는 게 어때요? 👶🏻 : 헉;; 막연히 언젠가 발표를 해보고 싶다는 마음은 있었지만, 쉽게 결정할 수는 없었습니다. 발표할만한 소재인지 확신이 없었고, 잘 해낼 자신도 없었거든요. 게다가 재작년, 작년과 달리 올해는..