brunch

You can make anything
by writing

C.S.Lewis

by 뭅즤 Dec 03. 2022

개발자는 어떤 일을 할까?

개발자에 대한 오해와 진실

검은색 화면에 알 수 없는 알록달록한 영어와 숫자를 적어 내려가는 소위 '코딩'으로 돈을 버는 사람들이 있다. 우리는 보통 이들을 '개발자', '프로그래머', '소프트웨어(SW) 엔지니어' 등으로 부른다. 그렇다면 이들이 실제로 어떤 일을 하고 있는 걸까?


연애 초반에 여자친구가 '코딩으로 도대체 무슨 일을 하는 거야?'라고 물었던 기억이 난다. 여자친구가 이해하기 쉽게 설명하려고 애썼던 기억이 생생하다. 사실, 나도 내 일을 제외하면 다른 개발자들이 무엇을 하는지 정확히 알지 못하지만, 전반적으로 '개발자'라고 불리는 사람들이 코딩으로 어떤 일을 하고 있는지 간략하게 소개해 보고자 한다.


엔지니어, 프로그래머, 개발자 등 여러 용어로 구분되기도 하지만, 여기서는 편의상 '개발자'라는 단어로 통칭하려 한다.



개발자? 코딩으로 웹페이지, 어플 만드는 직업 아닌가?


업계 사람이 아닌 분들은 흔히 '개발자'라고 하면 웹 페이지를 만드는 프론트엔드 개발자를 떠올린다. 그런데 사실 '코딩(coding)'이라는 것은 말 그대로 코드로 무언가를 만드는 일을 뜻한다.


그럼 코드란 무엇일까? 간단히 말해 컴퓨터가 알아들을 수 있는 말로 명령을 내리는 언어라고 보면 된다. 그렇기 때문에 코딩은 매우 범용적인 의미를 가지고 있고, 다양한 일에 사용될 수 있다.


예를 들어, 인터넷 사용자가 보게 되는 페이지를 만드는 프론트엔드 개발자부터 서버 관련 개발을 하는 백엔드 개발자, 하드웨어를 구동시키는 마이크로컨트롤러 프로그래머, CPU 단에서 코딩하는 개발자, 데이터 분석가, 머신러닝/딥러닝 개발자, 네트워크와 통신, 게임, 반도체, 산업 장비 등 여러 분야에서 코딩하는 직군은 매우 많다. 심지어 컴퓨터공학이 아닌 연구 분야에서도 실험을 위해 코딩을 하는 연구자들이 있고, 최근에는 인사팀이나 기획팀에서도 데이터 분석을 위해 코딩을 배워서 사용하는 경우가 있다.


나는 컴퓨터 비전과 딥러닝 관련 연구를 했기 때문에 주로 수학, 통계, 머신러닝 등에 기반한 내용을 공부했다. 코딩을 할 때는 검은 화면에 이해할 수 없는 영어들만 계속 썼으니, 여자친구 입장에서는 내가 도대체 무슨 일을 하는지 궁금했을 것이다. 실제로는 특정 문제를 해결하기 위해 수식이나 알고리즘을 코드로 작성하여 컴퓨터가 이를 계산하게 하는 작업을 하고 있었을 것이다.


코딩으로 누군가는 나처럼 딥러닝 모델을 학습시키고, 누군가는 웹페이지를 만들거나 통신과 네트워크를 구축하며, 하드웨어나 반도체를 구동하기 위해 코드를 작성하고 있을 것이다. 겉으로 보기에는 모두 비슷한 일을 하는 것처럼 보이지만, 결국 코딩은 컴퓨터에게 명령을 내리는 작업일 뿐이다. 그래서 개발자들이 코딩하는 것이 겉으로는 비슷해 보일지라도 무엇을 만드는지에 따라 요구되는 역량과 업무 성향은 천차만별이다.


정리하자면, 개발자는 코딩을 하는 직업이 맞다. 그러나 정말 다양한 분야에서 코딩을 하는 사람들이 있고, 그 목적이 서로 다르기 때문에 세부 직업 또한 매우 다양하다고 보면 된다.


다만 여러분들이 밖에서 만나는 개발자들에게 직업이 무엇이냐고 물었을 때 단순히 '개발자'라고 얘기하는 것은... 하는 일이 비개발자에게 생소한 경우가 많아서 간단명료하게 설명하기 힘들기 때문일 수 있다.



코딩을 잘한다는 건?

앞서 얘기했던 대로 개발자에게 요구되는 역량은 세부 직업에 따라 다양하다. 그러나 기본적으로 코딩을 잘한다는 것은 다음 세 가지 역량이 출중하다는 의미다.


1. 컴퓨터 과학과 프로그래밍에 대한 깊은 이해

2. 다양한 문제를 풀기 위한 수학적, 통계적 알고리즘 설계 능력

3. 효율적인 코드로 구현할 수 있는 능력


첫 번째로, 컴퓨터 과학(CPU, GPU, 메모리 등)에 대한 깊은 이해가 필요하다. 이를 통해 특정 문제를 효율적으로 해결하고, 프로그래밍 과정에서 직면하는 다양한 문제를 빠르게 해결할 수 있다.


두 번째로, 여러 문제를 효율적으로 해결할 수 있는 수학적 알고리즘을 이해하고, 이를 다양한 문제에 적용할 수 있는 역량이 필요하다. 쉽게 말해, NCS나 취업 인적성 테스트와 같은 문제를 잘 푸는 능력을 의미한다.


세 번째로, 앞서 설계한 알고리즘을 코드로 구현하는 능력이 요구된다.


코딩을 잘하는 사람은 컴퓨터에 대한 깊은 이해(첫 번째), 문제 해결 능력(두 번째), 그리고 이를 코드로 구현하는 능력(세 번째)을 균형 있게 갖추고 있다. 문제 해결 방안을 알고 있어도 코드를 구현하지 못하거나, 코드를 잘 작성해도 문제 해결 방안을 모르면 결국 문제를 해결할 수 없기 때문이다.



능력있는 개발자 = 코딩 잘하는 사람?


최근 코딩의 인기가 높아지면서 조기 교육이 활발히 진행되고 있으며, 성인들도 취업을 위해 부트캠프 등에서 코딩 교육을 많이 받는다. 그래서 '코딩'만 잘하면 전문성을 갖출 수 있고, 좋은 직장에서 많은 돈을 벌 수 있을 것이라고 생각하는 분들도 많은 것 같다. 물론 그렇게 생각하는 것이 잘못이 아니다.


하지만, 앞서 이야기한 것처럼 코딩은 그저 컴퓨터와 소통하기 위한 도구일 뿐이다. 비유하자면, 외과 의사에게 수술 도구인 '메스'와 비슷하다. 외과 의사는 당연히 수술 도구를 잘 다뤄야 하지만, 의학 지식 없이 '메스'만 잘 쓰는 사람을 우리는 의사라고 하지 않는다. 그저 손재주가 좋은 사람일 뿐이다.


개발자에게도 코딩도 마찬가지다. 개발자는 코드를 잘 다루어야 하지만, 코딩은 그저 도구일 뿐이다. 개발자가 어떤 지식을 가지고 무엇을 만드는지가 더 중요하다.





위에서 언급한 내용을 정리하자면, 개발자는 컴퓨터가 이해할 수 있는 코드로 알고리즘을 작성하여 무언가를 만드는 직업이다. 이 '무언가'에 따라 개발자의 전문 영역은 매우 다양해질 수 있다.


개발자라는 직업이 인기가 많지만, 많은 사람들이 '코딩을 한다', '컴퓨터를 잘 다룬다', '체크 셔츠를 입는다' 정도로만 이해하는 경우가 많은 것 같다. 그래서 개발자라는 직업에 대해 자세히 이야기해보았다.


개발자가 되기를 꿈꾸는 학생들이나, 개발자에 대해 궁금한 분들에게 이 글이 도움이 되었기를 바란다:)




작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari