TIL 9/5 프로그래밍이란

개발(공부) 자국·2021년 9월 4일
0

프로그래밍이란?

컴퓨터는 0과 1로 이루어진 이진수로 모든 데이터를 표현한다. 컴퓨터의 데이터는 이진수로 이루어진 기계어를 사용한다. 이 기계어는 사람들이 이해하기 정말 어렵다. 0과 1로만 이루어진 정말 많은 자리수의 수를 보고 이해할 수는 없다. 그래서 기계어를 컴파일러나 인터프리터를 가지고 번역하여 사람과 컴퓨터의 의사소통이 가능하게 된다. 이때 사람이 컴퓨터에게 명령하는 것이 프로그래밍이다.

프로그래밍 언어

프로그래밍으로 컴퓨터에게 명령을 전달하려면 프로그래밍 언어가 필요하다. 이것은 컴퓨터에게 전달하려는 컴파일러나 인터프리터가 번역할 수 있게 사람의 명령을 약속된 구문으로 표현하는 도구다. 이제 약속된 구문으로 이루어진 도구인 프로그래밍 언어를 사용해서 컴퓨터에게 명령을 전달하는 코드를 작성하면 된다.

컴퓨터적인 사고

이제 프로그래밍 언어를 가지고 컴퓨터에게 명령을 하게 될 때 컴퓨터의 특성과 사람의 특성을 나눠서 살펴보면 다른 것을 알 수 있다. 사람의 표현은 함축되고 생략된 의미들이 많다. 정말 많은 단계를 한 단어로 표현한다. 사람과 이야기 할 때는 이것이 당연하지만 컴퓨터에게 명령을 할 때는 모든 단계를 쪼개고 나눠서 하나하나 정확한 순서대로 명령해야 한다. '차가운 물좀 가져다줘' 라는 말을 컴퓨터에게 한다면
1 부엌으로 간다.
2 식기를 보관하는 선반을 찾는다.
3 식기선반 가장 왼쪽에 하얀 컵을 찾는다.
4 컵을 오른손으로 잡는다.
5 컵을 들고 냉장고 옆에 있는 정수기로 간다.
6 정수기의 물이 나오는 호수 아래에 컵을 올려둔다.
7 정수기의 버튼 중에서 오른쪽에 있는 파란색의 냉수 버튼을 한번누른다.
8 찬물이 담긴 컵을 들고 가져다 준다.
이런 단계를 순서대로 하나하나 설명해야 한다. 사람의 언어는 생략되어 있고 당연한 부부은 이야기 하지 않기 때문에 이것을 모든 단계를 하나씩 쪼개서 설명해야 한다. 이렇게 쪼개진 단계를 프로그래밍 언어를 가지고 컴퓨터에게 명령할 것을 단계별로 하나씩 코드로 적는다.

Syntax & Symantic

프로그래밍 언어에는 여러 문법들이 존재한다. 조건을 나누기도 하고 조건만큼 반복하기도 하고 변수에 계산 값을 저장하기도 한다. 하지만 이런 문법들은 모두 약속된 구문으로 표현된 것이다. 그리고 문법만 맞다고 말이 되지 않는다. 그 안에는 의미가 담겨야 한다. 이것은 어떤 명령을 할지 정확하게 전달해야 함을 말하기도 한다. 의미가 분명해야 한다는 것이다.

이런 과정들을 통해 개발자는 컴퓨터에게 프로그래밍 언어로 컴퓨터적인 사고에 기반하여 의미있는 명령을 코드로 작성하면 컴파일러나 인터프리터가 코드로 작성된 명령을 컴퓨터에게 기계어로 번역하여 전달한다. 그리고 컴퓨터는 명령 실행 결과를 다시 컴파일러나 인터프리터를 통해 개발자에게 결과를 전달한다.

profile
기록을 중요하게 생각하는 사람입니다. 학습한 내용을 정리한 것이라 잘못된 정보가 있을 수 있습니다. 잘못된 정보는 언제든 말씀해 주시기 바랍니다.

0개의 댓글