분산 시스템 일관성 한판정리
2024. 11. 8. 11:56
Others
분산환경 시스템을 학습하다 보면 linearizability, causal consistency, total ordering, atomic broadcast 등 비슷하면서도 다른 개념들로 인해 분산 시스템에서의 일관성을 이해하는데 종종 어려움을 겪고는 했습니다. 이번 포스팅을 통하여 위 개념들이 무엇을 의미하고 그리고 어떻게 다른지 살펴보도록 하겠습니다. Linearizable(Strong Consistency, Atomic Consistency) Linearizable 한 시스템은 분산 환경에서 발생한 모든 이벤트를 발생한 절대적인 시간 기준으로 순서(global order)를 매길 수 있습니다. Linearizable 한 시스템에서 발생한 모든 이벤트는 단일 프로세스에서 이벤트를 순차적으로 발생시..
성급하게 시스템을 최적화하는 당신을 위한 글
2024. 10. 18. 18:00
Others
제가 개발 중인 랭킹 시스템은 유저가 앱에 접속했을 때 처음 바라보는 화면이기 때문에 높은 TPS를 견딜 수 있어야 합니다. 또한 장 시간에 따라(증권사앱) TPS가 들쭉날쭉해서... 급격하게 증가하는 TPS도 견딜 수 있어야 해서 다양한 최적화 전략을 사용하고 있습니다. 하지만 기존에 사용하던 최적화 방법으로는 랭킹에 신규 기능을 추가하는 게 불가능했습니다(왜 그런지는 뒤에서 설명하겠습니다). 또한 기존의 최적화 방법이 전혀 도움 되지 않았을뿐더러, 불필요한 TPS를 생성하는, 즉 self DDOS를 유발하고 있었음을 알게 되었습니다. 기존 랭킹 시스템랭킹 시스템은 아래와 같은 요구사항을 만족해야 합니다. 장 시간에 따라 다르지만 최대 4000 TPS 유저가 처음 보는 화면이기 때문에 짧은 laten..
터미널 로딩 속도 개선하기
2024. 7. 6. 16:07
Others
최근에 생산성 향상에 도움 되는 툴을 이것저것 만지면서 익숙해지고 있는 와중에 사용 중인 zsh 터미널이 느려지는 게 체감되기 시작했습니다. 작업을 하는 도중 "터미널을 켜야겠네"라는 생각이 들면 무의식적으로 귀찮다는 생각이 들 정도였기에, 이는 해결해야 하는 문제가 됐음이 분명했습니다. 터미널 속도를 향상하는 방법과 관련하여 훌륭한 포스팅을 찾았고, 해당 포스팅의 내용을 적용해서 터미널 로딩 속도를 개선했던 과정을 공유드리고자 포스팅을 작성합니다. 느린 지점 파악하기 zsh는 plugin을 설치함으로써 다양한 기능을 활용할 수 있습니다. 초기에 의심했던 부분은 설치된 plugin을 로드하는 부분에서 느리지 않을까 하는 생각이었습니다. 그래서 각각의 plugin을 로드하는 시간을 확인하기 위해 "~/...
소프트웨어 개발과 인지 편향 현상(Cognitive Bias)
2023. 10. 7. 17:48
Others
평소처럼 유튜브를 시청하던 중 인간의 인지 편향에 대한 흥미로운 영상을 발견했습니다. 인간이 저지르기 쉬운 인지 편향에 관련된 내용인데, 이러한 편향은 소프트웨어 업계에도 만연해있기 때문에 예시와 함께 고민해 보면 좋은 주제라 생각하여 포스팅을 작성하게 됐습니다. 인지 편향 현상을 소개한 영상 기준점 편향(Anchoring Bias) 기준점 편향은 처음 제공된 정보를 의사 결정의 기준점(anchor)으로 삼아 지나치게 의존할 때 발생하는 현상입니다. 예를 들어 우리가 어떤 지역의 월세방을 구한다 했을 때 처음 확인한 월세방이 "보증금/월세"가 3000/60이라고 가정해 보겠습니다. 그다음으로 확인한 웰셋방의 "보증금/월세"가 2000/50이라고 가정했을 때 여러분은 어떻게 느끼시나요? 대부분의 사람들은 ..