01장 프로그래밍

soonrok·2021년 4월 23일
0

자바스크립트 독학

목록 보기
1/48
post-thumbnail

해당 포스팅은 위키북스의 "모던 자바스크립트 Deep Dive"라는 책을 독학하며 기록하는 글입니다.


프로그래밍이란?

컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션.
프로그래밍에 앞서 해결해야 할 문제(요구사항)을 명확히 이해한 후 적절한 문제 해결 방안을 정의할 필요가 있다.

우리는 문제 해결 방안을 고려할 때 컴퓨터의 입장에서 문제를 바라봐야 한다.
-> computational thinking (컴퓨팅 사고)


프로그래밍 언어

문제 해결 능력을 바탕으로 정의된 문제 해결 방안은 컴퓨터에게 전달되어야 하고, 이는 컴퓨터가 이해할 수 있는 언어인 기계어(machine code)로 명령을 전달해야 한다.

하지만 기계어는 사람에게 너무나도 어려운 언어이고 대신 사람이 이해할 수 있는 약속된 구문으로 구성된 "프로그래밍 언어(programming language)"를 사용해서 작성하고, 번역기로 변환 후 전달해준다. 이때, 여기서의 번역기는 컴파일러 혹은 인터프리터라고 한다.

여기서 프로그래밍을 다시 정의하자면, 프로그래밍은 프로그래밍 언어를 사용해 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 프로그래밍언어는 구문(systax)의미(semantics)의 조합으로 표현된다.


구문과 의미

언어의 의미는 문맥에 있는 것이지 문법에 있는 것이 아니다. 즉, 문법적으로 전혀 문제가 없는 문장일 지라도, 의미가 없다면 소용없다는 것이다.

const number = 'string';
console.log(number * number);

해당 코드는 자바스크립트의 코드로 프로그래밍을 조금이라도 해본 사람은 이 코드를 보고 이런 생각을 할 수 있다. "number라는 변수에 문자열이 할당되어 있는데, 이를 곱연산을 하는 것이 과연 맞을까??"

그렇다. 실제로 자바스크립트에서는 변수에 어떠한 타입의 값도 할당할 수 있기 때문에 위 코드는 문법적으로 전혀 오류가 없지만, 의미적으로는 옳지 않다는 뜻이다.


마치며...

프로그래밍은 요구사항의 집합을 분석해서 적절한 자료구조함수의 집합으로 변환한 후, 그 흐름을 제어하는 것이다.

profile
I Will be Relaxed Person

0개의 댓글