자바 스크립트 공부 | 자바스크립트 공부 효율적으로 하기 108 개의 베스트 답변

당신은 주제를 찾고 있습니까 “자바 스크립트 공부 – 자바스크립트 공부 효율적으로 하기“? 다음 카테고리의 웹사이트 you.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: you.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 1분코딩 이(가) 작성한 기사에는 조회수 9,844회 및 좋아요 245개 개의 좋아요가 있습니다.

자바 스크립트 공부 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 자바스크립트 공부 효율적으로 하기 – 자바 스크립트 공부 주제에 대한 세부정보를 참조하세요

👇아래 링크에서 1분코딩의 재미있는 온라인 강좌들을 확인해 보세요😄
https://studiomeal.com/product
#자바스크립트 #코딩 #웹디자이너 #웹개발 #웹디자인

자바 스크립트 공부 주제에 대한 자세한 내용은 여기를 참조하세요.

자바스크립트 공부하기 좋은 사이트, 꼭 알아야 할 것들

제가 과거로 다시 돌아가서 프론트엔드 개발자를 준비한다면 다음 사이트들을 눈여겨볼 겁니다. 자바스크립트를 공부하기 위한 웹 사이트. 1. 생활코딩.

+ 여기에 보기

Source: thinkforthink.tistory.com

Date Published: 5/21/2022

View: 8877

자바스크립트 공부 순서 4단계로 정리 – 큐캣의 탐구생활

자바스크립트 공부 순서 · 언어의 특징, 역사, 구조 등의 이론 · 프로그램 설치 등의 환경 설정 · 프로그래밍 기초 문법 · 실제 코드를 사용하는 코딩 실습.

+ 자세한 내용은 여기를 클릭하십시오

Source: cucat.tistory.com

Date Published: 1/29/2021

View: 3607

자바스크립트 학습 방법 | 오늘도 끄적끄적

이 포스트는 제가 다년간 자바스크립트를 설렁 설렁 공부하다 작년 1년동안 빡시게 공부해온 경험을 토대로 작성한 글입니다.따라서 이 글을 읽으시는 …

+ 여기에 자세히 보기

Source: perfectacle.github.io

Date Published: 8/13/2022

View: 3775

[Javascript] Javascript 너무어려워요 & 앞으로 공부방향

강의는 다 들었고, 간단하게 만들고 싶은 것도 생겼지만, 아직 너무 부족하다는 생각이 들었다. 앞서 말했듯이 강의를 듣는 며칠동안 자바스크립트 공부 …

+ 여기에 표시

Source: algoroot.tistory.com

Date Published: 1/22/2021

View: 8633

자바스크립트 공부법을 모르겠어요 ㅜㅜ | 잡코리아 취업톡톡

HTML·퍼블리싱·UI개발 | 제가 요즘 유튜브로 자바스크립트 공부를 하는중인데요 개념같은 설명은 이해했는데 실전때 어떻게 쓰는건지를…

+ 여기에 더 보기

Source: www.jobkorea.co.kr

Date Published: 8/16/2021

View: 1307

자바스크립트 공부 독학 사이트 추천 – 휘: 끝나지 않은 이야기

자바스크립트 학습 플랫폼 · 1. Exlskills 순차적인 흐름을 따라 자바스크립트를 공부할 수 있다. · 2. 생활 코딩 · 3. freeCodeCamp · 4. Udemy · 5. MDN 자바 …

+ 더 읽기

Source: oneroomtable.tistory.com

Date Published: 12/24/2021

View: 5883

모던 JavaScript 튜토리얼

모던 자바스크립트 튜토리얼은 클로저, 문서 객체 모델, 이벤트, 객체 지향 프로그래밍 등의 다양한 주제에 대한 설명과 예시, 과제를 담고 있습니다.

+ 자세한 내용은 여기를 클릭하십시오

Source: ko.javascript.info

Date Published: 9/16/2021

View: 9865

훌륭한 JavaScript 개발자가 되는 법 – 브런치

오래된 책이지만, 여전히 JavaScript 공부를 시작하기에 가장 좋은 책입니다. 자바스크립트 완벽 가이드(원서/번역서는 절판) 또한 반드시 가지고 있어야 …

+ 여기에 보기

Source: brunch.co.kr

Date Published: 6/30/2022

View: 5561

주제와 관련된 이미지 자바 스크립트 공부

주제와 관련된 더 많은 사진을 참조하십시오 자바스크립트 공부 효율적으로 하기. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

자바스크립트 공부 효율적으로 하기
자바스크립트 공부 효율적으로 하기

주제에 대한 기사 평가 자바 스크립트 공부

  • Author: 1분코딩
  • Views: 조회수 9,844회
  • Likes: 좋아요 245개
  • Date Published: 2018. 12. 4.
  • Video Url link: https://www.youtube.com/watch?v=QmoKbE6RPiY

자바스크립트 공부하기 좋은 사이트, 꼭 알아야 할 것들

프론트엔드 개발자가 되기 위해서는 선택의 여지가 없습니다.

무조건 자바스크립트를 마스터해야 합니다.

실무에서 자바스크립트만으로 개발할 일은 거의 없겠지만

단언컨대 자바스크립트를 어설프게 알고서는 React나 Vue를 잘할 수 없습니다.

React

다행히 자바스크립트를 공부할 수 있는 자료들은 많습니다.

굳이 책을 사지 않더라도 웹 상에서 좋은 강의들을 찾아볼 수 있습니다.

제가 과거로 다시 돌아가서 프론트엔드 개발자를 준비한다면 다음 사이트들을 눈여겨볼 겁니다.

자바스크립트를 공부하기 위한 웹 사이트

1. 생활코딩

우리 나라의 개발자라면 누구나 알고 있는 사이트입니다.

처음 시작하는 사람의 눈높이에서 기초부터 차근차근 알려주기 때문에

개발 입문 영상으로 제격입니다.

Web 카테고리에서 HTML, CSS, JavaScript 강의 영상들을 보시길 추천드립니다.

https://opentutorials.org/course/3085

2. Mosh, Udemy

영어가 조금 되는 분들이라면

또는 개발자를 준비하면서 영어도 공부하고 싶다면

이 유튜브 채널도 추천해 드립니다.

사람에 따라 다르겠지만 자막을 열고 영상을 되돌리며 보면

어느 정도 이해할만합니다.

JavaScript Tutorial for Beginners

단순히 쉽게 가르쳐 주는 것을 넘어서 원리까지 명확히 알려주기 때문에 기초를 제대로 잡고 시작할 수 있습니다.

유튜브에는 1시간 정도의 샘플 강의를 공개하고

더 보고 싶다면 아래 홈페이지에 들어가 저렴한 값에 나머지 강의를 들을 수 있습니다.

https://codewithmosh.com/

참고로 udemy에도 좋은 강의가 많습니다.

영어권 강의를 추천드립니다.

글로벌 best라는 이름으로 한글 자막 작업이 된 강의들도 있는데요.

할인할 때 구매하면 커피 3잔 값으로 몇 십시간에 달하는 세계 최고 수준의 강의를 들을 수 있습니다.

(정가에 사면 배 아플 정도로 할인 기간이 자주 있으니 참고하세요.)

https://www.udemy.com/courses/development/web-development/

3. 모던 자바스크립트 튜토리얼

자바스크립트의 정석과도 같은 사이트입니다.

처음부터 이 사이트로 시작하기는 어렵겠지만

자바스크립트가 익숙해지고 나서 한 번은 쭉 정독해 보시길 권합니다.

https://ko.javascript.info/

꼭 알아야 할 것들

이상의 강의들만 참고하더라도 내용 자체는 절대 부족하지 않습니다.

마지막에 소개해드린 모던 자바스크립트 튜토리얼은 정말이지 대박입니다.

그렇다고 시작부터 모든 것을 다 볼 수는 없습니다.

거의 사용하지 않는 기능들까지 공부할 필요는 없죠.

아래 리스트에서 언급한 것 위주로 먼저 공부하시고

나머지는 필요할 때 찾아보는 식으로 접근해 보세요.

이후에 자바스크립트가 어느 정도 익숙해지면 이런 가이드 없이도

어떤 것을 공부해야 하는지 스스로 아시게 될 겁니다.

Check List

1. 변수

– var는 몰라도 된다.

– let과 const를 익힌다.

https://ko.javascript.info/variables

2. 자료형

– string, number, boolean, undefined, null, object

https://ko.javascript.info/types

3. 형 변환

– string과 number를 더하면 string이 된다.

– String(), Number()

https://ko.javascript.info/type-conversions

4. 기본 연산자

– +, -, *, /, %, =

– 일반적인 수학과 달리 변수에 값을 넣을 때 쓰는 = 연산자에 익숙해져야 한다.

https://ko.javascript.info/operators

5. 비교 연산자

– >, <, >=, <=, === - ==은 절대로 사용하지 않는다. https://ko.javascript.info/comparison 6. if문 - truthy, falsy - if문의 괄호 안에 숫자가 들어가는 경우 0 때문에 통과되지 않을 수 있다는 것을 잘 기억해야 한다. https://ko.javascript.info/ifelse 7. 논리 연산자 - ||, &&, ! https://ko.javascript.info/logical-operators 8. while문과 for문 - while, for 기본 사용법 - break, continue https://ko.javascript.info/while-for 9. 함수 - 함수 선언 방식, 함수 표현식 - 지역변수, 외부변수, 전역변수, 매개변수 - return https://ko.javascript.info/function-basics https://ko.javascript.info/function-expressions 10. 객체 - 객체를 생성하는 방법 - 중괄호({})를 이용한 방법 - new 키워드를 이용한 방법 - 객체의 값을 불러오는 방법 - 점(.)을 이용한 방법 - 대괄호([])를 이용한 방법 - 객체의 값을 넣거나 수정하는 방법 - for-in문 https://ko.javascript.info/object - 원시값과 달리 객체가 어떤 식으로 복사되는지를 알아야 한다. (객체를 담고 있는 변수는 사실 객체가 저장된 곳의 주소값을 저장하고 있다.) - Object.assign을 이용한 객체 복사 (객체의 값에 객체가 있는 경우 lodash의 cloneDeep을 대신 사용해야 한다.) https://ko.javascript.info/object-copy - 메소드를 만드는 방법 - 실행 환경에 따라 달라지는 this https://ko.javascript.info/object-methods 11. 타입 변환 메소드 - Number() - String() - Boolean() https://ko.javascript.info/primitives-methods 12. Number 메소드 - Math.floor() - Math.ceil() - Math.round() https://ko.javascript.info/number 13. String 메소드 - 특정 위치의 글자를 읽는 방법 - str.length - str.indexOf() - str.slice() - str.substring() https://ko.javascript.info/string 14. 배열 - 대괄호([])로 배열을 생성하는 방법 - 배열의 값을 불러오는 방법 - 배열의 값을 수정하는 방법 - length를 이용해서 배열의 길이를 구하는 방법 - 메소드 - push() - shift() - pop() - unshift() https://ko.javascript.info/array - splice() - slice() - concat() - forEach() - indexOf() - includes() - find() - filter() - map() - sort() - reverse() - join() - split() : string 메소드 - reduce() https://ko.javascript.info/array-methods

자바스크립트 공부 순서 4단계로 정리

자바스크립트 공부 순서를 정리해보겠습니다.

이 글은 자바스크립트 카테고리의 첫 글이므로, 처음 자바스크립트를 접하시는 분들 도 쉽게 시작하실 수 있게 작성해보겠습니다.

개인적으로는 웹사이트 외주를 위한 실전 코딩 연습 을 위해 이 연재를 시작하게 되었습니다.

하지만 퍼블리셔, 프론트 엔드 개발자를 목표 로 하시는 분들에게도 분명히 도움이 될 것이라고 생각합니다.

이런 내용을 이야기할 것 입니다.

그럼 지금부터 차근차근 시작해보겠습니다.

자바스크립트 공부 순서

자바스크립트는 프로그래밍 언어입니다.

프로그래밍 언어 공부를 시작하는 방법은 대략 아래와 같다고 할 수 있습니다.

언어의 특징, 역사, 구조 등의 이론 프로그램 설치 등의 환경 설정 프로그래밍 기초 문법 실제 코드를 사용하는 코딩 실습

여기서 가장 부담스러운 것은 ‘문법’일 것 입니다. 하지만 집중해서 보시면 하루 정도면 ‘언뜻 이해’하실 수 있습니다.

완벽하게 이해하고 넘어가는게 아니고, 실제로 코딩 실습을 해보면서 점점 익숙해지면 되니까 너무 걱정하지 마세요.

1. 자바스크립트의 특징, 쓰이는 곳

자바스크립트의 특징

자바스크립트의 탄생이나 역사 등에 대해 자세하게 알아볼 수 도 있겠지만, 간단하게 말해서 HTML CSS를 동적으로 만들어주는 스크립트라고 이해해도 무방합니다.

단 하나 기억해야할 것이 있다면, 자바스크립트는 ‘객체’ 기반 언어 라는 점 입니다. 이게 가장 큰 특징입니다. 객체에 대해서는 차차 알아가도록 하겠습니다.

자바스크립트가 쓰이는 곳

자바스크립트는 웹, 앱, 프로그램, 게임 등등 자바스크립트로 못하는게 없을 정도로 팔방미인입니다.

하지만 주로 웹에서 많이 쓰이고, 앞으로 이야기할 자바스크립트 관련해서 연재할 내용도 주로 웹에서 쓰이는 UI 구현이나 웹 서비스에 필요한 기능 구현일 것 입니다.

웹, 앱, 프로그래밍, 게임 이외에도 다양한 자바스크립트의 활용 방법에 대해 궁금하시다면 진블로그의 ‘자바스크립트로 세상을 지배하는법’이라는 글을 읽어보시면 되겠습니다.

저도 이 글을 읽고 두근거리며 공부를 시작하게 되었었거든요.

언어의 역사나 구조 등은 코딩을 시작하는 시점에서는 몰라도 무방하다고 생각합니다. 지루하면 공부를 지속하기가 어렵잖아요.

얼른 재밌는 부분을 찾아야 공부를 지속할 수 있을 것 입니다. 그러니 빠르게 4. 코딩 실습으로 넘어가도록 해봅시다.

2. 환경설정

코딩 편집 프로그램에 해당하는 비주얼 스튜디오 코드는 홈페이지에서 다운받아 옵션없이 그대로 설치하시면 되니 어렵지 않으실 겁니다.

비주얼 스튜디오 코드에서 라이브서버(코딩 내용을 가상 서버에서 실시간 반영)하는 방법은 아래 글을 참고하시면 되겠습니다.

또한 단축키로 빠르게 코딩하는 Emmet 설정도 해두시면 좋습니다. 작업 효율이 어마어마하게 늘어나거든요.

이 밖에 들여쓰기 내어쓰기를 깔끔하게 자동 정리해주는 beautify 등의 확장프로그램도 필요하시면 유용하게 쓰실 수 있습니다.

3. 프로그래밍 기초 문법

프로그래밍의 문법은 언어마다 조금씩 다르지만, 변수와 자료형 연산자 제어문 등의 핵심은 동일합니다.

따라서 프로그래밍을 배우려면 한 번은 제대로 공부해야 나중에 헷갈리지 않고, 다양한 언어를 배울 기틀이 되기도 합니다.

자바스크립트를 이용해서 아래와 같은 기초 문법을 알아볼 것 입니다.

변수, 자료형

연산자

제어문(조건문, 선택문, 반복문)

이전에 제가 HTML CSS 카테고리에 연재했듯이, 어렵지 않게 꼭 알아야할 핵심적인 부분만 소개해드리도록 할테니 겁내지 마세요.

문법을 어떻게 쓰는지 알려면 예제를 아예 안 쓸 수는 없겠으나, 쓸데없이 길게 쓰지 않겠습니다.

또한 각 글에 따로 코딩 실습을 링크해서 실제로 사용되는 예시를 소개하겠습니다.

4. 코딩 실습

이 연재의 목표는 실제 홈페이지를 만들고, 나아가서는 웹사이트 외주를 받기 위해 실전 코딩을 익히는 것입니다.

따라서 제가 책이나 튜토리얼을 공부한 내용 또는 실제 사이트에서 본 기능 등 ‘실제 웹에서 쓰이는 코드’ 만 적도록 노력해보겠습니다.

이상으로 자바스크립트 공부 순서를 4단계로 정리해보았으며, 각 단계에 필요한 글들을 계속 작성해서 링크하도록 하겠습니다. 읽어주셔서 감사합니다.

반응형

자바스크립트 학습 방법

이 포스트는 제가 다년간 자바스크립트를 설렁 설렁 공부하다 작년 1년동안 빡시게 공부해온 경험을 토대로 작성한 글입니다.

따라서 이 글을 읽으시는 분들께서는 본인과 맞지 않는 부분도 존재할 수 있으니 그 점은 참고하고 적절한 필터링을 하시면 되겠습니다.

목차

들어가기에 앞서

먼저 들입다 자바스크립트 공부를 하지 말고 아래 내가 열거한 사항들을 먼저 보고 공부를 해보자.

나의 다년간의 노하우가 녹아있으니 쏙쏙 빼먹길 바란다.

이러한 노하우들을 보고 실제 자바스크립트를 어떻게 공부해야할지에 대해 알아보자.

또한 에이전시/쇼핑몰에 종사하는 분들은 ES2015+를 실무에서 접할 기회가 적기 때문에 2-1. MDN, Stackoverflow와 친해지자 파트까지만 공부해도 실무에서는 전혀 무리가 없을 것이다.

하지만 스타트업, 자사 서비스/대규모 JS 앱을 개발하는 환경에 종사하는 분들은 ES2015+를 실무에서 매우 빈번하게 사용하고 있을 것이므로 그 이후 챕터까지 모두 공부하는 걸 추천한다.

역사를 먼저 알아보자

해당 프로그래밍 언어가 어떤 문제를 해결하기 위해 나왔는지 등등에 대해 파악을 하게 되면 좀 더 해당 언어를 잘 쓸 수 있게 된다.

먼저 초기 브라우저에는 페이지를 보여주기만 할 뿐, 유저와 상호작용을 하지 못했다.

유저가 값을 입력하는게 불가능하다보니 그에 대한 응답도 불가능했던 것이다.

따라서 페이지의 동적인 처리를 위해서 자바스크립트가 나왔다고 해도 과언이 아니다.

당시에 자바스크립트는 하나의 프로그램을 만드는 목적 보다도 ID에 공백을 넣은 경우, 메뉴에 마우스를 올린 경우 등등의 동적인 처리가 주된 목적이었다.

따라서 하나의 완성된 프로그램을 만들기에는 다소 부족한 점도 많았고, 10일이라는 짧은 개발 시간 탓에 설계 상 버그 등등이 많다.

이러한 점들은 자알쓰에서 하나하나 정리하고 있으니 해당 포스트를 참고해보자.

자바스크립트는 자바가 아니다

가끔 보면 자바스크립트 커뮤니티에 자바 질문을 올리는 사람들이 있다.

자바 스크립트(Java Script)가 아니라 자바스크립트(Javascript)다. 둘은 엄연히 다르다.

왜 이런 이름이 붙었는지에 대해서 간단히 알아보자.

자바스크립트의 이름의 변천사는 모카(Mocha) – 라이브스크립트(Livescript) – 자바스크립트(Javascript)이다.

자바스크립트는 다음과 같은 언어에서 영향을 받았다.

자바에서는 문법과 ‘원시 값 vs 객체 관계’

스키마와 오크에서는 일급 객체인 함수

셀프에서는 프로토타입 상속

펄과 파이썬에서는 문자열, 배열, 정규표현식을 빌려왔다.

또한 워낙 여러 언어로부터 영향을 받은 덕에 함수형 프로그래밍(일급 객체인 함수)과 객체지향 프로그래밍(객체, 상속)을 함께 사용하곤 한다.

따라서 자바스크립트는 자바와 직접적인 연관 관계가 커서 그렇게 이름이 붙은 게 아니라 자바의 인기에 탑승하려는 노이즈 마케팅 전략을 사용한 게 아닐까 싶다.

HTML, CSS의 연장선 상으로 자바스크립트를 바라보지 말자

많은 사람들이 HTML, CSS를 배우고 그 이후에 홈페이지를 동적으로 제어할 목적으로 자바스크립트를 배운다.

자바스크립트는 프로그래밍 언어이다.

C언어와 같은 프로그래밍 언어를 배운다고 하면 C언어를 배우지 그 전에 컴퓨터 사이언스를 굳이 배우고 시작할 필요는 없다.

배우면 좋지만 배우지 않고 시작해도 상관이 없다는 뜻이다.

즉, 그 말은 병행해도 된다는 뜻이며 HTML을 배우지 않고 JS를 먼저 배워도 된다는 뜻이다.

JS를 브라우저와 떼놓고 생각하자

브라우저에서 제공하는 JS는 크게 세 파트로 나눌 수가 있다.

DOM(Document Object Model)

자바스크립트에 자주 사용하는 document.getElementById() 와 같이 document 객체에 해당하는 내용들을 지칭한다. BOM(Browser Object Model)

자바스크립트에서 자주 사용하는 window.alert() 와 같이 window 객체에 해당하는 내용들을 지칭한다. ES(ECMAScript)

오잉? 브라우저에서 제공하는 JS? 그럼 다른 곳에서도 JS를 쓸 수 있단 말인가?

그렇다. Node.js에서도 JS를 쓸 수 있으며 브라우저에서는 할 수 없었던 여러가지를 할 수 있게 되었다.

File I/O

파일의 입/출력과 관련된 내용이다. 서버 API

서버를 구축하는 것 등등에 관한 내용이다. ES(ECMAScript) 기타 등등 너무 많음.

따라서 우리는 먼저 ES를 마스터해야한다.

Node.js와 Browser라는 플랫폼에서 공통적으로 쓸 수 있는 내용이기도 하며 ES에 해당하는 내용들이

여타 프로그래밍 언어들(C, Java 등등)이 가지고 있어야할 내용들(변수, 함수, 자료형, 조건문, 반복문 등등)이 포함된 내용이기 때문에

프로그래밍 언어 관점에서 자바스크립트를 배우려면 ES를 먼저 파야한다.

자바스크립트를 브라우저와 절친 먹여놓고 공부하기 시작하다보면 다음과 같은 함정에 빠지게 된다.

일반적인 수학에서 함수는 입력 값이 있으면 출력 값이 있다라는 개념이다.

프로그래밍 세계에서 함수의 입력 값은 매개변수, 출력 값은 반환하는 값과 연결이 된다.

따라서 두 수의 합을 반환하는 함수를 만들라고 하면 다양한 결과가 나오게 된다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

function add ( x, y ) {

return x+y;

}

var add2 = function ( x, y ) {

return x+y;

};

function add3 ( x, y ) {

console . log (x+y);

}

function add4 ( x, y ) {

alert (x+y);

}

function add5 ( x, y ) {

document . body . innerHTML += x+y;

}

function add6 ( ) {

var x = parseInt ( prompt ( “숫자를 입력해주세요.” ));

var y = parseInt ( prompt ( “숫자를 입력해주세요.” ));

document . body . innerHTML += x+y;

}

사람들이 입력이라고 하면 어느 정도는 함수의 매개변수로 이해를 하는 경향이 있다.(일부는 prompt 함수로 입력받는다.)

하지만 반환의 의미를 (화면에)출력으로 받아들이는 경우도 존재하고, 그 화면에 출력하는 방법도 로그창, 경고창, 브라우저에 보여주는 방법 등이 존재한다.

이는 모두 브라우저에 의존하고 있는 것이다.

JS는 더이상 Toy Language(장난감 가지고 놀듯 쉽고 깊이 없이 배워도 되는 언어)가 아니다.

과거에 어쨌든 간에 현재 자바스크립트는 계속해서 새로운 스펙이 나오고 이제 어엿한 프로그래밍 언어의 반열에 올랐다고 할 수 있다.

여전히 동적 타입, typeof 버그 등등의 단점이 존재하지만 이전 자바스크립트 버전으로 작성한 코드와의 호환 때문에 고칠 수 없는 점도 존재해서 여전히 문제는 존재한다.

하지만 예전의 Toy Language(장난감 가지고 놀듯 쉽고 깊이 없이 배워도 되는 언어)가 아니란 뜻이며 진지하고 깊숙하게 시간을 내서 배울 가치가 있는 언어이다.

어떻게 공부해야할까?

아직 들어가기에 앞서를 보지 않았다면 꼭 보고 오자.

공부에 임하기 전에 자바스크립트를 어떠한 자세로 바라보고 공부해야할지에 대해 적어놓았다.

이제 본격적으로 자바스크립트를 어떻게 정복해야할지 스텝 바이 스텝으로 적어보겠다.

1. 잘 만들어졌다고 알려진 언어들을 먼저 공부하자

사람은 아는만큼 보인다.

자바스크립트는 애초에 목적 자체가 프로그램을 만들기 보다는 페이지의 동적 제어였고, 10일이라는 짧은 개발 기간 덕분에 설계 상 문제점이 많은 언어이다.

이걸 다른 프로그래밍 언어를 모르는 사람은 그 설계 사항들이 왜 안 좋고 어떤 문제점들이 존재하는지 모른다.

그런 걸 친절하게 일일이 다 설명해주는 책이 있으면 모르겠지만 없었던 것 같고, 다 인터넷을 통해 파편화된 지식을 조각 조각 모아야했던 것 같다.

혹은 너무 어렵게 설명이 돼있거나…

하지만 잘 만들어졌다고 알려진 C나 Java와 같은 언어(동의를 안 하더라도 확실히 예전의 JS보다는 잘 만들어졌다는 데는 동의할 것이다.)를 먼저 공부하고 자바스크립트를 바라보면

**이거 왜 이렇게 만들었어?, 이렇게 짜면 이런 사항들이 문제가 되겠는데?, 예전에 봤을 때는 못 알아 먹겠는 것들이 이제는 조금씩 보이네?**하고 동일한 내용을 보아도 이해하는 관점이 깊이가 깊어진다.

따라서 나는 자바스크립트를 접하기 전에 그런 언어들을 먼저 접하는 걸 추천한다.

1-1. 그게 싫다면 쉽게 쉽게 쓰여진 책을 먼저 읽자

나는 시간이 별로 없거니와 C언어와 Java는 너무 어렵다( 알레르기가 있다 )고 생각되는 사람들은 사람들이 말하는 잘 쓰여진 책들 말고 서점에 가서 자신의 눈으로 직접 보고 이해할만한 수준의 책을 골라보자.

왜 잘 쓰여진 책보다 쉽게 쓰여진 책을 추천하냐면 일단 뇌를 말랑말랑하게 만들어서 자바스크립트와 친밀도를 높이게 하기 위함이다.

처음부터 잘 쓰여진 책을 보다보면 자신이 이해할 수 없는 수준으로 얘기하는 경우가 많다.

하지만 쉽게 쉽게 쓰여진 책은 다소 설명이 부족하더라도 이해하는데는 큰 무리가 없고 술술 넘어갈 것이다.

이런 책은 깊이 없이 그냥 술술 넘어가며 봐야한다. 그냥 ‘JS가 이런 거구나~’하고 맛보기만 하는 것이지 그렇게 깊이 있게 볼만한 책은 아니다.

주로 따라해볼만한 예제가 많고 브라우저와 짱친 먹은 예제들(눈에 바로 바로 결과가 보여지니 학습 유도에는 좋았다) 위주의 책이 보기 좋을 것이다.

나의 경우에는 HTML+CSS+JS 무따기 시리즈로 JS를 처음 접했는데 지금은 없어진 것 같다.

2. 소문난 책들을 위주로 읽자, 단 jQuery 빼고

여기서 말하는 소문난 책(내 기준)은 다음과 같다.

코뿔소 책이나 노란책도 유명하다고들 하나 솔직히 1독이라도 끝낸 사람이 얼마나 될까 싶을 정도라서 그닥 추천하지 않았다.

그리고 아직 읽어보지 않았지만 You Don’t Know JS 시리즈도 좋은 것 같다.

여기서 jQuery를 뺀 이유는 적어도 ES5까지는 알고 나서 제이쿼리를 접하는 걸 추천한다.

자바스크립트는 엄연히 프로그래밍 언어인데 중간에 jQuery(DOM 조작 라이브러리+@)를 먼저 접하면 프로그래밍 언어 관점 보다는 DOM을 조작하는데 너무 혈안이 될 수도 있다.

또 JS를 제대로 모르는 상태에서 jQuery를 접하게 되면 Javascript를 몰라서 나오는 질문을 jQuery를 모르기 때문이라고 생각할 수도 있으며,

Javascript로 해결해야하는 상황들을 jQuery의 메소드로 해결하는 상황도 초래할 수 있다.

jQuery는 Javascript로 만들어져있기 때문에 절대 VanillaJS(Pure JS)보다 성능 측면에서 좋을 수가 없다.

따라서 jQuery를 배우더라도 아직은 그 쪽에 힘을 싣지 않고 Javascript 쪽에 힘을 더 싣는 것을 추천한다.

jQuery를 사용하지 않는 곳을 찾기 힘들 정도로 jQuery는 많은 곳에서 사용 중이지만 아래와 같은 글이 있을 정도로 jQuery가 그렇게 짱짱맨인 것 만은 아니다.

2-1. MDN, Stackoverflow와 친해지자

MDN은 파이어폭스라는 브라우저를 만든 모질라 재단에서 만든 개발자를 위한 사이트이다.

Javascipt 내장 API(Array 관련 메소드 등등)들의 자세한 설명 등등이 나와 있다.

ECMAScript Spec을 보고 이해하기 힘든 내용들은 이 곳에서 자주 참고하자.

Javascipt 내장 API(Array 관련 메소드 등등)들의 자세한 설명 등등이 나와 있다. ECMAScript Spec을 보고 이해하기 힘든 내용들은 이 곳에서 자주 참고하자. Stackoverflow는 개발자 계의 지식 IN이라고 보면 될 것 같다.

검색은 네이버(카페)에 의존하기 보다는 구글링(구글에 검색하는 행위)을 통해 Stackoverflow와 같은 사이트 올라온 글들을 참고하자.

네이버의 수 백 배에 달하는 글들과 더 좋은 정보들이 있다보니 더 빨리 문제 해결을 할 수 있는 가능성이 높아진다.

한 발 더 나아가서 직접 질문과 답변까지 해보면 금상첨화일 것이다.

검색은 네이버(카페)에 의존하기 보다는 구글링(구글에 검색하는 행위)을 통해 Stackoverflow와 같은 사이트 올라온 글들을 참고하자. 네이버의 수 백 배에 달하는 글들과 더 좋은 정보들이 있다보니 더 빨리 문제 해결을 할 수 있는 가능성이 높아진다. 한 발 더 나아가서 직접 질문과 답변까지 해보면 금상첨화일 것이다. w3schools라는 사이트가 있지만 w3fools란 사이트가 있을 정도로 잘못된 내용 및 업데이트가 늦다보니 간단한 예제 정도만 참고하자.

2-2. ES5를 끝내고 ES2015+를 할 필요가 없다

웹 에이전시나 쇼핑몰 등등에 근무하는 사람들은 ES5까지(2-1 챕터)까지만 공부하셔도 업무를 보는데는 크게 지장이 없을 것이다.

웹 에이전시나 쇼핑몰에 근무하는 사람들이라면 ES2015+는 고사하고 ES3를 사용하고 있을 가능성이 크다.(IE8 때문)

그래도 IE8도 곧 사장될 거 같기 때문에(아마도…?) ES5를 미리미리 공부해두는 게 좋다.

또한 협업하는 사람이 ES2015+를 모른다면 다음과 같은 문제점이 존재한다.

협업하는 사람이 ES2015+를 공부해야한다. 협업하는 사람이 공부할 의지가 없으면 큰일이다. 추후에 사람을 뽑을 때 ES2015+를 알고 있는 사람으로 뽑아야한다.

이 외에도 다른 문제점들이 존재하겠지만 당장 떠오르는 것은 이게 끝이다.

해당 챕터부터는 스타트업이나 자사 서비스/대규모 앱을 JS로 개발하는 환경에 종사하는 사람들이라면 반드시 거쳐야하는 과정일 것이다.

과거 나도 ‘ES5를 끝내고 ES2015+를 공부해야하지 않나?’라는 생각 때문에 반년동안 ES5에만 목을 메달다가 어느 스터디에서 ES6(ES2015)와 ES5를 간단하게 비교해주는 내용을 들었는데 정말 혁명이었고 별 거 없었다.

ES6 들어서 새로 생긴 Promise, Generator, Iterator 등등의 내용을 다룬 것은 아니고 간단한

const/let, Rest Parameter, Default Parameter, Spread Operator, for-of 등등은 정말 금방 배울 수 있다.

따라서 내 생각은 똑같은 코드를 ES5로 짜보고 ES2015+로 짜보고 점점 익숙해지면 그 이후에 Promise, Generator, Iterator 등등의 내용을 공부하면 될 것 같다.

또한 요즘 프론트 엔드 개발을 할 때 ES5로 짜는 것보다 ES2015+로 짜는 경우가 훨씬 많다.

따라서 ES5를 공부할 필요가 없다고 주장하는 사람도 있는데 나는 그 견해와는 입장이 다르다.

ES2015+로 짠 코드를 브라우저(특히 MS 계열)에서 정상적으로 지원해주지 않는다.

따라서 ES5로 바꿔주어야하는데 결국 브라우저 위에서 도는 것은 ES5 코드이다.

그러니까 ES2015+로 짜면서 어느 정도는 ES5로 어떻게 변환될지 상상(?)을 조금 하면서 짤 필요는 있다.

ES2015+의 코드를 ES5로 바꿔주는 애가 100% 커버를 해주지 못한다. (그 도구가 꾸진 게 아니라 언어 설계상 오는 차이 때문에…)

따라서 대부분은 커버하지만 혹시 모를 에러가 발생할 수도 있으니 ES5 정도는 알아야한다는 게 내 생각이다.

3. NPM과 Babel을 배우자.

우선 ES2015+의 코드를 브라우저에서 100% 지원해주지 않는다.

따라서 ES5로 변환(트랜스파일)해줘야 하는데 그 중에 제일 많이 쓰고 좋다고 생각되는 것은 Babel이다.

이 Babel을 사용하는 가장 쉬운 방법은 Babel REPL을 이용하는 것이다.

그런데 매번 소스를 복붙 해서 트랜스파일하는 귀찮은 과정을 반복할 것인가?

그리고 우리는 바벨이 ES5로 트랜스파일 한 코드를 보고 이해하지 못한다.

따라서 우리가 소스 유지보수를 하기 위해서는 ES2015+로 짠 코드 하나, ES5로 트랜스파일 된 코드 하나, 총 두 개를 들고 있어야한다.

이런 귀찮은 작업을 줄여주기 위한 것이 babel-cli이다.

MS-DOS 유저라면 익숙할 법한 시꺼먼 창인 터미널(윈도우의 CMD)에서 트랜스파일을 해주는 도구이다.

하지만 이 babel-cli를 설치는 npm을 통해서만 가능하다. (왜냐면 babel-cli가 Node.js 위에서 돌기 때문…)

npm은 Node.js를 설치하면 자동으로 설치된다.

이 때 우리가 배워야할 것은 두 가지이다.

npm 사용 방법(package.json에 대해 공부하기, 모듈 설치 삭제 해보기) babel-cli 사용 방법

4. ES2015+가 익숙해졌다면 Typescript를 공부해보자

ES2015+가 아무리 좋아졌다고 하더라도 다음과 같은 걸 해결하지 못했다.

정적 타입 사용자가 직접 인터페이스 구현 private 접근 지정자

등등이 있는데 이 ES2015+의 모든 특성들을 포함한 Superset 격인 Typescript란 게 존재한다.

나도 타입스크립트는 잘 모르기 때문에 1번을 토대로 장점을 설명해보겠다.

코드의 안정성

앱의 규모가 커지면 커질 수록 코드를 파악하기 힘들어지는 경향이 존재한다.

또 오랜 시간이 지난 코드를 유지보수 할 때도 마찬가지이다.

이럴 때 어떤 메소드를 써야할 때 첫 번째 매개변수로 문자열이 와야하는지, 숫자가 와야하는지, 매개변수를 몇 개를 넘겨야하는지, 생략이 가능한지

기존 동적 타입에서는 체크할 수 없었던 내용 등등을 체크하므로 어떻게 메소드를 사용해야하는지 직접 메소드 구현부로 가서 파악할 필요가 없어진다. 코드의 자동완성

어떤 함수로부터 값을 반환 받았는데 이게 배열인 줄 알고 forEach 메소드를 썼는데 알고보니 Object가 반환되는 경우였다고 생각해보자.

기존 동적 타입에서는 어떤 자료형이 반환되는지 모르니 자동완성에 배열의 메소드, 문자열의 메소드 등등이 전부 뜰 것이다.

하지만 정적인 타입으로 딱 Object가 반환된다는 게 확정된 메소드라면 자동완성에 배열의 메소드도 뜨지 않을 것이며 배열의 메소드를 사용하면

에디터 상에서 오류로 표시되기 때문에 이런 것도 어찌보면 코드의 안정성과 연결이 되는 점이기도 하다.

하지만 장점이 있으면 단점이 있듯, 내 기준에서 단점을 서술해보겠다.

생산성이 떨어진다(초기에)

동적 타입인 js는 코드를 대충 빨리 짜도 돌아간다.

따라서 생산성이 높다고 볼 수 있다. (하지만 나중을 생각한다면…)

하지만 타입스크립트는 타입 체크가 매우 빡빡하다.

따라서 동일한 코드를 짤 때도 더 오래 걸릴 수도 있다.

하지만 나중에 되면 아마 타입스크립트가 훨씬 빠를 것이다. 외부 라이브러리에 대한 타입 정의도 모두 해줘야한다.

이게 제일 사람 미치게 한다.

유명한 라이브러리의 경우 미리 다 타입 정의 파일이 있는데 없는 경우에는 직접 만들거나 적폐 세력(any)를 사용해야한다.

또한 라이브러리의 버전과 타입 정의한 파일의 버전이 불일치하는 경우도 있고 골칫거리다.

이러한 단점 때문에 타입스크립트를 포기하는 경우가 많다. (나도… ㅠㅠ)

번외편

해당 파트는 자바스크립트와 직접적으로 관련이 있다고는 말할 수 없다.

하지만 나는 자바스크립트로 개발을 한다면(특히 ES2015+) 당연히 알면 좋다고 생각하는 내용들을 정리해봤다.

1. 코드 검사 도구를 사용하자.

코드를 짤 때 항상 일관성 있게 짜야한다.

하물며 한 사람이 짤 때도 문자열을 표시하는데 “”나 ‘’을 혼용한다던지

들여쓰기를 위해 탭과 들여쓰기를 혼용한다던지 등등의 경우에 놓이게 되는데

다른 사람들과 협업하다보면 하나의 소스 파일의 가독성은 똥망진창이 될 것이다.

하지만 사람의 눈으로 꼼꼼히 체크한다 해도 꼭 놓치기 마련이다.

이렇게 코딩 컨벤션을 지켰는지와 에러 등등을 체크해주는 툴로 JS에서는 JSLint, JSHint, ESLint 등등이 있다.

각자 장단점을 파악해보고 마음에 드는 걸 사용하면 좋은데 ESLint를 추천한다.

또한 TS 진영에서는 TSLint를 사용하면 된다.

2. Task Runner를 배우자

기존의 자바스크립트 소스 코드를 개발하던 방식에는 다음과 같은 문제가 존재한다.

유저에게 불필요한 데이터를 전송하여 LTE 데이터를 낭비하게 만들고, 그 데이터들로 하여금 로딩 속도를 느리게 만듦으로써 사용자에게 최적화된 UX를 제공해주지 못하고 있다.

이게 뭔소린가 싶으면 우리의 소스 코드를 보면 공백과 기나긴 변수명 등등을 가지고 있다.

이거는 사람 입장에서 가독성을 높여 유지보수하기 편하게 한 것이지, 컴퓨터 입장에서는 이런 애들은 불필요하다.

따라서 공백을 줄이고(minify), 변수명을 난독화(a, b와 같은 걸로 줄이는 작업, uglify)시키는 작업을 해야한다.

우리가 사용하는 웹 브라우저는 HTTP 프로토콜 위에서 통신을 한다.

요즘 HTTP 2도 나왔지만 아직까지 브라우저/서버의 호환 때문에 많은 사람들이 HTTP 1.1을 사용 중이다.

HTTP/1.1는 기본적으로 Connection당 하나의 요청을 처리 하도록 설계 되어있다.

그래서 동시전송이 불가능하고 요청과 응답이 순차적으로 이루어 지게된다.

그렇다 보니 HTML 문서안에 포함된 다수의 리소스 (Images, CSS, Script)를 처리하려면 요청할 리소스 개수에 비례해서 Latency(대기 시간)는 길어지게 된다.

SPA(Single Page Application)의 경우 다수의 스크립트 파일을 로딩하나 하나로 합친(concat) 스크립트 파일을 로딩하나 동일하게 작동한다.

다수의 파일은 대기 시간이라는 오버헤드(쓸 데 없는 비용(여기서 시간도 비용으로 측정함))가 발생하기 때문에 다수의 스크립트 파일을 하나로 합쳐주는 작업도 해야한다.

이런 작업을 하는 방법은 여러 가지가 있는데 UglifyJS를 이용하는 것이 가장 간단하다.

하지만 이는 Babel REPL과 마찬가지로 수동으로 해줘야한다는 단점이 존재한다.

이러한 Minify 작업(Task), Uglify 작업, concat 작업 등등 무수한 최적화 작업을 소스 코드가 수정될 때마다 일일이 하고 싶을까?

이러한 작업(Task)들을 실행(Run)을 하나의 단위로 묶어서 한 번에 실행시켜주는 Task Runner란 게 존재한다.

그 중에서도 Grunt와 Gulp가 있는데 둘 중에 아무거나 해도 상관이 없을지 모르겠는데 나는 Gulp를 배웠다.

3. Module Bundler를 배우자.

자바스크립트에서 스코프는 함수 단위(const와 let은 블록 단위)이고, 모듈이란 게 존재하지 않았다.

따라서 네임스페이스 패턴과 같은 꼼수를 사용해서 모듈화를 구현하곤 하였다.

시간이 흘러 Node.js 진영에서는 CommonJS 스펙을 준수해서 모듈화를 구현하였다.

하지만 웹 브라우저는 사용자들이 파일을 내려받아야한다는 특수한 상황이 존재해서 비동기적으로 모듈을 로딩해야한다는 특수한 상황에 놓여있다.

이를 위한 AMD(Asynchronous Module Definition) 스펙이 있고, 이를 구현한 RequireJS라는 라이브러리가 있다.

자세한 내용은 JavaScript 표준을 위한 움직임: CommonJS와 AMD를 참고하자.

하지만 ES2015에 들어와서 Module을 언어단에서 지원해주는 import와 export 문법이 존재한다.

하지만 현재 이를 지원하는 브라우저/Node는 없다.

따라서 브라우저 진영에서는 여전히 A 모듈, B 모듈 등등을 각각 로딩해야하는 사태가 발생했는데 이 때 구세주처럼 등장한 게 Module Bundler이다.

Bundle은 ‘꾸러미’라는 의미로 하나로 합친다는 의미를 지니고 있다.

Task Runner의 concat은 단순히 소스 코드 자체만을 합치지만 이 Module Bundler는 모듈 간의 관계를 전부 파악해서 단일 모듈(소스 파일)로 Bundling 해준다.

따라서 Task Runner에서는 불가능한데 Module Bundler에서는 다음과 같은 것들이 가능하다. (설명은 Webpack 기준)

Code Splitting(코드 분할) 변경률이 적은 서드파티(제이쿼리, 리액트 등등의 라이브러리나 프레임워크)들을 따로 빼서 사용자의 임시 파일에 저장시켜놓고 방문할 때마다 해당 내용을 캐싱하게 끔 해서 좀 더 로딩 속도를 높이기. SPA라고 해도 사용자가 모든 URI를 방문하는 게 아니니 URI 별로 소스 코드를 빼기. 그런데 URI 별로 소스 코드를 빼도 파일의 크기가 너무 작은 경우에는 오히려 요청/응답에 대한 오버헤드가 클 수 있으므로 소스 코드의 최소한의 크기 정하기. Tree Shaking(나무의 가지를 흔들어 썩은 열매를 떨어뜨리 듯, 필요없는 코드들을 삭제하기)

쓰지 않는 코드(변수 함수 등등)들이 있는 경우에 자동으로 번들링 할 때는 없애기. 파일의 크기가 작은 경우에는 Data URL로 리소스를 표현하기(폰트, 이미지, svg 등등)

웹팩에서는 js 소스만 모듈로 보는 게 아니라 정적인 리소스들(이미지, 폰트, svg 등등)을 모두 모듈로 보고 있다.

그래서 이 모듈(정적인 리소스)들을 컨트롤 할 수 있게 된다.

그런데 이미지 크기가 너무 작은 경우에는 요청/응답에 대한 오버헤드를 줄이기 위해 sprite image를 이용할 수도 있고, Data URL을 이용할 수도 있다.

하지만 sprite image를 만드는 것은 귀찮고 사용하기도 불편할 때가 있다. (이를 위한 플러그인들도 많지만)

그래서인지 모던 브라우저에서는 이런 Data URL을 통해서도 그런 오버헤드를 줄일 수 있다.

물론 성능은 sprite image가 Data URL보다 더 뛰어난 것으로 알고 있다.

원래 Module Bundler 성격은 모듈과 관련된 것만 다루는 것이었는데 이제는 Task Runner의 기능까지 삼켜서 minify, uglify 등등의 기능까지 흡수를 해서 어지간하면 Module Bundler만 사용해도 될 정도이다.

하지만 Module Bundling 이전에 처리해야하는 특수한 경우에는 Task Runner에서 작업들을 처리한 이후에 Module Bundler를 돌려야할 것이다.

Module Bundler로는 Webpack, browserify, rollup 등등이 있는데

Webpack이 제일 사용자도 많고, github start도 많고, 커뮤니티 활성화도 잘 돼있으므로 Webpack을 공부하는 걸 추천한다.

4. TDD를 공부하자.

TDD(Test Driven Development)는 다음과 같은 개발 행위를 말한다.

테스트 코드를 먼저 짠다. 테스트 코드가 통과하게 앱의 코드를 짠다.

이를 통해 얻을 수 있는 장점은 다음과 같다.

내가 구현해야 하는 코드(테스트 통과)가 무엇인지 명확해진다. 코드를 수정해도 잘 돌아갈 거라는 안심이 된다.

테스트 코드를 작성하지 않았으면 코드를 수정하고 해당 메소드를 사용하는 부분을 전부 다시 테스트해봐야한다.

하지만 테스트 코드들을 작성했다면 해당 테스트를 통과했다면 수정한 메소드를 사용한 부분들이 정상적으로 동작한다고 볼 수 있으므로 심신에 안정이 찾아오게 된다.

TDD는 아니더라도 앱의 코드를 먼저 짜더라도 테스트 코드는 반드시 짜는 습관을 들이자.(나부터라도…)

하지만 많은 사람들이 아래와 같은 상황 때문에 TDD를 못하는 것 같다.

테스트 코드 짜는데 시간이 더 걸린다.

초기에는 그럴지 몰라도 앱의 규모가 커지거나 유지보수를 생각한다면 TDD가 더 오래 걸리지는 않을 것이다. (더 적게 걸리지 않을 지도…) 어디서부터 어디까지를 테스트해야할지 모르겠어요.

저도 모르겠어요… 누가 좀 알려주신다면 ㅠㅠ E2E(End to End) Test는 어떻게 하죠?

저도 UI 단 테스트는 안 해봐서 누군가 피드백을 주신다면 수정하겠습니다.

이 TDD를 도와주는 프레임워크로는 jasmine, mocha, chai 등등이 있다.

그리고 이러한 테스트를 자동으로 돌려주는 등 위 프레임워크들을 도와주는 Test Runner인 karma가 있다.

마치며

내가 컴공을 전공하다 보니 비전공자나 입문자에게는 다소 딱딱하게 들리거나 어렵게 들린 내용이 많을 것이다.

다 내가 모르는 게 많아 이런 내용들을 쉽게 풀어내는 능력이 부족하기 때문이다 ㅠㅠ…

여튼 글을 보고 궁금한 점, 부족한 점, 잘못된 점 등등은 전부 댓글로 피드백 부탁드립니다~~

[Javascript] Javascript 너무어려워요 & 앞으로 공부방향

Javascript.. 정말 너무 어렵다..

엘리님 강의 듣다가 너무 어려워서 어떻게 공부해야 할지 또 찾아봤다. 이걸로 참 시간을 많이 보냈다.

누군가가 “이렇게 공부해!”라고 말해도 또 그게 정말 효율적인지 찾아보는 타입이라

하나를 못정하고 이해가 안 되면 또 공부방법이 잘못된 건 아닌지 찾아봤던 것 같다.

그리고 다시 생활코딩강의를 들었다.

진작에 이걸 먼저 들었으면 좋았겠지만,

엘리님 이전 강의들도 좋았어서 이번에도 나랑 잘 맞을 줄 알았다.

다 들은 지금은 Javascript는 생활코딩 강의가 훨씬 접근하기 쉬웠다는 생각이 든다.

또 마침 부스트캠프에사 제공하는 강의가 내가 보고 있는 생활코딩 강의이기도 했다.

(https://www.boostcourse.org/cs124/notices/53973)

다 수료하면 수료증도 준다.

공부한 내용은 나중에 깃헙에 올려야지..

부스트코스 강의 수료증

강의 내용은 이해는 됐었다. 이해는 됐지만, 혼자 하라고 하면 응용은 못하겠다..

처음이니까 당연하겠지 싶어 이해한 것에 만족했다.

‘Javascript 객체고급’부터는 강의 내용도 이해가 안 갔다.. What.. 진짜 너무 어렵고.. 멘붕이 와 서 공부가 저번 주보다는 잘 안됐다.

그냥 귀로 이고잉님 목소리가 스쳐 지나간 기분이랄까..

그래도 집중했던 강의라 퀴즈는 쉽게 풀 수 있었다. (퀴즈 난이도 극하임.. 재도전도 할 수 있음..)

강의는 다 들었고, 간단하게 만들고 싶은 것도 생겼지만, 아직 너무 부족하다는 생각이 들었다.

앞서 말했듯이 강의를 듣는 며칠동안 자바스크립트 공부하는 법을 많이 찾아봤는데

그중 ‘라매개발자’라는 프론트엔드 개발자 유투버님이

백준 문제를 풀고 하고 싶은 프로젝트를 강의로 듣거나, 혹은 혼자서 해보면 훨씬 낫다고 하셨다.

맞는 말이라고 생각이 들었다. 우선 나는 ‘어떻게’ 배운 것들을 써야 할지도 모를 것 같았기 때문이다.

그래서 며칠은 백준문제로 풀며 Javascript에 익숙해지려 한다.

연습 삼아 단계별 문제에서 제일 처음에 있는 (그러니까 엄청 쉬운) 문제를 풀어봤다.

Helo World! 를 출력하라는데 이것도 헷갈려서 틀렸다.

답은 이건데.. console.log(‘Hello Wolrd!’)

아무래도 정말 문제를 좀 풀어봐야 될 것 같다.

하다 보면 강의에서 배운 내용도 더 이해가 잘 될 것 같다.

그러고 나서는 가능하다면 공부시간 측정하는 것을 만들어보고 싶다.

지금 쓰고 있는 것이 있는데 살짝 불편한 게 있기 때문에..

하지만 이게 만약 그때의 내 실력에서 구현하기 말도 안 될 정도로 어려운 거라면,,(지금 어려운지 아닌지도 감이 안 옴)

기본 프로젝트부터 차근차근할 계획이다. 계산기나.. To do list 같은 것 말이다.

지난 며칠간 내가 논리력이 부족한 걸까..라는 생각도 해봤지만, 그런 생각을 하기에는 아직 너무 초반이라는 생각이 들었다.

안 되는 게 뭐 있겠나. 해보자..!

반응형

자바스크립트 공부법을 모르겠어요 ㅜㅜ

mentor4877983 HTML·퍼블리싱·UI개발 / 14년차 Lv 5

어떤이는 반복적으로 타이핑하면서 코드를 외우듯이 습득하는 사람이 있고, 또는 실무에서 사용하다보면서 느는 사람도 있습니다. 따라서 자신에게 맞는 공부 방식?을 먼저 찾는게 좋습니다.

저 같은 경우에는 문법을 이해한 후 절대 붙여넣기 기능은 사용하지 않고, 직접 치면서 손에 익혀 갔습니다.

그 이후에는 머리로 기능의 알고리즘을 정리한 후, 노트에 적어 모순이 없다는 판단이 서면 그때 코딩을 했습니다.

(알고리즘이 정리가 안된 상태에서 하면 계속 수정이 생길 수 있고 손도 많이 갑니다.)

여러 사람의 조언을 참고하고 시도해 보시면 자신에게 잘 맞는 공부법을 찾으실 수 있을겁니다. 파이팅!!

신고

자바스크립트 공부 독학 사이트 추천

자바스크립트를 공부할만한 독학 사이트를 정리해서 올려본다. 올리다보니 독학의 개념이 무엇인가 혼란스러워지기도 하지만, 어쨌거나 자바스크립트 공부에 좋은 사이트와 자료를 발견하는 대로 계속해서 업데이트해 보려한다.

자바스크립트 학습 플랫폼

1. Exlskills

순차적인 흐름을 따라 자바스크립트를 공부할 수 있다. 중간 중간에 짤막한 확인 문제가 나와 해당 내용을 잘 이해했는지 확인할 수 있다. 설명이 간결하고 쉬우며, 인터페이스가 깔끔하다. 문제는 가끔가다 문제풀이시 오류가 난다. 자바스크립트가 완전 처음이라면 살펴볼만 하다.

2. 생활 코딩

코딩 독학을 한 번이라도 생각해 본이라면 발견하게 되는 고마운 사이트. 자바스크립트 뿐만 아니라 웹 개발 전반에 관한 차분한 설명을 광고 없이 무료료 볼 수 있다. 유튜브 채널도 있으며, 가끔가다 함께 공부하는 프로그램이 열리기도 한다.

3. freeCodeCamp

자바스크립트 코드를 직접 실행해 가며 배울 수 있다. 유튜브에도 광고 없는 좋은 강의들이 많이 올라오는 곳이다.

4. Udemy

한 강의에 만 원 조금 넘는 돈으로 강의를 들을 수 있다. 사실 무료 사이트를 여기저기 기웃거려 봤지만, 그냥 여기서 만 원 내고 듣는게 속편하기도 하다.

5. MDN 자바스크립트 첫걸음

과연 첫 걸음인지는 모르겠지만 상세하고 정확하게 자바스크립트에 대해 알아볼 수 있다.

6. 노마드 코더: 바닐라 자바스크립트

유튜브에서 코딩 관련 영상을 검색했다면 한 번쯤 만나게 되는 니콜라스. 노마드 코더의 강의는 대부분 유료이지만 이 강의만큼은 무료로 들을 수 있다.

자바스크립트 개념 정리 및 참조 웹사이트

1. MDN 자바스크립트

자바스크립트 계 백과사전. 가장 신뢰할 수 있는 자바스크립트 정보 제공 사이트다.

2. Poiema Web

웹 프로그래밍을 공부하다 구글링을 하면 한번쯤 들어가게 되는 사이트. HTML부터 CSS, 자바스크립트 등 웹 개발 관련 기본 사항들이 잘 정리되어 있다.

3. 모던 자바스크립트 튜토리얼

이번에 새롭게 발견한 튜토리얼 웹사이트. 기본 설명과 함께 예제 및 과제가 함께 제공되는 좋은 사이트다. 번역은 현재 진행 중인 듯하다.

자바스크립트 알고리즘 문제 풀이 웹사이트

1. 프로그래머스

자바스크립트 뿐만 아니라 여러 코딩 문제를 풀어볼 수 있는 곳이다. 자바스크립트 문제를 풀어 보려면 언어에서 자바스크립트를 선택하면 된다.

2. 해커랭크

이번에 한 개발자로부터 추천받아 새롭게 알게된 문제 풀이 웹사이트다. 역시나 언어에서 자바스크립트를 선택하면 된다. 유저들이 문제를 제출하며, 우수 답안도 확인할 수 있다.

3. 코드워즈

단계별로 문제를 풀어 볼 수 있으며, 바로 코드를 작성해 실행해 볼 수 있다. 인터페이스도 훌륭하다.

4. 백준 알고리즘

한국분이 운영하시는 알고리즘 문제 풀이 웹사이트다. 인터페이스가 조금 아쉽지만, 한글로된 많은 문제를 풀어볼 수 있다.

자바스크립트 책 추천

1. 코어 자바스크립트: 자바스크립트 핵심 이론들을 잘 정리했다고 평가받는 책.

2. 모던 자바스크립트 Deep Dive: 가격만큼 만만치 않은 두께의 책이지만 자바스크립트를 아주 깊고 자세히 살펴볼 수 있는 책.

함께 읽어보면 좋은(을) 글

최종 업데이트: 2021. 03. 29

훌륭한 JavaScript 개발자가 되는 법

※ 이 글은 How to Become a Great JavaScript Developer의 번역본입니다.

저는 어릴 적부터 커가면서 점점 관심 분야가 다양해졌습니다. 급기야 겉으로 보기에는 아무 상관이 없는 영역까지 넓어졌습니다. 수학을 역사만큼이나 좋아했었는데, 제 목표는 여러 분야에 능통한 르네상스 맨(박식가)이 되는 것이었습니다. 하지만 이내 몹시 달성하기 어려운 목표임을 깨달았고, 어느 순간 저는 여러 분야를 알지만 어느 한 분야에도 능통하지 못한 사람이 되는 위험을 마주하게 되었습니다.

르네상스 시대 사람들처럼 될 수는 없어도, 적어도 한 분야만이라도 마스터한 사람이 되기 위해 특정 분야를 확실히 전문적으로 해야겠다고 생각했습니다. 어떻게 하면 소프트웨어 개발에 필요한 어마어마한 양의 지식을 유지하면서 내 전문 분야를 정할 수 있을까요?

지난 5년 간의 경험을 바탕으로 훌륭한 JavaScript 개발자가 되기 위해 썼던 기법과 자료를 대략 알려드리고자 합니다.

거의 모든 웹 개발자는 같은 문제에 시달리고 있습니다. 우리는 데이터베이스로부터 시작해서 백엔드 아키텍쳐, 프론트엔드 사용자 인터페이스, 그리고 CSS 지식으로 UI를 다듬는 부분까지 여러 분야에 모두 능통해야 합니다.

책 읽기

가장 우선적이고 중요한 제안은 잘하기 위해 헌신적인 노력을 해야 한다는 것입니다. 당신이 성의 없이 노력하는 동안은 잡스러운 결과만 얻을 것이 자명합니다. 예를 들자면 몇몇 블로그 게시물을 가끔 읽으면 초기 투자 시간이 적으니 그것이 쉬워 보일 것입니다. 그런 교육은 열정적이고 정제된 학습 과정보다 더 오랫동안 많은 시간을 할애하게 합니다. 이 딜레마의 해답은 간단합니다. 책을 읽으세요.

책이야말로 우리 문명을 떠받치고 있는 것입니다. 책 속의 글자는 우리가 지식을 정제된 형태로 현세대에서 다음 세대로 전달하는 수단입니다. 웹 기술 전문가가 되려면 먼저 당신이 언제 웹으로부터 거리를 두어야 하는지 배워야 합니다. 웹 그 자체는 학습 도구로서는 혼란스럽고 집중을 방해하는 매체입니다. 따라서 저의 첫 번째 제안은 특정 주제에 대한 책을 읽는 것입니다.

다음 책들로 JavaScript 공부를 시작해보세요. 먼저 더글라스 크락포드의 자바스크립트 핵심 가이드(원서/번역서)는 JavaScript의 성경 같은 책입니다. 오래된 책이지만, 여전히 JavaScript 공부를 시작하기에 가장 좋은 책입니다. 자바스크립트 완벽 가이드(원서/번역서는 절판) 또한 반드시 가지고 있어야 할 책입니다. 당신은 아마 이 책을 레퍼런스로 소장하게 될 것입니다. jQuery를 개발한 John Resig이 쓴 자바스크립트 닌자 비급(번역서) 또한 주목할 만합니다. 만약 당신이 좋은 (그리고 무료로 온라인에서 볼 수 있는) 책을 찾고 있다면 JavaScript Allongé, You Don’t Know JS, 자바스크립트 개론(원서/원서+주석/번역서)을 보십시오. 이 책들은 ebook이나 종이 책으로 살 수 있습니다. 또한 책은 아니지만 모질라 개발자 네트워크(MDN) 사이트에도 훌륭한JavaScript 가이드가 있습니다.

라이브러리 배우고, 사용하고, 읽기

다음으로 중요한 단계는 라이브러리들을 익히는 것입니다. 책이 당신에게 언어를 어떻게 읽는지 가르쳐 주었다면, 라이브러리는 당신에게 어떻게 말하는지를 알려줄 것입니다. 당신이 라이브러리로 해야 할 중요한 일은 두 가지입니다. 바로 그것들을 직접 사용해 보고, 소스 코드를 읽는 것입니다.

라이브러리 사용 측면에서는 jQuery, Backbone, underscore 와 React, Angular, Ember 중 한 가지 라이브러리에 익숙해져야 합니다. 이들 중 한 가지 라이브러리를 꼭 사용해야 한다는 말은 아닙니다. 그러나 JavaScript 개발자라면 최소한 이 라이브러리들에 대한 경험이 좋든, 나쁘든 어느 정도 있어야 한다는 것입니다.

다음으로 JavaScript 실력을 키우려면 이 라이브러리들의 소스 코드를 읽어보는 것도 중요합니다. 이 중에서 저는 Backbone과 underscore의 소스 코드를 강력하게 추천합니다. 두 라이브러리의 소스 코드는 무척 아름답습니다. underscore의 소스 코드를 읽고 이해해 가면서 당신은 함수형 프로그래밍 실력을 키울 수 있습니다. 소스 코드를 읽어 보면 좋은 또 다른 라이브러리로는, 제가 여러 개발자로부터 추천받기도 한 mootools이 있습니다. (저는 개인적으로 mootools에 대한 경험도, 소스 코드를 읽어본 적도 없습니다. 단지 메시지를 전달할 뿐입니다.)

앞선 목록에 있는 다른 라이브러리들도 살펴보세요. React나 Ember 같은 것들 말이죠. 분명 어려울 것입니다. 하지만 확실히 노력해볼 가치가 있습니다. 하다못해 다른 라이브러리들의 소스 코드 전체를 훑어보기라도 하면서 코드 베이스를 어떻게 설계하는지를 배우고, 몇 가지 패턴을 발견하기 위해 노력해보세요. 그 외에 d3, highchart, moment.js 등의 소스 코드도 읽어볼 만합니다.

연습하고, 스스로 질문하기

좋은 JavaScript 개발자가 되기 위한 다음 단계는 많이 연습해보는 것입니다. 원칙적으로 이 연습들은 DOM이 아니라 언어 그 자체에 초점이 맞춰져 있습니다. 따라서 반드시 테스트들이 node.js에서 돌아갈 수 있게 해야 합니다. node.js로 작게, 또 많이 연습하세요. 개인 훈련을 하고, JavaScript를 사용하는 다른 방법들을 살펴보세요. Closures, Prototypes, Array Extras (map, filter) 등이 있습니다. 연습하는 동안에는 언제나 JavaScript의 근본적인 철학들을 마음속에 새겨야 합니다.

제 친구 Armagan은 훌륭한 JavaScript 프로그래머이자 교사로서, Pro JavaScript Design Patterns을 자신의 수업 교재로 사용하고 있습니다. 그 수업을 통해 이 책의 가치는 입증되었습니다.

이런 질문에 대답해보세요. “Prototype을 사용한 상속은 어떻게 동작하는가?”, “Closure의 정의는 무엇인가?”, “this 키워드의 의미는 어떻게 변하나?”, “apply/bind/map/filter/call은 어떻게 사용하나?”. JavaScript 개발자들이 경험하는 일반적인 소스 포인트의 목록을 모아서 당신이 아는 대로 설명해 보세요. 이런 개념들을 다른 사람에게 글이나 구두로 설명해 보는 것은 당신의 실력 향상에 엄청난 도움이 될 것입니다. 연습을 하면서 “만약에 이랬더라면?” 하고 발견한 시나리오들을 시도해 보세요. 예를 들면, “bind를 두 번 썼을 때, ‘this’는 무엇을 의미하는가? 어떻게 jQuery는 ‘this’ 키워드를 전역 object가 아닌 jQuery object로 만드는가? 어떻게 이 라이브러리는 이런 기능을 제공하는가?” 같은 일반적인 질문들을 당신 스스로 해봐야 합니다.

표준 배우기

다음 단계는 EcmaScript 표준에 대해 더 깊이 알아 가는 것입니다. 최신 EcmaScript 표준을 뽑아 들고 읽어보세요. 이렇게 하면 ES6와 ES7으로부터 JavaScript의 새로 나올 기능들을 배울 수 있습니다. Nicholas Zakas의Understanding EcmaScript 6나 Dr. Axel Rauschmayer의 Exploring JS 같은 ES6 관련 책과 함께 표준을 읽으면 Promises, 모듈, 제너레이터, Comprehensions 같은 새로운 기능의 변화를 알 수 있습니다. 전문가가 되는 길은 지속해서 주요 소스로부터 표준을 배우고 언어의 새로운 기능을 발견해 나가는 것입니다.

웹에 있는 자료 활용하기

저는 앞서 웹을 통해 웹에 대해 배우는 것의 위험성을 언급했습니다. 이제 제 마지막 추천은 웹에서 최고의 리소스를 얻는 방법입니다. Hacker News는 꾸준히 따라가기에는 시간이 많이 들지만 노이즈가 줄어드는 좋은 소스입니다. 조금 버겁다면, 대신 JavaScript Weekly 같은 주간 다이제스트를 목표로 해보세요. 시간이 흐르면 당신은 어떤 라이브러리나 기술이 대세를 이끄는지 알 수 있을 겁니다. 트위터에서 영향력 있는 JavaScript 개발자를 찾아보세요. Tutsplus가 만든 33명의 팔로우할만한 JavaScript 개발자 목록은 좋은 출발점입니다. 웹에는 Toptal Blogs, Rebecca Murphey의 블로그, Nicholas Zakas의 블로그 와 같은 블로그들에도 자료가 있습니다. (혹시 관심이 있다면 A Baseline for Front-End [JS] Developers: 2015 의 글도 읽어보세요.)

(혹시 이 목록에 없는 다른 좋은 블로그가 있다면 저에게 메일로 알려 주세요.)

웹에 있는 또 다른 중요한 자료는 컨퍼런스와 교육 비디오입니다. 컨퍼런스로는 JSConf 시리즈가 질이 좋습니다. 교육 비디오 중에서는 Pluralsight를 강력하게 추천합니다. 숙련된 개발자 부대가 양질의 코스를 준비해 놓았습니다.(Pluralsgiht의 제휴를 받은 것은 아닙니다.)

요약

책을 읽는 것부터 시작하세요. 정제된 정보를 얻을 수 있습니다.

jQuery, underscore, Backbone 같은 주요 라이브러리를 배우고, 소스 코드를 읽으세요.

JavaScript의 여러 개념을 연습하고 자신이 아는 대로 설명해 보세요. 위 주제에 대해 강의하고 대화해 보세요.

최신 버전의 표준 문서를 읽고, 언어의 최신 기능을 도입해 보세요.

다이제스트나 블로그를 한 주마다 읽거나 컨퍼런스나 교육 비디오를 보면서 여러 웹 리소스를 따라가세요.

마치며

이 과정을 끊임 없이 반복하고, 수많은 프로젝트를 수행하다 보면 당신의 JavaScript 실력은 엄청나게 향상될 것입니다. 언제나 마음속에 헌신적인 노력을 하겠다는 생각을 놓지 않는다면 머지않아 실력자가 될 수 있습니다. 저는 스스로 좋은 JavaScript 프로그래머라고 생각하지만, 숙련된 개발자가 되려면 아직 멀었고, 앞으로도 여정을 계속하며 그 기술들을 따라갈 것입니다. 제 피드백이 필요하거나 수정할 사항이 있으면

[email protected]

으로 마음 편히 연락 주세요.

그리고 마지막으로, Ustun Ozgur Software에서는 터키 이스탄불에서 일할 숙련된 JavaScript 개발자를 모집합니다. 모집 상황은 저희 웹사이트를 참조해주세요.

즐거운 공부 되시길!

Ustun

여기까지 읽으셨다면 제 트위터 계정, @ustunozgur을 팔로우 해보시는 건 어떨까요?

React.js와 고급 JavaScript 훈련에 관심이 있으신가요? 제 개인 training/workshop 사이트를 방문해보세요.

저와 이 글에 대해 초기 논의를 해준 Engin Arslan에게 감사합니다.

HackerNews에서 논의해보세요.

역자 정보

번역: chiyodad(https://brunch.co.kr/@chiyodad), item4(https://item4.github.io/)

도움: haruair, realignist, nipol in 이상한모임

키워드에 대한 정보 자바 스크립트 공부

다음은 Bing에서 자바 스크립트 공부 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 자바스크립트 공부 효율적으로 하기

  • 1분코딩
  • 자바스크립트
  • 코딩
  • 웹디자인
  • 디자이너
  • 웹디자이너
  • javascript
  • css
  • html

자바스크립트 #공부 #효율적으로 #하기


YouTube에서 자바 스크립트 공부 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 자바스크립트 공부 효율적으로 하기 | 자바 스크립트 공부, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

Leave a Comment