자바스크립트 교과서 - 1. 자바스크립트의 특징

Seoyong Lee·2023년 10월 1일
0

개발 공부

목록 보기
3/21
post-thumbnail

다음 책들과 MDN의 내용을 모아 자바스크립트 핵심 위주로 정리해 보았습니다. 여러 권의 책을 한 글로 훑어볼 수 있도록 최대한 간결하게 정리하겠습니다.

  • 모던 자바스크립트 Deep Dive - 이웅모
  • You Don’t Know JS - Kyle Simson
  • 자바스크립트는 왜 그 모양일까?(How JavaScript Works) - Douglas Crockford
  • 자바스크립트 완벽 가이드(JavaScript: The Definitive Guide 7/E) - David Flanagan

자바스크립트의 특징

이미 다른 프로그래밍 언어에 익숙하다면, 자바스크립트가 객체 지향, 함수형 프로그래밍 스타일에 적합한 고수준의 동적인 인터프리터 언어라는 사실을 아는 것이 도움될 것입니다.

데이비드 플래너건 , 『자바스크립트 완벽 가이드』, 인사이트(2022), p1.

  • 자바스크립트는 동적인 인터프리터 언어로 별도의 컴파일이 불필요하며 웹 브라우저에서 실행되는 프로그래밍 언어이다.
  • 자바스크립트는 처음 접하면 자바와 많이 오해하지만 거의 관련이 없는 별개의 언어이다.

자바스크립트 변수에는 타입이 없습니다. 이런 문법은 어느 정도 자바에서 차용한 것이 맞지만, 이를 제외하면 두 언어 사이에는 별 관련이 없습니다. 자바스크립트의 일급 함수라는 개념은 스킴(Scheme)에서 가져왔고, 프로토타입에 기반한 상속은 유명하지 않은 언어 셀프(Self)에서 가져왔습니다. 하지만 자바스크립트를 배우기 위해 이 두 언어를 알아야 하는 것은 아니며, 이 용어에 익숙할 필요도 없습니다.

데이비드 플래너건 , 『자바스크립트 완벽 가이드』, 인사이트(2022), p1.


자바스크립트 디스전

프로그래밍 언어를 설계할 때 가장 중요한 목적은 그 언어가 분명하고 논리적이어서 구성이 잘 되고, 이상한 코너 케이스(corner case)가 없어야 한다는 것입니다. 자바스크립트는 이 목적에 잘 부합하는 언어는 아닙니다. 오히려 새로운 버전이 나올 때마다 쓸데없는 기능을 추가하느라 점점 더 그 목적에서 멀어지고 있습니다.

더글러스 크락포드 , 『자바스크립트는 왜 그 모양일까?』, 인사이트(2020), p2.

  • 자바스크립트 관련 책의 저자들도 자바스크립트는 그리 완벽한 언어가 아니라고 주장한다. 그렇다면 과연 이런 언어를 사용하는 사람들은 어떤 문제를 겪고 있을까?

자바스크립트는 처음 시작하고 실행하기에는 가장 쉬운 언어지만, 독특한 기벽 탓에 다른 언어들에 비해 언어 자체를 완전히 익히고 섭렵한 달인은 찾아보기 매우 드문 편이다. …그러나 간단하고 쓰기 쉬운 언어일수록 여러 가지 의미와 복잡하고 세밀한 다양한 기법들이 결집되어 있기 때문에 꼼꼼하게 학습하지 않으면 제아무리 노련한 개발자라 할지라도 올바르게 이해하지 못한다. 이것이 바로 자바스크립트의 역설이자 아킬레스건이며, 이 책을 읽고 여러분이 넘어야 할 산이다. 다 알지 못해도 사용하는 데 문제가 없다 보니 끝내 자바스크립트를 제대로 이해하지 못하고 넘어가는 경우가 비일비재하다.

카일 심슨 , 『You Don’t Know JS - 타입과 문법, 스코프와 클로저』, 한빛미디어(2017), p12-13.

자바스크립트는 과도하다고 느껴질 만큼 친절한 프로그래밍 언어입니다. 웬만해서는 에러 없이 실행되며, 작은 실수는 알아서 대응해 주는 등, 되도록 손이 덜 가게끔 설계되어 있습니다. …이러한 자바스크립트의 특징은 편리한 경우도 있지만 내부 동작을 이해하기 어렵게 만들기도 합니다. 이는 자바스크립트의 탄생 목적이 일반적인 프로그래밍 언어와 다르기 때문입니다. …자바스크립트는 웹페이지의 단순한 보조 기능을 처리하기 위한 제한적인 용도를 목적으로 태어났습니다. 하지만 자바스크립트는 더 이상 제한적인 용도의 프로그래밍 언어가 아닙니다.

이웅모 , 『모던 자바스크립트 Deep Dive』, 위키북스(2020), pⅣ

  • 자바스크립트는 태초에 웹의 간단한 기능을 처리하기 위해 탄생하였으며 이러한 특징 때문에 진입 장벽이 낮지만 제대로 익히기는 쉽지 않은 언어로 평가받는다.
  • jQuery의 보급으로 웹 개발자들이 제대로 공부하지 않고 여기저기서 코드 조각들을 가져와 개발하려는 경향이 생겼지만 실제로 해당 툴킷을 개발한 개발자는 기본기가 탄탄한 상태에서 세심하게 로직을 구현했기에 널리 사용되는 도구를 개발할 수 있었다. (David Walsh - 모질라 수석 웹 개발자)
  • 리액트를 주로 사용하는 최근 프론트엔드 상황도 위 jQuery 시절과 크게 다르지 않아 보인다. 자바스크립트를 제대로 이해하기 전에 리액트부터 가르치는 부트캠프 과정에서 배출된 주니어 개발자들이 실제로 리액트와 비슷하거나 더 나은 무언가를 개발할 수 있을까?

다음 글에서는 자바스크립트의 어휘 구조에 대해 다루어 볼 예정입니다.


References

데이비드 플래너건 , 『자바스크립트 완벽 가이드』, 인사이트(2022)
더글러스 크락포드 , 『자바스크립트는 왜 그 모양일까?』, 인사이트(2020)
카일 심슨 , 『You Don’t Know JS - 타입과 문법, 스코프와 클로저』, 한빛미디어(2017)
이웅모 , 『모던 자바스크립트 Deep Dive』, 위키북스(2020)

0개의 댓글