백엔드 학습 로드맵과 추천 도서, 강의를 정리한 게시글입니다.
중요: 학습을 위한 학습을 하기 보다는, 만들고싶은 프로젝트를 하나 정하고, 그것을 만들어내기 위한 학습을 하는것이 좋다.
기초를 공부하며 변수 함수 조건문 반복문 등을 사용하는 간단한 콘솔 미니 프로젝트를 만들어보면 좋다.
(가위바위보, 계산기 등)
책을 끝까지 다 보려고 하지 말고 필요한 부분까지만 읽는것이 좋다.
Java의 정석
자바 문법서중에 유명한 책이다. 기본 문법을 숙지하기에 좋다.
코드스쿼드 자바 강의
자바 입문자를 위한 무료 강의이다.
TDD, OOP, Clean Code, 디자인 패턴 같은 개념들을 콘솔로 입출력을 하는 미니 프로젝트를 다시 한번 만들어보며 학습하면 좋다. (로또 게임, 레이싱 게임 등)
-> 우아한테크코스 프리코스 문제 추천 (구글링하면 찾을수 있다.)
물론 이 부분은 일단 넘어가도 된다고 생각한다. 실제로 이 개념들이 유용하게 쓰일만한 프로젝트를 하려면 한참 남았기 떄문에, 개념정도만 알고가고 아직 크게 집착하지 않는것이 좋다. 차라리 배포까지의 과정을 경험한 다음 이 개념들을 공부하고 리팩토링 하는것이 좋을 수도 있다.
객체지향의 사실과 오해
객체지향이란 무엇인가라는 원론적 면에서도 다소 위험한 질문에 답하기 위해 쓰인 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장 널리 퍼져있는 오해는 클래스가 객체지향 프로그래밍의 중심이라는 것이다. 객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다.
클린코드
클린 코드를 구현하기 위한 다양한 규칙들을 설명하고 있다. 책 예제 코드가 자바 기반으로 구현되어 있으며, 다양한 예제를 통해 설명하고 있다. 클린 코드에 관심이 있는 개발자라면 반드시 읽어야 할 책이다.
리팩터링
리팩터링 개념, 리팩터링이 필요한 이유와 다양한 리팩터링 카탈로그를 제공하고 있다. 책의 카탈로그가 나오기 전까지가 핵심적인 내용이다. 카탈로그는 필요한 시점에 참고하는 용도로 사용한다.
테스트 주도 개발 시작하기
TDD(Test-Driven Development)는 테스트부터 시작한다. 구현을 먼저 하고 나중에 테스트하는 것이 아니라 먼저 테스트를 하고 그다음에 구현한다. 구현 코드가 없는데 어떻게 테스트할 수 있을까? 여기서 테스트를 먼저 한다는 것은 기능이 올바르게 동작하는지 검증하는 테스트 코드를 작성한다는 것을 의미한다. 기능을 검증하는 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행한다.
네트워크 개념 (API, HTTP, TCP, UDP 등) 공부하기
프로가 되기 위한 웹 기술 입문
웹 프로그래밍 전반에서 등장하는 개념을 잡고, 용어에 친숙해 지는데 도움이 되는 책이다.
적어도 "5장 웹 애플리케이션의 구성 요소"까지 읽을 것을 추천한다.
그림으로 배우는 HTTP & Network
HTTP와 Network에 대한 기본 지식을 습득하는데 도움이 되는 책이다.
성공과 실패를 결정하는 1%의 네트워크 원리
이 책은 기존의 다른 네트워크 책들과 달리 전체 과정을 쉽게 풀어 설명하고 있어 초보자가 읽기에 그나마 적합한 네트워크 책이다.
웹 개발자가 이 책의 모든 내용을 상세하게 이해할 필요는 없다고 생각한다. 브라우저를 통해 전달된 데이터가 서버까지 어떻게 전달되고, 서버에서 보낸 응답 데이터가 브라우저까지 전달되는 흐름을 이해해도 충분하다.
자바 웹 프로그래밍 Nest Step
웹이 내부적으로 어떻게 작동되는지 알 수 있다. 자바 기본서를 학습하고 스프링 공부하기 전에 보면 좋다
언어에 맞는 웹 프레임워크를 간단한 API 를 구현할 수 있도록 학습하자.
간단한 게시판 만들어보기 (필수) -> 앞의 개념들을 싹 정리할 수 있다.
중요: 변경에 대한 피드백 빠르게 받으며 학습하기.
DB를 먼저 학습
이후 PostreSQL 또는 MYSQL 학습하기.
중요한 단계인 만큼 오래 걸린다.
참고: 에피코딩 Youtube - 백엔드 공부 4~6개월 차에 꼭 알아야 하는 것들
운영체제, 네트워크, 웹 프레임워크 심화, 소프트웨어 개발 프로세스, 웹 서버 를 학습하자.
출처
에피코딩 Youtube - 백엔드 공부 첫 3개월은 이렇게 하세요
Github - Newbie-Guideline
Github - back-end-roadmap
우아한테크코스 프리코스 4주차 학습 로드맵