[모던 자바스크립트 Deep Dive] 01장. 프로그래밍

윤상준·2022년 10월 5일
0
post-thumbnail

1.1 프로그래밍이란?

** 프로그래밍 (Programming) **
컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션
기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업

문제 해결 능력

프로그래밍에 앞서 해야할 준비는 다음과 같다.

  1. 해결해야 할 문제 (요구사항)를 명확히 이해한다.
  2. 복잡함을 단순하게 분해한다.
  3. 자료를 정리하고 구분한다.
  4. 순서에 맞게 행위를 배열한다.
  5. 문제 해결 방안을 정의한다.

컴퓨팅 사고 (Computational Thinking)

** 컴퓨팅 사고 (Computational Thinking) **
컴퓨터의 입장에서 문제를 바라보는 것.

컴퓨터의 관점에서 문제를 사고하는 컴퓨팅 사고는 필수적인 요소.

컴퓨팅 사고의 전제 조건

  • 논리적, 수학적 사고.
  • 해결 과제를 작은 단위로 분해하고 패턴화해서 추출.
  • 모든 개념은 평가 가능하도록 정의.

컴퓨팅 사고로 바라본 “걷다” 행위

1.2 프로그래밍 언어

** 프로그래밍 언어 **

  • 사람이 이해할 수 있는 약속된 구문 (Syntax, 문법)으로 구성된 언어
  • 사람과 컴퓨터 (컴파일러 또는 인터프리터) 모두가 이해할 수 있는 약속된 형태의 인공어

문제 해결 방안이 정의되면 컴퓨터가 이해할 수 있는 언어인 기계어 (Machine Code)로 명령을 전달해야 한다.

먼저 사람이 이해할 수 있는 프로그래밍 언어로 프로그램을 작성한 후, 기계어로 변환하여 컴퓨터가 이해할 수 있도록 해야한다.

컴파일러 (Compiler) & 인터프리터 (Interpreter)

💡 프로그래밍 언어를 기계어로 변환하는 번역기

프로그래밍

** 프로그래밍 (Programming) **

  • 프로그래밍 언어를 사용해 컴퓨터에게 실행을 요구하는 커뮤니케이션.
  • 구문 (Syntax)의미 (Semantics)의 조합으로 표현.

1.3 구문과 의미

문법에 맞는 문장과 의미 (Semantics)를 갖고 있어야 언어의 역할이 가능하다.

다음의 예시는 문법적으로는 오류가 없지만 의미 (Semantics)론적으로는 맞지 않다.

숫자를 의미하는 number 라는 이름의 변수에 문자열을 할당했기 때문.

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

프로그래밍

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

profile
하고싶은건 많은데 시간이 없다!

0개의 댓글