[모던 자바스크립트 딥다이브] 01장 프로그래밍

프로그래밍이란

0과 1밖에 모르는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 커뮤니케이션 작업, 그 결과물이 바로 코드

 

사진: Unsplash 의 Blake Connally

 

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

ex) '듣다'라는 행위에서 사람은 크다, 작다로 소리를 표현하지만 컴퓨터는 수치화하여 해당 기능을 구현해야 한다. 사람에게는 당연한 행위도 컴퓨터에게는 수치화한 구체적인 기능적인 요구사항과 이에 대한 구현이 필요하다.

 

프로그래밍 언어

컴퓨터가 이해할 수 있는 언어는 자연어 즉 기계어이다. (0과 1로 이루어진 언어)

사람이 자연어를 사용해서 기계와 커뮤니케이션하기는 쉽지 않다. 그래서 약속된 문법으로 구성된 프로그래밍 언어를 사용해서 코드를 작성 후 컴퓨터가 이해할 수 있도록 번역기를 사용해서 기계어로 변환한다. 여기서 번역기를 컴파일러 혹은 인터프리터라 한다.

 

구문과 의미

  • 구문은 프로그래밍 언어에서 사용하는 문법을 의미한다. (반복문, 조건문, 변수, 함수, 자료구조 등)
  • 프로그래밍 문법만 잘 지켰다고 해서 문제해결이 되는 것은 아니다.
  • 올바른 문법으로 짠 문장의 의미가 요구사항과 맞아야 한다.
const number = 'string';
console.log(number * number); // NaN
  • 변수명이 number인데 데이터는 문자열이다.
  • 문자열끼리 곱을 하니 NaN이 나온다.
  • 자바스크립트의 문법에는 문제가 없지만, 사용된 변수명, 실행 상황에서 나오는 의미가 많지 않은 부분들이 존재한다.
  • 개발자는 문법은 물론 요구사항에 맞는 의미 있는 해결책을 만들어야 한다.

 

정리

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