- [후기] 점프 투 스프링부트 - 게시판 개발 맛보기2025년 02월 05일
- 정성인(人)
- 작성자
- 2025.02.05.오전03:27
📌 내 평점: ⭐⭐⭐⭐☆ (3.8/5)
🤔 왜 이렇게 평가했을까?
- 경험 순서: 김영한 스프링 로드맵 → 백견불여일타 스프링부트 쇼핑몰 프로젝트 → 점프 투 스프링부트
- 배포 과정까지 맛본 점이 좋았다: 김영한 강의나 게시판 프로젝트보다 한 단계 나아가 AWS 배포까지 다뤘음.
- 심화된 코드 학습은 부족: JPA 최적화(N+1 문제, DTO 적극 활용 등) 같은 실무적인 부분은 김영한 강의, 쇼핑몰 프로젝트에서 더 많이 배움.
- 초보자가 단계적으로 따라가기 좋음: 기능을 한 단계씩 채워나가는 방식이어서 이해가 쉬웠다.
- 리팩토링이 필요할 부분이 있음: 김영한 강의와 병행하면 보완 가능.
🔗 점프 투 스프링부트 페이지
🔗 점프 투 스프링부트 깃허브
🔗 클론한 프로젝트
✍️ 총정리 - 장점과 아쉬운 점
✅ 장점
- 입문자 친화적인 설명: 초보자가 웹 서비스를 만들면서 전체적인 흐름을 파악하기 좋음.
- AWS 배포까지 경험 가능: 개발과 배포를 한 번에 익힐 수 있음.
- 점진적인 개발 방식: 처음부터 기능을 점점 추가해 나가는 방식이어서 학습 효과가 좋음.
❌ 아쉬운 점
- URL 설계가 다소 미흡:
/answer/create/{id}
같은 URL은 create 없이도 충분할 듯. - 테스트 코드 개선 필요:
- @Transactional이 없어 테스트 실행 후 DB에 데이터가 남음.
- 테스트 목적이 자동 검증인데, 눈으로 확인하는 방식이 아쉬움.
- 페이징 기능이 불안정:
- 시작 번호가 0부터라서 직관적이지 않음.
- 현재 페이지에 따라 보이는 페이지 목록이 달라 일관성이 부족함.
RESTful 설계 부족:DELETE 기능을 GET 요청으로 처리하는 등 RESTful 하지 않음.POST로 변경하고, URL에서 delete 같은 키워드를 빼는 게 깔끔할 듯.
- JPA 활용 방식 아쉬움:
- @ManyToMany를 사용한 추천 기능 → 실무에서는 잘 사용되지 않음.
- Specification 사용 → 김영한 강의에서는 실무에서 잘 쓰지 않는다고 설명.
- 실무에서는 QueryDSL을 주로 사용하므로 리팩토링 시 고려할 것.
🔍 진행하면서 겪은 문제들 & 해결법
🔹 2-03 JPA로 데이터베이스 사용하기
- 문제:
jdbc:h2:~/sbb
사용 시 에러 발생함. - 해결:
jdbc:h2:tcp://localhost/~/sbb
로 수정해야 정상 동작했음. - 참고: (이건 필자만 그런 것 같기도 하다.)
🔹 2-09 서비스 활용하기
- DTO 미사용 문제: 이 책에서는 간결성을 위해 DTO를 만들지 않음.
- 실무에서는 DTO 권장: 엔티티를 컨트롤러에서 직접 사용하지 않고, DTO를 활용하는 것이 좋음.
🔹 3-10 추천 기능 추가하기
- 질문: 삭제 기능은 POST나 DELETE로 처리하는 게 일반적인데, 책에서는 GET을 사용. 이유는?
- 답변: API 설계라면 POST나 DELETE가 맞음. 하지만 여기선 삭제 후 페이지 이동이 필요하므로 GET을 사용.
- 개선 방법: POST 요청으로 변경하는 것이 RESTful한 설계에 맞음. 만약 GET을 유지하려면, JavaScript의 fetch를 이용한 비동기 요청으로 처리하는 방법도 있음.
🔹 3-13 검색 기능 추가하기
- 문제: Specification 인터페이스를 사용했으나, 실무에서는 잘 쓰이지 않음.
- 대안: QueryDSL을 활용하는 것이 더 적절함.
🔹 4-05 SBB 배포하기
- 문제: 배포 후 JAR 파일 실행 시 DB 연결 오류 발생.
- 해결:
spring.datasource.url
을jdbc:h2:tcp://localhost/~/sbb
에서jdbc:h2:~/sbb
로 수정 후 다시 bootJar 빌드. - 추가 정보: 기존
jdbc:h2:tcp://localhost/~/sbb
는 H2가 TCP 연결을 지원할 때만 사용 가능.
🚀 마무리
이 책을 통해 기능을 점진적으로 추가하며 웹 애플리케이션을 개발하는 흐름을 익힐 수 있었다. JPA 최적화, RESTful API 설계, DTO 활용 등의 실무적인 부분은 부족했지만, 기초 개념을 다지고 배포 과정까지 경험하기에는 훌륭한 교재였다.
📌 추천 학습 순서
- 점프 투 스프링부트 → 기능 구현 중심 학습
- 김영한 강의 → 최적화, 설계 원칙 학습
- 프로젝트 실습 → 직접 구현하며 실전 감각 익히기
🔥 다음 단계로 김영한 강의와 실전 프로젝트를 진행하며 리팩토링을 해보는 것도 추천!
'BACKEND' 카테고리의 다른 글
백견불여일타! 스프링부트 쇼핑몰 클론코딩 후기 🛒 (0) 2025.01.29 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)