서브메뉴

본문

백견불여일타 스프링 부트 쇼핑몰 프로젝트 with JPA (이젠 프로젝트다!)
백견불여일타 스프링 부트 쇼핑몰 프로젝트 with JPA (이젠 프로젝트다!)
저자 : 변구훈
출판사 : 로드북
출판년 : 2021
ISBN : 9788997924899

책소개

스프링 부트와 JPA를 활용하여 실제 이커머스 업계에서 활용되는 쇼핑몰 기술들을 직접 구현해볼 수 있게 구성하였다. JPA와 Thymeleaf에 대한 간단한 예제로 기본 개념과 사용법을 익히고 그 후 쇼핑몰의 기본적인 기능들을 구현해 가며 JPA와 스프링 부트를 자연스레 익힐 수 있다. "Just Do It" 컨셉을 통해 하나의 완성된 서비스를 만드는 것을 목표로 하며 복잡한 코드 없이 최대한 간결한 코드 위주로 작성하였다. 이 책을 참고하여 자신만의 포트폴리오를 만들어보는 것도 가능하다. 테스트 코드를 작성하면서 개발을 진행하는 TDD 방식을 적용하였기 때문에 실무지향적 특성까지 갖추었다.

대상 독자
_다음과 같은 선수 지식이 있는 독자
Spring Framework를 어느 정도 사용해 보았다.
데이터베이스에 대한 기초적인 지식을 가지고 있다.
Java 언어에 대한 기초적인 지식이 있다.
HTM, JavaScript. CSS에 대한 기초적인 지식이 있다.

_다음과 같은 목표를 갖고 있는 독자
Spring Boot와 Spring Data JPA를 사용해서 작은 서비스를 처음부터 끝까지 구축해보고 싶다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

스프링 부트와 JPA를 활용하여 실제 이커머스 업계에서 활용되는 쇼핑몰 기술들을 직접 구현해볼 수 있게 구성하였다. JPA와 Thymeleaf에 대한 간단한 예제로 기본 개념과 사용법을 익히고 그 후 쇼핑몰의 기본적인 기능들을 구현해 가며 JPA와 스프링 부트를 자연스레 익힐 수 있다. "Just Do It" 컨셉을 통해 하나의 완성된 서비스를 만드는 것을 목표로 하며 복잡한 코드 없이 최대한 간결한 코드 위주로 작성하였다. 이 책을 참고하여 자신만의 포트폴리오를 만들어보는 것도 가능하다. 테스트 코드를 작성하면서 개발을 진행하는 TDD 방식을 적용하였기 때문에 실무지향적 특성까지 갖추었다.



샘플원고 ☞ https://roadbook.co.kr/260



대상 독자

_다음과 같은 선수 지식이 있는 독자

Spring Framework를 어느 정도 사용해 보았다.

데이터베이스에 대한 기초적인 지식을 가지고 있다.

Java 언어에 대한 기초적인 지식이 있다.

HTM, JavaScript. CSS에 대한 기초적인 지식이 있다.



_다음과 같은 목표를 갖고 있는 독자

Spring Boot와 Spring Data JPA를 사용해서 작은 서비스를 처음부터 끝까지 구축해보고 싶다.



가장 빠른 코딩 학습 방법은 만들어보는 것이다.



기본 예제를 통해서 Thymeleaf, Spring Data JPA의 사용법을 익히고 스프링 부트 위에서 상품, 주문, 장바구니 도메인 로직을 구현해보도록 구성하였다. 끝까지 따라하며 배워나가면 앞으로 다른 프로젝트를 시작할 때 기반이 되는 기술을 습득할 수 있으며, 이커머스에 관심이 많은 초보 개발자 여러분의 포트폴리오 제작에도 도움이 될 것이다.



[선수지식]

- Java 언어에 대한 기본 지식

- SQL에 대한 기본 지식

- MVC 기반의 웹 프로그래밍 경험



[이 책의 주요 특징]

- Spring Boot 프로젝트 기본 설정

- Spring Data JPA에 대한 기본 예제 수록

- Junit을 이용한 테스트 코드 작성

- Thymeleaf를 이용한 화면 구성

- Spring Security를 이용하여 회원 인증 및 인가 기능 구현



가장 대중적인 스프링 부트부터 강력한 데이터 관리를 위한 JPA, 어려운 로그인을 쉽게 구현할 수 있는 스프링 시큐리티, 쉽고 효과적이고 경제적으로 유지보수할 수 있는 Thymeleaf까지, 꼭 필요하고 대중적으로 기업에서 활용하는 최신 기술을 이커머스 업무 흐름과 함께 담아낸 것이 이 책의 장점이다.

_베타테스터 김지영(에스에스지닷컴)



이 책을 읽다 보면 프로젝트 패키지 구성부터 메이븐을 통한 빌드 구성과 같이 기초부터 시작해 실무에서는 몰랐던 내용들을 배울 수 있다. 실습을 모두 따라 하면 흔히 볼 수 있는 쇼핑몰의 기능을 모두 구현할 수 있어 재미도 느낄 수 있을 것이다.

_베타테스터 정선민(에스에스지닷컴)



현업에서 처음 개발을 해보는 주니어 개발자는 개념은 알지만 실제로 어떻게 구현해야 할지 고민을 많이 하게 된다. 이 책은 기본적인 개념을 설명한 뒤 구현된 코드를 보여주고 그 코드에 개념이 어떻게 녹아 있는지 설명하는 방식이기 때문에 처음 프로젝트를 시작하는 개발자도 쉽게 학습할 수 있다.

베타테스터 권샘찬(키위스튜디오)
[알라딘에서 제공한 정보입니다.]

목차정보

지은이의 말

베타테스터의 말

일러두기



1장 개발 환경 구축

1.1 스프링 부트의 특징

1.2 JDK 설치

1.3 인텔리제이 설치

1.4 애플리케이션 실행하기

1.4.1 Spring Boot Project 생성하기

1.4.2 빌드 도구

1.4.3 설정 파일(application.properties)

1.4.4 Hello World 출력하기

1.5 Lombok 라이브러리

1.6 MySQL 설치하기

[함께 해봐요 1-1] application.properties 설정하기

[함께 해봐요 1-2] Hello World 출력하기

[함께 해봐요 1-3] 애플리케이션 포트 변경하기

[함께 해봐요 1-4] Lombok 라이브러리 적용하기



2장 Spring Data JPA

2.1 JPA

2.1.1 JPA란?

2.1.2 JPA 동작 방식

2.2 쇼핑몰 프로젝트 생성하기

2.2.1 프로젝트 생성하기

2.2.2 application.properties 설정하기

2.3 상품 엔티티 설계하기

2.3.1 상품 엔티티 설계하기

2.4 Repository 설계하기

2.5 쿼리 메소드

2.6 Spring DATA JPA @Query 어노테이션

2.7 Spring DATA JPA Querydsl

[함께 해봐요 2-1] 상품 클래스 생성하기_Ver01

[함께 해봐요 2-2] 상품 클래스 엔티티 매핑_Ver02

[함께 해봐요 2-3] 상품 Repository 작성 및 테스트하기

[함께 해봐요 2-4] 쿼리 메소드를 이용한 상품 조회하기

[함께 해봐요 2-5] OR 조건 처리하기

[함께 해봐요 2-6] LessThan 조건 처리하기

[함께 해봐요 2-7] OrderBy로 정렬 처리하기

[함께 해봐요 2-8] @Query를 이용한 검색 처리하기

[함께 해봐요 2-9] @Query-nativeQuery 속성 예제

[함께 해봐요 2-10] JPAQueryFactory를 이용한 상품 조회 예제

[함께 해봐요 2-11] QuerydslPredicateExecutor를 이용한 상품 조회 예제



3장 Thymeleaf 학습하기

3.1 Thymeleaf 소개

3.2 Spring Boot Devtools

3.2.1 Automatic Restart 적용하기

3.2.2 Live Reload 적용하기

3.2.3 Property Defaults 적용하기

3.3 Thymeleaf 예제 진행하기

3.3.1 th:text 예제

3.3.2 th:each 예제

3.3.3 th:if, th:unless 예제

3.3.4 th:switch, th:case 예제

3.3.5 th:href 예제

3.4 Thymeleaf 페이지 레이아웃

3.4.1 Thymeleaf Layout Dialect dependency 추가하기

3.5 부트스트랩으로 header, footer 영역 수정하기

3.5.1 Bootstrap CDN 추가하기

3.5.2 Bootstrap Navbar Component 활용하기

[함께 해봐요 3-1] 웹 브라우저에서 Thymeleaf 파일 열어보기

[함께 해봐요 3-2] Thymeleaf 예제용 컨트롤러 클래스 만들기

[함께 해봐요 3-3] 서버용 Thymeleaf 파일

[함께 해봐요 3-4] pom.xml에 의존성 추가하기

[함께 해봐요 3-5] application.properties Live Reload 적용 설정 추가하기

[함께 해봐요 3-6] application.properties Property Defaults 설정 추가하기

[함께 해봐요 3-7] th:text를 이용한 상품 데이터 출력용 Dto 클래스

[함께 해봐요 3-8] th:text를 이용한 상품 데이터 출력용 컨트롤러 클래스

[함께 해봐요 3-9] th:text를 이용한 상품 데이터 출력용 thymeleaf 파일

[함께 해봐요 3-10] th:each를 이용한 상품 리스트 출력용 컨트롤러

[함께 해봐요 3-11] th:each를 이용한 상품 리스트 출력용 thymeleaf 파일

[함께 해봐요 3-12] th:if, th:unless를 이용한 조건문 처리용 컨트롤러 작성하기

[함께 해봐요 3-13] th:if, th:unless를 이용한 조건문 처리용 thymeleaf 파일 만들기

[함께 해봐요 3-14] th:switch, th:case를 이용한 조건문 처리용 thymeleaf 파일

[함께 해봐요 3-15] th:href를 이용한 링크 처리용 컨트롤러

[함께 해봐요 3-16] th:href를 이용한 링크 처리용 thymeleaf 파일

[함께 해봐요 3-17] th:href를 이용한 파라미터 데이터 전달용 thymeleaf 파일

[함께 해봐요 3-18] th:href를 이용한 파라미터 데이터 전달용 컨트롤러 작성하기

[함께 해봐요 3-19] th:href를 이용한 파라미터 데이터 전달용 thymeleaf 파일

[함께 해봐요 3-20] pom.xml에 Thymeleaf Layout Dialect 의존성 추가하기

[함께 해봐요 3-21] Thymeleaf 페이지 레이아웃 예제: 푸터 만들기

[함께 해봐요 3-22] Thymeleaf 페이지 레이아웃 예제: 헤더 만들기

[함께 해봐요 3-23] Thymeleaf 페이지 레이아웃 예제: 본문 레이아웃

[함께 해봐요 3-24] Thymeleaf 페이지 레이아웃 예제: thymeleaf 파일 만들기

[함께 해봐요 3-25] Thymeleaf 페이지 레이아웃 예제: 컨트롤러 클래스 작성하기

[함께 해봐요 3-26] 레이아웃에 Bootstrap CDN 추가하기

[함께 해봐요 3-27] 헤더 영역에 Navbar 추가하기

[함께 해봐요 3-28] 푸터 영역 수정하기

[함께 해봐요 3-29] CSS 적용하기

[함께 해봐요 3-30] CSS와 HTML 파일 연결하기



4장 스프링 시큐리티를 이용한 회원 가입 및 로그인

4.1 스프링 시큐리티 소개

4.2 스프링 시큐리티 설정 추가하기

4.2.1 security dependency 추가하기

4.2.2 스프링 시큐리티 설정하기

4.3 회원 가입 기능 구현하기

4.4 로그인/로그아웃 구현하기

4.4.1 UserDetailsService

4.4.2 UserDetail

4.4.3 로그인/로그아웃 구현하기

4.5 페이지 권한 설정하기

[함께 해봐요 4-1] 스프링 시큐리티 로그인하기

[함께 해봐요 4-2] SecurityConfig 클래스 작성하기

[함께 해봐요 4-3] 회원 가입 기능 구현하기

[함께 해봐요 4-4] 회원 가입 기능 테스트하기

[함께 해봐요 4-5] 회원 가입 페이지 작성하기

[함께 해봐요 4-6] 회원 가입 컨트롤러 소스코드 작성하기

[함께 해봐요 4-7] 회원 가입 처리하기

[함께 해봐요 4-8] 로그인/로그아웃 기능 구현하기

[함께 해봐요 4-9] 로그인 테스트하기

[함께 해봐요 4-10] 로그인/로그아웃 화면 연동하기

[함께 해봐요 4-11] 페이지 권한 설정하기

[함께 해봐요 4-12] 유저 접근 권한 테스트하기



5장 연관 관계 매핑

5.1 연관 관계 매핑 종류

5.1.1 일대일 단방향 매핑하기

5.1.2 다대일 단방향 매핑하기

5.1.3 다대일/일대다 양방향 매핑하기

5.1.4 다대다 매핑하기

5.2 영속성 전이

5.2.1 영속성 전이란?

5.2.2 고아 객체 제거하기

5.3 지연 로딩

5.4 Auditing을 이용한 엔티티 공통 속성 공통화

[함께 해봐요 5-1] 장바구니 엔티티 설계하기

[함께 해봐요 5-2] 장바구니 엔티티 조회 테스트하기(즉시 로딩)

[함께 해봐요 5-3] 장바구니 아이템 엔티티 설계하기

[함께 해봐요 5-4] 주문 도메인 엔티티 설계하기

[함께 해봐요 5-5] 주문 영속성 전이 테스트하기

[함께 해봐요 5-6] 고아 객체 제거 테스트하기

[함께 해봐요 5-7] 주문 엔티티 조회 테스트하기(즉시 로딩)

[함께 해봐요 5-8] 엔티티 지연 로딩 설정하기

[함께 해봐요 5-9] Auditing 기능을 활용한 데이터 추적하기



6장 상품 등록 및 조회하기

6.1 상품 등록하기

6.2 상품 수정하기

6.3 상품 관리하기

6.4 메인 화면

6.5 상품 상세 페이지

[함께 해봐요 6-1] 상품 등록 구현하기

[함께 해봐요 6-2] 상품 수정하기

[함께 해봐요 6-3] 상품 관리 메뉴 구현하기

[함께 해봐요 6-4] 메인 페이지 구현하기



7장 주문

7.1 주문 기능 구현하기

7.2 주문 이력 조회하기

7.3 주문 취소하기

[함께 해봐요 7-1] 주문 기능 구현하기

[함께 해봐요 7-2] 주문 기능 테스트하기

[함께 해봐요 7-3] 주문 호출 구현하기

[함께 해봐요 7-4] 구매 이력

[함께 해봐요 7-5] 주문 취소 기능 구현하기

[함께 해봐요 7-6] 주문 취소 테스트하기

[함께 해봐요 7-7] 주문 취소 호출 구현하기



8장 장바구니

8.1 장바구니 담기

8.2 장바구니 조회하기

8.3 장바구니 상품 주문하기

[함께 해봐요 8-1] 장바구니 담기 구현하기

[함께 해봐요 8-2] 장바구니 담기 테스트하기

[함께 해봐요 8-3] 장바구니 담기 호출 구현하기

[함께 해봐요 8-4] 장바구니 조회하기

[함께 해봐요 8-5] 장바구니 상품 수량 변경하기

[함께 해봐요 8-6] 장바구니 상품 삭제하기

[함께 해봐요 8-7] 장바구니 상품 주문하기
[알라딘에서 제공한 정보입니다.]

QuickMenu