프로그래밍의 의미
일상 속에서 흔히 프로그래밍이라는 단어를 사용한 지 벌써 몇십 년이 지났다.
프로그램이라는 단어는 일반인들도 많이 들어봤을것이다. 텔레비전 프로그램, 행사 프로그램, 컴퓨터 프로그램 등 생활 속에도 프로그램이라는 단어는 종종 사용되어왔다. 그렇다면 프로그램은 무엇이고 프로그래밍은 무슨 말인지 알아보자.
프로그램(여기서 프로그램은 컴퓨터 프로그램을 의미한다.)은 특정한 알고리즘을 이용해 짜여진 동작의 집합체를 의미한다고 볼 수 있는데, 이러한 프로그램을 통해 생활의 다양한 문제를 해결하는 것이 그 목적이라고 할 수 있다. 예를 들어보면 내일 기상을 확인한다거나, 사물을 제어하는 것이 대표적인 사례가 되겠다. 그렇다면 프로그래밍(programming)은 무슨 의미일까? 프로그래밍(programming)은 단어 그대로 프로그램을 만드는 작업을 뜻한다. 실생활에 불편함을 해결하기 위해 프로그램을 만들어가는 과정과 작업이다. 여기서 불편함은 앞서 얘기했던 것뿐만 아니라 단순하고 반복되는 작업을 한 번에 일괄적으로 처리할 수 있게 만드는 것도 프로그래밍에 해당한다.
프로그래밍의 순서
프로그램의 의미와 프로그래밍의 뜻에 대해 알아보았다. 그렇다면 어떻게 진행되는지 알아보자.
프로그래밍을 시작하기 앞서 어떻게 만들지에 대해 우선 생각해보아야한다. 어떠한 기능이 필요하고, 그러한 기능을 수행하기 위해서 어떤 요소들을 사용해야 하며, 그것들이 어떠한 방식으로 동작하는지 까지 파악을 하고 있어야 한다.
건축을 예시로 들어보자. 건물을 짓기 위해서는 설계도면이 필요하고, 설계도면에 나와있는 재료들이 필요하다. 프로그래밍도 마찬가지로 방식의 고민과 사용할 요소들에 대한 고민이 필요하다. 단지 필요에 의해서 바로 프로그래밍을 시작하면 처음부터 만들기도 쉽지 않을뿐더러, 설사 만들어졌다고 하더라도 이후 유지보수에 있어 불편하고 불리한 부분이 많을 것이다. 따라서 일반적으로 이러한 순서를 따른다. 우선 문제가 무엇인지 파악하고 확인한다. 그 후 문제를 해결하기 위해 프로그램을 설계한다. 설계가 완료되면 설계도면만 만들어진 상태이다. 이것을 실제로 보이게 만드는 프로그램 구현 과정이 필요하고, 설계에 따라 구현했을 때 원하는 대로 동작하는지, 버그 같은 사소한 문제는 없는지 확인해야 한다. 이를 테스트, 디버깅이라고 부른다. 마지막으로 테스트가 정상적이고 만족스러웠다면 추가적으로 필요한 부분에 대해 보수를 하고, 꾸준하게 프로그램이 정상적으로 동작할 수 있도록 관리를 해주어야 한다. 이를 유지보수 단계라고 부른다.
프로그래밍 방법
프로그램을 만드는 데에는 개발환경이라는 것이 준비되어야 한다. 컴퓨터가 스스로 코드를 생성하는 메타 프로그래밍을 제외하고는 사람의 손이 필요하다. 초기에 수동으로 프로그래밍하던 어셈블리어를 최근에는 컴파일러가 자동으로 생성해준다. 개발언어에 맞는 개발환경이 구축되었다면, 원하는 대로 프로그래밍을 진행하면 된다. 일반적으로 JAVA 개발은 이클립스, HTML, CSS, JS와 같은 프런트엔드 부분은 VSCode, 웹 백엔드인 Spring, jsp 등으로 작업할 때는 STS(Spring Tool Suite)를 사용해서 개발을 진행한다. 프로그래밍이라고 하면 일반인들은 검은 화면에 녹색 글자들이 빠르게 왔다 갔다 반복하는 장면들을 떠올릴 것이다. 하지만 이런 생각은 모두 맞지는 않는다. 일부 직종에 따라 그러한 형태를 띤 화면을 보는 직종(예를 들면 보안) 분야라던지, DB(데이터베이스)와 연관된 직업을 갖고 있다면 그러한 모습을 보고 작업할 수 있지만, 가장 대중적인 개발자의 업무는 조금 다르다. 개발자는 개발환경에 맞추어 개발을 진행하고, 프로그램을 만드는 일을 한다. 흔히 HTML 코딩을 한다고 개발자라고 지칭하기도 하는데, 이 부분에 대해서는 언쟁이 많은 편이다.
국내에서 HTML 코딩을 주 업무로 하는 사람을 퍼블리셔라고 지칭하는데, 이 퍼블리셔는 사실 국내에서만 통용되는 단어로 해외에서는 퍼블리셔라는 단어 자체를 사용하지 않는다. HTML코더, 마크업 개발자 등으로 불린다고 한다.
퍼블리셔는 디자이너와 개발자 사이에서 시안을 웹사이트에 그대로 구현하는 업무를 담당하는데, 이 부분은 명백히 이야기하면 개발과는 조금 거리가 있는 부분이니 참고하면 좋을 것 같다.
이번 시간은 짧게 프로그래밍에 관한 얘기를 남겨보았다. 퍼블리셔나 개발자나 모두 만만하지 않은 직업군이니 혹시나 희망하는 사람이 있다면 열심히 준비해서 좋은 결과 얻길 바란다.