본문 바로가기

Road to Web Developer/JavaScript

프로그래밍이란?

자바스크립트 카테고리에서 갑자기 프로그래밍이 나와서 당황했는가?

당황할 필요 없다. 자바스크립트는 프로그래밍 언어 중 하나일 뿐이며, 자바스크립트를 잘 이해하기 위해서는 프로그래밍에 대한 개념과 이론을 알고 공부하는 것이 좋다.

 

따라서 당신이 자바스크립트를 배우는 첫 걸음을 조금이나마 쉽게 뗄 수 있도록 개념적인 이해를 돕고, 프로그래밍에 필요한 핵심 요소들을 먼저 설명한 뒤 자바스크립트 문법, 예제 등을 소개하고자 한다. 우선 프로그래밍에 대해 알아보도록 하자.

 

개발자가 평생 보며 살아갈 화면

프로그래밍이란, 컴퓨터에게 실행을 요구하는 일종의 커뮤니케이션이다. 이를 위해 먼저 무엇을 실행하기 원하는지에 대한 정의가 필요하다. 다시 말해, 프로그래밍에 앞서 문제(요구사항)를 명확히 이해한 후 적절한 문제 해결 방안의 정의가 필요하다.

 

이때 요구되는 것이 문제 해결 능력이다. 누군가는 문제 해결 능력을 알고리즘과 동일시하려는 경향이 있지만 반드시 그런 것은 아니다. 물론 문제 해결 능력의 함양에 있어 알고리즘 학습은 큰 도움이 되지만 문제 해결 능력은 더 큰 차원의 능력이다.

 

대부분의 문제(요구사항)는 복잡하며 명확하지 않을 수도 있다. 따라서 문제(요구사항)를 명확히 이해하는 것이 우선되어야 하며 복잡함을 단순하게 분해(Decomposition)하고 자료를 정리하고 구분(Modeling)해야 하며 순서에 맞게 행위를 배열해야 한다.

 

즉, 프로그래밍이란 0과 1밖에 알지 못하는 기계가 실행할 수 있는 정도로 정확하고 상세하게 요구사항을 설명하는 작업이며 그 결과물이 바로 코드이다. 모호하고 대략적인 요구사항을 전달해도 우리의 머리 속에 있는 의도를 정확히 꿰뚫어 완벽히 이해하는 컴퓨터는 절대 존재할 수 없다.

 

우리는 문제 해결 방안을 고려할 때 컴퓨터의 입장에서 문제를 바라보아야 한다. 이때 필요한 것이 Computational thinking이다. 사람의 일반적인 사고 방식은 매우 포괄적이며 실생활에서 경험하고 있는 익숙한 사항에 대해 당연시하는 안이한 인식이 있다.

 

문제 해결 능력은 직감과 직관의 영역이라고 볼 수 있는데 이는 문제를 바라보는 우리의 사고와 경험에 영향을 받는다. 예를 들어 “듣다(Listen)”라는 행위를 사람은 하나의 간단하고 당연한 기능으로 생각한다. 하지만 컴퓨터에게 이 행위를 설명하는 것은 단순하지 않다. 그리고 사람은 소리의 크기를 “크다” 또는 “작다”고 표현한다. 하지만 크다 또는 작다는 의미는 상대적인 개념으로 기준이 불명확하다. 컴퓨터에게는 양적 개념인 숫자를 사용하여 “현재 볼륨보다 1단계 크게 조정하라” 또는 “볼륨을 60으로 조정하라”고 명령해야 한다. 또한 “좋다”, “붉다”, “사랑”과 같은 관념적 개념은 컴퓨터에게 매우 난해한 개념이다.

 

사람은 지인의 얼굴을 보고 누구인지 바로 인지하지만 컴퓨터에게 이것은 매우 어려운 일이다. 3479의 계산은 사람에게는 쉽지 않지만 컴퓨터에게는 매우 쉬운 작업이다.

 

이처럼 컴퓨터와 사람은 사고, 인지의 방식이 다르다. 따라서 해결 과제를 컴퓨터의 관점으로 사고(Computational thinking)해야 한다. 이에는 논리적, 수학적 사고가 필요하게 되며 해결 과제를 작은 단위로 분해하고 패턴화하여 추출하며 프로그래밍 내에서 사용될 모든 개념은 평가 가능하도록 정의되어야 한다.


[출처] poiemaweb.com/coding

'Road to Web Developer > JavaScript' 카테고리의 다른 글

브라우저의 동작 원리  (2) 2020.10.04
Javascript, 왜 중요한가?  (4) 2020.09.25
자바스크립트는 무엇인가?  (0) 2018.12.03