01장 프로그래밍

박수경·2021년 12월 31일
1

javascript

목록 보기
1/3
post-thumbnail

🍎 프로그래밍이란?

프로그래밍이란 0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업이다.

컴퓨터에 주어진 문제에 대한 실행을 요구하기 위해서는, 문제 해결 능력이 요구된다. 문제를 해결하기 위해서는 문제를 명확하게 이해해야하고, 그렇기 위해서는:

  • 복잡함을 단순하게 분해한다. (decomposition)
  • 자료를 정리하고 구분한다. (modeling)
  • 순서에 맞게 행위를 배열한다.

문제를 이해한 후 문제 해결 방안을 고려할 때 컴퓨터의 입장에서 문제를 바라볼 수 있어야 하며, 그것을 Computational Thinking (컴퓨팅적 사고)라고 한다. 컴퓨터와 사람은 사고하고 인지하는 방식이 다르기 때문에 컴퓨팅적 사고를 하기 위해서는:

  • 논리적, 수학적 사고가 필요하다.
  • 해결 과제를 작은 단위로 분해라고 패턴화해서 추출해야한다.
  • 프로그래민 내에서 사용될 모든 개념은 평가 가능하도록 정의해야한다. (수치화!)

🍎 프로그래밍 언어

프로그래밍 언어란 컴퓨터와 대화하기 위해 사용되는 수단으로, 사람과 컴퓨터(컴파일러 혹은 인터프리터) 모두가 이해할 수 있는 약속된 형태의 인공어다.

문제를 해결했으면, 해결 방안을 컴퓨터에게 알려주어야 하는데 원래는 기계어로 명령을 전달했어야 했다. 하지만 사람이 기계어를 사용하는 것은 너무 어렵기 때문에 사람이 이해할 수 있는 프로그래밍 언어를 사용하여 컴파일러인터프리터라는 변역기를 통해 기계어로 변환한다.
프로그래밍 언어는 구문(syntax)의미(semantics)의 조합으로 표현한다.

아래는 기계어로 'Hello World'를 입력한 것이다.

7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00 02 00 03 00 01 00 00 00 35 40 B3 04 2C 00 00 00 00 00 00 00 00 00 00 00 34 00 20 00 01 00 00 00 00 00 00 00 00 40 B3 04 B2 0C EB 1C 62 00 00 00 62 00 00 00 05 00 00 00 00 10 00 00 48 65 6C 6C 6F 20 77 6F 72 6C 64 0A B9 4C 40 B3 04 93 CD 80 EB FB

자바스크립트와 같은 프로그래밍 언어를 사용하면 더 쉽게 표현할 수 있다.

console.log('Hello World');

🍎 구문과 의미

프로그래밍 언어에서 구문은 약속된 표현 방법(문법)이고, 의미는 그 속에 담긴 맥락이다.

프로그래밍 언어를 사용하기 위해서는 프로그래밍 언어의 문법을 배워야한다. 하지만 문법만 안다고 해서 완성되는 것이 아니라, 구문 속에 정확한 의미를 담아야한다.

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

위와 같은 코드는 문법적으로는 전혀 오류가 없지만, 의미가 맞지 않다. 프로그래밍 언어의 문법에 부합하는 것은 물론이고, 문제(요구 사항)이 정확하게 수행되어야만 의미를 가진다.
프로그래밍의 문법에는 다음과 같은 것들이 있다:

  • 변수: 값을 저장하거나 참조
  • 연산자: 값을 연산하거나 평가
  • 조건문과 반복문: 코드의 실행 순서 제어
  • 함수: 재사용이 가능한 구문의 집합
  • 객체, 배열: 자료의 구조화

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



** 이 글은 모던자바스크립트 Deep Dive(이웅모 저)를 정리한 글입니다.

profile
유저와 개발자 모두를 편하게 만드는 프론트엔드 개발자입니다.

0개의 댓글