자바스크립트는 웬만해서 에러 없이 실행된다.
자바스크립트 엔진 내부에서 암묵적으로 처리해주는 기능도 많고, 작은 실수는 알아서 대응해주기도 한다.
하지만 이게 항상 좋은 것은 아니다.
명시적이지 않기 때문에 내부 동작을 이해하기 어렵기도 하다.
이런 이유는 자바스크립트의 탄생 목적이 일반적인 프로그래밍 언어와 다르기 때문이다.
대부분의 프로그래밍 언어는 앱을 개발하기 위해 설계되었지만 (즉 더 포괄적)
자바스크립트는 웹페이지의 단순한 보조 기능을 처리하기 위해 제한적인 용도를 목적으로 태어났다.
하지만 node.js(구글 v8 엔진) 등의 등장으로 브라우저에서만 사용할 수 있었던 자바스크립트를 프론트와 백에서 사용할 수 있게 되면서 다른 언어와 마찬가지로 범용 애플리케이션 개발 언어로 성장했다. 따라서 이제 기본 개념과 동작 원리를 깊이 있게 학습해야 한다.
input : 요구사항
-> 해결 방안 고안
ouput: 코드
1. 구현한 코드가 컴퓨터 내부에서 어떻게 동작할 것인지 예측 가능해야(안정적, 효율적 코드) 한다.
그러려면 기본 개념과 동작 원리를 정확히 이해해야 한다.
안 그러면 문제 해결 능력이 어느 선에서 성장을 멈추고 만다.
2. 협업을 위해 : 개념을 정확히 알아야 정확한 용어를 통해 명확한 의사소통을 할 수 있다
3. 다른 언어나 프레임워크를 학습하는 데도 도움이 된다
4. 디버깅 가능
1. 기본 개념과 동작 원리 이해
: 한번에 다가 아니라 중요 키워드를 중심으로 (기술면접 빈출 위주로)
: 완벽한 이해가 아니라 여러 번 반복해서 (효율)
: 학습 중인 키워드 외에 아직 학습하지 않은 개념에 대해서 일단 넘기기
" 앨리스의 토끼굴에 빠지지 말자"
용어/개념
문법
컴퓨팅 사고
2. 코드 구현 연습
: 문제 해결 방안을 문법을 통해 구체화하는 과정
: 의도적인 연습이어야 한다
-> 라이브 코딩을 감상하거나 예제를 단순히 타이핑하는 것은 연습이 아니다
-> 나의 능력으로 쉽게 해결 가능한 것을 반복하는 것도 아니다
-> 무모한 도전도 아니다
" 자신의 능력을 살짝 넘어서는 도전을 지속적으로 시도하는 것(시행착오) "
" 시도를 통해 모르는 것을 알고 성공하고 실패하는 의도적인 연습"
의도적 연습
API
프레임워크 / 라이브러리
3. 프로젝트
프로젝트를 통해 가상 경험