수강생 3,194명
이런 걸
배워요!
백엔드 개발 지식
HTTP
CI/CD
API 작성법
데이터 표현법
리눅스 명령어
데이터베이스
배치 처리
버전 컨트롤
백엔드, 뭐부터 공부해야 할지 모르겠다면?
핵심을 정리한 백엔드 개발 로드맵 ⭐️
구매링크
yes24 http://www.yes24.com/Product/Goods/118379776
교보 https://product.kyobobook.co.kr/detail/S000201457949
알라딘 https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=314774905
‘개발자는 공부할 게 왜 이리 많지?
‘개발자가 되기 위해 필요한 것들을 누군가 정리해 놓았더라면 좋을텐데...’ 하는 생각 해보신 적 있으신가요?
물론 roadmap.sh/backend에 가보면 백엔드 개발자를 위한 로드맵이 작성되어 있습니다만, 내용이 너무 많아서 참고하기가 쉽지 않습니다.
저의 십수년의 경험과 다른 분들의 조언을 토대로 [초보 백엔드 개발자 로드맵]을 다음과 같이 정리하였습니다.
💡 인터넷, 버전 컨트롤, 개발 언어, 데이터 표현법, 리눅스 명령어, 웹서버, 인증과 인가, 프레임워크, 데이터베이스, API, 배치 처리, 배포하기 등 백엔드 개발에 필요한 다양한 주제를 다루고 있습니다. 각각의 내용을 심층적으로 다루기에는 해야 할 이야기들이 너무나 많기 때문에, 각 영역을 소개하고 어떻게 공부하면 좋을지를 말씀드립니다. 몇몇 챕터의 내용을 맛보기로 소개해 드리면 다음과 같습니다.
인터넷은 전세계의 컴퓨터들이 서로 정보를 주고 받을 수 있도록 한 거대한 네트워크입니다. 인터넷에서는 TCP/IP로 데이터를 주고 받으며, 데이터를 주고받기 위한 주소인 IP가 필요합니다. IP 주소는 사람이 외우기 어렵기 때문에 사람이 외우기 쉬운 영문, 한글등의 주소로 변경해서 사용하는 경우가 많습니다. 이를 DNS라고 합니다.
버전 컨트롤은 말 그대로 소스코드의 버전을 관리할 수 있도록 해주며, 다른 사람과 협업할 때에도 사용합니다. 다양한 버전 관리 시스템이 있지만, git만 익히면 됩니다. GitHub은 git을 웹에서 사용할 수 있도록 해주는 호스팅 시스템입니다. 풀리퀘스트를 사용하여 해당 저장소의 작성자에게 코드 변경에 대한 요청을 할 수 있습니다.
백엔드 개발 언어는 국내에서는 자바, 자바스크립트, 파이썬이 대표적입니다. 세 언어 중 하나를 잘 익히면 됩니다.
자바는 정적 타입 언어로 장황한 행사코드가 있는 것이 특징이지만, 오랜 기간 동안 현업에서 쓰였기 때문에 안정성을 인정받고 있으며 네카라쿠배로 칭하는 국내 탑티어 회사에서 모두 사용합니다. 자바스크립트는 Node.js 런타임을 사용하며 타입스크립트를 사용하여 타입체크를 하는 경우가 대부분입니다. 파이썬은 익히기 쉬운 문법과 활용성으로 많은 곳에서 사용되는 언어입니다. 백엔드 개발이 아니더라도 익혀두시면 좋습니다.
인증(Authentication)과 인가(Authorization) 둘 다 Auth가 붙어 있습니다. 초보 개발자 분들은 두 개념을 정확히 인지하지 못하고 사용하시는 경우가 많습니다만, 정확한 구분이 필요합니다.
인증은 사용자의 신원을 확인하는 것입니다. 즉 ‘당신이 누구인지’ 확인하는 것입니다. 아니라면 입구컷 당하는 것이구요. 인가는 인증이 되고 난 다음 ‘당신의 권한이 어느 정도인가’를 확인하는 것입니다. 손님과 VIP, 관리자의 권한은 각각 다를 것입니다. 이를 다르게 해주는 것이 인가입니다.
API를 작성하는 방식은 REST와 GraphQL을 벗어나지 않을 것입니다. gRPC도 있습니다만, 사용하는 곳이 적습니다. 대부분의 경우 REST 방식과 GraphQL 방식을 사용하게 될 것입니다. 현재로서는 GraphQL이 완전히 성숙한 단계가 아니기 때문에 둘 다 사용하고 있습니다.
CI/CD는 인증, 인가와 비슷하게 앞에 Continuous 같은 단어가 붙어 있습니다. CI는 지속적 통합이라는 뜻이며, CD 지속적 배포를 뜻합니다. 한국말이지만 무슨 의미인지 전혀 알 수가 없습니다.
그도 그럴 게 CI는 코드 작성 이후부터 배포 전까지의 모든 것을 ‘자동화’하는 것을 의미합니다. ‘지속적’이라는 말 대신 자동화라고 붙여도 위화감이 없습니다. CD는 배포를 ‘자동화’하는 것입니다.
데이터 표현법, 리눅스 명령어, 프레임워크, 배치 처리 등 초보 백엔드 개발자가 꼭 알아야 할 개념을 이해하기 쉽게 전해드립니다. 😊
학습 대상은
누구일까요?
백엔드 개발이 무엇인지 궁금하신 분
백엔드 개발자가 되기 위해 무엇을 공부해야 할지 고민이신 분
안녕하세요~ 1x년차 개발자 승귤입니다.
인프라 관리, 플랫폼 개발, 웹서버, 게임서버 개발등을 해보았고,
현재는 카카오 엔터테인먼트에서 카카오페이지 화면관리툴 개발을 맡아서 하고 있습니다.
저는 통계학 전공이지만, 학부 1학년 때 컴공들이 듣는 C를 혼자 호기롭게 수강한 적이 있는데요.
그 때의 그 경험이 저를 개발자로 이끌었습니다.
아무 것도 모르는 상황에서 게임을 만드는 과제를 했어야 했는데,
3주동안 두꺼운 책을 붙들고 씨름하니 결과물이 나오는 것을 보았습니다.
어찌나 뿌듯했던지 10년 넘게 개발을 하고 있는 지금도 어렵고 힘든것이 나오면 어떻게든 되겠지라는 호기로운 마음을 가지고 있습니다.
지금은 저와 같이 어렵게 프로그램을 공부하는 시대는 지났지만, 아직도 프로그래밍이라고 하면 막연히 어렵고 두려운 것으로 생각하시는 분들이 있을것 같아서, 저의 경험을 녹여서 최대한 쉽게 알려드리고자 합니다.
프로그래밍이 어렵기만 한 것이 아니라, 보람되고 재미있다는 것을 많은 분들께 알려주고 싶습니다.
전체
14개 ∙ (1시간 7분)