경제학을 배우던 대학 시절에는 참 전공 서적에 돈쓰는게 아깝게 느껴지곤 했다. 그렇다고 경제학 자체에 흥미가 없었던 것도 아니었고 인생에 아무짝에 쓸모 없다고 생각하지도 않는다. 특히나 백승관 교수님의 거시 경제학은 내 인생의 2번 째 터닝포인트이기도 하다. 이 얘기는 추후 다뤄보도록 하겠다.
상대적으로 백엔드 개발자가 되기 위해 구매했던 책들은 만족도가 높았다. 단순하다. 실용적이기 때문이다. 그 중에서도 오늘은 만족도가 높았던 책, 인강들을 간단히 소개해보려고 한다.
소개할 책, 인강 리스트는 다음과 같고 시간이 없는 사람은 볼드체만 봐도 된다. 볼드체는 해당 컨텐츠를 통해 얻을 수 있는 것들이다.
소개할 리스트
1. 인프런 - 김영한 스프링 핵심 원리 기본 편, MVC 1, 2편
2. SQL 첫걸음
3. Real MySQL 8.0 1,2권 (DB쪽에 무수한 관심이 있다면)
4. 도메인 주도 개발 시작하기
5. 스프링 배치 완벽가이드
인프런 - 김영한 스프링 핵심 원리 기본 편, MVC1, 2편
김영한님이야 자바 진영의 BTS 정도의 인지도기 때문에 굳이 추천할 이유가 있을까 싶지만 안할 수 없다. 왜냐하면 이보다 더 스프링을 가성비있게 이해하는 컨텐츠는 찾아보기 힘들다.
영한님은 강사로서 빌드업 능력이 상당히 뛰어나시다. 기술의 등장 배경과 핵심을 잘 짚으시는 편이다. 그리고 꽤나 깊이가 있게 가르치시는 편이다.
추가로 강의를 정말 자기것으로 만들기 위해서는 토이 프로젝트도 해보고 새로운 시도를 많이 해보길 바란다.
SQL 첫걸음
SQL은 매우 중요하다. ORM을 사용하더라도 말이다.
ORM 덕분에 우리는 명시적으로 쿼리를 작성하지 않아도 되지만 이 때문에 불편한 문제가 생기기도 한다. 가장 큰 문제는 예상치 못한 쿼리가 나갈수도 있다는 것이다. 거기에 QueryDSL 을 사용해서 복잡한 동적 쿼리를 짠다고 해보자. 아무리 아무리 클린하게 코드를 짠다고 해도 MyBatis로 짠 명시적인 동적 쿼리가 쿼리를 이해하는데는 훨씬 들어가는 자원이 적다.
말을 하다보니 QueryDSL, JPA 타도가 된 것 같은데 아니다. 난 두 기술을 사랑한다. 진정으로 하고 싶은 말은 SQL은 중요하다는 것이다.
SQL 첫걸음은 초심자도 잘 이해할 수 있도록 되어있다. 이 책을 따라 쿼리 연습을 많이 해본다면 꽤나 복잡한 SELECT 쿼리를 작성하는 것에도 큰 어려움은 없을 것 같다.
참고로 예제들은 MySQL이 주를 이루며 Oracle도 함께 제공하고 있다.
Real MySQL 8.0 1,2
앞서 소개한 SQL 첫걸음은 DML 위주의 책이라면 Real MySQL은 MySQL A-Z이다. 참고로 이 책은 쉽지 않고 백엔드 개발자 입장에서는 가성비가 떨어질 수도 있다고 본다.
그리고 솔직히 말하면 나는 이 책을 30프로 정도 안되게 읽었고 지금은 꽤나 시간이 지나 이 책의 5프로 정도를 이해하고 있다고 본다. 책을 막 읽었을 당시에는 한 20프로는 되지 않았을까 싶다. ㅎㅎ
그럼에도 불구하고 이 책을 추천하는 이유는 백엔드 개발자로서 가지고 있었던 데이터베이스의 대한 대부분의 궁금증을 풀어주었다. 예를 들어 어떻게 REPEATABLE READ가 가능한지에 대해서 말이다. 그리고 내가 잘못 알고 있거나 아예 인지조차 하지 못한 내용들에 대해 알려주었다.
참고로 아래의 장의 일부를 읽었다.
1권 4장 아키텍처, 5장 트랜잭션과 잠금 8장 인덱스 9장 옵티마이저 힌트 10장 실행 계획
2권 11장 쿼리 작성 및 최적화, 15장 데이터 타입
개인적으로 나는 8장 인덱스, 10장 실행 계획 두 장으로 이 책 값어치의 손익 분기점을 넘겼다.
도메인 주도 개발 시작하기
이 책은 DDD START의 개정판이며 에릭 에반스의 도메인 주도 설계에 영향을 받았다고 저자가 말하고 있다. 참고로 저자는 최범균님인데 꽤나 많은 책을 내셨으며 초보 웹 개발자를 위한 스프링5도 스프링을 초심자가 배우기 좋은 책이니 참고하면 좋을 것 같다.
이 책을 추천하는 이유를 간략히 설명해보겠다.
첫째, 모듈 구조 및 의존성
예를 들어 프로젝트가 모놀리틱 구조에서 도메인 별로 분리되는 구조로 변경된다고 해보면 된다. 이 책에서는 기본적으로 도메인 별로 모듈을 분리하는 구조를 따르기 때문에 도움이 될 것이
둘째, 좋은 코드에 대해서
이 책에서는 꽤나 좋은 코드 작성에 대해 소개해준다. 예를 들어 밸류 타입, 세터 지양
DDD에서는 유비쿼터스 언어를 강조한다. 예를 들어 쇼핑몰 애플리케이션을 개발한다고 해보자. 주문 도메인에서 고객은 주문자, 리뷰 도메인에서 고객은 리뷰어, 회원 도메인에서는 고객은 회원이다. 이렇듯 같은 용어일지라도 도메인에 따라 용어가 달라질 수 있다.
이 책을 읽고 도메인 주도 개발을 하고 있지는 않지만 분명하게 개발을 바라보는 관점이 넓어지게 되었다.
스프링 배치 완벽가이드
스프링 배치를 책으로 공부하기 위해서는 사실 선택지가 몇 개 없다. 스프링 배치 인 액션, 스프링 배치 완벽가이드 2개 정도가 전부이다. 스프링 배치 인 액션을 읽지 않아 비교할 순 없겠지만 스프링 배치 완벽가이드는 충분히 좋은 책이라고 본다.
개인적으로 실무를 접하고 나니 배치는 매우 중요한 서비스이다. 대체적으로 배치는 대용량 데이터를 컨트롤한다. 현재 재직중인 회사에서도 매일 새벽 20개의 배치가 돌고 있으며 비즈니스의 핵심적인 부분을 담당하는 배치도 존재한다.
그럼에도 불구하고 아쉬운 점은 그 만큼 배울 수 있는 인프라가 충분히 제공되어 있지 않다는 것이다. 앞서 말했듯 국내에는 2개의 책 정도밖에 없고 인프런 기준으로 인강도 거의 없다. 배치를 공부할 생각이 있다면 이 책을 강력 추천한다.
'개발일기장' 카테고리의 다른 글
사이드 프로젝트 일기 1 - 비동기 처리 시, 영속성 컨텍스트 주의 사항 및 이벤트 리스너 처리 (1) | 2024.10.13 |
---|---|
vscode 단축키 설정 (0) | 2024.03.03 |
Postman 조금 더 잘 사용하기 - 반복적이고 랜덤하게 API 호출하기 (1) | 2023.11.18 |
근황 + 멀티 모듈 이야기 (0) | 2023.09.02 |
스타벅스를 옮겼을 뿐인데 MongoDB Cloud 연결이 되지 않는다. (0) | 2023.08.01 |