본문 바로가기
코딩 이것저것

[코딩] 자바스크립트 핵심가이드(1)

by 글쓰는 홍차 2020. 5. 2.

아래의 내용은 자바스크립트의 핵심 가이드( 원제: Javascript The Code Good Parts)에서 발췌 & 정리한 내용입니다. 그런데 이 책 꽤나 오래되었다. 2008년도에 나왔네. 곧 요즘 발간한 책을 바탕으로 업데이트가 필요해보인다. 그래서 함수형 프로그래밍과 모던 자바스크립트 입문 책을 샀으니 이 책을 기반으로 필요하다면 내용 업데이트를 하겠다!

 

1장 자바스크립트의 좋은 점들을 요약&정리한 내용이며, (차후에 내가 참고하기 위한 내용이라고 할 수 있음)  

자바스크립트의 좋은 점들 

초보 프로그래머 시절에 필자는 새로운 프로그래밍 언어를 사용할 때 항상 언어의 모든 기능을 다 익혀서 사용하려고 노력했습니다. (중략) 일부 기능은 제대로 정의되지 않은 경우도 있었고, 다른 쪽으로 이식을 할 때 문제를 일으키는 기능들도 있었습니다. (중략) 오랜 프로그래밍 경험으로 언어의 좋은 점만을 사용하고 나쁜 점은 사용을 자제함으로써 좀 더 좋은 프로그래머가 될 수 있다는 것을 알게 되었습니다. 결국 요점은 어떻게 하면 나쁜 점을 피해서 좋은 결과를 얻느냐는 것입니다.  (p.11~12) 

그러나 그렇게 하는 것보다는 프로그래밍 언어별로 가지고 있는 장점을 최대치로 이용하고 나쁜 점은 피해갈 수 있으면 피해 가라고 함. 피하는 것을 굳이 기억할 필요는 없기 때문에 이 책에서는 자바스크립트의 좋은 점만 강조하여 잘 활용할 수 있게 설명하려고 한다고 함(역시 고급 프로그래머의 조언)이므로 열심히 쫓아가 보자 

왜 자바스크립트인가? 

브라우저의 API라고 할 수 있는 DOM(Document Object Model)은 아주 형편없는데 거기에 편승하여 자바스크립트도 부당한 비난을 받고 있습니다. DOM은 어떠한 언어로 다루든지 용이하지 않습니다. DOM은 서툴게 정의됐으며 그에 따라 그 구현도 제 각각입니다.(p.13) 

매우 좋은 아이디어에는 함수, 느슨한 타입 체크, 동적 객체, 표현적인 객체 리터럴 표기법 등이 있스빈다. 그리고 대표할만한 나쁜 아이디어는 프로그래밍 모델이 전연 변수에 기초하고 있다는 것입니다. (p.14) 

자바스크립트의 함수는 어휘적 유효범위를 가진 일급 객체(First-class object)입니다. 또한 주류가 된 첫 번째 람다(lambda) 언어며, 좀 더 깊이 들어가면 이름처럼 자바에 가깝기보다는 Lisp언어 그리고 Scheme이라는 언어와 더 많은 공통점이 있습니다. 자바스크립트는 C의 옷을 입은 Lisp이라고 할 수 있습니다 (p.14) 

자바스크립트는 진짜 이름 때문에 자바와 닮은꼴 아니냐고 많이들 오해하고 있다. 열에 여덟은 오해하는 듯!

장점에 대해서 살펴보자 

  • 느슨한 타입 체크 : 오류 찾기의 어려움보다는 자유로움을 줌
  • 강력한 객체 리터럴 표기법 - JSON에게도 영감을 줌 
  • 프로토타입에 의한 상속(클래스가 필요 없는 객체 시스템이 있어서 특정 객체에 있는 속성을 다른 객체에 직접 상속할 수 있음) 
  • 프로토타입의 특성 
  • 전역 변수에 근간을 두고 있음 (단점) - 완화시킬 수 있는 방법을 소개함 

자바스크립트를 정의하고 있는 표준은 ECMAScript이다.  (이 스펙을 기준으로 Javascript언어를 만듦) - 아래 두 군데 같은 내용이지만 살펴보면 도움이 될 듯 



왜 사용해야 하는가? 

  1. 선택의 여지가 없다 - 모든 브라우저에서 사용할 수 있는 유일한 언어 
  2. 매우 경량화돼 있으며 표현적(expressive)임. 요령을 익히고 나면 함수형 프로그래밍이 재미있어짐(작가분의 말) 

 

 

 

 

 

 

댓글