2022. 10. 20. 13:10ㆍ경험
스프링 부트와 JPA를 실습할 수 있는 간단한 교재를 찾다가
사진에서 왼쪽에 있는 책을 많이들 추천하여 구매했다.
번개장터에서 사진 오른쪽에 있는 책을 싸게 팔고있길래
전광석화로 칼입금하고 택배 받았다.
책을 펼쳤을 때 XML 설정 + JDBC + MyBatis 관련된 내용이 보였다.
그제서야 책을 잘못샀다는 것을 인지했고, 조금 더 비싼 값을 주고 왼쪽 책을 들여왔다..어쩐지 싸게팔더라
책의 특징
본인은 개발 학습 서적을 읽어본 경험이 없다.
따라서 간단한 책 설명과 현재 내 수준, 실력에서 이 책을 학습했을 때 느꼈던 점 위주로 적어본다.
책 좋다는 평가는 이미 많이들 하더라.
본인은 대충 인프런에서 김영한 강사님의 로드맵(Spring, JPA)을 수강하고 Spring + JPA로 간단한 토이 프로젝트도 해봤다.
엄청 세세한 것은 기억이 잘 안나지만 핵심 지식들은 알고 있는 상태라고 보면 좋을 것 같다.
참고로 Spring Security는 이 책에서 처음으로 학습했다.
저자님이 밝힌 대상 독자와 책의 특징은 아래와 같다.
[이 책의 대상 독자]
이 책은 이론보다는 바로 실행해 볼 수 있는 예제를 만드는데 집중하므로 다음과 같은 지식이 필요합니다.
* Java 언어의 기본적인 문법과 예외 처리, JDBC 관련 기능에 대한 이해가 필요합니다.
* JPA를 다루긴 하지만 실제 실행은 SQL로 처리하므로 이에 대한 지식이 필요합니다.
* MVC 기반의 웹 프로그래밍 경험이 있어야만 합니다.
* 스프링에 대한 기본적인 개념과 이해가 있어야만 합니다.
[이 책의 주요 특징]
* 개발 도구를 STS 대신에 Intellij Ultimate를 이용합니다.
* MariaDB를 이용하고, Spring Data JPA로 SQL을 대신합니다.
* JSP 대신에 Thymeleaf를 이용해서 화면을 작성합니다.
* 소셜 로그인을 이용하고 이를 자동 회원가입으로 처리합니다.
* 스프링 시큐리티를 이용해서 일반 로그인과 JWT를 이용한 API 인증처리를 같이 적용합니다.
후기
책의 실습을 전부 다 진행했는데, 약 2주가량 걸렸다.
시큐리티 부분은 분량이 약 110 페이지 정도인데, 처음 학습하는 시큐리티라 몹시.. 어려웠고 다른 시큐리티 강의들을 들으면서 진행하느라 1주일 가량 걸렸던 것 같다.
저자님이 네이버 카페를 운영하고 있어 질문을 올리면 하루 안에 답변을 들을 수 있다. 나도 질문을 몇 개 했었는데 저자님 뿐만 아니라 다른 카페 회원분들도 만족스러운 답변을 해주셨다.
또, git에 대부분의 소스코드가 있어 실습이 용이하다(Thymeleaf는 거의 복붙한 것 같다).
결론은 책 강추한다~
다만 Spring MVC, JPA 등에 대한 친절한 설명은 없다. 간단한 설명은 있지만 아무래도 활자와 인강은 다르다.
따라서 기본적인 지식이 없다면 내가 시큐리티 파트를 쩔쩔맸던 것처럼 책의 광범위한 부분에서 고통받을 수 있다..
반대로 기본적인 지식을 갖추고 있다면 단기간에 Spring + JPA(Spring Data JPA + QueryDsl) 프로젝트를 실습하며 전반적인 학습(복습)이 가능할 것이다.
++ Service 계층 인터페이스에서 DTO -> Entity, Entity -> DTO 변환하는 default 메소드를 두어 엔티티와 DTO 간 변환을 편리하게 하는 코드가 기억에 남는다. 앞으로 써먹어야겠다..
default Note dtoToEntity(NoteDto dto) {
Note note = Note.builder()
.num(dto.getNum())
.title(dto.getTitle())
.content(dto.getContent())
.writer(ClubMember.builder().email(dto.getWriterEmail()).build())
.build();
return note;
Dto, 엔티티를 위 코드처럼 빌더 패턴으로 생성할지, 생성자를 사용할지는 고민해봐야 할 것 같다(팀이라면 하나를 정해서 사용한다고 한다)
'경험' 카테고리의 다른 글
프로그래머스 데브코스 백엔드 3기 후기(2) (4) | 2023.04.15 |
---|---|
프로그래머스 데브코스 백엔드 3기 후기(1) (16) | 2023.04.01 |
A-Z 프로젝트 요약 & Troubleshoot (0) | 2022.11.30 |
2022 Woori 코딩 페스티벌 본선 후기(feat. 스타벅스) (1) | 2022.09.18 |
[삼성 SDS] 2022 하계 알고리즘 특강 후기 (2) | 2022.08.01 |