프로그램 개발의 종류
프로그램 개발의 종류에 대해 알아보자. 프로그램 개발의 분류를 먼저 살펴보면 아래와 같다.
프로그램을 개발하는 콘텐츠의 환경에 따라 분류할 수 있는데, 가장 먼저 PC, 모바일 환경에서 모두 사용 가능한 웹 개발이 있고, 모바일 환경에서 사용되는 앱을 개발하는 앱 개발, 온라인 게임을 만드는 게임 개발, 우리가 사용하는 PC와 모바일 환경을 만드는 OS 개발 등 다양한 종류의 개발이 있다. 이런 개발 유형에 의한 분류 외에 일반적으로 업무 포지션이라고 부르는 부분으로 나눌 수도 있는데, 이 부분을 한번 언급해보겠다.
제일 먼저 프론트엔드(Frontend) 개발자를 살펴보자. 프론트엔드는 넓은 범위에서 UI적인 부분을 담당하는 개발을 의미하고, 쉽게 설명하면 눈에 보이는 부분을 개발한다고 생각해도 무방한데 일반적으로 웹 개발에서 프론트엔드라는 단어를 많이 사용한다. 프론트엔드 개발자는 주로 Javascript(JS)를 사용하고, JS를 기반으로 한 다양한 라이브러리와 프레임워크를 응용해서 사용하는 것이 대부분이다. 현재 시점에서 대중적인 라이브러리, 프레임워크로는 페이스북에서 만든 리액트(React)와 뷰(Vue.js) 정도가 있다. angular도 어느 정도 쓰이지만, 더 대중성 있고 유명한 두 가지를 앞서 나열해보았다.
두 번째로 백엔드(Backend) 개발자가 있다. 백엔드 개발자는 말 그대로 사용자가 볼 수 없는 프로그램의 뒷부분을 담당하는 개발자로, 서버 개발자라는 말을 사용하기도 한다. 주로 데이터베이스(DB)를 많이 사용하고, 쿼리문을 능숙하게 다루며, 프로그래밍 언어로는 JAVA를 가장 보편적으로 사용하는 추세이다. 최근에는 JAVA 다음으로 python(파이썬)이 떠오르고 있는 상황이다. 파이썬은 문법이 간단하고 심플해서 익히기 수월한 부분이 있어 각광받고 있는 프로그래밍 언어이다.
번외로 개발의 영역은 아니지만 개발과 디자인의 중간지점에서 일을 하는 퍼블리셔라는 직업도 있다.
마크업 언어인 HTML과 CSS, JS를 복합적으로 사용하여 디자인 시안을 웹 사이트상에 표현하는 업무를 맡는다.
간혹 작은 회사의 채용공고를 보면 웹 퍼블리셔 / 프론트엔드 개발자라고 적힌 구인공고가 있는데, 이러한 업체 중 일부는 프런트엔드 라이브러리인 리액트를 사용하는 경우도 종종 있다고 한다.
프로그램 개발의 미래
현재 시점에서 한국의 프로그램 시장은 어떤 방향으로 흘러가고 있으며, 어떤 미래가 기다리고 있는지 알아보자.
구인시장에서 중소기업의 프로그램 개발자 채용은 갈수록 어려워지고 있다. 신입 개발자(1년~3년)와 중급이상 개발자는 충분한데 반해, 신입과 고급의 사이인 중급 개발자의 인력이 부족한 상황이다. 이로 인해 적당한 숙련도와 고급 개발자에 비해 적은 임금을 요하는 중급 개발자는 중소기업에서 가장 필요한 인재들인데, 인력이 부족하다 보니 이런 문제로 고통받고 있는 것이다. 일부 뉴스 기사와 신문에서는 개발자 인력난이라고 표현하며 상세한 내용을 다루지는 않는다. 이러한 단어만 보고 너도 나도 개발자로 이직하려 뛰어드는데, 이런 부분은 지양해야 할 행동이라고 생각한다. 개발자가 부족한 것은 맞지만 정확히는 중급 개발자가 부족한 것이다. 다른 여타 직업들이 그렇듯 개발자 또한 만만하고 편한 직업이 아니다. 사무실에 앉아 키보드만 누르니 편해 보일 수 있다. 하지만 다시 생각해보자. 그 자리에서 일하기까지 정말 긴 시간을 학습하고 겪어왔을 것이다. 하지만 개발을 시작한 이후부터 직종을 그만둘 때까지 의자에 앉아 살다시피 해야 한다. 그러니 개발자를 고려하는 주변인이 있다면 다시 생각해보라 이야기해보는 건 어떨까. 이번에는 다른 측면에서 한번 살펴보자. 4차 산업혁명이 도래하고 많은 직종들이 인공지능에 의해 대체되고 있다. 이로 인해 일자리를 잃는 사람도 발생하는 상황이다. 과연 개발자는 4차 산업혁명에서 안전지대에 속한 직업군일까. 4차 산업혁명을 통해 창출된 인공지능 개발자와 딥러닝 관련 직종은 소수에 불과하다. 시시각각 변하는 개발 트렌드를 쫒지 않으면 사라진 직업들이 그랬듯 모두 도태되고 말 것이다. 우리는 모두 지나가는 시간 속에 파묻히지 않도록 끊임없이 연구하고 개발하고 학습하고 적용해야 할 것이다.