Show
이 포스트는 제가 다년간 자바스크립트를 설렁 설렁 공부하다 작년 1년동안 빡시게 공부해온 경험을 토대로 작성한 글입니다. 목차
들어가기에 앞서먼저 들입다 자바스크립트 공부를 하지 말고 아래 내가 열거한 사항들을 먼저 보고 공부를 해보자. 역사를 먼저 알아보자해당 프로그래밍 언어가 어떤 문제를 해결하기 위해 나왔는지 등등에 대해 파악을 하게 되면 좀 더 해당 언어를 잘 쓸 수 있게 된다. 자바스크립트는 자바가 아니다가끔 보면 자바스크립트 커뮤니티에 자바 질문을 올리는 사람들이 있다.
따라서 자바스크립트는 자바와 직접적인 연관 관계가 커서 그렇게 이름이 붙은 게 아니라 자바의 인기에 탑승하려는 노이즈마케팅 전략을 사용한 게 아닐까 싶다. HTML, CSS의 연장선 상으로 자바스크립트를 바라보지 말자많은 사람들이 HTML, CSS를 배우고 그 이후에 홈페이지를 동적으로 제어할 목적으로 자바스크립트를 배운다. JS를 브라우저와 떼놓고 생각하자브라우저에서 제공하는 JS는 크게 세 파트로 나눌 수가 있다.
오잉? 브라우저에서 제공하는 JS? 그럼 다른 곳에서도 JS를 쓸 수 있단 말인가?
따라서 우리는 먼저 ES를 마스터해야한다. 자바스크립트를 브라우저와 절친 먹여놓고 공부하기 시작하다보면 다음과 같은 함정에 빠지게 된다.
사람들이 입력이라고 하면 어느 정도는 함수의 매개변수로 이해를 하는 경향이 있다.(일부는 prompt 함수로 입력받는다.) JS는 더이상 Toy Language(장난감 가지고 놀듯 쉽고 깊이 없이 배워도 되는 언어)가 아니다.과거에 어쨌든 간에 현재 자바스크립트는 계속해서 새로운 스펙이 나오고 이제 어엿한 프로그래밍 언어의 반열에 올랐다고 할 수 있다. 어떻게 공부해야할까?아직 들어가기에 앞서를 보지 않았다면 꼭 보고 오자. 1. 잘 만들어졌다고 알려진 언어들을 먼저 공부하자사람은 아는만큼 보인다. 1-1. 그게 싫다면 쉽게 쉽게 쓰여진 책을 먼저 읽자나는 시간이 별로 없거니와 C언어와 Java는 너무 어렵다(알레르기가 있다)고 생각되는 사람들은 사람들이 말하는 잘 쓰여진 책들 말고 서점에 가서 자신의 눈으로 직접 보고 이해할만한 수준의 책을 골라보자. 2. 소문난 책들을 위주로 읽자, 단 jQuery 빼고여기서 말하는 소문난 책(내 기준)은 다음과 같다.
코뿔소 책이나
노란책도 유명하다고들 하나 솔직히 1독이라도 끝낸 사람이 얼마나 될까 싶을 정도라서 그닥 추천하지 않았다. 여기서 jQuery를 뺀 이유는 적어도 ES5까지는 알고 나서 제이쿼리를 접하는 걸 추천한다.
2-1. MDN, Stackoverflow와 친해지자
2-2. ES5를 끝내고 ES2015+를 할 필요가 없다웹 에이전시나 쇼핑몰 등등에 근무하는 사람들은 ES5까지(2-1 챕터)까지만 공부하셔도 업무를 보는데는 크게 지장이 없을 것이다.
이 외에도 다른 문제점들이 존재하겠지만 당장 떠오르는 것은 이게 끝이다. 해당 챕터부터는 스타트업이나 자사 서비스/대규모 앱을 JS로 개발하는 환경에 종사하는 사람들이라면 반드시 거쳐야하는 과정일 것이다. 과거 나도 ‘ES5를 끝내고 ES2015+를 공부해야하지 않나?’라는 생각 때문에 반년동안 ES5에만 목을 메달다가 어느 스터디에서 ES6(ES2015)와 ES5를 간단하게 비교해주는 내용을 들었는데 정말 혁명이었고 별 거 없었다. 3. NPM과 Babel을 배우자.우선 ES2015+의 코드를 브라우저에서 100% 지원해주지 않는다.
4. ES2015+가 익숙해졌다면 Typescript를 공부해보자ES2015+가 아무리 좋아졌다고 하더라도 다음과 같은 걸 해결하지 못했다.
나도 타입스크립트는 잘 모르기 때문에 1번을 토대로 장점을 설명해보겠다.
하지만 장점이 있으면 단점이 있듯, 내 기준에서 단점을 서술해보겠다.
번외편해당 파트는 자바스크립트와 직접적으로 관련이 있다고는 말할 수 없다. 1. 코드 검사 도구를 사용하자.코드를 짤 때 항상 일관성 있게 짜야한다. 2. Task Runner를 배우자기존의 자바스크립트 소스 코드를 개발하던 방식에는 다음과 같은 문제가 존재한다.
이런 작업을 하는 방법은 여러 가지가 있는데 UglifyJS를 이용하는 것이 가장 간단하다. 3. Module Bundler를 배우자.자바스크립트에서 스코프는 함수 단위(const와 let은 블록 단위)이고, 모듈이란 게 존재하지 않았다. 시간이 흘러 Node.js 진영에서는
CommonJS 스펙을 준수해서 모듈화를 구현하였다. 하지만 ES2015에 들어와서 Module을 언어단에서 지원해주는 import와 export 문법이 존재한다.
원래 Module Bundler 성격은 모듈과 관련된 것만 다루는 것이었는데 이제는 Task Runner의 기능까지 삼켜서 minify, uglify 등등의 기능까지 흡수를 해서 어지간하면 Module Bundler만 사용해도 될 정도이다. 4. TDD를 공부하자.TDD(Test Driven Development)는 다음과 같은 개발 행위를 말한다.
이를 통해 얻을 수 있는 장점은 다음과 같다.
TDD는 아니더라도 앱의 코드를 먼저 짜더라도 테스트 코드는 반드시 짜는 습관을 들이자.(나부터라도…)
이 TDD를 도와주는 프레임워크로는 jasmine,
mocha, chai 등등이 있다. 마치며내가 컴공을 전공하다 보니 비전공자나 입문자에게는 다소 딱딱하게 들리거나 어렵게 들린 내용이 많을 것이다. |