태도는 사소한 것이지만 그것이 만드는 차이는 엄청나다.
즉, 어떤 마음가짐을 갖느냐가 어떤 일을 하느냐보다 더 큰 가치를 만들 수 있다.
- 윈스턴 처칠
요즘 코딩이나 프로그래밍이랑 말을 많이 들어봤을 것입니다. 흔히들 코딩이나 프로그래밍을 거의 같은 의미로 이야기를 하는 편이지만 세부적으로 보면 차이가 있다고 볼 수 있습니다(현재 코딩과 프로그래밍을 동일하게 바라보고 사용하는 곳이 많기 때문에 주관적인 견해를 바탕으로 작성되었습니다). 프로그래밍에 관련된 글들을 작성하기에 앞서서 프로그래밍, 프로그래머에 대해서 조금 더 알아보려고 합니다.
코딩(Coding)
코딩에 대한 사전적인 정의로 찾아보면 아래와 같이 나와 있습니다.
프로그램 언어 또는 기계 언어를 써서 프로그램을 기술하는 것.
- 컴퓨터 정보용어대사전
흔히 컴퓨터 프로그램을 만들기 위해 사용되는 프로그램 언어를 이용해 작성한 것을 코드(Code)라 부르고 이를 작성하는 행위를 코딩이라고 부를 수 있습니다. 일반적으로는 컴파일 등의 과정을 거쳐 실제 기계가 읽을 수 있는 C, Java와 같은 프로그래밍 언어로 작성이 됩니다. 간혹 의사코드(pseudocode)를 이용하여 실제 컴퓨터에서 실행할 수 없는 형태의 코딩이 이루어지기도 합니다. 이런 의사코드는 여러 프로그래밍 언어를 사용하는 사람들이 모두 이해할 수 있도록 설명할 때 주로 이용됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
void function fizzbuzz
For (i = 1; i<=100; i++) {
set print_number to true;
If i is divisible by 3
print "Fizz";
set print_number to false;
If i is divisible by 5
print "Buzz";
set print_number to false;
If print_number, print i;
print a newline;
}
// C 스타일 의사코드(출처 : 나무위키)
|
cs |
이런 코딩의 행위는 프로그래밍 과정의 일부 단계라고 볼 수 있습니다. 어떤 프로그램을 만들기 위한 프로젝트에 맞는 목적에 따라 선택된 언어로 코드를 작성하는 과정이 코딩이며 이를 하는 사람을 코더(Coder)라고 합니다.
프로그래밍(Programming)
프로그래밍에 대한 사전적인 정의를 찾아보면 아래와 같이 나와 있습니다.
컴퓨터의 프로그램을 작성하는 일. 프로그래밍 작업에는, 요구되는 정보처리를 실현하는 처리 절차를 정하는 일과, 그것을 프로그램 언어나 어셈블리 언어에 의해서 프로그램으로 기술하는 2가지 측면이 있다. 작성한 원시 프로그램은...
- 컴퓨터 정보용어대사전
프로그래밍은 코딩 과정을 포함한 더 넓은 개념으로 기계가 원하는 동작을 하기 위해 프로그램을 설계하고 개발하는 전 과정을 이야기합니다. 예를 들어, 어떤 기계에서 작동하고 어느 정도의 속도로 처리를 하는지 등에 대해 설계하고 이에 따라 프로그래밍 언어 및 컴파일러 등을 결정하고 개발을 진행하고 테스트 진행하는 전 과정을 이야기합니다. 이런 일을 하는 사람이 프로그래머(Progammer)라고 합니다.
코딩과 프로그래밍의 차이
위와 같이 코딩은 프로그래밍의 한 단계라고 볼 수 있으며 크게 보면 프로그래밍 중 가장 중요한 부분이라고 생각합니다. 아무리 잘한 설계라도 그걸 실행시키는 코드가 제대로 동작되지 않는다면 그건 실패한 프로그램일 수밖에 없으니까요.
도서 제목을 입력하면 등록된 책의 위치를 찾아주는 검색 프로그램을 A와 B라는 사람이 만들었다고 생각을 해봅시다. 초기에 그 프로그램을 이용하여 검색을 해보니 두 개의 프로그램 모두 작동이 잘 되었습니다. 이후 시간이 흘러 책의 등록이 권수가 수십만권이 넘어가고 하면서부터 A라는 사람이 만든 프로그램은 여전히 빠른 속도로 실행되는데 반해 B라는 사람이 만든 프로그램에서 검색하는데 시간이 느려지는 경우가 생겼습니다. 왜 이렇게 차이가 생기게 됐을까요?
위의 예는 설명을 위해서 임의로 만든 것이지만 현실에서 일을 하다보면 생각보다 자주 발생하고 있는 문제입니다. 주어진 조건을 이용하여 코드를 작성하고 프로그램을 만드는 건 공부를 하고 일을 배우고 하면 누구나 할 수 있다고 생각합니다. 하지만 그 프로그램을 잘 만드는건 누구나 할 수 있는건 아닙니다. B라는 사람이 만든 프로그램처럼 누구나 코딩을 할 수는 있지만 A라는 사람이 만든 프로그램처럼 프로그래밍을 하기는 쉽지 않다고 생각합니다.
S/W 개발 일을 하다보면 누군가가 만들어 놓은 코드를 보는 경우가 굉장히 많습니다. 어떤 코드는 정말 군더더기 하나도 없이 감탄이 나오기도, 또 어떤 코드는 보자마자 한숨부터 나오기도 합니다(본인이 작성한 코드로 인해 한 숨을 쉬고 계실 분께 사죄의 말씀을 드립니다). 이 한숨과 감탄의 차이가 코딩과 프로그래밍의 차이가 아닐까 생각합니다.
프로그래머(Programmer)가 되어 보자
요즘 컴퓨터의 성능은 나날이 발전하고 프로그래밍 언어는 점차 더 사용이 편리해지면서 누구나가 개발을 할 수 있는 시대가 되고 있고, 주위에서는 4차 산업혁명 시대를 대비한 코딩 교육의 중요성 등이 강조되고 있습니다. 단순히 코딩만 하는 코더(Coder)가 되지 말기를 바랍니다.
대학교에서 관련 전공을 공부하거나 회사에서 S/W 개발 업무를 하다 보면 선배들이 우스갯소리처럼 한 번씩 하는 이야기가 있습니다.
"코더가 되지 말고 프로그래머가 돼라"
저도 취업하고 얼마 지나지 않아 선배에게 들었던 이야기인데 당시에는 그냥 열심히 하라는 의미로 생각을 했었는데 지금 생각해보면 조금은 그 뜻을 알 것도 같습니다. 저도 아직 프로그래머 보다는 코더에 가깝지 않을까합니다. 모두 프로그래머가 될 수 있도록 노력해봅시다!
'A. Programming > Common' 카테고리의 다른 글
객체지향 프로그래밍(OOP) 절차적 프로그래밍(PP) (0) | 2021.07.04 |
---|---|
프로그래밍 언어 종류 - 2 (0) | 2021.07.02 |
프로그래밍 언어 종류 - 1 (0) | 2021.06.26 |