개발자가 되는 것 vs 기술을 이해하는 것

자신만의 길 찾기

by jeromeNa

코딩 교육 열풍 속에서 가장 혼동되는 개념 중 하나가 바로 '개발자가 되는 것'과 '기술을 이해하는 것'의 차이다. 많은 사람들이 코딩을 배우기 시작하면서 자연스럽게 개발자라는 직업을 목표로 삼게 되지만, 사실 기술을 이해하고 활용하는 것과 그것을 직업으로 삼는 것 사이에는 상당한 차이가 존재한다. 이 두 가지 접근 방식은 서로 다른 목적과 요구사항, 그리고 완전히 다른 삶의 방향을 제시한다.




개발자라는 직업은 단순히 코드를 작성하는 것 이상의 복합적인 역량을 요구한다. 나무위키에 따르면, "컴퓨터 프로그램의 논리나 알고리즘을 설계하고 프로그램을 작성하고 테스트하는 사람"이 프로그래머의 기본 정의이지만, 실제 현장에서는 훨씬 복잡하고 다양한 업무를 수행해야 한다.


신입 개발자가 갖추어야 할 역량으로 ‘컴퓨터 공학에 대한 깊은 이해’, ‘실무 중심의 기술 역량’, ‘소프트 스킬’이 필요하다.


‘컴퓨터 공학에 대한 깊은 이해’는 개발자라면 컴퓨터 공학은 기본으로 알고 있어야 한다. 컴퓨터를 모르는 상태에서 개발은 이해도 안 되고, 진전도 없다. 공학이라고 해서 벌써부터 어렵게 느껴지겠지만, ‘컴퓨터를 내부적으로 아는 것’이라고 생각하면 된다.


무역 업무를 하기 위해서는 ‘무역’에 대해서 알아야 하고, ‘관세’에 대해서 알아야 한다. 변호사나 법무사, 회계, 세무사도 ‘법’을 알아야 한다. 마찬가지로 개발자는 컴퓨터를 다루는 업무이기에 컴퓨터를 알아야 한다.


‘실무 중심의 기술 역량’은 현업에서 실제로 사용되는 기술 스택과 도구들에 대한 깊이 있는 이해가 필요하다. 학원이나 학교에서 배운 것과 실무와는 차이점이 존재한다. 실무에서는 어떤 기술이 사용되는지는 검색이나 유튜브 등에서 검사해 보면 금방 알 수 있다.


‘소프트 스킬’은 커뮤니케이션, 협업, 문제 해결 능력 등을 말한다. 개발은 혼자서 하는 업무가 아니다. 많게는 몇백 명 하고 협업을 해야 한다. 대부분의 프로젝트에는 기준이 있으며, 그 기준에 따라 개발이 된다. 자신의 실력이 좋다고, 기준을 무시하게 되면 프로젝트 자체가 흔들린다. 개발은 자신의 실력을 자랑하는 장소가 아니다.


또한 개발의 대부분의 문제 해결에 있다. 가령 버그나 오류가 발생했을 때 대처 능력이 필요하다. 아무리 잘 짜인 프로그래밍이라도 수많은 케이스에 대응하지는 못한다. 오류가 발생했을 경우 원인 파악과 어떤 대응을 해야 할지와 실행력이 중요하다.




개발자로서 성공하기 위해서는 특정 분야에서 깊은 전문성을 갖춰야 한다. 원티드의 개발 분야 소개에 따르면, "개발자가 되기로 마음을 먹었다면, 어떤 선택지들이 있는지 먼저 파악하고 빠르게 선택지를 정해서, 그 분야에 선택과 집중을 하는 것이 정말 중요하다"라고 강조한다.


개발 분야는 생각보다 세분화되어 있다

프론트엔드 개발자 : 웹 사용자 인터페이스 및 로직 구현

백엔드 개발자 : 서버와 데이터베이스를 다루는 시스템 구축

모바일 개발자 : iOS, Android 등 모바일 애플리케이션 개발

데브옵스 엔지니어 : 개발과 운영 사이의 연결고리 역할

데이터 엔지니어 : 빅데이터 파이프라인 구축과 관리


각 분야마다 요구되는 기술 스택과 역량이 다르며, 한 분야에서 전문성을 쌓는 데만도 상당한 시간과 노력이 필요하다.


개발자라는 직업의 가장 큰 특징 중 하나는 끊임없는 학습의 필요성이다. 한 브런치 글에서는 "SW업계는 변화가 많고 항상 새로운 기술이 많이 나오기 때문에 학습을 해야 하는 것은 필연적입니다"라고 지적한다.


이는 단순히 새로운 프레임워크나 라이브러리를 배우는 수준을 넘어선다. "개발자는 최신 기술 공부를 게을리하지 말아야 합니다. 개발 면접을 볼 때 이 사람이 뼛속까지 개발자인가? 를 보기 위해서 최신 기술 질문을 많이 하는데 이때 잘 대답한다면 좋은 인상을 줄 확률이 높겠죠?"라고 조언한다.


개발자라는 직업은 높은 보상과 함께 그에 상응하는 책임과 압박도 따른다. 25년 차 개발자가 요즘 IT에서 언급한 바에 따르면, "신입 개발자는 '자신이 한 일'이 아닌 '자기 자신'을 이력서의 주제이자 주인공으로 삼고 작성해야 합니다"라고 조언하면서, 개발자가 되는 것이 단순히 기술을 배우는 것을 넘어서는 종합적인 역량 개발이 필요함을 시사한다.


특히 현업에서는 기술적 역량뿐만 아니라 비즈니스 이해도, 팀워크, 의사소통 능력 등이 매우 중요하다. 캡틴판교 블로그에서 따르면, "최고의 웹 개발자는 단지 코딩만 잘하는 게 아닙니다. 큰 그림을 잘 이해하고, 사람들과 잘 어울려 협업할 수 있어야 합니다."




기술을 이해한다는 것은 코딩을 자신의 전문 분야나 관심사를 발전시키기 위한 도구로 바라보는 관점이다. 이 경우 코딩은 목적이 아니라 수단이 된다. Evans Library 블로그에서 지적하듯이, "4년 동안 컴퓨터 공학만을 공부한 사람의 경우에는 따로 찾아서 공부하지 않는 이상 다른 분야의 지식을 습득하기 쉽지 않기 때문에 다른 전공을 공부하고 개발자가 된 사람은 이 점에서 나름 강점을 가지고 있다."


예를 들어, 음악 전공자가 웹 오디오 API를 활용해 음악 교육 도구를 만들거나, 경영학 전공자가 데이터 분석을 통해 비즈니스 인사이트를 도출하는 경우가 이에 해당한다. 이들에게 코딩은 자신의 전문 영역을 확장하고 문제를 해결하는 강력한 도구일 뿐이다.


많은 비개발자들이 코딩을 배우는 이유 중 하나는 자신의 아이디어를 직접 구현하고 싶어서다. 디자이너가 인터랙티브 한 웹사이트를 만들고 싶어 하거나, 작가가 디지털 스토리텔링 도구를 개발하고 싶어 하는 경우가 그 예다.


이런 접근에서는 깊은 컴퓨터과학 지식보다는 실용적이고 즉시 활용 가능한 기술에 더 관심을 갖는다. 완벽한 알고리즘보다는 작동하는 프로토타입을, 최적화된 코드보다는 아이디어의 빠른 구현을 중시한다.


기술을 이해한다는 것은 디지털 시대의 문해력을 갖추는 것과도 관련이 있다. 코딩을 통해 컴퓨터가 어떻게 작동하는지, 소프트웨어가 어떻게 만들어지는지를 이해하게 되면, 디지털 세상을 더 비판적이고 능동적으로 바라볼 수 있게 된다.


이는 개발자가 되지 않더라도 현대 사회에서 매우 유용한 역량이다. 기술 기업과의 협업에서 더 효과적으로 소통할 수 있고, 새로운 디지털 도구를 빠르게 습득할 수 있으며, 기술적 의사결정에 더 잘 참여할 수 있다.




개발자가 되는 것을 목표로 하는 사람들은 주로 직업적 안정성, 높은 연봉, 시장성 등 외적 동기에서 출발하는 경우가 많다. 반면 기술을 이해하려는 사람들은 자신의 현재 분야를 발전시키거나 개인적 호기심을 충족시키려는 내적 동기가 강하다.


이러한 동기의 차이는 학습 과정과 결과에 큰 영향을 미친다. 전자는 취업을 위한 체계적이고 포괄적인 학습을 추구하는 반면, 후자는 필요에 따른 선택적이고 실용적인 학습을 선호한다.


원티드에서 언급하듯이, "개발자로 경력을 전환하는 것을 목표로, 짧은 시간을 최대한 효율적으로 써야 하는 사람이라면" 체계적이고 집중적인 학습이 필요하다. 반면 기술을 도구로 활용하려는 사람들은 "투입 대비 효율이 좋은" 기술들을 선택적으로 학습할 수 있다.


개발자를 목표로 하는 경우:

- 컴퓨터과학 기초 이론 학습 필수

- 특정 기술 스택에 대한 깊이 있는 이해

- 알고리즘과 자료구조 등 기본기 숙달

- 지속적인 최신 기술 트렌드 추적


기술 이해를 목표로 하는 경우:

- 필요한 부분만 선택적 학습

- 빠른 프로토타이핑과 구현에 집중

- 기존 라이브러리와 도구의 활용

- 문제 해결 중심의 실용적 접근


개발자라는 직업을 선택하면 기술적 의사결정에 대한 책임, 프로젝트 성공에 대한 압박, 팀원들과의 협업 의무 등 여러 가지 직업적 책임이 따른다. 나무위키에서 설명하는 보안 프로그래머의 경우처럼, "업무에 비해 책임이 막대하며 특히 보안 사고가 터지면 모든 책임을 뒤집어쓰는 직종"인 경우도 있다.


반면 기술을 도구로 활용하는 사람들은 상대적으로 자유롭다. 자신의 필요에 따라 기술을 선택적으로 사용할 수 있고, 완벽하지 않은 구현이라도 목적을 달성하면 충분하다.




어떤 길을 선택할지는 개인의 성향, 목표, 상황에 따라 달라진다. 다음에 제시하는 질문들이 도움이 될 수 있을 듯하다.


1. 적성과 흥미 : 정말로 프로그래밍 자체를 즐기는가, 아니면 프로그래밍을 통해 달성하고 싶은 다른 목표가 있는가?

2. 학습 의지 : 지속적으로 새로운 기술을 배우고 따라잡을 의지와 체력이 있는가?

3. 경력 계획 : 개발자라는 직업으로 평생 먹고살 계획인가, 아니면 현재 하는 일의 보조 수단으로 활용할 계획인가?


원티드에서 언급하듯이, "아마도 첫 개발자 취업이라면 백엔드, 프론트엔드, 모바일 개발자 정도가 가장 일반적인 코스일 것이다." 하지만 모든 사람이 이런 전통적인 개발자 경로를 따를 필요는 없다.


비전공자의 경우 특히 자신의 기존 전문성을 살릴 수 있는 방향을 고려해 볼 만하다. Evans Library 블로그의 사례처럼, "예전에 연예 기획사에서 사운드 엔지니어로 일을 했었기 때문에 오디오와 레코딩에 지식을 가지고 있다. 또한 어릴 때부터 꾸준히 음악 교육을 받았기 때문에 음악에 대한 지식도 어느 정도 가지고 있다"는 배경이 있다면, 순수 개발자보다는 기술을 활용한 음악 관련 프로젝트에서 더 큰 가치를 창출할 수 있다.


꼭 둘 중 하나를 선택해야 하는 것은 아니다. 많은 성공한 기술 전문가들이 이 두 가지 접근 방식을 조합해서 활용한다. 예를 들어:


- 도메인 전문가 + 기술 이해 : 의료진이 의료 데이터 분석 도구를 개발하거나, 금융 전문가가 핀테크 서비스를 기획하는 경우

- 개발자 + 도메인 확장: 개발자로 시작했지만 특정 산업 분야의 전문성을 쌓아 해당 영역의 기술 리더가 되는 경우


캡틴판교 블로그에서 강조하듯이, "웹 개발자로서 대부분의 업무는 문제를 해결하는 것입니다." 중요한 것은 기술 자체가 아니라 문제를 해결하는 능력이다.




코딩 교육이 확산되면서 모든 사람이 개발자가 되어야 한다는 압박이 생기고 있지만, 사실 사회는 다양한 역할과 전문성을 가진 사람들이 필요하다. 기술을 이해하는 비개발자들은 다음과 같은 중요한 역할을 한다:


- 기술과 비기술 영역 간의 브릿지 역할 : 개발팀과 비즈니스팀 사이의 소통을 원활하게 한다

- 사용자 관점의 기술 평가 : 기술적 완성도보다 실제 사용성과 가치에 집중한다

- 창의적 기술 활용 : 기존 개발자들이 생각하지 못한 새로운 활용 방안을 제시한다


진정한 기술 민주화는 모든 사람이 개발자가 되는 것이 아니라, 모든 사람이 기술을 자신의 목적에 맞게 활용할 수 있게 되는 것이다. 이를 위해서는 다양한 수준과 목적의 기술 교육이 제공되어야 한다.


요기요 개발자가 강조하는 것처럼, "사실 위에서 말한 3가지 역량은 사실 신입 개발자들에게만 필요한 역량이 아닌, 모든 개발자에게 요구되는 역량이라고 생각합니다." 하지만 이것이 모든 사람에게 요구되는 역량은 아니다.




개발자가 되는 것과 기술을 이해하는 것은 각각 다른 가치와 의미를 가진다. 어느 쪽이 더 좋다거나 나쁘다고 말할 수는 없다. 중요한 것은 자신의 목표, 성향, 상황에 맞는 선택을 하는 것이다.


개발자라는 직업은 분명히 매력적이고 전망이 좋다. 하지만 그만큼 요구되는 것도 많고 책임도 크다. 반면 기술을 도구로 활용하는 접근은 더 자유롭고 창의적일 수 있지만, 깊이 있는 기술적 전문성을 쌓기는 어려울 수 있다.


브런치의 한 글에서 언급하듯이, "단순히 많고 많은 개발자 중 one of them이 아닌, 많은 회사들이 원하는 실력 좋은 개발자가 되기 위해서는 노력이 필요합니다." 하지만 모든 사람이 그런 개발자가 될 필요는 없다. 자신의 분야에서 기술을 창의적으로 활용하는 전문가가 되는 것도 충분히 가치 있는 선택이다.


결국 중요한 것은 코딩 교육 열풍에 휩쓸려 성급한 결정을 내리기보다는, 자신이 진정 원하는 것이 무엇인지 깊이 생각해 보는 것이다. 그리고 어떤 길을 선택하든, 그 선택에 대한 확신을 갖고 꾸준히 노력하는 것이 성공의 열쇠가 될 것이다.




주요 인용 출처

나무위키 : 프로그래머
요기요 기술 블로그 : 신입 개발자가 갖추어야 할 역량 3가지
브런치 스토리 : 개발자의 실력 vs 학력
요즘 IT : 뽑히는 개발자 이력서는 어떻게 만드나요?
원티드 : 개발의 모든 분야, 모두 정리해 드립니다
캡틴 판교 블로그 : 흔하지 않고 좋은 웹 개발자가 되는 방법
브런치 스토리 : 회사에서 원하는 개발자가 되려면?
Evans library : 비전공 개발자가 전공자보다 정말 불리할까?


keyword