백엔드 로드맵

2023 백엔드 개발자 로드맵 공개 feat.현직 백엔드 개발자

백엔드 로드맵 따라 공부 순서 익히고 백엔드 개발자 취업 준비 완성!

백엔드 공부 로드맵

백엔드 개발자란?

우리가 매일 이용하는 카카오톡과 같은 어플리케이션은 백엔드 개발자가 절대적으로 필요합니다. 백엔드는 웹 애플리케이션에서 서버 혹은 데이터베이스를 관리하는 기술입니다. 프론트엔드가 우리 눈에 보이는 화면의 인터페이스를 다루는 일이라면, 백엔드는 프론트엔드에 있는 사용자들의 행동을 처리하는 것입니다. 다시 말해, 백엔드 개발자는 시스템 컴포넌트 작업, API 작성, 라이브러리 생성, 데이터베이스 통합 등 눈에 보이지 않는 다양한 개발 활동을 하게 됩니다.

백엔드 개발자가 하는 일

백엔드 개발자가 하는 일을 더 자세히 살펴보자면 시스템 보안, 서버 구성, 성능 최적화, 데이터베이스 설계 등 다양한 업무 중에서도 주로 ‘서버 관리’를 많이 담당하고 있습니다. 그럼 ‘서버만 관리하나?’라는 궁금증을 가지실 수도 있을 것 같은데요. 서버를 그냥 관리하는 것이 아니고 데이터를 어떻게 더 효율적으로 저장하고 관리할 것인지, 데이터 처리 시간은 어떻게 줄일 것인지, 사용자 수가 늘어났을 때는 어떻게 대처할 것인지에 대한 작업을 해야 하며, 서버를 지속적으로 개발하고 관리해야 합니다.
이를 위해서 웹 서비스의 전체 구조를 파악하고 있어야 하는 것은 물론이고, 논리적인 사고를 가지고 있어야 문제 해결 능력을 잘 발휘할 수 있습니다.

백엔드 공부 로드맵이 복잡한 이유

백엔드 개발자를 준비한다면 한 번쯤 kamranahmedse의 웹 개발자가 되기 위한 백엔드 공부 로드맵을 보셨을 것입니다. 필수적인 내용이 모두 빠짐없이 정리되어 있고 최근까지 업데이트되어 최신 트렌드까지 담겨 있습니다. Kamran Ahmed가 만든 백엔드 공부 로드맵은 프론트엔드, 백엔드, 데브옵스 별로 나누어져 있기 때문에 어떤 걸 공부할지 갈피를 못 잡고 있다면 방향을 잡기에 좋습니다.

kamranahmedse의 웹 개발자가 되기 위한 백엔드 공부 로드맵

좌 : 백엔드 로드맵, 우 : 프론트엔드 로드맵
* 출처 : Kamram Ahmed 로드맵

백엔드 공부 로드맵을 프론트엔드 로드맵과 비교했을 때, 백엔드의 공부 로드맵은 훨씬 복잡합니다. 왜 그럴까요?
프론트엔드도 분명 많은 라이브러리를 다루며 복잡하지만 결국 JavaScript, HTML, CSS 3가지 언어만 제대로 알면 다양한 활용이 가능하죠. 그에 반해 백엔드는 python, django, node.js, java, Ruby 와 같이 정말 다양한 언어를 가지고 있습니다. 그리고 이렇게 많은 언어에 상응하는 더 다양한 프레임워크와 라이브러리가 존재합니다. 여기에 하나 더, 백엔드는 서버와 시스템이 동작하는 복잡한 개념에 대한 이해도 필요합니다.

많이들 궁금해 하시는 백엔드 로드맵 한글 버전을 더 자세히 살펴볼까요? ▶백엔드 로드맵 한글판 확인

이렇게 복잡한 백엔드 공부 로드맵에 걱정부터 앞서는 경우가 많은데요.
2023년 10명의 현직 백엔드 개발자의 자문을 구한 백엔드 6개월 공부 로드맵을 공개합니다.
* 제로베이스의 백엔드 로드맵은 백엔드 개발자 신입을 준비하는 입문자 대상으로 작성되었습니다.

국내 IT 기업 취업 목표, 백엔드 공부 로드맵

제로베이스에서 추천드리는 백엔드 로드맵은 6개월 기간 내 완주 가능하도록 설계하였습니다. 그렇지만 6개월 과정으로 뛰어난 프로로 한달음에 성장할 수는 없습니다. 아래의 백엔드 로드맵은 백엔드 신입 입문자분들께 성장의 발판을 만드는 것에 집중했습니다.

  • 전체 로드맵은 총 7개의 파트로 구분되어 있습니다. 세부 분류는 아래의 4가지 유형으로 색 분류하였습니다.
    ■ 기본 : 백엔드의 기본이 되는 학습
    ■ 중요 : 백엔드의 중요 핵심 학습, 깊게 공부할수록 좋은 학습
    ■ 필수 : 네카라쿠배 취업이 목적이라면 필수 학습, 채용 시 우대 역량
    ■ 선택 : 추가 학습 시 경쟁력이 될 수 있는 선택 학습

Part1. Computer Science, 컴퓨터 공학 기초

백엔드 공부 로드맵 part 1. Computer Science

로드맵은 좌 → 우 순서로 학습하는 것을 추천드립니다.

첫 번째로는 성장에 필요한 기초 Computer Science 입니다. 컴퓨터 공학 기초 중에서도 기술 블로그 관리 등을 통해 스스로 학습 뿐 아니라, 이력서로 삼을 수 있는 수단 위주로 선별하였습니다. 또한 취업에 필요한 자료구조, 알고리즘 또한 꾸준히 학습해야 합니다.

Part 2. Java

백엔드 공부 로드맵 part 2. Java

※ 객체지향이 어렵기에 최대한 뒤로 배치하였습니다. ※

간혹 인터넷에서 보면 Most popular programming languages in 와 같이 ‘자바가 1순위는 아닌데? 다른 언어가 좋지 않을까?’ 하는 생각이 들곤 합니다. ( 교육 과정을 준비하는 저희도 그랬던 적이 있고요.)

먼저 결론부터 말씀드리자면,
“주력 언어는 생각보다 더 중요합니다.”

전 세계에서 전부 자바가 가장 Major 하다고는 말할 수 없습니다.
다만 국내에서는 자바가 가장 Major한 언어라는 것에 대해 대부분이 동의 할 겁니다.

여러분이 알고있는 네카라쿠배, 유니콘 회사들의 채용공고를 한번 쓱 훑어 보세요. 어떤 언어를 채용하는 포지션이 많은지. 단언컨대 자바가 대부분의 지분을 차지하고 있습니다. 그렇다면 여러분은 원하는 회사에 가기 위해서는 무슨 언어를 해야 할까요? 당연히 자바입니다.

Part 3. Database

백엔드 공부 로드맵 part 3. Database

Database에 대한 기술 스택은 개발자 사이에서 프로그래밍 언어 코딩 실력보다 편차가 큰 분야입니다.
진입 장벽이 높지 않고 개발자라면 기본적으로 DB를 어느정도는 다루기 때문에 자칫 코딩보다 덜 중요한? 분야로 생각하는 경향이 있습니다. 또는 기술 스택을 쌓는 것에 비해 투자하는 시간을 현저히 줄이는 경향이 있죠.
대부분의 웹 서버 정보들은 데이터베이스에서 ​관리, 보관을 하게 됩니다. 서비스를 만들 때 데이터베이스에서 정보를 받아야 가능하니 데이터베이스를 관리하고 운영할 줄 알아야 합니다. 회사의 규모에 따라 DB 설계 및 관리를 전담하는 팀이 있을 수 있습니다. 그렇지만 아는데 안하는 것과 몰라서 안하는 건 크게 다릅니다. 장기적으로는 정보가 어떤 DB로 들어가고, DB를 뽑아오고, 뽑아올 때 어떤 필터를 걸치는지를 이해할 수 있어야 합니다.

Part 4. Git

백엔드 공부 로드맵 part 4. Git

Part 5. Spring

백엔드 공부 로드맵 part 5. Spring

Spring ( Spring Boot MVC )
이미 수많은 회사들이 선택한 그 Spring 입니다. 여러분이 자바라는 언어를 선택했다는 것은, 국내에서는 특수한 상황이 아닌 이상, Spring 기반의 개발을 진행하게 되겠죠. Spring 만큼 Enterprise 환경에서 안정적인 운영 환경을 기본적으로 제공하는 프레임워크는 없다고 생각합니다.
과거에는 Spring이 생산성에서 떨어지는 측면이 있었기에, Django 나 Node.js 같은 웹 프레임워크들이 각광을 받기도 했었습니다. 그러나 이제는 SpringBoot가 자리를 잡으며 이러한 문제를 많이 극복했다고 생각합니다.
SpringBoot를 활용하면, 간단한 Implementation 몇개만으로 간단하게 서버를 만들 수 있습니다. 대다수의 회사에서 Rest API 기반의 웹 개발을 진행하고 있습니다. Rest API 기반의 웹 개발은 반드시 알고 넘어가야 합니다. API에서 할 수 있는 기본적인 CURD를 함께 만들어보며 DB를 연동하고, 발생하는 Exception에 대한 Handling하는 것을 추천드립니다. 그리고 외부 연동과 예기치 못한 상황을 위한 Logging 까지 한다면, 웹 서버를 만들기 위한 기본적인 것들을 모두 다룬 셈이 됩니다.
로드맵 내 트랜잭션과, 코드를 견고하게 짤 수 있는 테스트 코드에 대해서도 다루었으며 로드맵을 따라 수강한 신입 지원자라면 현업에서 다루어야 하는 Major한 영역 모두 다룰 수 있을 겁니다.

서서히 소멸해 가고 있는 JSP와 같은 부분은 최대한 줄이고, 소위 ‘국민 스펙’이라 말하는 Spring, Mysql, JPA, Security 등을 중심으로 학습해 나가는 것을 추천드립니다.

Part 6-7. JPA, Security

백엔드 공부 로드맵 part 6. JPA, Security

JPA
과거 대부분의 개발자들은 Mybatis ( Persistence Framework)를 사용했었습니다. 이런 와중 ORM이 나왔습니다. 최근 Java 진영에서는 JPA (의 구현체인 Hibernate를 포함한 ) 가 대표적입니다. 기존의 SQL을 직접 작성해서 Database 와 연동한 것에 비해, ORM 은 객체를 기반으로 DB의 Table을 매핑했기 때문에, 좀 더 프로그래밍 친화적이라고 할 수 있습니다. 재사용성이나, 유지 보수 같은 측면에서도 이득을 볼 수 있고요.
물론 ORM이 만능은 아니지만 가지고 있는 강점이 많기 때문에, 많은 회사에서는 Mybatis와 JPA를 혼용하거나 JPA 만으로 처리를 하는 경우도 종종 있습니다.
JPA의 경우 진입장벽이 높은 편입니다. 객체를 기반으로 Table을 handling 하다 보니 SQL이 실제 어떻게 만들어지는지를 잘 알아야 하고, 당연하게도 Database와 실제 처리하는 SQL에 대하여도 잘 알아야 JPA를 잘 활용할 수 있습니다. 하지만 이러한 진입장벽을 이겨낸다면 높은 생산성과 유지보수하기 좋은 코드를 만드는 것에 큰 도움이 될 수 있습니다.

Security
개발자 또한 보안에 대해 잘 알아야 합니다. 대중적으로 많이 사용하는 JWT에 대해 다루고, 이를 기반으로 한 OAuth2를 통해 인증을 득하고, 세션을 관리할 수 있는 것은 꽤 우아한 방식입니다. 물론 필수는 아니지만, 그 안정성을 많은 이들에게 인정받고, 대중적으로 잘 사용하고 있는 기술들입니다.
OAuth2나 JWT 대신 암호화를 하거나, key를 기반으로 하여 서버의 인증을 득할 수도 있지만, 이를 우아한 방법으로 어떻게 풀어내는지에 대해 우리는 한번 다루어볼 필요가 있습니다.
특히 OAuth2의 경우에는 구글이나, 카카오의 Thirdparty Login을 하면서도 만나 볼 수 있기도 하고요.

Spring Batch
Spring Batch는 상대적으로 JPA 나 Security 대비 중요도가 낮습니다. 현업에서 필요한 부분임은 명확하나, 신입의 잠재력을 보기엔 쉽지 않습니다. 그렇기에 선택 학습 항목으로 분류하였고, 물론 알고 있으면 당연히 좋습니다.

더불어, 이론 학습에 그치지 않고 다양한 미니 프로젝트와, 팀 프로젝트를 통한 좀 더 실전적인 코드들을 경험하여, 이론에 매몰되지 않고 최대한 현업에 가깝게 학습하시길 바랍니다.

🗒️백엔드 개발자 취업 준비 방법

백엔드 개발자가 되기 위해 백엔드 공부 순서를 잘 따라왔다면 마지막으로 면접관에게 실력을 보여줄 차례입니다. 실력을 보여주기 위해 준비해야 할 것은 크게 3가지로 나뉩니다. 코딩테스트, 기술 면접 그리고 포트폴리오를 준비해야 합니다.

코딩테스트의 경우 지원자의 기본적 기술 역량을 알아보고자 대부분의 기업에서 취업의 첫 관문으로 많이 실시하고 있습니다. 하지만 처음 백엔드 개발자 공부를 시작하는 분들은 백엔드 로드맵 공부 순서에 따라 공부할 것이 많아 ‘코딩테스트는 나중에 준비해야지’라는 생각으로 준비를 하고 있지 않다 뒤늦게 시작하시는 분들도 많은데요. 코딩테스트 실력은 하루아침에 느는 것이 절대 아니기 때문에 백엔드 공부와 함께 준비를 하는 것이 좋습니다.
그러나 코딩테스트 공부를 처음 시작하게 되면 어떤 문제를 풀고, 어떻게 공부를 이어나가야 할지 잘 모르기 때문에 방치해버리는 분들이 많습니다. 제로베이스 백엔드 스쿨은 혼자 하기 힘든 코딩테스트를 매주 6개월간 진행하고 있다고 하는데요. 특히 비전공자 취준생 분들의 경우 백엔드 스쿨이 유일하게 코딩테스트를 관리해 주는 부트캠프여서 백엔드 스쿨을 시작한 분들도 많다고 합니다. 더불어 백준님을 필두로 코딩테스트 출제위원단까지 구성하며 네카라쿠배 기출 경향을 분석하여 정말 필요한 문제들만 풀어볼 수 있어 실력을 키울 수 있습니다.

두 번째로 기술 면접은 백엔드 로드맵을 잘 따라왔다면 어느 정도 감을 익혔다고 볼 수 있습니다. 기술 면접은 컴퓨터 공학 지식을 얼마나 알고 있는지 보기 위해서 치르는 면접이라고 할 수 있습니다. 기술 면접의 기본인 CS 지식은 개발자가 서비스를 개발하는 과정에 있어 비즈니스 로직을 생각해 내기 위해 필요합니다. 하지만 이 CS 지식 워낙 과목도 많고 양이 방대해 관련 강의를 찾아 배우는 것이 어렵습니다.
따라서 사이트에 많이 나와있는 기술 면접 질문들을 찾아 질문에 대한 답을 하며 공부하는 것이 가장 효율적인 공부 방법이라고 할 수 있습니다. 면접에 자주 나오는 질문들이 결국 현업 개발자들이 가장 중요하게 생각하는 부분이기 때문이죠. 기술 면접 질문에서 찾은 키워드를 구글링해서 최상단에 나오는 글, 가장 최근에 작성된 글을 읽은 후 개념을 정리하는 것입니다. 이런 식으로 질문 선정 - 키워드 선정 - 개념 공부 - 정리의 순서로 진행하시면 됩니다. 더 자세한 내용은 제로베이스가 준비한 CS지식 공부법을 읽어보는 것을 추천드려요!

조금 더 설명을 드리기 위해 비전공자에서 백엔드 개발자로 취업에 성공한 띵지로그님이 말하는 백엔드 기술 면접 준비 방법을 들어볼까요? 백엔드 기술 면접을 위해 띵지로그님이 준비한 방법에 대해 알아보겠습니다.

백엔드_로드맵_백엔드_기술_면접_준비

더 자세한 내용은 띵지로그 유튜브에서 확인해주세요!

CS 지식은 다양한 환경에서 개발을 하기 위해 꼭 알아야 하는 지식 중 기본 지식이라고 말하고 있는데요. 개념을 제대로 이해하는 것도 중요하지만 개념 간 흐름을 연결 짓는 것도 필요합니다. 백엔드 스쿨 CS 강의에서는 실제 실무와 연결지어 활용 방법을 설명해 주고 있다고 합니다. 하나의 흐름에 따라 설명하며, 시간을 들여 따로 찾지 않아도 공부할 수 있는 50개의 핵심 기출문제집을 제공하고 있습니다. 띵지로그님은 이 기출문제집에서 16개의 질문을 받았다고 하는데요. 질문에 대한 답을 프로젝트 경험과 연결 지어 설명해서 더 좋은 결과를 만들어낼 수 있었다고 합니다. 백엔드 스쿨에서 기술 면접 질문을 준비해 보았는데요. 아래 추천 컨텐츠에서 네이버 현직 백엔드 개발자가 알려주는 백엔드 기술 면접 질문들을 확인해 보세요!

마지막으로 백엔드 포트폴리오는 어떤 내용을 담아야 할까요? 백엔드 포트폴리오는 다양한 방법으로 개발자의 역량을 보여줄 수 있습니다.
하지만 대부분의 신입 개발자들은 포트폴리오를 어떻게 만들어야 할지 감을 못 잡습니다. 깃허브 주소만 적는다고 해서 포트폴리오가 완성되는 게 아니기 때문에 프로젝트에 대한 소개, 내용 등을 잘 정리해서 포트폴리오를 만들어야 합니다.
포트폴리오에 들어가는 프로젝트는 개인 프로젝트냐, 팀 프로젝트냐가 중요하다기 보다 프로젝트를 통해 어떤 기술을 구현했고, 본인은 어느 부분을 담당하여 개발을 위해 노력했는지 잘 보이게 하는 것이 중요합니다.
제로베이스 백엔드 스쿨에서는 개인 프로젝트 뿐만 아니라 프론트엔드 협업 프로젝트도 진행할 수 있기 때문에 의지가 있는 수강생들과 함께해 완성도 높은 결과물을 만들어 실제 서비스 배포까지 경험할 수 있습니다. 제로베이스 백엔드 스쿨 수강생들의 프로젝트를 소개합니다.

Easy Sports Club 프로젝트 발표 문서

아트버블 프로젝트 발표 문서

백엔드_로드맵_백엔드_포트폴리오

이 내용들은 6개월 만에 비전공자에서 백엔드 개발자로 취업에 성공한 수강생의 실제 포트폴리오에 들어간 내용들인데요. 이처럼 백엔드 개발자가 되기 위해 이런 부분이 표현된다면 프로젝트에 대한 진심을 잘 보여줄 수 있으니 참고해서 포트폴리오를 제작하는 것이 더 큰 도움이 됩니다. 프로젝트에서 본인의 기여도, 해결 방법 및 배운점, 개선하고 싶은 점 등을 꼭 미리 기술해두고 포트폴리오 작업 시에 사용할 수 있도록 정리해두는 것이 필요합니다.

마치며,

프레임워크를 위해 언어를 공부하지 마세요. 프레임워크 이전에 언어가 있기에 언어에 대한 이해가 우선입니다.
제로베이스가 자문을 구한 10명의 현직자 모두 “코드에 대한 이해”가 가장 중요하다 답했습니다. 직접 코드를 작성해보며 체화하는 것, 지금 여러분께 가장 필요한 일입니다.
지금의 시작점은 모두 다르겠지만, 결과는 ‘얼마나 노력했는가’에 달려있습니다. 개발자는 ‘성장’이라는 가치를 크게 여기는 직업입니다. 백엔드 학습에서 가장 중요한 점은 순서가 아닌 꾸준함입니다. 어떤 순서든, 어떤 학습법이든 정도를 꾸준하게 걷는다면 여러분은 충분히 성장할 수 있습니다. 여러분의 꾸준함을 응원하겠습니다.


2023년 현업에 최적화된 백엔드 커리큘럼 자세히 보고싶다면?
>> 백엔드 스쿨 바로가기


추천 컨텐츠