자바스크립트 프로토타입 공부하기 싫은 사람 모여라
프로토타입을 왜 알아야 하는지 알아봐요

지긋지긋한 객체 지향... 자바스크립트 개발자들은 프로토타입에 대해 왠지 모를 거리감을 갖게 됩니다. 저 또한 그 중 한 명인데요, 스스로를 설득하기 위해 프로토타입을 왜 알아야 하는지 간단하게 정리해봤습니다.
자바스크립트 내부 동작을 이해하는 데 도움되요
JS는 원시값을 제외한 거의 모든 것이 객체입니다. 객체 기반 언어이기 때문입니다. 이러한 객체들은 프로토타입을 통해 메서드와 속성을 상속 받습니다. 객체들의 뼈대가 프로토타입인 셈이지요. 표준 빌트인(String, Regex 등등) 및 호스트 빌트인(fetch 등등) 객체들부터 각종 프레임워크(React, Vue 등등)와 패키지(dayjs, jest 등등)들도 프로토타입 기반 객체로 제공됩니다. 이러한 이유 때문에 내부 동작을 이해하기 위해서 프로토타입에 대한 이해가 선행되는게 도움 된다고 말씀드릴 수 있겠습니다.
JS가 동적 언어일 수 있는 이유입니다
JS는 프로토타입 기반 객체의 속성이나 메서드를 런타임에 동적으로 추가하거나 변경할 수 있습니다. 이러한 동적 특성을 이해하려면 프로토타입에 대한 이해가 있으면 좋습니다.
성능에 민감한 어플리케이션 개발을 할 때 도움 될 수 있어요
객체에서 속성이나 메서드를 찾을 때, 자바스크립트는 해당 객체의 프로토타입, 그리고 그 프로토타입의 프로토타입을 차례로 검색하는 프로토타입 체인을 사용합니다. 프로토타입 체인을 통한 속성 검색은 성능에 영향을 줄 수 있으므로, 이를 이해하고 코드를 작성하면 성능에 도움이 될 수 있습니다.
마치며
프로토타입에 대해 깊이 이해하고 있으면 더 나은 설계 결정을 내리고, 자바스크립트의 기능을 최대한 활용하는 데 도움이 될 거에요.
제 글이 프로토타입 공부에 대한 거리감을 조금이나마 가깝게 해줬기를 바랍니다.
이제 프로토타입 공부를 시작하면 어떨까요?



![[기술회고] NavLink 스타일링 버그 수정기](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1762334499649%2F85008179-539c-400f-8862-c1648097fd07.png&w=3840&q=75)