caffeine-library / system-design-interview

🌱 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 읽는 스터디
4 stars 0 forks source link

[additional] 확장성(Scalability)과 확장성(Extensibility) 차이 #27

Closed JasonYoo1995 closed 2 years ago

JasonYoo1995 commented 2 years ago

연관 챕터

25

조사 내용

system-design-interview 책 144쪽에 확장성(Extensibility) 이라는 용어가 나옵니다. 안 그래도 저는 지금까지 확장성이라는 용어가 너무 헷갈렸습니다. 왜냐하면 분산 시스템에서는 Horizontal Scaling 따위가 확장성(Scalability) 이라는 뜻으로 쓰이고 '객체 지향 설계' 혹은 '시스템 아키텍처 설계'를 할 때 유지 보수성(Maintainability)과 확장성(Extensibility) 이 좋은 유연한 설계를 하는 것이 중요하다고 할 때는 또 다른 의미로 쓰이기 때문입니다.

그런데 알고 보니, 영어로는 Scalability와 Extensibility로써 완전히 다른 단어로 명확히 구분이 되더군요. 한글로 번역할 때는, 둘 다 일반적으로 '확장성'이라는 단어로 가장 많이 해석되는 것 같습니다.

그러나 실무 현장에서 의사소통 시 일반적으로 많이 쓰이는 단어는 '확장성'인 것 같고 따라서 문맥에 따라 올바르게 해석할 필요가 있을 것 같습니다.

다시 한 번 정리하자면, Scalability는 '유저 수나 요청 수가 늘어나도 시스템이 그에 맞는 성능을 발휘하는 능력'으로, Scale Out 등을 통해 실현할 수 있고 Extensibility는 '새로운 기능을 추가하기 용이한 정도'라고 할 수 있겠습니다.

@caffeine-library/readers-system-design-interview