대규모 JavaScript 애플리케이션 설계 및 엔지니어 성장
Source
Evernote/Inbox/Designing very large (JavaScript) applications – Malte Ubl – Medium.md
Summary
구글에서 Photos, Drive 등 대규모 서비스용 비공개 JS 프레임워크를 개발했던 Malte Ubl의 JSConf Australia 강연 요약입니다. 대규모 애플리케이션 설계 시 고려해야 할 핵심은 기술적 복잡성뿐만 아니라 다수의 개발자, 인간적 관계, 그리고 지식의 단절(컨텍스트 부재)을 관리하는 것입니다. 또한 시니어 엔지니어의 다음 단계로 ‘내가 문제를 해결하는 방법’을 아는 것을 넘어, ‘다른 사람들이 문제를 어떻게 해결할지 예측하는 능력(API 및 추상화가 다른 개발자의 코드에 미치는 영향에 대한 공감)‘을 제안합니다.
Key Points
- 대규모 애플리케이션은 많은 개발자와 인간적 요소, 그리고 유지보수자의 컨텍스트 부재를 고려해야 함
- 시니어 엔지니어는 문제를 해결하고 가르칠 수 있어야 하며, 그 다음 단계는 다른 개발자의 사고방식을 예측하는 것
- API 선택과 추상화가 다른 개발자의 문제 해결 방식에 미치는 영향을 예측하는 것이 고수준 설계의 핵심
- 이러한 능력은 다른 소프트웨어 엔지니어를 위한 ‘공감(Empathy)‘의 적용으로 정의됨