1.본격적으로 JS(자바스크립트)를 설명하기전에, 프로그래밍이란 ?
앞서 설명했던 html과 css와는 다르게 JS(자바스크립트를 편의상 JS라고 하겠다.) 는 프로그래밍언어이기 때문에 프로그래밍에 대해서 간략하게 설명하고 넘어가겠다.
프로그래밍
이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다.
이를 위해서 무엇을 원하고 어떤식으로 컴퓨터에게 명령을 전달하는 지를 알아야한다.
다시 말해, 프로그래밍에 앞서 문제(요구사항)를 명확히 이해한 후 적절한 문제 해결 방안의 정의가 필요하다.
컴퓨터는 0과 1밖에 알지못하기 때문에 우리가 원하는 요구사항을 컴퓨터가 알아들을 수 있게 정확하고 상세하게 코드로 풀어서 쓰는 것을 프로그래밍
이라고한다.
우리는 문제해결을 위해서 컴퓨터를 이용하기때문에 문제 해결 방안을 고려할때 컴퓨터의 입장에서 문제를 바라봐야 하는데 이때 필요한것이 컴퓨터적사고 (Computational thinking)이다.
2.프로그래밍언어
컴퓨터는 인간이 이해할 수 있는 언어(자연어)가 아니라 기계가 이해할 수 있는 언어(기계어)로 명령을 전달해야 하는데,
직접 기계어로 전달하는 것을 대신할 가장 유용한 대안은 인간이 이해할 수 있는 약속된 구문(Syntax)으로 구성된 프로그래밍 언어(Programming Language)
를 사용하여 프로그램을 작성한 후, 그것을 컴퓨터가 이해할 수 있는 기계어로 변환하여 주는 일종의 번역기를 이용하는 것이다. 이 일종의 번역기를 컴파일러(compiler)
혹은 인터프리터(interpreter)
라고 한다.
프로그래밍 학습은 일반적으로 프로그래밍 언어의 문법을 배우는 것부터 시작한다.
이는 외국어 학습과 유사하다고 할 수 있다.
외국어를 잘하려면 외국어 화자의 말이나 문장을 정확히 이해한 후, 문맥에 따른 적절한 어휘 선택, 그리고 순차적으로 결론을 향해 나아가는 문장 구성이 필요하다. 즉, 문법에 맞는 문장을 구성하는 것은 물론 의미(Semantics)를 가지고 있어야 언어의 역할을 충실히 수행할 수 있다.
3.기본 개념과 동작 원리 이해의 중요성
프로그래머가 해야 할 일은 문제를 해결하기 위한 방안을 고안하고 이것을 문법에 맞게 코드로 구현하는 것이다.
구현된 코드는 의도한 대로 정확히 동작하여 문제를 해결해야 한다.
이때 자신이 구현한 코드가 컴퓨터 내부에서 어떻게 동작할 것인지 그리고 무엇을 돌려 줄 것인지 예측 가능해야 한다.
이를 위해서는 프로그래밍 언어의 기본 개념과 동작 원리를 정확히 이해하는 것이 중요하다.
기본 개념과 동작 원리를 이해하지 못한 상태에서 Copy & Paste로 단순히 동작만 하는 코드를 만들고 그것에 만족한다면 여러분이 구현한 코드는 신뢰할 수 없고 유지하고 보수하기 까다로운 코드가 될 것이다.
그리고 문제 해결 능력은 어느 선에서 성장을 멈추고 말 것이다.
동작 원리의 이해는 코드의 동작을 예측할 수 있게 돕는다.
또한 에러를 발생시키는 코드를 만나면 에러가 발생하는 원인을 이해해야 디버깅이 가능하다.
이를 위해 코드의 동작을 예측할 수 있는 능력은 필수 불가결적 요소이다.