인사이트콘텐츠

비전공 개발자 지망생 위한 백엔드 로드맵
K-디지털 트레이닝: 인사이트 콘텐츠

#백엔드로드맵 #백엔드공부순서 #백엔드부트캠프


글 미리보기

1. 프론트엔드/백엔드는 어떻게 구분할까?
2. 백엔드 개발자와 프론트엔드 개발자의 차이
3. 개발자로 향하는 어드벤처 게임 - 백엔드 로드맵 공부 순서


프론트엔드(front-end)와 백엔드(back-end)라는 말을 들어보셨나요? 보통 프론트엔드와 백엔드는 어떤 작업의 처음과 마지막 단계를 가리킵니다. 그러나 소프트웨어 공학에서 프론트엔드와 백엔드는 서로 다른 그 어감만큼 서로의 업무 분야도 다른 데다, 프론트엔드와 백엔드 개발자가 되기 위한 길 역시 사뭇 다릅니다.

1. 프론트엔드/백엔드는 어떻게 구분할까?

프론트엔드는 소프트웨어에서 사용자가 접하는 인터페이스 부분을 가리킵니다. 프론트엔드에서 사용자가 입력하고 행동한 입력값은 상황과 목적에 맞게 적절히 처리해 사용자에게 제공해야 합니다. 백엔드는 프론트엔드 영역의 요청을 컴퓨터가 처리하도록 하는 부분입니다.

패스트캠퍼스의 웹페이지를 예로 들어볼까요?

패스트 캠퍼스의 메뉴와 회원 가입/로그인 부분, 전면부 롤링 광고, 다양한 강의 소개와, 그것을 클릭했을 때 나오는 페이지와 팝업 등은 프론트엔드 개발자의 영역입니다. 그러나, 회원 가입을 했을 때 데이터가 저장되는 부분이나 로그인했을 때 신원을 확인하는 부분, 사용자에게 보이는 강의 데이터가 저장되는 부분은 백엔드 개발자의 영역입니다.

출처: Unsplash

2. 백엔드 개발자와 프론트엔드 개발자의 차이

프론트엔드 개발자는 주로 사용자와 상호작용하는 부분을 개발하며 HTML, CSS, JavaScript 등 언어를 사용합니다. 백엔드 개발자와의 소통을 위한 서버의 이해도도 필요하지만 프론트엔드 개발자는 주로 프레임을 개발하는 마크업 개발자나 웹 디자이너와 소통하는 경우가 많습니다.

반면 백엔드 개발자는 프론트엔드가 활동할 수 있는 자원을 개발해 주는 인프라스트럭처를 개발하는 직업인 만큼, 사용자나 디자이너보다는 다른 개발자나 서버 관리자와의 소통이 주를 이룹니다. 서로 업무의 분야가 다른 만큼, 백엔드 개발자가 되기 위해서는 프론트엔드 개발자와 다른 ‘백엔드 로드맵’이 필요합니다. 특히 주변에 도움을 받을 곳이 마땅치 않은 컴퓨터 공학 분야 비전공자 개발자 지망생은 막막한 상황에서 훌륭한 길잡이가 되어줄 수 있습니다.

백엔드 로드맵-프론트엔드 로드맵(출처: ‘Developer Roadmap’)

3. 개발자로 향하는 어드벤처 게임 - 백엔드 로드맵 공부 순서

이 플로우차트를 보면, 백엔드 공부 로드맵을 프론트엔드 로드맵과 비교했을 때 백엔드의 공부 로드맵이 훨씬 복잡한 것을 알 수 있습니다.

왜 그럴까요?

물론 프론트엔드 개발자도 쉬운 일은 아닙니다. 하지만 JavaScript, HTML, CSS의 3가지 언어만 알고 있으면 이것을 다양하게 활용해 업무를 진행할 수 있죠. 그러나 백엔드 개발자는 Java와 Python, Ruby와 GO, Django와 node.js 등 다양한 언어를 알아야 하고, 이 언어만큼 다양한 프레임워크와 라이브러리가 존재합니다. ‘백엔드 개발자 로드맵’은 백엔드 개발자라는 목표지점에 도착하기 위해 스테이지 하나하나를 클리어하는 일종의 롤플레이 게임 설명서라 생각하시면 됩니다.

출처: Unsplash

Practice Stage - 인터넷/프론트엔드 기본 지식 마스터

게임을 시작하기 전, 기본적으로 필요한 기술을 연마하는 연습 스테이지가 있습니다. 인터넷에 대한 지식을 공부하는 것은 백엔드 개발자가 되기 위한 ‘연습 스테이지’라 생각하시면 됩니다. 기본적인 인터넷의 원리부터 ‘HTTP’ 프로토콜과 브라우저에 대해 이해하고 DNS와 작동 원리, 도메인과 호스팅에 대한 지식을 알아야 합니다. 아울러 프론트엔드 개발자와 협업이 필수인 만큼 업무적 소통을 위한 HTML과 CSS, JavaScript에 대해서도 파악을 해놓는 것이 좋습니다.

Stage 1 - 운영체제 탐험하기

본격적으로 어드벤처 게임을 통해 탐험을 시작하려면 게임의 세계관을 파악해야 합니다. 백엔드 개발자가 탐험해야 하는 세계는 서버를 구동하는 운영체제인 셈인데요. 백엔드 개발자는 서버에 쓰이는 운영체제(OS)를 누구보다도 잘 이해해야 합니다. 운영체제의 일반적 작동 원리와 프로세스와 메모리 관리, 입출력 관리와 터미널에 대한 사용법과 기본적인 명령 등과 네트워크의 기본 개념에 전반적으로 익숙해져야 일을 제대로 해 나갈 수 있습니다.

Stage 2 - 프로그래밍 언어 배우기

어드벤처 게임에서 모험을 해나가려면 무기가 필요합니다. 필요할 때 적당한 무기를 바꿔가며 모험해야 더 효율적으로 미션을 클리어할 수 있어요. 개발자에게 프로그래밍 언어는 군인에게 총과도 같습니다. 백엔드 개발자가 되기 위해서는 그에 맞는 무기인 프로그래밍 언어를 익혀야 해요. 백엔드 개발자는 Java와 C#, PHP와 JavaScript, Python과 Ruby, Rust와 Go 중 Java처럼 많은 사람들이 쓰는 언어 하나를 주력으로 마스터하고 다른 언어들에 대해서도 그 특징과 동시성, 메모리 모델 등 핵심 세부 사항에 대해 익혀두어야 합니다. 하나의 언어를 주력으로 하되, 상황에 따라 필요한 언어들을 그때그때 바꿔가며 해결할 수 있어야 뛰어난 개발자라 할 수 있습니다.

출처: Unsplash

Stage 3-버전관리 시스템을 활용

게임을 할 때 소위 ‘원 코인 클리어’는 꿈과 같은 일입니다. 게임을 플레이하다 적을 만나 죽임을 당할 수도 있지만, 시간이 없어 그만둬야 할 때도 있지요. 예전에 힘들게 클리어한 스테이지를 더 좋은 기록으로 클리어하고 싶은 마음도 있을 거예요. 그런 사람들을 위해 엔간한 게임에서는 플레이한 스테이지를 저장할 수 있는 기능을 넣어 놓습니다.

백엔드 개발자도 마찬가지입니다. 단숨에 프로젝트를 클리어할 수 있는 것도 아닌 만큼, 개발한 결과물을 저장하고 여러 개발자의 역할을 조율하고 작업 이력을 추적할 수 있는 Git 같은 버전관리 시스템의 기본 사용법을 공부해 놓는 것이 좋습니다. 마이크로소프트의 버전관리 시스템 GitHub은 Git의 기능에 저장소 호스팅 서비스까지 제공하는 만큼 GitHub 계정을 생성하고 인터페이스를 공부해 놓는 것이 좋습니다.

Stage 4-데이터베이스에 관한 공부

먼저, 데이터베이스에 대한 다양한 지식을 가지고 있어야 합니다. 가장 중요시되는 것은 RDB(Relational DataBase)입니다. RDB는 기존에 작성된 구조를 수정하거나 DB의 부하를 분석하는 게 어렵지만 데이터의 분류와 정렬, 탐색 속도가 빠르며 신뢰성이 높은 데다 어떤 상황에서도 데이터 무결성을 보장할 수 있어 백엔드 개발에서 널리 사용되고 있습니다. 좋은 백엔드 개발자가 되기 위해서는 RDB를 공부해 놓는 것이 좋습니다.

또한 국내 1위 검색엔진 ‘네이버’ 역시 MySQL, CUBRID, Redis, Memchaced, HBase, MonoDB 등 다양한 데이터베이스를 동시에 활용하고 있으니 다양한 데이터베이스에 대한 지식을 공부해 놓으면 어떤 상황에도 대처할 수 있는 좋은 백엔드 개발자가 될 수 있습니다.

Stasge 5-개발 툴 익히기

컴퓨터 게임을 할 때 키보드를 사용하는 것도 재미있지만, 조이스틱이나 전용 컨트롤러 등 게임에 맞는 도구를 이용하면 훨씬 게임을 재미있게 잘할 수 있습니다. 백엔드 개발도 마찬가지입니다. 개발 툴을 활용하는 능력은 프로그램의 생산성과 직결되기 때문에 그만큼 중요하다 할 수 있어요. 여러 개발 툴을 분석해 상황에 따라 적절히 꺼내어 쓸 수 있다면 그보다 더 좋을 수는 없겠지요. 하지만 확실히 잘 쓰는 개발 툴이 있고, 다른 개발 툴을 공식 문서만 보고도 스스로 익힐 수 있는 수준이라면 어디서도 환영받는 백엔드 개발자가 될 수 있을 것입니다.

Stage 6- 끊임없는 수련

뭐든지 그렇듯, 한 번 마스터했다고 생각해도 꾸준히 수련을 게을리하지 않으면 금세 실력이 녹슬게 됩니다. 또한, 언제든 자신보다 뛰어난 실력의 플레이어가 나타나 내 업적을 눌러버리는 일도 자주 일어나기 때문에 꾸준히 연습하고 새로운 기술을 익혀야 게임을 더욱 즐겁게 할 수 있습니다. 백엔드 개발자도 그렇죠.

세상은 빨리 발전하고 새로운 기술은 계속 나오기 때문에 커뮤니티와 인터넷 등을 통해 계속 새로운 것들을 공부하고 프로젝트에 적용하는 연습을 해야 합니다. 프로젝트를 배포했을 때 유저들의 피드백을 주기적으로 받아들여 디버깅하고 새 버전을 배포하는 등도 게을리하지 말아야 합니다.

출처: Unsplash

이 정도의 로드맵을 모두 시행했다면, 여러분은 백엔드 개발자로 일할 준비가 다 된 것으로 생각해도 될 것입니다. 비전공자는 학교에서 진행하는 경험을 쌓아보지 못한 만큼 커뮤니티 등을 통해 여러 명이 팀을 구성해서, 또는 혼자라도 다양한 프로젝트를 경험해 보는 것이 좋습니다. 그리고 그렇게 참여한 프로젝트는 자신의 블로그나 홈페이지 등을 개설하고 그 내용을 업로드해 백엔드 개발자로 취업할 때 포트폴리오로 사용해 보세요. 또한 개발자 커뮤니티 글을 읽고 댓글을 달고, 토론에 참여해 보는 등 활동을 하면 자신의 발전에 많은 도움이 될 것입니다. 멀고 험한 모험이지만 로드맵을 따라 꾸준히 노력하시면 반드시 좋은 백엔드 개발자로 일하실 수 있을 겁니다.


다른 인사이트가 더 궁금하다면

이 글과 연관된 주제의 추천 강의