일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- C
- University
- 공리
- computer
- Engineer
- Engineering
- c++
- Developer
- It
- C언어
- 구조체
- 코딩
- 문법
- language
- 이진수
- 개발자
- Programming
- structure
- Mathmetics
- Axiom
- Syntax
- 정리
- primitive notion
- 증명
- Binary
- 프로그래밍
- coding
- Proposition
- 컴공
- proof
- Today
- Total
Study Note
프로그래밍이란? 본문
우리는 이미 컴퓨터를 사용하여 많은 일들을 합니다. 문서를 작성·편집하고 SNS를 이용하여 소통하며, 게임을 하기도 합니다. 이처럼 컴퓨터는 각 목적에 맞는 프로그램을 제공하고 우리는 이를 사용하여 원하는 목적을 수행합니다. 그렇다면 프로그램이란 무엇이고, 누가 어떻게 만들까요?
프로그램(Program)이란?
프로그램을 정의하기에 앞서 컴퓨터의 구조와 작동 원리에 대해 간략하게 알아볼 필요가 있습니다.
컴퓨터는 크게 물리적인 부분인 하드웨어(Hardware)와 컴퓨터에게 명령을 제공하는 부분인 소프트웨어(Software)로 구분되어 있습니다. 사람에 비유하면 하드웨어는 머리와 같은 육체적인 부분에 대응되고 소프트웨어는 생각과 같은 정신적인 부분에 대응된다고 볼 수 있습니다.
먼저 컴퓨터 구성의 베이스가 되는 하드웨어는 네 가지의 핵심 부품인 중앙 처리 장치(CPU, Central processing unit), 기억 장치(Memory), 출력 장치, 입력 장치를 포함하고 있습니다. 중앙 처리 장치는 데이터를 요청에 따라 처리(계산)하는 역할이고 기억 장치는 데이터를 보관하는 창고의 역할을 하며 입출력 장치는 사용자와 직접 소통하며 입력과 출력을 수행합니다.
다음으로 프로그램의 실질적인 부분인 소프트웨어는 크게 시스템 소프트웨어(System Software)와 응용 소프트웨어(Application Software)로 나누어지는데, 시스템 소프트웨어는 응용 소프트웨어와 하드웨어 사이의 교류를 담당하고 응용 소프트웨어는 특정 목적을 수행하기 위한 작업을 컴퓨터에게 전달하는 역할로 우리가 익숙히 사용하는 엑셀, 크롬, 한글 등이 포함됩니다.
그렇다면 프로그램이란 무엇일까요?
위에서 살펴보았듯이 컴퓨터는 원하는 목적에 따라 명령을 수행하는 기계라고 할 수 있습니다. 이때 목적을 위해 구성된 명령(instruction)들의 나열들을 바로 프로그램(Program)이라고 일컫습니다. 간단하게 작업지시서 정도가 적합하겠죠. 따라서 모든 프로그램은 소프트웨어라고 할 수 있습니다.
프로그램은 어떻게 만들까?
우리는 프로그램이 명령어들의 나열로 구성된다는 사실을 알았습니다. 그렇다면 프로그램을 만드는 것. 즉, 프로그래밍(Programming)은 이러한 명령어들을 잘 써나가기만 하면 된다는 것을 알 수 있습니다.
여기서 명령어들을 잘 쓴다는 말은 컴퓨터와의 소통의 개념으로 보면 이해하기 쉽습니다. 먼저 소통을 위해선 말이 통해야 하는데 컴퓨터의 언어(이진 체계)와 인간의 언어(자연어)는 다른 언어이므로 번역의 과정이 반드시 필요하게 됩니다. 이때 번역의 과정을 크게 두 과정으로 나눌 수 있습니다.
첫째로, 프로그래밍 언어(Programming Language)로 작성해야 합니다. 프로그래밍 언어는 C, Python, Java 등 명령어를 짜는 과정과 목적성에 맞게 다양하게 존재합니다. 이를 습득하는 방법은 우리가 외국어를 배우는 과정과 비슷합니다. 어휘와 문법(규칙)을 익히고 많이 사용해보면서 점차 범용적으로 사용할 수 있게 되는 것이죠.
이렇게 프로그래밍 언어로 작업지시서를 작성하는 과정을 코딩(Coding)이라고 말하고 그 결과물을 소스 코드(Source code)라고 말합니다. 여기서 한 가지만 덧붙이자면, 컴퓨터가 사용하는 언어는 굉장히 융통성이 없음을 인지하고 있어야 합니다. 즉, 코드는 원칙적으로만 작성되어야 한다는 것이죠. 여기서 원칙이란 문법(Syntax)과 논리(Logic)를 의미합니다.
사실 소스 코드까지만 작성이 된다면 두 번째 번역 과정은 시스템 소프트웨어인 컴파일러(Compiler)가 자동적으로 해줍니다. 작성한 각 문장들이 컴퓨터 언어인 이진수로 대응이 되어 번역되는 과정입니다. 이러한 대응 과정이 있기 때문에 문법이 중요하고 컴퓨터는 이렇게 대응된 상태의 이진수를 정확히 그대로 계산하기 때문에 논리가 중요한 것입니다.
프로그램을 만드는 사람은 누구인가?
이러한 일련의 과정을 거쳐 프로그램을 만들고 만든 소프트웨어를 사용하면서 생기는 오류들을 관리하는 사람을 프로그래머(Programmer) 혹은 개발자(Developer)라고 부릅니다.
누구나 다 쉽게 개발자가 될 수 있다고 생각하지는 않지만, 사회적 동물인 인간이 세상을 잘 살아가기 위해선 누구나 다 합리적인 사고를 해야한다고 생각합니다. 컴퓨터 사고는 곧 수학적 사고이며 합리적인 사고의 원천입니다. 수학이 너무 어렵게 느껴진다면 보다 가볍게 접근할 수 있는 프로그래밍으로 능력을 길러보는 것도 괜찮은 방법이라 생각듭니다.
'Computer' 카테고리의 다른 글
디지털 시스템과 이진수 체계 (0) | 2020.12.06 |
---|