Skip to content

Latest commit

 

History

History
40 lines (26 loc) · 3.11 KB

01_프로그래밍.md

File metadata and controls

40 lines (26 loc) · 3.11 KB

01. 프로그래밍

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

📌 1.1 프로그래밍이란?

프로그래밍이란 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 이를 위해 해결해야할 문제를 이해한 후 적절한 문제 해결 방안을 정의할 필요가 있다.

  • 문제 해결 능력
    문제 해결 능력알고리즘보다 더 큰 차원의 능력 대부분의 문제는 복잡하며 명확하지 않다. 따라서 복잡함을 단순하게 분해하고 자료를 정리하고 구분해야하며 순서에 맞게 행위를 배열해야한다. 즉, 프로그래밍이란 0과 1밖에 알지 못하는 기계가 실행할 수 있을 정도로 정확하고 상세하게 요구사항을 설명하는 작업이고 이때 필요한 것이 컴퓨팅 사고이다.
  • 컴퓨팅 사고(Computational thinking)
    컴퓨터와 사람은 사고, 인지의 방식이 다르다. 따라서 프로그래밍을 할 때는 컴퓨터의 관점에서 문제를 사고 해야한다. 예를들어 사람은 소리의 크기를 “크다” 또는 “작다”로 표현한다. 하지만 컴퓨터에게는 양적 개념인 숫자를 사용해 “볼륨을 60으로 조정해라”라고 명령해야한다.

📌 1.2 프로그래밍 언어

문제 해결 방안을 컴퓨터에게 전달할 때에는 사람이 이해할 수 있는 자연어가 아니라 컴퓨터가 이해할 수 있는 언어, 즉 기계어로 명령을 전달해야 한다. 하지만 사람이 기계어로 직접 명령을 전달하는 것은 매우 어렵다.

  • 컴파일러(Compiler)와 인터프리터(interpreter)
    프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 변환하는 일종의 번역기.
  • 프로그래밍 언어
    컴퓨터와의 대화에 사용되는 일종의 표현 수단으로, 사람과 컴퓨터(컴파일러 또는 인터프리터) 모두가 이해할 수 있는 약속된 형태의 인공어.

프로그래밍은 이처럼 프로그래밍 언어를 사용해 컴파일러 혹은 인터프리터로 전달하고 그것을 기계어로 번역해 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다.

📌 1.3 구문과 의미

프로그래밍 언어는 구문의미의 조합으로 표현된다.

프로그래밍 언어도 외국어를 구사할 때와 마찬가지로 문법에 맞는 문장을 구성하는 것은 물론 의미를 가지고 있어야 언어의 역할을 충분히 수행할 수 있다.

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

자바스크립트의 변수에는 어떠한 타입의 값도 할당할 수 있다. 따라서 위의 예제는 문법적으로는 문제가 없지만 의미적으로는 옳지 않다.

결론적으로, 문제를 만났을 때 문제 해결 능력을 바탕으로 해결방안을 찾고 그것을 문법과 의미에 맞게 코드로 나타내는 것프로그래밍이다.