어떤 직무가 나에게 가장 잘 맞을까?
개발자가 선택할 수 있는 직무는 생각보다 많습니다. 흔히들 생각하는 웹이나 앱 개발뿐 아니라 게임 개발, 데브옵스 등 다양한 선택지가 있는데요, 이번 글에서는 그중 가장 보편적인 프론트엔드 개발, 백엔드 개발, 풀스택 개발 직무를 비교해 보았습니다. 세 가지 직무를 모두 경험해본 사람으로서, 각 직무의 특징과 추천 대상을 공유드립니다.
프론트엔드 개발자는 사용자의 눈에 보이는 화면을 만듭니다. 지금 우리가 보고 있는 브런치 글 화면, 오늘 친구와 대화할 때 썼던 카카오톡 채팅방 화면, 아까 먹은 음식 사진을 올리려고 열었던 인스타그램 화면은 모두 프론트엔드 개발자의 손에서 탄생했습니다. 사용자와 맞닿아 있는 앞(Front) 단을 처리한다는 의미로 프론트엔드(Front-end)라 불립니다.
인스타그램을 예로 들어볼게요. 프로필 화면에 사용자의 기본 정보와 포스팅이 보이고, 왼쪽 하단에 홈 버튼을 클릭하면 피드 화면이 나오고, 오른쪽 상단의 메뉴 버튼을 클릭하면 메뉴가 펼쳐지는 기능은 모두 프론트엔드 개발자의 코드로 작동합니다. 또한 모든 브라우저에서 문제가 없도록, 다양한 디바이스의 화면 사이즈에서 비율이 잘 맞게 나오도록 코드를 구현하는 것도 프론트엔드 개발자의 몫입니다.
프론트엔드 개발자는 디자이너와 밀접하게 협업합니다. 디자이너가 모의 화면을 만들어 공유하면 프론트엔드 개발자는 그 화면을 실제 사이트(또는 앱)에 코드로 구현합니다. 때로는 디자이너의 눈에는 간단해 보이는 기능 하나가 개발자에게는 구현하기 복잡한 기능일 때도 있는데, 이런 경우에는 구현 전에 서로 조율해서 디자인을 조금씩 바꾸기도 해요.
추천 대상
프론트엔드 개발의 장점은 결과물이 바로바로 눈에 보인다는 점입니다. 코드 한 줄만 변경해도 버튼이 왼쪽에서 오른쪽으로 옮겨지고, 사진 프레임이 사각형에서 원형으로 바뀌고, 배경화면의 색깔이 달라지죠. 따라서 시각적으로 나타나는 결과물을 만들기 좋아하는 사람에게 잘 맞는 일입니다. 또한 코드의 결과물이 바로바로 눈에 보이기 때문에 개발을 처음 접하는 사람도 쉽게 재미를 느낄 수 있습니다.
백엔드 개발자는 사용자의 눈에 보이지 않는 로직을 구현합니다. 다시 인스타그램 예제로 돌아와 볼게요. 사용자가 사진을 올리면 이 사진을 어디에 저장할지, 피드에서 어떻게 하면 수많은 사진을 빠르게 로딩할지, 여러 사람이 동시에 라이크를 누르면 어떻게 처리할지는 백엔드 개발자가 고민하고 구현하는 부분입니다. 이처럼 사용자가 보는 화면 뒷(Back) 단을 처리하기 때문에 백엔드(Back-end)라고 불립니다.
프론트엔드 개발자가 화면에 사용하는 데이터는 백엔드에서 제공됩니다. 브런치의 글, 카카오톡의 메시지, 인스타그램의 사진은 모두 백엔드에서 오는 데이터입니다. 이러한 데이터가 없다면 화면 틀만 있을 뿐 아무런 기능을 못 하는 앱이 되겠죠. 따라서 백엔드 개발자는 프론트엔드 개발자와 밀접하게 협업하여 최종 화면 구성에 필요한 데이터를 제공합니다.
추천 대상
백엔드에서는 프론트엔드에 비해 더 복잡한 문제가 발생하는 경우가 많습니다. 사용자가 많아질수록, 데이터의 양이 늘어날수록 백엔드의 복잡도는 기하급수적으로 높아지기 때문에, 이런 점을 고려해서 대규모의 사용자도 지원할 수 있도록 코드를 설계해야 합니다. 프론트엔드와 달리 결과물이 눈에 바로바로 보이지 않으므로 문제를 해결하기도 더 어렵죠. 이런 이유로 백엔드 개발이 프론트엔드 개발보다 더 어렵게 느껴질 수 있지만, 복잡한 문제 해결을 좋아하는 사람에게는 잘 맞는 일입니다.
또한 백엔드는 프론트엔드에 비해 업무가 다양한 편입니다. 보통 한 사이트에 비슷한 화면이 많기 때문에 프론트엔드 개발자는 어느 정도 반복적인 작업을 하게 되는데, 반면 화면 뒷단에서는 모두 다른 데이터를 처리하기 때문에 보다 다양한 일들이 일어납니다. 따라서 백엔드 개발자에게는 더 다양한 일을 할 수 있는 기회가 주어집니다. 이렇게 여러 가지 일을 하는 걸 좋아하는 사람이라면 백엔드 개발을 추천합니다.
프론트엔드와 백엔드 개발을 모두 하는 것을 풀스택(Full Stack)이라 부릅니다. 프론트엔드 개발자나 백엔드 개발자는 서로의 도움 없이는 앱을 완성할 수 없습니다. 하지만 두 가지 다 할 수 있는 풀스택 개발자는 혼자서도 앱을 개발할 수 있죠. 여기까지 들으면 풀스택 개발자가 슈퍼맨처럼 들릴 수 있지만, 보통 두 영역 모두에서 뛰어난 풀스택 개발자는 매우 드물어요. 한 영역만 집중적으로 파도 알아야 할 게 엄청 많은데, 현실적으로 두 가지를 모두 잘 하기는 어렵거든요. 그래서 개발자 커뮤니티에서는 아래와 같은 풀스택 개발자 짤이 여러 개 돌아다닙니다.
실질적으로 풀스택 개발자가 한 프로젝트에서 모든 걸 다 개발하진 않습니다. 충분한 인력이 있는 팀이라면 한 명이 모든 걸 다 개발하는 것보다는 여러 명이 동시에 각자의 영역을 개발하는 게 더 빠르기 때문이죠. 따라서 풀스택 개발자는 작은 기능 하나의 프론트엔드와 백엔드를 모두 담당하거나, 프로젝트마다 프론트엔드와 백엔드를 번갈아 가며 개발합니다.
추천 대상
풀스택 개발의 장점은 시스템 전체를 골고루 경험할 수 있다는 것입니다. 여러 영역에 걸쳐 일을 하다 보면 각 영역에 대한 깊은 이해도는 부족하더라도 시스템 전체의 큰 그림을 볼 수 있게 됩니다. 이렇게 하나를 깊게 파는 것보다 전체를 넓게 보는 것을 좋아하는 사람이라면 풀스택 개발을 추천합니다.
아까 백엔드 개발자가 프론트엔드 개발자에 비해 다양한 일을 할 수 있다고 했는데, 풀스택 개발자는 그보다 더 넓은 분야의 일을 할 수 있습니다. 프론트엔드 개발을 하다가 질리면 다음 프로젝트에서 백엔드 개발로 넘어가고, 백엔드 개발을 하다가 프론트엔드에서 전문성을 더 쌓고 싶으면 프론트엔드 개발로 넘어가는 게 가능합니다 (팀 상황에 따라 다르겠지만). 따라서 한 가지 일에 쉽게 질리는 사람이라면 풀스택 개발이 잘 맞을 수 있습니다.
‘어떤 직무가 나에게 가장 잘 맞을까?’를 고민하고 있는 개발자 분들께 이 글이 도움이 되었길 바랍니다. 개인의 성향에 따라 이 질문에 대한 답이 달라지기 때문에, 본인이 좋아하는 것과 잘하는 것이 무엇인지 먼저 파악해야 합니다. 직무를 선택하는 것은 그다음의 일입니다.
글을 읽고 나서도 각 직무에 대한 감이 잘 안 잡힌다면, 작게나마 사이드 프로젝트를 진행해 보는 것을 추천합니다. 물론 소규모 사이드 프로젝트는 현업과는 다르겠지만, 이 경험을 통해 해당 영역이 나에게 잘 맞는지 어느 정도 가늠해 볼 수는 있거든요. 중요한 커리어 방향을 결정하기 전에 살짝 맛보기를 할 수 있는 좋은 방법입니다.
이전글:
다음글: