1. https://medium.com/@limsungmook/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94-%EC%99%9C-%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EC%9D%84-%EC%84%A0%ED%83%9D%ED%96%88%EC%9D%84%EA%B9%8C-997f985adb42
  2. https://levelup.gitconnected.com/system-design-interview-question-design-spotify-4a8a79697dda

자바스크립트는 왜 프로토타입을 선택했을까?

: 자바스크립트에서 추상형태 명칭을 클래스가 아니라 프로토타입을 선택한 철학적인 논의

프로그래밍의 패러다임은 더욱 높은 추상화를 구현하는 방향으로 발전하고 있습니다. 클래스는 우리가 이제는 자연스럽게 받아들이는 개념이지만, 자바스크립트는 클래스가 아닌 프로토타입이라는 개념을 선택했습니다. 지금은 ES6에 들어오면서 자바스크립트 역시도 클래스를 지원하고 있다고 합니다.

클래스는 플라톤의 이데아의 관점에서 일정하게 변하지 않는 공통적인 특성을 추상화한 것이라면, 프로토타입은 비트겐슈타인의 전형적인 예시 관점을 통해서 사물을 그룹화하는 방식을 추상화한 것입니다. 그리고 이런 근간에 있는 아이디어를 통해 언어가 가지는 특질 전반적인 것이 바뀔 수 있다는 것을 알 수 있습니다.

규모가 크고 오래 지속될 프로젝트일수록 내가 결정한 디자인적인 선택이 어떤 영향을 미칠지에 대해 충분히 고민해야 한다는 것을 알 수 있었던 좋은 글이었습니다. 기회가 된다면 이런 결정적인 디자인적인 선택들에 대한 이야기를 더 접할 수 있었으면 좋겠습니다.


System Design Interview Question: Design Spotify

: 수치적으로 더 큰 규모의 시스템을 설계하는 방법에 대한 논의

이 글은 spotify와 같이 많은 유저가 이용해야하는 시스템을 설계할 때 어떤 부분을 고려해야하는 지에 대해 이야기해줍니다.

만약 50만의 유저와 3000만 곡을 다루는 시스템을 설계한다면 이를 효과적으로 처리하기 위해 웹 서버에 대한 로드 밸런싱, db 설계는 어떻게 해야할 것인가?

더 나아가서 5000만의 유저와 2억개의 곡을 다루는 시스템을 설계한다면 caching과 CDN, db scaling을 어떻게 도입해야할 지에 대한 이야기를 다룹니다.


2024-03-03
다음 글: 3월 1주차 포스트 → 카테고리로 돌아가기 ↩