[Java] 백엔드 공부 로드맵

이상현·2023년 12월 8일
1

Java

목록 보기
16/21
post-thumbnail

백엔드 학습 로드맵과 추천 도서, 강의를 정리한 게시글입니다.

중요: 학습을 위한 학습을 하기 보다는, 만들고싶은 프로젝트를 하나 정하고, 그것을 만들어내기 위한 학습을 하는것이 좋다.

로드맵

1. Java 기본 문법 기초 공부

기초를 공부하며 변수 함수 조건문 반복문 등을 사용하는 간단한 콘솔 미니 프로젝트를 만들어보면 좋다.
(가위바위보, 계산기 등)

책을 끝까지 다 보려고 하지 말고 필요한 부분까지만 읽는것이 좋다.

2. 프로그래밍 기초 + 미니 프로젝트 만들기

TDD, OOP, Clean Code, 디자인 패턴 같은 개념들을 콘솔로 입출력을 하는 미니 프로젝트를 다시 한번 만들어보며 학습하면 좋다. (로또 게임, 레이싱 게임 등)
-> 우아한테크코스 프리코스 문제 추천 (구글링하면 찾을수 있다.)

물론 이 부분은 일단 넘어가도 된다고 생각한다. 실제로 이 개념들이 유용하게 쓰일만한 프로젝트를 하려면 한참 남았기 떄문에, 개념정도만 알고가고 아직 크게 집착하지 않는것이 좋다. 차라리 배포까지의 과정을 경험한 다음 이 개념들을 공부하고 리팩토링 하는것이 좋을 수도 있다.

  • 객체지향의 사실과 오해
    객체지향이란 무엇인가라는 원론적 면에서도 다소 위험한 질문에 답하기 위해 쓰인 책이다. 안타깝게도 많은 사람들이 객체지향의 본질을 오해하고 있다. 가장 널리 퍼져있는 오해는 클래스가 객체지향 프로그래밍의 중심이라는 것이다. 객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다.

  • 클린코드
    클린 코드를 구현하기 위한 다양한 규칙들을 설명하고 있다. 책 예제 코드가 자바 기반으로 구현되어 있으며, 다양한 예제를 통해 설명하고 있다. 클린 코드에 관심이 있는 개발자라면 반드시 읽어야 할 책이다.

  • 리팩터링
    리팩터링 개념, 리팩터링이 필요한 이유와 다양한 리팩터링 카탈로그를 제공하고 있다. 책의 카탈로그가 나오기 전까지가 핵심적인 내용이다. 카탈로그는 필요한 시점에 참고하는 용도로 사용한다.

  • 테스트 주도 개발 시작하기
    TDD(Test-Driven Development)는 테스트부터 시작한다. 구현을 먼저 하고 나중에 테스트하는 것이 아니라 먼저 테스트를 하고 그다음에 구현한다. 구현 코드가 없는데 어떻게 테스트할 수 있을까? 여기서 테스트를 먼저 한다는 것은 기능이 올바르게 동작하는지 검증하는 테스트 코드를 작성한다는 것을 의미한다. 기능을 검증하는 테스트 코드를 먼저 작성하고 테스트를 통과시키기 위해 개발을 진행한다.

3. 웹 프로그래밍 학습

네트워크 개념 (API, HTTP, TCP, UDP 등) 공부하기

  • 프로가 되기 위한 웹 기술 입문
    웹 프로그래밍 전반에서 등장하는 개념을 잡고, 용어에 친숙해 지는데 도움이 되는 책이다.
    적어도 "5장 웹 애플리케이션의 구성 요소"까지 읽을 것을 추천한다.

  • 그림으로 배우는 HTTP & Network
    HTTP와 Network에 대한 기본 지식을 습득하는데 도움이 되는 책이다.

  • 성공과 실패를 결정하는 1%의 네트워크 원리
    이 책은 기존의 다른 네트워크 책들과 달리 전체 과정을 쉽게 풀어 설명하고 있어 초보자가 읽기에 그나마 적합한 네트워크 책이다.
    웹 개발자가 이 책의 모든 내용을 상세하게 이해할 필요는 없다고 생각한다. 브라우저를 통해 전달된 데이터가 서버까지 어떻게 전달되고, 서버에서 보낸 응답 데이터가 브라우저까지 전달되는 흐름을 이해해도 충분하다.

  • 자바 웹 프로그래밍 Nest Step
    웹이 내부적으로 어떻게 작동되는지 알 수 있다. 자바 기본서를 학습하고 스프링 공부하기 전에 보면 좋다

4. 웹 프레임워크 기초 공부 (Spring Boot)

언어에 맞는 웹 프레임워크를 간단한 API 를 구현할 수 있도록 학습하자.

6. API 서버 만들어보기

간단한 게시판 만들어보기 (필수) -> 앞의 개념들을 싹 정리할 수 있다.

  • 글 작성
  • 글 수정
  • 글 삭제
  • 글 조회

중요: 변경에 대한 피드백 빠르게 받으며 학습하기.

  • 에러를 찾을떄는 찍기식으로 여기저기 변경하지 말고, 에러 코드를 읽으며 하나하나 수정해야한다.
  • 기능을 쪼개고 오류 찾기에 쉽도록 작성해야한다.

7. DB, SQL 배우기

DB를 먼저 학습

  • 데이터베이스가 뭔지
  • 왜 사용하는지

이후 PostreSQL 또는 MYSQL 학습하기.

8. 만들었던 게시판 API 서버에 데이터베이스 붙혀보기

  • 게시판 글 데이터를 DB에 넣어서 프로그램 종료해도 데이터 남도록
  • 회원가입 / 로그인 만들기

중요한 단계인 만큼 오래 걸린다.

이후

프로젝트 심화

참고: 에피코딩 Youtube - 백엔드 공부 4~6개월 차에 꼭 알아야 하는 것들

자바 심화

  • 모던 자바 인 액션
    자바 8 이후 도입된 기능들을 애플리케이션에 실용적으로 적용하는 방법을 알려준다. 기존 핵심 자바의 지식뿐 아니라 스트림 API, 자바 모듈 시스템 같은 최신 추가 기능, 동시성의 새로운 접근 방법, 함수형 개념 등 읽기 쉽고 유지 보수하기 쉬운 코드를 구현하는 데 어떻게 도움이 되는지 배울 수 있다.
  • Effective Java
    이 책은 자바 프로그래밍의 과제들에 대해 실전적인 최적의 해결책을 제공하고 있다. 책의 내용이 어려울 수 있으니, 앞에 나온 책을 학습 후 역량을 쌓고 보는 것을 추천한다. 재사용 가능한 코드를 작성하기 위해 자바 프로그래밍 언어를 좀 더 깊게 이해할 수 있는 책으로 소프트웨어 분야의 최고 영예인 Jolt Award 상을 수상하였다.

백엔드 심화

운영체제, 네트워크, 웹 프레임워크 심화, 소프트웨어 개발 프로세스, 웹 서버 를 학습하자.

출처
에피코딩 Youtube - 백엔드 공부 첫 3개월은 이렇게 하세요
Github - Newbie-Guideline
Github - back-end-roadmap
우아한테크코스 프리코스 4주차 학습 로드맵

0개의 댓글