1.1 프로그래밍이란?
프로그래밍이란 문제 해결 능력으로 요구사항을 이해 및 풀이하고 정리하여 문제 해결을 위해 기계에게 정확하고 상세히 요구사항을 설명하는 작업이다.
문제 해결 방안을 고려할 때는 컴퓨터 입장에서 문제를 보는 컴퓨팅 사고를 갖고 논리적 수학적 사고가 필요하다.
또한, 해결 과제를 작은 단위로 분해하고 패턴화해서 추출하며, 프로그래밍 내에서 사용될 모든 개념은 평가 가능하도록 정의해야한다.
기능 디자인에서는 판단해야하는 상태와 그 상태를 판단하는 시기, 그리고 판단 기준을 정의해야 하며, 이를 바탕으로 분해한 처리의 실행 여부를 결정한다.
1.2 프로그래밍 언어
문제 해결 능력을 바탕으로 정의된 문제 해결 방안은 컴퓨터에게 전달되어야 하는데, 컴퓨터는 기계어로 명령을 전달해야 이애하고 동작한다.
하지만, 사람이 기계어를 이해해서 직접 명령을 전달하는 것은 어렵다.
사람이 컴퓨터에게 명령을 전달할 수 있는 방법은 있다.
- 프로그래밍 언어를 이용해 사람이 이해할 수 있는 구문(문법)을 사용해 프로그램을 작성
- 컴퓨터가 이해할 수 있는 기계어로 컴파일러 혹은 인터프리터를 이용해 번역해 전달
이렇게 사람이 컴퓨터에게 명령을 전달할 수 있다.
종합하자면, 프로그래밍 언어는 구문과 의미의 조합으로 사람의 명령을 컴퓨터에게 전달할 때 번역해 표현한다.
1.3 구문(Syntax)와 의미(Semantics)
외국어와 프로그래밍에서 문법에 맞는 문장을 구성하는 것은 물로 의미를 갖고 있어야 언어의 역확을 충실히 수행할 수 있다.
이것은 다음 예로 설명이 가능하다.
const number = 'string';
console.log(number * number); // NaN
number라는 변수에 'string'이라는 문자열이 할당하는 것과 그것을 재곱계산 하는 것 또한 문법적으로는 문제가 없다.
하지만 결과값 즉, 문제 해결이 원활히 되지 않지 않았는가!!!
위에서 알 수 있듯이, 문제 해결 능력을 통해 만든 해결 방안(프로그래밍 언어로 표현된 코드)은 요구사항이 실현(문제 해결)이 되어야 의미가 있는 것이다.
결론!
프로그래밍은 요구사항의 집합을 분석해서 적절한 자료구조와 함수의 집합으로 변환한 후, 그 흐름을 제어하는 것이다.
'JavaScript > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
7. 연산자 (0) | 2023.11.02 |
---|---|
6. 데이터 타입 (0) | 2023.10.27 |
5. 표현식과 문 (1) | 2023.10.24 |
4. 변수 (0) | 2023.10.24 |
2. 자바스크립트란? (0) | 2023.10.19 |