개발자가 갖추어야 할 기술 정리 : 기본과 옵션
웹 시스템 화면 개발을 위해 웹 퍼블리셔와 프런트엔드 개발자가 필요하고, 서버 개발을 위해 백엔드 개발자가 필요하다. 개발자들이 개발을 위해 갖추어야 할 기술, 툴(Tool), SW와 같은 것들이 많이 있었다. 처음 대하는 기술 용어도 많아 이해가 쉽지 않다. 어떤 개발자에게 어떤 기술이 필요한지 정리가 필요하다.
지금까지 나열된 여러 기술들과 개발자들이 갖추어야 할 기술을 정리해 보았다. 각 영역에는 필수 기술이 있다. 즉, HTML, CSS를 할 수 없다면 웹 퍼블리셔가 될 수 없다. 웹 퍼블리셔는 굳이 Java를 알 필요는 없다. 그러나 여러 번 말했지만 일이라는 게 무를 썰듯 싹둑 잘라지지 않는다.
일은 연결되어 있다. 따라서 어떤 경우는 나의 영역이 아닌데도 인접 작업 하기를 요구하는 경우도 있다. 그것이 꼭 부당하다고만 할 수 없다. 작업 영역이라는 것이 법이나 규정으로 정해진 것이 아니기 때문이다. 관행적으로 암묵적으로 각 개발자의 영역이 정해져 있는 것이다. 그래서 개발자는 자기 영역 이외에도 인접 관련 기술을 많이 알면 알 수록 가치가 있다.
좁은 시각으로 내 것만 잘하자는 생각보다 내 것도 잘 알고 주변에 것도 거들 수 있는 자세를 가지는 것이 중요하다.
개발자가 갖추어야 할 기술에 대한 스펙트럼을 만들어 보았다. 짙은 초록색 부분은 그 개발자가 반드시 갖추어야 할 기술이다. 반면, 옅은 파란색 부분은 필수는 아니지만 개발자가 갖춘다면 더 좋을 인접 기술이다. 기본적으로 갖추어야 할 기술은 당연히 익혀야 한다.
디자이너는 당연히 디자인 툴을 잘 다루어야 한다. 디자인 툴로서 작업 산출물을 만든다. 디자이너가 HTML을 할 수 있다면 디자인된 화면을 HTML로 만들어 실제 화면 형태로 시안을 만들 수 있다. 그러면 디자인 결과를 고객은 더 쉽게 이해할 수 있어 빠른 판단을 할 수 있다. 물론 HTML을 퍼블리셔에게 요청을 해도 되지만 단순 HTML을 디자이너가 할 수 있다면 더 효율적인 디자인 작업이 가능하다.
(어떤 디자이너는 HTML은 코딩이라서 디자이너로서 절대 안 한다고 한다. UI/UX 디자이너라면 HTML정도는 해야 한다는 필자의 생각^^)
계속하는 말이지만 필수 이외에 옅은 파란색 부분에 대해서도 관심을 가져야 한다. 많은 개발자 중에 밸류가 있는 개발자가 되고자 한다면 옅은 파란색에 주목하기 바란다.(필수 기술에 대해서는 대부분 의견이 일치하지만 옵션 기술은 견해가 다를 수도 있다. 위 기술 스펙트럼은 필자의 의견이고 필자가 만든 것이다.)
|UI/UX디자이너|
KOSA 직무분류에 따르면 UI/UX디자인을 SW개발직무로 분류하고 있다. 디자이너를 개발자로 보는 것이 의아할 수 있지만, 응용프로그램의 UI/UX 디자인은 개발작업과 같이 진행한다.
현장에서는 디자이너도 개발자와 같은 기준으로 단가가 책정된다. 또한 IT 양성 교육기관에서도 UI/UX디자이너는 웹 퍼블리셔와 같은 교육 과정에서 양성하는 경우가 많다.
이렇게 많은 기술들을 어떻게 한 사람이 다 익힐 수 있나 생각이 들것이다. 쉽지 않다. 개발자가 되기 위해서는 시간이 필요하다. 따라서 열공하는 자세가 필요하다. 그래도 다행인 것은 기술적인 부분에 대한 기본을 이해하면 기본 확장이기 때문에 지식의 습득이 빨라진다. 그러나 IT 기술의 속도도 더 빨라지기 때문에 결코 방심할 수 없다.
IT 분야에 직업을 모색하는 우리가 관심을 가져야 할 것은 기본 기술이다. IT의 많은 분야가 있지만, 개발은 IT에서 가장 기본적인 역량이라 생각한다. 개발, 프로그래밍의 기본을 모른다면 IT에서 역량을 넓히는데 애로가 될 수 있다.
최근 뜨고 있는 AI, 빅데이터 같은 것이 웹 개발과는 다른 영역이지만 프로그래밍, 즉 개발을 알지 못한다면 어려움이 있을 수 있다. 이들 알고리즘과 데이터 분석 결과도 결국 시스템으로 개발되어야 사용자가 사용할 수 있기 때문이다.(예를 들어 챗GPT 엔진은 AI기술이지만 이를 사용하기 위한 웹 시스템이 필요하다.)
따라서 필자는 IT 어떤 직업을 갖던지 간에 개발 경험이 있어야 한다고 생각한다.(이것은 저의 생각입니다. 다른 의견도 있겠죠.) 그 말은 다른 식으로 해석한다면 개발자가 된다면 나중에 IT 다른 직업으로 전환하는데 큰 무리가 없다는 말이다.
웹 퍼블리셔, 프런트 개발자, 백엔드 개발자 중에서 어떤 개발자가 되는 것이 좋을까? 각 개발자에 대해 설명을 하면서 개발자의 특징에 대해 언급을 했었다. 상황에 따라 어떻게 접근할지 모색해 보자.
전산, SW전공자라면 학부과정에서 기본적인 지식을 공부했을 것이다. 그러나 필자 경험으로 프로그램 언어에 대한 부분은 개인별 역량 차이가 크다. 본인이 재학 중에 과제나 프로젝트를 통한 개발 경험이 있고, Java와 같은 언어에 대한 자신이 있으면 백엔드 개발자로 바로 접근할 수 있다. Java에 대한 자신감은 있으나 Spring과 같은 프레임워크 경험이 없다면 독학이든 교육기관이든 활용할 수 있도록 익혀야 한다.
프로그래밍 언어 경험이 많지 않다면 프런트 개발자로 시작하는 것도 좋을 것이다. 또 짧은 시간에 빠른 취업을 원한다면 웹 퍼블리셔로 시작할 수 있다. 물론 웹 퍼블리싱을 위한 기본 지식을 갖추어야 한다.
비전공자가 IT로 취업을 하기 위해 대부분의 교육기관을 통해 이루어진다. 다만 어떤 교육을 받을지 결정해야 한다.
만약 짧은 기간에 빨리 IT에서 직업을 갖기를 원한다면 웹 퍼블리셔로 시작할 수 있다. 웹 퍼블리셔의 기술이 상대적으로 프로그래밍 요소가 적고 짧은 시간에 기술을 갖출 수 있다. 디자인에 대한 감각이 있고 디자인 일을 좋아한다면 UI/UX디자이너로도 가능하다. 물론 디자인 전공자와 경쟁을 해야 한다면 아무래도 한계가 있을 수 있다.(나중에 디자인 전공 대학 갈 수도 있다.)
프로그래밍에도 관심이 있다면 웹 퍼블리셔로 시작을 하고 지속적인 역량을 확대하여 프런트 개발자로 영역을 확장할 수 있다.
반면 시간을 들여서 하겠다면 백엔드 개발자로 접근하는 것도 좋다. 백엔드 개발자가 되기 위한 기술들을 갖추기 위해 제법 긴 시간이 필요하다. 집중적인 공부가 필요하다. IT 기술적인 부분들이 처음에는 쉽지 않다. 공부를 하다 보면 이해의 폭이 넓어지지만 비전공자가 단박에 이해하기 쉽지 않다. 교육 후에도 IT 기술적 개념이 계속 낯설다면 웹 퍼블리셔나, 프런트 개발자로 진로를 생각하는 것도 나쁘지 않다. 그 분야에도 전문가가 필요하다.
체계적이고 보완된 내용으로 브런치 글과 같은 이름으로 출간을 하게되었습니다. 아래의 링크를 통해 자세한 내용을 확인할 수 있습니다.
교보문고
나에게 맞는 IT 직업 찾기
예스24
나에게 맞는 IT 직업 찾기
알라딘
나에게 맞는 IT 직업 찾기
디자이너, 웹 퍼블리셔, 프런트엔드 개발자 및 백엔드 개발자의 기술과 접근 방법에 대해 알아보았다. 개발자의 기술은 교육이나 독학을 통해서 기본을 갖추어야 한다. 그러나 본격적인 실력은 일에서 즉, 실전에서 쌓인다. 실력을 갖추기 위해 계속 교육기관만 전전하는 것은 옳지 않다.
지난번에 필자가 말했듯 대부분 회사에서는 신입사원 채용후 처음부터 교육을 한다. 교육기관에서 배운 것을 바로 쓸 수 없다.(그렇다고 전혀 소용없다는 말은 아니다. 교육기관의 교육은 반드시 필요하다.) 개발자의 실력은 현장에서 만들어진다.
기본이 된다 싶으면 빨리 현장으로 들어갈 수 있는 방법을 생각해야 한다. 책에서 배운 예제는 아주 작은 것이다. 개발 환경도 최소한이 것이다. PC 하나에 설치한 교육 시스템으로 기업에서 실 사용되고 있는 시스템을 경험하기 어렵다. 따라서 빠른 직업 진출이 중요하다.
다음 편에는 KOSA SW개발 직무에서 논의되지 않은 다른 개발자들에 대해 알아볼 것이다.