본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

그림으로 배우는 스프링 6 입문 상세페이지

컴퓨터/IT 개발/프로그래밍

그림으로 배우는 스프링 6 입문

애플리케이션을 직접 만들어보며 익히는 스프링 기본기와 실무 스킬
소장종이책 정가39,000
전자책 정가20%31,200
판매가31,200
그림으로 배우는 스프링 6 입문 표지 이미지

그림으로 배우는 스프링 6 입문작품 소개

<그림으로 배우는 스프링 6 입문> 현장에 필요한 스프링 기본기 구축과 자바 실력 레벨업을 동시에!
* 최신 버전 스프링 프레임워크 기반 실습 제공
* 스프링 부트 3 포함

스프링은 자바를 배울 때 보지 못했던 새로운 개념, 이해하기 어려운 용어가 많아 입문자가 배우기 어렵습니다. 하지만 이 책은 『스프링3 입문』과 『스프링4 입문』을 집필한 스프링 전문가인 저자가 오랜 스프링 교육 경험을 토대로 구상한 그림과 설명으로 구성되어 있기 때문에 누구나 쉽게 이해할 수 있습니다. 크게 [기본편]과 [실무편]으로 구분되는데, [기본편]에서는 스프링 6의 전반적인 기능과 원리, 실무편에서는 실제 개발 현장에서 유용한 각종 스킬을 배울 수 있습니다. 따라서 이제 막 자바를 알게 된 스프링 입문자에게도 유용하지만, 그동안 스프링을 제대로 이해하지 못한 채로 사용했던 자바 개발자에게도 코드 한 줄 한 줄이 어떻게 작동하는지 확실히 배울 수 있는 기회가 될 것입니다. 자바 17, 스프링 6를 비롯한 최신 버전의 소프트웨어로 <수강 신청 애플리케이션>과 <상품 주문 애플리케이션>을 직접 만들어보며 기본기와 실무 스킬을 다져보세요!


출판사 서평

그림과 실습으로 쉽게 익히는 최신 스프링 6 입문서

스프링은 초보자뿐만 아니라 현직 자바 개발자들도 완전히 이해하기 어려운 프레임워크입니다. 따라서 이 책은 [1부 기본편]과 [2부 실무편]으로 나누어 누구나 쉽게 스프링의 내부 동작을 이해하고 실제 개발 현장에서 바로 활용할 수 있도록 구성되었습니다. 친절한 그림과 설명으로 개념을 익히고, 각 장의 마지막에 제공되는 실습 과제에 도전하다 보면 스프링에 금방 익숙해질 수 있을 것입니다.

< [1부 기본편]에서 다루는 내용 >
입문자가 놓치고 지나갈 수 있는 용어(예: SPA, 애너테이션 등)
스프링의 전체적인 기능
스프링의 기본 기능을 기반으로 한 예제

< [2부 실무편]에서 다루는 내용 >
1부에서 다룬 기본 기능의 추가적인 사용법
실제 개발 현장에서 쓸 수 있는 다양한 기능과 실무 스킬
JUnit을 사용한 테스트 자동화
수강 신청 애플리케이션과 상품 주문 애플리케이션 구축 실습

== 이런 분들께 추천합니다 ==
스프링이 아예 처음인 입문자
스프링에 익숙해지고 싶은 초급~중급 자바 개발자

베타리더의 말(추천사)
스프링을 이제 막 배우는 개발자에게 꼭 필요한 부분만 엄선해 설명하는 책입니다. 기존의 스프링 도서들은 많은 것을 알려주려고 하여 읽기 부담스러웠으나 이 책은 업무에 주로 사용하는 기능 위주로 설명이 쉽게 되어 있습니다.
홍스(프리랜서 개발자)

초보자가 헷갈리기 쉽거나 확실히 알기 어려운 개념들을 차근차근 설명해주고, 제공된 샘플 코드를 직접 실행해보며 스프링의 개념과 용법에 익숙해지도록 돕는 책입니다.
권성민(스마트레이더시스템 선임연구원)

세심한 설명과 함께 제목이 말해주듯 다양한 다이어그램으로 복잡한 스프링의 기능을 명확하게 소개합니다. 따라서 쉽게 이해할 수 있을 뿐만 아니라 원하는 내용을 빠르게 찾아보기에도 좋습니다.
정현준(AtlasLabs, VP of Engineering)

내가 ‘읽은’ 스프링 관련 지식이 내가 ‘알고 있는’ 지식으로 바뀌는 기분 좋은 경험을 하고 싶은가요? 그럼 당장 이 책을 읽으면 됩니다! 각 주제가 적절한 분량으로 구성되어 있고, 실습을 통해 읽은 내용을 복습할 수 있어 누구나 부담 없이 재미있게 읽을 수 있습니다.
채민석(integrate.io 기술영업)

특히 테스트에 대해 자세히 설명하는데, 테스트의 목적과 방법을 이해한다면 실무에서 큰 도움이 될 거라고 생각합니다. 탄탄하게 스프링 기초를 다질 수 있는 책으로, 스프링 애플리케이션 개발을 시작하는 분들에게 강력히 추천합니다.
이동규(데이터 엔지니어)

이 책은 스프링 시큐리티, MVC, DI, JUnit 등 필수적인 지식을 쉽고 간략하게 설명하며 실습 코드를 제공해주므로 손쉽게 따라갈 수 있습니다. 스프링으로 웹 서버 개발에 도전하는 분들에게 추천드립니다.
조현규(페리지에어로스페이스, SRE Engineer)


예제 소스
https://github.com/hanbit/spring-6-introduction



저자 소개

지은이 토키 코헤이(土岐 孝平)
대학에서 정보 공학을 전공했지만 졸업 후에는 캐주얼 숍에서 판매원으로 일하다가 IT 업계에 합류했다. 2002년에 스프링의 창시자인 로드 존슨(Rod Johnson)의 책 『J2EE Design and Development』을 접하고 스프링의 팬이 되었다. 다양한 개발 프로젝트에 참여하며 비효율적인 개발 환경을 겪고 교육의 중요성을 통감했다. 이러한 이유로 2008년부터는 교육 분야에서 활동을 시작했다. 2012년에는 주식회사 현장지향(https://www.genba-oriented.com)을 설립해 스프링을 중심으로 한 교육 프로그램 강사로 활동 중이다. 저서로는 『OpenID Connect入門(OpenID Connect 입문)』(Kindle Direct Publishing, 2021), 『[改訂新版] Spring入門(스프링 입문 개정판)』(기술평론사, 2016), 『間違いだらけのソフトウェア?ア?キテクチャ(오류 투성이 소프트웨어 아키텍처)』(기술평론사, 2010) 등이 있다.

옮긴이 김성훈
주로 IT 관련 서적을 번역하는 번역가다. 주요 번역서로는 『따라 하며 배우는 언리얼 엔진 5 입문』(한빛미디어, 2024), 『그림으로 배우는 5G 네트워크』(영진닷컴, 2022), 『그림으로 이해하는 IT 지식과 트렌드』(길벗, 2021), 『파이썬으로 배우는 머신러닝 입문』(성안당, 2021), 『Scratch가 보이는 그림책』(성안당, 2020), 『C가 보이는 그림책』(성안당, 2018), 『실무에서 바로 통하는 자바』(한빛미디어, 2017), 『안드로이드 개발 레벨업 교과서』(위키북스, 2017), 『프로그래밍이 보이는 그림책』(성안당, 2017), 『24가지 예제로 배우는 게임 수학&물리 입문』(길벗, 2014), 『세가의 신입 사원 교육 과정에서 배우는 게임 프로그래밍의 정석』(한빛미디어, 2012), 『웹 개발자를 위한 웹을 지탱하는 기술』(멘토르, 2011) 등이 있다.

목차

[1부 기본편]

1장 스프링 개요
1.1 스프링이란?
1.2 스프링의 다양한 프로젝트
1.3 스프링 프레임워크 개요
1.4 스프링 시큐리티 개요
1.5 스프링 부트 개요
1.6 스프링의 탄생과 개발 조직
1.7 스프링이 인기 있는 이유

2장 웹 애플리케이션 개요
2.1 웹 애플리케이션이란?
2.2 MPA
2.3 SPA
2.4 프로그램의 역할
2.5 처리 흐름

3장 DI의 개념
3.1 DI란?
3.2 DI로 무엇을 할까?
3.3 DI 설명을 위한 클래스와 인터페이스 소개
3.4 객체를 준비하는 간편한 방법
3.5 DI 사용법
3.6 다시, DI란?
3.7 DI와 인터페이스
실습

4장 DI 컨테이너
4.1 외부에서 직접 객체를 준비할 때의 문제점
4.2 DI 컨테이너를 사용한 솔루션
4.3 DI 컨테이너 관련 기본 용어
4.4 JavaConfig에 설정 정보 작성하기
4.5 Bean 정의 작성하기

5장 스테레오타입 애너테이션
5.1 스테레오타입 애너테이션이란?
5.2 스테레오타입 애너테이션의 종류
5.3 인젝션 지시
5.4 컴포넌트 스캔
5.5 DI 컨테이너를 생성하고 Bean 가져오기
5.6 3가지 인젝션 방법
_5.6.1 생성자 인젝션
_5.6.2 Setter 인젝션
_5.6.3 필드 인젝션
5.7 같은 타입의 Bean이 여러 개 존재할 때 인젝션 방법
실습

6장 프로파일로 설정 전환하기
6.1 프로파일이란?
6.2 환경별 프로파일
6.3 프로파일 사용법
6.4 활성화할 프로파일 지정하기
실습

7장 JavaConfig와 @Bean 메서드
7.1 JavaConfig란?
7.2 여러 개의 JavaConfig 클래스 불러오기
_7.2.1 AnnotationConfigApplicationContext 클래스의 생성자 인수로 지정하기
_7.2.2 @Import로 가져오기
_7.2.3 컴포넌트 스캔하기
7.3 @Bean 메서드란?
7.4 인젝션
7.5 적절한 Bean 정의 방법 선택하기
7.6 <bean> 태그의 Bean 정의가 존재하는 이유
7.7 라이브러리의 클래스를 Bean으로 정의하기
7.8 JavaConfig와 프로파일
실습

8장 스프링 JDBC: 데이터베이스 접근
8.1 스프링과 데이터베이스 접근
_8.1.1 다른 라이브러리와의 연동
_8.1.2 스프링 데이터
_8.1.3 스프링 JDBC
8.2 자바와 데이터베이스 접근
8.3 스프링 JDBC란?
8.4 JDBC와 스프링 JDBC의 비교
8.5 스프링 JDBC의 활용 사례
8.6 JdbcTemplate 클래스
8.7 검색 계열 처리
_8.7.1 하나의 컬럼만 가져오기
_8.7.2 레코드를 Map 객체로 변환해서 가져오기
_8.7.3 레코드를 Entity 객체로 변환해서 가져오기
8.8 갱신 계열 처리
_8.8.1 INSERT 문
_8.8.2 UPDATE 문
_8.8.3 DELETE 문
8.9 JdbcTemplate 클래스의 Bean 정의
실습

9장 선언적 트랜잭션
9.1 트랜잭션이란?
9.2 웹 애플리케이션의 트랜잭션
9.3 트랜잭션과 커넥션
9.4 트랜잭션을 자체적으로 제어할 때의 문제점
9.5 스프링의 선언적 트랜잭션
9.6 트랜잭션의 내부 구조
9.7 PlatformTransactionManager의 구상 클래스
9.8 PlatformTransactionManager의 Bean 정의
9.9 @Transactional을 활성화하는 설정
9.10 로그 출력 방법
실습

10장 스프링 부트로 생산성 향상하기
10.1 라이브러리 준비하기
10.2 자동 설정
_10.2.1 자동 설정의 메커니즘
_10.2.2 자동 설정의 프로퍼티
10.3 내장 AP 서버
10.4 스프링 부트를 사용할 때 DI 컨테이너를 생성하는 방법
10.5 스프링 부트에서 오해하기 쉬운 것들
실습

11장 스프링 MVC + Thymeleaf
11.1 MVC란?
11.2 스프링 MVC란?
11.3 Thymeleaf란?
11.4 간단한 예제
_11.4.1 pom.xml 설정하기
_11.4.2 Controller 클래스 생성하기
_11.4.3 View 작성하기
_11.4.4 스프링 부트로 실행하기
_11.4.5 브라우저에서 확인하기
11.5 전체 처리 흐름
11.6 Service 객체 인젝션
11.7 핸들러 메서드와 @XxxMapping
11.8 요청 파라미터 가져오기
11.9 View에 데이터 전달하기
11.10 Thymeleaf로 데이터 참조하기
11.11 List 객체 참조하기
11.12 입력 화면과 입력 검사
11.13 Bean Validation을 이용한 입력 검사
11.14 입력 화면 표시 방법
11.15 입력 화면 템플릿 파일
11.16 입력 검사 방법
11.17 오류 문구 설정
11.18 요청 파라미터를 사용한 핸들러 메서드 호출
11.19 예외 핸들링
실습

12장 RESTful 웹 서비스 만들기
12.1 웹 서비스란?
12.2 최근의 개발 프로젝트와 웹 서비스
_12.2.1 SPA와 웹 서비스
_12.2.2 마이크로서비스와 웹 서비스
12.3 REST란?
12.4 REST의 규칙
_12.4.1 URL로 리소스 식별하기
_12.4.2 HTTP 메서드로 리소스 조작하기
_12.4.3 응답 바디의 데이터 형식
_12.4.4 요청 바디의 데이터 형식
_12.4.5 상태 코드 활용하기
_12.4.6 헤더 활용하기
_12.4.7 서버 측을 무상태로 만들기
12.5 스프링 MVC의 REST 지원
12.6 HTTP 메서드와 @XxxMapping
12.7 HttpMessageConverter로 요청/응답 데이터 변환하기
12.8 상태 코드 지정하기
12.9 요청 헤더 참조하기
12.10 응답 헤더 지정하기
12.11 참조 계열 REST API 만들기
실습

13장 갱신 계열 REST API 만들기
13.1 갱신 계열 HTTP 메서드
13.2 PUT의 요청과 응답
13.3 요청 바디 변환
13.4 PUT에 대응하는 핸들러 메서드
13.5 POST의 요청과 응답
13.6 POST에 대응하는 핸들러 메서드
13.7 DELETE의 요청과 응답
13.8 DELETE에 대응하는 핸들러 메서드
13.9 예외 발생 시 상태 코드 지정하기
실습

14장 스프링 시큐리티
14.1 인증과 인가
_14.1.1 인증이란?
_14.1.2 인가란?
14.2 스프링 시큐리티 인증의 개요
14.3 스프링 시큐리티 인가의 개요
14.4 스프링 시큐리티의 필터
14.5 시큐리티 필터 체인 설정하기
14.6 요청 인가
14.7 로그인 화면
14.8 인가 실패 시 오류 화면
14.9 인증용 데이터 가져오기
14.10 화면 표시 인가
14.11 인증한 사용자 정보를 화면에 표시하기
14.12 메서드 인가
14.13 CSRF 대응
14.14 스프링 시큐리티를 통한 CSRF 대응
실습


[2부 실무편]

15장 싱글톤과 스레드 세이프
15.1 싱글톤과 Bean
15.2 싱글톤과 스레드 세이프
15.3 스레드 세이프하지 않은 코드
15.4 스레드 세이프한 코드
15.5 Bean으로 관리하지 않는 객체
실습

16장 스프링 JDBC: JOIN 결과 가져오기
16.1 테이블 JOIN 예제
16.2 컬럼명 중복 문제
16.3 JOIN한 레코드 매핑하기
16.4 DataClassRowMapper의 단점
16.5 RowMapper 인터페이스로 해결하기
16.6 일대다 변환
16.7 ResultSetExtractor 인터페이스
16.8 실제 개발 프로젝트에 적용하기
실습

17장 데이터베이스 접근 시 예외 처리
17.1 데이터베이스 접근 방식과 예외 문제
17.2 범용 예외 클래스로 해결하기
17.3 DataAccessException 클래스의 대표적인 서브 클래스
17.4 DataAccessException 클래스의 처리 흐름
실습

18장 트랜잭션 전파
18.1 트랜잭션 전파란?
18.2 트랜잭션 전파 설정하기
18.3 REQUIRED의 동작
18.4 REQUIRED_NEW의 동작
18.5 REQUIRED_NEW가 필요한 상황
18.6 주의 사항
실습

19장 세션 스코프
19.1 세션 스코프란?
19.2 세션 스코프의 활용 사례
19.3 스프링 MVC와 세션 스코프
19.4 세션 스코프의 Bean
19.5 세션 스코프의 Proxy
19.6 세션 스코프의 Bean 정의
19.7 세션 스코프의 Bean 인젝션
19.8 세션 스코프의 Bean 조작
_19.8.1 사용자 입력 시 ReservationInput 객체를 저장한다
_19.8.2 신청 확정 시 ReservationInput 객체를 가져온다
_19.8.3 신청 완료 시 ReservationInput 객체를 삭제한다
19.9 여러 개의 Controller에서 세션 스코프 Bean 공유하기
실습

20장 플래시 스코프
20.1 갱신 처리 후 화면 표시
20.2 리다이렉트로 해결하기(PRG 패턴)
20.3 리다이렉트 출발지와 목적지의 데이터 공유
20.4 플래시 스코프로 해결하기
20.5 PRG 패턴과 플래시 스코프 적용하기
실습

2장 Security Context 활용
21.1 스프링 시큐리티의 필터
21.2 인증한 사용자의 정보와 Security Context
21.3 ThreadLocal과 Security Context
21.4 Controller의 핸들러 메서드 인수로 받기
21.5 HTML에 사용자 정보 삽입하기
21.6 SecurityContextHolder.getContext로 가져오기
실습

22장 RESTful 웹 서비스 호출
22.1 RestTemplate 클래스
22.2 RestTemplate과 HttpMessageConverter
22.3 RestTemplate 클래스의 주요 메서드
22.4 GET을 위한 메서드
22.5 POST를 위한 메서드
22.6 PUT을 위한 메서드
22.7 DELETE를 위한 메서드
22.8 RestTemplate 객체 준비하기
_22.8.1 DI 컨테이너를 사용하지 않는 경우
_22.8.2 DI 컨테이너를 사용하는 경우
22.9 RestTemplate 클래스
22.10 응답의 상세 데이터를 참조하는 경우
22.11 요청의 상세 데이터를 설정하는 경우
22.12 WebClient 클래스
실습

23장 프로퍼티 외부화
23.1 외부화한 프로퍼티를 설정하는 곳
23.2 프로퍼티 불러오기
23.3 application.properties와 프로파일
23.4 프로퍼티를 가져오는 방법
_23.4.1 @Value 사용법
_23.4.2 @ConfigurationProperties 사용법
실습

24장 자동 테스트와 스프링의 테스트 지원
24.1 수동 테스트와 자동 테스트
24.2 대표적인 자동 테스트
24.3 웹 애플리케이션과 자동 테스트 패턴
24.4 단위 테스트와 Mock
24.5 스프링의 테스트 지원 기능
24.6 DI 컨테이너를 생성하기 위한 애너테이션
24.7 테스트 클래스
24.8 JavaConfig 클래스를 자동으로 찾게 하기
24.9 테스트를 실행할 때만 불러오는 application.properties
실습

25장 Repository 단위 테스트
25.1 Repository 단위 테스트의 개요
25.2 DI 컨테이너를 생성하기 위한 애너테이션
25.3 DI 컨테이너 캐싱
25.4 데이터베이스에 데이터 준비하기
25.5 @Sql 애너테이션
25.6 데이터 정리
25.7 갱신 계열 처리 테스트
25.8 JdbcTemplate으로 데이터 확인하기
실습

26장 Service 단위 테스트
26.1 Service 단위 테스트의 개요
26.2 Mockito란?
26.3 Mockito를 사용한 Service 단위 테스트
26.4 Mockito와 static 임포트
26.5 Mock 객체에 동작 지정하기
26.6 Mock 객체의 메서드 인수 지정하기
26.7 여러 번 호출되는 Mock 객체의 메서드 지정하기
26.8 Mock 객체의 메서드 호출을 확인하는 어설션
26.9 Mock 객체의 메서드에 전달된 인자 확인하기
26.10 Mock을 사용한 테스트의 단점
실습

27장 Service·Repository 통합 테스트
27.1 Service·Repository 통합 테스트의 개요
27.2 DI 컨테이너를 생성하기 위한 애너테이션
27.3 데이터베이스에 데이터 준비하기
27.4 @Sql 애너테이션
27.5 데이터 정리
27.6 갱신 계열 처리 테스트
27.7 JdbcTemplate으로 데이터 확인하기
실습

28장 Controller 단위 테스트
28.1 Controller 단위 테스트의 개요
28.2 MockMvc란?
28.3 MockMvc 사용법
28.4 DI 컨테이너를 생성하기 위한 애너테이션
28.5 MockMvc와 static 임포트
28.6 요청 지정하기
28.7 응답 어설션
28.8 입력 검사 오류 어설션
28.9 디버깅을 위한 로그 출력
28.10 Mock 객체에 동작 지정하기
실습

29장 Controller·Service·Repository 통합 테스트
29.1 Controller·Service·Repository 통합 테스트의 개요
29.2 테스트 클래스
29.3 Controller에서 세션 스코프와 플래시 스코프를 사용한 테스트
실습

30장 RESTful 웹 서비스 테스트
30.1 RESTful 웹 서비스 테스트에 필요한 것들
30.2 Controller 단위 테스트
30.3 JSON 문자열 쉽게 생성하기
30.4 JSONPath를 사용하여 응답 확인하기
30.5 눈으로 JSON 문자열 확인하기
30.6 RESTful 웹 서비스 통합 테스트
_30.6.1 MockMvc를 사용한 통합 테스트
_30.6.2 내장 AP 서버를 사용한 통합 테스트
실습

31장 스프링 시큐리티의 테스트 지원
31.1 스프링 시큐리티의 테스트 지원 기능
31.2 MockMvc와 연동한 스프링 시큐리티의 테스트 지원 기능
31.3 인증한 사용자의 정보를 임의로 지정하기
31.4 CSRF 토큰 지정하기
31.5 애너테이션을 사용하는 기능
31.6 메서드의 인가 테스트
31.7 webEnvironment = WebEnvironment.NONE을 지정하지 않은 이유
31.8 TestRestTemplate을 사용한 테스트
실습

32장 Selenide를 사용한 E2E 테스트
32.1 E2E 테스트
32.2 Selenide란?
32.3 @SpringBootTest와 함께 사용하기
32.4 @Sql과 함께 사용하기
32.5 데이터 정리
32.6 Selenide와 static 임포트
32.7 브라우저 실행 방법
32.8 화면 요소 참조 방법
32.9 화면 요소의 검색 조건 지정하기
32.10 $와 $$의 차이점
32.11 화면 요소 조작하기
32.12 요소의 정보 가져오기
32.13 요소의 내용 어설션
32.14 Selenide를 사용한 테스트
실습


[3부 부록]

A.1 트랜잭션
A.2 AP 서버
A.3 인터페이스
A.4 커맨드라인 인수
A.5 애너테이션
A.6 DataSource
A.7 내장 DB
A.8 검사 예외와 비검사 예외
A.9 Map
A.10 ThreadLocal
A.11 로그 레벨과 로거
A.12 Maven
A.13 클래스 패스
A.14 템플릿 파일과 템플릿 엔진
A.15 HTTP 요청과 HTTP 응답의 데이터 구조
A.16 요청 파라미터
A.17 컨텍스트 패스
A.18 YAML
A.19 JSON
A.20 서블릿과 서블릿 필터
A.21 리다이렉트와 포워드
A.22 Serializable
A.23 JUnit
A.24 JSONPath
A.25 수강 신청 애플리케이션
A.26 상품 주문 애플리케이션


리뷰

구매자 별점

0.0

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

0명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전