[목차] 1. 시스템소프트웨어개발자(프로그래머)란 2. 하는 일 3. 업무환경 4. 되는 길 - 적성 및 흥미 - 경력 개발
1. 시스템소프트웨어개발자란
시스템소프트웨어개발자(프로그래머)는 시스템소프트웨어의 개발과 공급, 소프트웨어의 유지·보수 등과 관련된 활동을 기획·지위 및 조정을 합니다. 시스템소프트웨어는 컴퓨터시스템의 일부로서 공급되는 소프트웨어이자 컴퓨터를 사용하기 위해 가장 근본적으로 필요한 소프트웨어로, 응용프로그램을 개발하거나 사용할 수 있도록 합니다.
2. 하는 일
시스템소프트웨어개발자(프로그래머)는 시스템소프트웨어를 개발하는데 시스템소프트웨어는 컴퓨터를 작동하게 하거나 컴퓨터시스템의 구성요소들을 조정하고 컴퓨터하드웨어와 응용소프트웨어 사이를 중재하는 기능을 합니다. 즉 컴큐터시스템의 일부로서 공급되는 소프트웨어이자 컴퓨터를 사용하기 위해 가장 근본적으로 필요한 소프트웨어로, 응용프로그램을 개발하거나 사용할 수 있도록 해줍니다. 컴퓨터의 운영체계(OS), 컴파일러, 유틸리티 등이 이에 해당합니다. 특히 컴퓨터 활동을 관리하고 통제하는 시스템소프트웨어를 운영체제(OS: Operating System)라고 하는데 Window, Unix, Linux, MS-DOS, 모바일 OS(WIPI, VM 등)이 있습니다. C언어, 베이식(basic) 등의 언어번역프로그램, 백신프로그램 등의 시스템유틸리티 소프트웨어 등도 시스템소프트웨어에 포함됩니다.
시스템소프트웨어개발자(프로그래머)는 어떤 소프트웨어를 개발할 것인지 기획하고, C, C++, JAVA 등을 이용한 설계 작업, 설계서를 개발언어로 바꾸는 코딩작업을 거쳐 베타버전을 만듭니다. 이후 베타버전을 컴퓨터시스템에 설치하여 소프트웨어의 기능이 원활하게 작동되며 보안상에 문제점이 없는지 테스트를 거친 후 완제품을 출시합니다. 이 중 코딩작업은 상대적으로 경력이 낮은 프로그래머들이 하는 경우가 많으며, 베타버전을 통해 에러, 보안 등을 확인·감독하는 역할은 프로젝트매니저(PM)가 담당합니다. 일반적으로 소수의 인원이 시스템소프트웨어 개발에 참여하지만, 시스템소프트웨어가 상품으로 출시되기 위해서는 응용소프트웨어개발자, 웹개발자 등이 도움이 필요합니다.
시스템소프트웨어개발자(프로그래머)는 프린터 등의 장치드라이버를 개발하기도 하며 MP3, 휴대폰, 홈네트워킹 등 무선 환경에 사용되는 임베디드(내장형)시스템소프트웨어, 미들웨어, 펌웨어 등의 프로그램을 개발합니다.
미들웨어: 분산 컴퓨터 환경에서 서로 다른 기종 간의 서버와 클라이언트들을 연결해 주는 소프트웨어로 애플리케이션을 연결해 서로 데이터를 교환할 수 있도록 도움을 주는 소프트웨어임
펌웨어: 일반적으로 롬(ROM)에 저장된 하드웨어를 제어하는 마이크로프로그램을 의미하며 소프트웨어와 하드웨어의 특성을 모두 가지고 있다고 할 수 있음. 기기나 장비의 성능을 향상시키거나 버그 등을 잡아내는 소프트웨어임
임베디드시스템: 어떤 제품이나 솔루션에 내장(Embedded)되어 그 제품 안에서 특정한 작업을 수행하도록 하는 컴퓨터시스템임. 예를 들면 통신 및 미디어 제품(휴대폰, TV, 오디오, MP3, 카메라), 백색가전제품(냉장고, 밥솥, 세탁기), 자동차, 항공기, 반도체, 우주왕복선, 원자력발전 제어장치 등과 같은 곳에서 기기를 구성하는 하드웨어와 소프트웨어를 유기적으로 구성하는 시스템임
3. 업무환경
개발 마감일에 맞추기 위해 시간에 쫓기거나 개발 도중 문제가 발생하여 이를 해결해야 할 때 정신적 스트레스가 있을 수 있습니다. 클라우드를 활용하여 작업을 수행하면서 재택근무와 원격근무가 증가하는 추세에 있습니다.
4. 되는 길
관련 학과: 소프트웨어공학과, 소프트웨어개발과, 컴퓨터공학과, 전산(공학)과, 전자공학과, 전기공학과, 공업교육학과, 물리과학과, 수학과, 응용소프트웨어공학과, 정보통신공학과, 제어계측공학과, 통계학과 등
국내 자격: 정보처리기사/산업기사/기능사, 컴퓨터시스템응용기술사, 전자계산기조직응용기사, 임베디드기사(이상 한국산업인력공단)
국제 자격: MCDS, MCSE(이상 마이크로소프트사), SCJP(썬마이크로시스템즈사), OCP(오라클사)
전문대학 및 대학교의 컴퓨터공학과, 전산(공학)과, 전자공학과, 전기공학과, 통신공학과 등의 관련 학과에서 소프트웨어를 비롯해 컴퓨터하드웨어 전반에 대한 공부를 하고 진출할 수 있습니다. 요즘은 소프트웨어를 집중적으로 공부하는 학과들이 별도로 개설되어 있습니다.
시스템소프트웨어개발자(프로그래머)로 일하려면 개발·설계에 필요한 프로그래밍 언어뿐 아니라 각종 OS, 장비의 전자신호 등에 대한 충분한 이해가 필요합니다. 따라서 관련 학과에서는 시스템소프트웨어 설계에 필요한 C언어, JAVA와 같은 프로그래밍 언어, 데이터베이스, 소프트웨어공학이론 등을 공부하며, 실제 소프트웨어 개발 실습을 하기도 합니다. 또한 비전공자들은 정보통신 관련 사설교육기관이나 직업훈련학교 등에서 임베디드전문가 양성과정 등을 통해 관련 교육을 받을 수 있습니다.
1) 적성 및 흥미
분석적 사고와 진취적인 성격: 시스템소프트웨어의 개발과 공급, 소프트웨어의 유지·보슈를 담당해야 하므로 분석적인 사고와 꼼꼼하며 진취적인 성격의 사람에게 적합합니다.
논리적 사고와 수리력: 논리적인 사고와 수리력, 전산, 기술 설계, 기술 분석 등의 능력이 요구됩니다.
컴퓨터와 전자공학 등 관련 전공 지식: 컴퓨터와 전자공학, 통신, 공학과 기술 등의 지식을 갖춘 사람에게 적합합니다.
대인관계 능력과 리더십: 고급기술자로 성장하기 위해서는 대인관계능력과 리더십 역시 필요합니다.
2) 경력 개발
시스템소프트웨어 개발업체, 미들웨어업체, 전산 및 통신장비업체 등에 취업합니다. 특히 전산지식, 프로그래밍 능력이 많이 필요하기 때문에 정보통신 분야에서 다년간의 경험과 전문성을 갖춘 인력을 선호하며 다양한 분야의 전문가와 협업하는 쪽으로 산업 지형은 변화하고 있습니다.
비교적 단순작업을 수행하는 코더(Coder)로 시작하여 차츰 개발업무를 담당하게 되며, 경력이 쌓이면 단위업무의 리더인 프로젝트리더( PL, Project Leader)를 거쳐 하나의 프로젝트를 총괄하는 프로젝트매니저(PM, Project, Manager)로 승진할 수 있습니다. 실무경력을 살려 컴퓨터시스템개발자, IT컨설턴트 등으로 옮기기도 하며, 관련 업체를 본인이 직접 창업하기도 합니다.
댓글