출처 : https://gall.dcinside.com/mgallery/board/view/?id=backend&no=113
위에서 아래로 공부 순서대로 나열, 한 행에 있는건 순서 없음
꼭 순서를 지킬 필요는 없고 적당히 섞어서 해도 됨
중요한건 모두 다 끝까지 하는 것
운영체제 - 자료구조 - 네트워크 - DB
자바 - 방법론/개념
스프링 - JPA
종합
[도서] 그림으로 공부하는 IT 인프라 구조, 360p, 2020.12
네트워크
네트워크 기본서와 HTTP 서적, 그리고 둘 다 다루는 종합 서적으로 나뉨
컴퓨터 네트워킹 하향식 접근만 기본서인데, 개인적으로는 이걸 꼭 읽는 것을 추천함
다른 종합서들은 내용이 좀 부실해보임
성공과 실패를 결정하는 1%의 네트워크 원리는 깊이가 너무 얕아서 별도로 기본서나 종합서, HTTP서적을 봐야하지만, 통신 순서를 잘 설명해놔서 큰 그림을 이해하기 좋아보임
조합: 기본서+HTTP or 기본서+종합서 or 종합서+HTTP or 종합서
[도서] 성공과 실패를 결정하는 1%의 네트워크 원리 (종합), 440p, 2020.6
[도서] 컴퓨터 네트워킹 하향식 접근(기본), 669p, 2022.7
[도서] HTTP 완벽 가이드 (HTTP), 756p, 2014.12
학습 필터
[강의] 모든 개발자를 위한 HTTP 웹 기본 지식 (종합)
네트워크 기본 맛보기 + HTTP 핵심
네트워크 기본은 별도로 학습해야함
ostep, 공룡책은 os만 다루고 혼공은 컴구+os를 같이 다루고 있음
공룡책은 좋은 책이지만, 많은 내용이 일반적인 백엔드 개발자에게 필요하지 않음
ostep은 번역 품질이 좋지 않다는 평이 좀 있음
셋 중 하나만 읽으면 되고, 공룡책을 읽을거면 학습 필터 참고하고 혼공 읽을거면 컴퓨터 구조 파트는 깊게 들어가지 말고 개념만 익히고 os 파트에 집중할 것
ostep은 공룡책 학습 필터 참고해서 비슷한 것들은 패스하면 되는데, 기본적으로 그냥 다 읽어도 될 것 같음
[도서] 운영체제 아주 쉬운 세 가지 이야기 (심화, ostep 번역본), 782p, 2020.9
[도서] 운영체제 (심화, 별칭 공룡책), 1033p, 2020.2
학습 필터
[도서] 혼자 공부하는 컴퓨터 구조+운영체제 (기초), 504p, 2022.8
자료구조 책은 그놈이 그놈이라서 딱히 추천할건 없음
개인적으로는 low level 언어로 공부하는게 더 좋다고 생각해서 C언어 기반 서적들을 리스트업 했음
자바 파이썬 이런건 알아서 찾아봐
보통 자료구조+알고리즘으로 구성돼있는데, 자료구조는 다 공부하고 알고리즘은 필터링이 좀 필요함
레드블랙, 위상정렬, 최소신장트리, KMP, 사람이름 들어간 알고리즘(ex:
다익스트라) 제외하고 공부하면 됨
C언어로 쉽게 풀어쓴 자료구조, 574p, 2019.2
이것이 자료구조+알고리즘이다 with C언어, 664p, 2022.8
RDB (관계DB)
혼자 공부하는 SQL이라는 책이 인기가 좋던데, 구성이 좀 부족해보여서 추가하지 않음
SQL 전문가 가이드와 Real MySQL은 둘 중 하나만 읽으면 됨
둘 다 특정 DB에 조금 특화되긴 했지만, 특화 정도가 의미 없는 수준이라서 아무거나 읽어도 상관 없음
실제로 쓸 DB에 대한 특화 공부는 아래 기본서들의 목차를 참고해서 구글링 해도 충분함
기본서 -> SQL AntiPatterns
[도서] SQL 전문가 가이드 (Oracle 특화 RDB 기본서), 839p, 2021.3
학습 필터
[도서] Real MySQL 8.0 (MySQL 특화 RDB 기본서), 516p + 760p, 2021.9
학습 필터
[도서] SQL AntiPatterns, 432p, 2011.6
리팩터링, 클린 코드는 자바, 자바스크립트 등의 언어 기본은 떼고 읽는 걸 추천함
객체지향의 사실과 오해는 다른 객체지향 서적(오브젝트, 클린 아키텍처)들을 읽고 나서 읽는걸 추천함. 오해를 해봐야 더 와닿는게 있기 때문
도메인 주도 개발 시작하기는 다른 객체지향 서적들을 읽은 후에 읽는 것을 추천함
유독 이 책들을 읽고 광신도로 돌변하는 경우가 많음
방법론은 어디까지나 도구 중 하나에 불과하고 정답이 아니라는 사실을 잊지 말 것
잘못된 설계라고 주장하는 내용도 '객체지향의 관점'에서 봤을 때만 잘못된거고 나름의 가치가 있는 경우도 많음
세상에 관점은 여러가지가 있음
꼭 전부 다 읽을 필요는 없으나, 클린 코드와 객체지향 서적 한권 정도는 읽는 게 좋음
[도서] 클린 코드
[도서] 클린 아키텍처
[도서] 객체지향의 사실과 오해
[도서] 오브젝트 (약간 어려움)
[도서] 리팩터링 2판
[도서] 도메인 주도 개발 시작하기
[도서] 테스트 주도 개발 (켄트 벡)
[도서] GoF의 디자인 패턴 (약간 어려움)
[도서] JAVA 언어로 배우는 디자인 패턴 입문 (비교적 쉬움)
기본서 간의 우열은 없어보임
기본서들이 모두 Java8까지만 다루고 있는데, 그중 Java의 정석이 Java8을 조금 더 상세하게 다루고 있음
모던 자바 인 액션은 Java8~10까지 다룸
Java의 정석 기초편은 조금 더 쉽게 설명했고 응용 단계를 많이 생략했다고 하는데, Java 자체가 딱히 어렵다고 보기 힘들어서 굳이? 라는 생각이 듬. 원하면 이거 보던지
기본서 -> 모던 자바 인 액션 -> 이펙티브 자바
[도서] Java의 정석 (기본서), 1022p, 2016.2
[도서] 이것이 자바다 (기본서), 1008p, 2022.9
[도서] 모던 자바 인 액션, 692p, 2019.8
[도서] 이펙티브 자바 Effective Java 3/E, 520p, 2018.11
[도서] 실전 자바 소프트웨어 개발 (실습서), 216p, 2020.6
김영한 로드맵이 총 32만원이 넘는데, 개인적으로는 JPA는 책만 읽고 스프링 부트는 따로 공부하는게 좋아보임
스프링 부트 + JPA 예제는 깃헙에 널려있으니 참고(좋은거 있나 한번 찾아볼게)
[도서] 자바 ORM 표준 JPA 프로그래밍, 736p, 2015.7
[강의] 김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵
개인적으로는 토비의 스프링 3.1을 읽고 김영한님 강의들의 목차만 참고해서 구글링으로 공부하는게 어떨까 싶음
토비의 스프링 3.1이 너무 어렵다면 김영한님 로드맵을 쭉 따라가면서 배우는 것도 나쁘진 않음
근데 돈은 좀 들거고, 강의 다 본 후에라도 토비의 스프링 3.1 1권은 꼭 읽는걸 추천함
토비의 스프링 3.1 2권은 굳이 안봐도 됨, 궁금하면 1,2,3장 세부 목차만 구글링으로 검색해서 볼 것
스프링 시큐리티는 어려운건 아닌데 초심자들이 이해하기 힘든 논리를 가지고 있어서 꼭 책을 읽는걸 추천함
[도서] 토비의 스프링 3.1, 1720p, 2012.9
학습 필터
[강의] 토비의 스프링 부트 - 이해와 원리
[강의] 김영한의 스프링 완전 정복 로드맵
[도서] 스프링 시큐리티 인 액션, 612p, 2022.8