본문 바로가기
개발새발/알고리즘

[알고리즘] 시스템 설계 인터뷰 전에 알아둬야 할 알고리즘

by yonikim 2022. 8. 18.
728x90

나에게 알고리즘은 그저 이직을 준비할 때마다 잠깐잠깐씩 공부하는 것 중 하나였다. 이직에 성공하면 다시 거들떠도 안보는...

연차가 쌓이며, 탄탄한 CS(Computer Science) 지식이 얼마나 중요한지 뼈저리게 깨닫고 있다.

 

인터뷰를 앞둔 사람 뿐만 아니라 Software Engineer 라면 알아두는게 좋은 알고리즘을 살펴보자. 

나는 이 중에 1/3 도 모르는듯 하다. 열심히 공부하자 요니...☆

알고리즘 중요도 사용되는 예시 참고 사이트
Geohash ⭐️⭐️⭐️⭐️⭐️ 위치기반 서비스 https://www.pubnub.com/learn/glossary/what-is-geohashing/
Quadtree ⭐️⭐️⭐️⭐️⭐️ 위치기반 서비스 https://engblog.yext.com/post/geolocation-caching
Consistent Hashing ⭐️⭐️⭐️⭐️⭐️ 서비스 클러스터 안에서 로드밸런싱 https://www.toptal.com/big-data/consistent-hashing
Leaky Bucket ⭐️⭐️⭐️⭐️⭐️ Rate Limiter https://www.quora.com/What-is-the-difference-between-token-bucket-and-leaky-bucket-algorithms
Token Bucket ⭐️⭐️⭐️⭐️⭐️ Rate Limiter
Trie ⭐️⭐️⭐️⭐️⭐️ 검색 자동 완성 https://en.wikipedia.org/wiki/Trie
Rsync ⭐️⭐️⭐️ 파일 전송 https://rsync.samba.org/tech_report/
Raft ⭐️⭐️⭐️ 합의 알고리즘(Consensus Algorithm) https://raft.github.io/
Paxos ⭐️⭐️⭐️ 합의 알고리즘(Consensus Algorithm) https://martinfowler.com/articles/patterns-of-distributed-systems/paxos.html
Bloomfilter ⭐️⭐️⭐️ 비싼 룩업 제거 https://www.linkedin.com/posts/alex-xu-a8131b11_systemdesign-coding-interviewtips-activity-6917494340315463680-O0sG/
Mekle Tree ⭐️⭐️⭐️ 노드간 불일치 식별 https://en.wikipedia.org/wiki/Merkle_tree
HyperLogLog ⭐️ 유니크한 값 빠르게 세기 https://engineering.fb.com/2018/12/13/data-infrastructure/hyperloglog/
Count-min Sketch ⭐️ 아이템 빈도 추정 https://florian.github.io/count-min-sketch/
Hierarchical Timing Wheels ⭐️ 잡 스케쥴러 https://www.cse.wustl.edu/~cdgill/courses/cs6874/TimingWheels.ppt
Operational Transformation ⭐️ 협업 편집 https://en.wikipedia.org/wiki/Operational_transformation

 

 

 

References

https://blog.bytebytego.com/p/algorithms-you-should-know-before

728x90

'개발새발 > 알고리즘' 카테고리의 다른 글

[정렬] 팀소트(Timsort)  (0) 2021.09.29