"개발자라고 다 같은 개발자가 아닙니다" (다양한 직무 이해하기)
*이 글은 외부 필자인 이승준님의 기고입니다. 미국에서 대학교를 졸업하고, 실리콘밸리에서 소프트웨어 엔지니어로 경력을 쌓은 지 이제 10년이 다 돼 갑니다. 그동안 많은 회사 그리고 여러 팀에서 다양한 경험을 하며 경력을 이어 가고 있는데요. '소프트웨어 엔지니어' 쉽게 '개발자'라고 많이들 통칭하는데, 각 포지션이나 역할에 따라서 당연히 하는 일에 차이가 있습니다. 그래서 소프트웨어 엔지니어라 하는 직업의 역할 및 포지션에 따라 달라지는 업무를 한 번 정리해드리려 하는데요. 소프트웨어 엔지니어가 되고자 하는 사회 초년생들이나 이직을 희망하는 직장인들, 혹은 이 직업의 다양한 직무에 대한 이해가 필요하신 분들에게 도움이 될 거라 생각합니다. 먼저 크게 이 직업은 SE(Software Engineer), 매니저(Manager), QAE(Quality Assurance Engineer), SRE(Site Reliability Engineer) 등으로 나뉩니다. 이 가운데 매니저는 이름 그대로 엔지니어들을 관리하는 직업인데요. 그 경력의 장단에 따라서는 타이틀이 엔지니어링매니저, 시니어엔지니어링매니저, 디렉터, 팀장급 관리자(VP), 최고기술경영자(CTO) 등으로 구분됩니다. 여기선 생략하도록 하고요. 소프트웨어 엔지니어링 (Software Engineering) 영역에 따라 달라지는 타이틀에 대해서만 알아보도록 하겠습니다. 참고로 제가 말씀드리는 것은 어디까지나 보편적 기준일 뿐입니다. 더욱 세세하게 구분할 수도 있습니다. 애플리케이션 엔지니어 (Application Engineer) 보통 애플리케이션 엔지니어를 소프트웨어 엔지니어라 부릅니다. 이 분야는 또 세부적으로 나뉘는데요. 웹페이지에서 사용자 인터페이스 (User Interface)를 개발하는 프론트엔드(Frontend), 서버 쪽 로직을 담당하는 백엔드(Backend), 모바일 앱(App - iOS or Android) 개발자 등으로 나뉩니다. 프론트엔드 개발자는 HTML, CSS, 자바스크립트 등을 이용해 웹페이지를 개발하는데요. 최근에는 크게 앵귤러(Angular), 리액트(React), 뷰(Vue) 등의 프레임워크를 사용하는 집단으로 또 구분되고 있습니다. *프레임워크