오탈자 정보 2020. 7. 6. 10:59

오탈자 신고: chief@roadbook.co.kr 또는 댓글로 남겨주세요)

(2020년 7월 현재, 1판 1쇄 기준)

_132페이지 그림 5-88 (최프로 독자님 제보)

[오류]

[수정]

posted by 로드북
:
오시는 길 2020. 6. 12. 16:46

서울시 서초구 방배동 455-16 메종슈에뜨 201호

(사당역 11번 출구)

 

posted by 로드북
:
신간소개 2020. 6. 1. 17:24

 

  ● 저자: 조휘용

  ● 페이지: 320

  ● 판형: 사륙배판형(188*257)

  ● 도수: 2

  ● 정가: 22,000원

  ● 발행일: 2020년 6월 8일

  ● ISBN: 978-89-97924-58-5 93000

 

[오탈자사이트 바로가기] [자료실 바로가기]

[강의자료 신청]

[강컴] [교보] [반디] [알라딘] [예스24] [인터파크]

[샘플원고]

Sample_Deep Learning Basic.pdf
3.87MB

_도서 내용

텐서플로우 2.x 기반의 실습형 딥러닝 입문서다. 초급자용 실습예제 165개를 수록했고 실전 연습문제 15개를 스스로 풀어본다면 딥러닝 초급을 탈출하여 스스로 학습할 줄 아는 독자로 거듭날 수 있을 것이다. 다른 프로그래밍 입문서와 같이 딥러닝 학습 또한 반복 실습만이 입문 단계를 벗어나기 위한 가장 빠른 방법이다. 이 책이 제시하는 학습 방법인, 데이터를 수집하고 모델을 만들며 학습을 시키는 패턴을 꾸준하게 반복 학습하다 보면 다음 단계로 나아가는 길을 찾을 수 있을 것이다.

 

_대상 독자

딥러닝을 처음 공부하고자 하는 학생이나 개발자

선수지식: 파이썬 문법을 이해할 수 있어야 함

 

_목차 

지은이의 글

편집자이자 베타테스터의 글

일러두기

 

1장 준비하기

1.1 시작하며

1.2 케라스란

1.3 케라스 준비하기

1.4 무료 클라우드 사용하기

1.5 API 문서 활용하기

정리해봅시다

 

[함께 해봐요] 텐서플로우를 설치할 가상환경 만들어 보기

[함께 해봐요] 텐서플로우 CPU 버전 설치하기

[함께 해봐요] 텐서플로우 GPU 버전 설치와 테스트

[함께 해봐요] 구글 드라이브 연동하기

[함께 해봐요] 캐글 노트북에서 결과물 얻는 방법

 

2장 살펴보기

2.1 머신러닝 프로세스 간략히 살펴보기

2.2 용어 살펴보기

2.3 데이터셋 살펴보기

2.4 커뮤니티 살펴보기

정리해봅시다

 

[함께 해봐요] 임의로 클래스 확률을 지정하여 그린 ROC 곡선 (chapter02/roccurve.py)

 

3장 기본기 다지기

3.1 기본 연산 해보기

3.2 신경망

3.3 케라스에서의 개발 과정

정리해봅시다

실습해봅시다

 

더보기

[함께 해봐요] 텐서의 차원과 기본 연산 (basic_calc.ipynb)

[함께 해봐요] 즉시 실행 모드를 통한 연산 (basic_calc.ipynb)

[함께 해봐요] 텐서에서 넘파이로, 넘파이에서 텐서로 (basic_calc.ipynb)

[함께 해봐요] @tf.function (basic_calc.ipynb)

[함께 해봐요] OR 게이트 구현해보기 (perceptron.ipynb)

[함께 해봐요] 벡터의 내적 (perceptron.ipynb)

[함께 해봐요] XOR 게이트 구현해보기 + 다층 퍼셉트론 (perceptron.ipynb)

[함께 해봐요] 여러 가지 활성화 함수 (perceptron.ipynb)

[함께 해봐요] 경사하강법 실험해보기 (perceptron.ipynb)

 

4장 신경망 적용해보기

4.1 MNIST Fashion-MNIST

4.2 보스턴 주택 가격 예측

4.3 빙산인가? 선박인가?-1

‘나의 이해도를 측정하자’ 3번 문제

4.4 무슨 옷과 무슨 색?-1

정리해봅시다

실습해봅시다

번외_캐글을 통해 능력 향상시키기

 

[함께 해봐요] MNIST 데이터셋 다운받기 (mnist.ipynb)

[함께 해봐요] 데이터의 형태 확인하기 (mnist.ipynb)

[함께 해봐요] 데이터 그려보기 (mnist.ipynb)

[함께 해봐요] 검증 데이터 만들기 (mnist.ipynb)

[함께 해봐요] 모델 입력을 위한 데이터 전처리 (mnist.ipynb)

[함께 해봐요] 모델 입력을 위한 레이블 전처리 (mnist.ipynb)

[함께 해봐요] 모델 구성하기 (mnist.ipynb)

[함께 해봐요] 소프트맥스와 시그모이드 값의 비교 (mnist.ipynb)

[함께 해봐요] 학습과정 설정하기 (mnist.pynb)

[함께 해봐요] 모델 학습하기 (mnist.ipynb)

[함께 해봐요] history를 통해 확인해볼 수 있는 값 출력하기 (mnist.ipynb)

[함께 해봐요] 학습 결과 그려보기 (mnist.ipynb)

[함께 해봐요] 모델 평가하기 (mnist.ipynb)

[함께 해봐요] 학습된 모델을 통해 값 예측하기 (mnist.ipynb)

[함께 해봐요] 예측값 그려서 확인해보기 (mnist.ipynb)

[함께 해봐요] 모델 평가 방법 1?혼동행렬 (mnist.ipynb)

[함께 해봐요] 모델 평가 방법?2 분류 보고서 (mnist.ipynb)

[함께 해봐요] MNIST 데이터셋 다루기: 전체 코드 (mnist.ipynb)

[함께 해봐요] Fashion-MNIST 데이터셋 다운받기 (fashion-mnist.ipynb)

[함께 해봐요] 데이터 그려보기 (fashion-mnist.ipynb)

[함께 해봐요] 전처리 및 검증 데이터셋 만들기 (fashion-mnist.ipynb)

[함께 해봐요] 첫 번째 모델 구성하기 (fashion-mnist.ipynb)

[함께 해봐요] 학습 과정 설정 및 학습하기 (fashion-mnist.ipynb)

[함께 해봐요] 두 번째 모델 구성하기 (fashion-mnist.ipynb)

[함께 해봐요] 두 모델의 학습 과정 그려보기 (fashion-mnist.ipynb)

[함께 해봐요] 보스턴 주택 가격 데이터셋 다운받기 (boston.ipynb)

[함께 해봐요] 데이터 형태 확인하기 (boston.ipynb)

[함께 해봐요] 데이터 전처리 및 검증 데이터셋 만들기 (boston.ipynb)

[함께 해봐요] 모델 구성하기 (boston.ipynb)

[함께 해봐요] 학습하고 평가하기 (boston.ipynb)

[함께 해봐요] K-폴드 사용하기 (boston.ipynb)

[함께 해봐요] K-폴드 결과 확인하기 (boston.ipynb)

[함께 해봐요] 데이터 불러오기 (clothes1.ipynb)

[함께 해봐요] 이미지 제네레이터 정의 및 모델 구성하기 (clothes1.ipynb)

[함께 해봐요] 데이터 제네레이터 정의하기 (clothes1.ipynb)

[함께 해봐요] 제네레이터를 통해 모델 학습시키기 (clothes1.ipynb)

[함께 해봐요] 테스트 데이터 예측하기 (clothes1.ipynb)

 

5장 컨볼루션 신경망

5.1 일단 사용해보기

5.2 컨볼루션층과 풀링층

5.3 CIFAR-10 살펴보기

5.4 빙산인가? 선박인가?-2

‘나의 이해도를 측정하자’ 3번 문제

5.5 전이 학습

정리해봅시다

실습해봅시다

 

[함께 해봐요] 데이터 살펴보기 (fashion_mnist_cnn.ipynb)

[함께 해봐요] 모델 구성하기 (fashion_mnist_cnn.ipynb)

[함께 해봐요] 모델 학습시키기 (fashion_mnist_cnn.ipynb)

[함께 해봐요] 이미지 필터 사용해보기 (use_image_filter.ipynb)

[함께 해봐요] 이미지 필터 정의하기 (use_image_filter.ipynb)

[함께 해봐요] 이미지 필터 적용하기 (use_image_filter.ipynb)

[함께 해봐요] 이미지 필터를 적용한 최종 결과 (use_image_filter.ipynb)

[함께 해봐요] 풀링 연산 구현하기 (use_image_filter.ipynb)

[함께 해봐요] model.summary( ) 함수 사용하기

[함께 해봐요] plot_model( ) 함수 사용하기

[함께 해봐요] CIFAR-10 데이터셋 다운받기 (cifar10_cnn.ipynb)

[함께 해봐요] CIFAR-10 데이터 그려보기 (cifar10_cnn.ipynb)

[함께 해봐요] CIFAR-10 데이터셋 전처리 과정 (cifar10_cnn.ipynb)

[함께 해봐요] CIFAR-10 모델 구성하기 (cifar10_cnn.ipynb)

[함께 해봐요] CIFAR-10 모델 학습하기 (cifar10_cnn.ipynb)

[함께 해봐요] CIFAR-10 학습 과정 그려보기 (cifar10_cnn.ipynb)

[함께 해봐요] 신경망 시각화해보기 (cifar10_cnn.ipynb)

[함께 해봐요] CIFAR-10 규제화 함수 사용해보기 (drop_the_overfitting_regularizer.ipynb)

[함께 해봐요] CIFAR-10 드롭아웃 사용해보기 (drop_the_overfitting_dropout.ipynb)

[함께 해봐요] CIFAR-10 배치 정규화 사용해보기 (drop_the_overfitting_BN.ipynb)

[함께 해봐요] 이미지 제네레이터를 사용하여 이미지 그려보기 (basic_image_generator.ipynb)

[함께 해봐요] 이미지 제네레이터를 사용하여 모델 학습하기 (basic_image_generator.ipynb)

[함께 해봐요] 전이 학습 사용해보기 (basic_transfer_learning.ipynb)

[함께 해봐요] 모델 동결 해제하기

[함께 해봐요] 전이 학습을 통해 학습하기 (basic_transfer_learning.ipynb)

 

6장 순환 신경망

6.1 Embedding

6.2 RNN

6.3 LSTM

6.4 Conv1D

6.5 BERT 가볍게 알아보기

정리해봅시다

실습해봅시다

 

[함께 해봐요] 토큰화 작업 수행하기 (use_embedding_layer.ipynb)

[함께 해봐요] 데이터셋 다운받기 (use_embedding_layer.ipynb)

[함께 해봐요] 데이터 형태 확인하기 (use_embedding_layer.ipynb)

[함께 해봐요] 첫 번째 데이터 확인하기 (use_embedding_layer.ipynb)

[함께 해봐요] IMDB 데이터셋에서 가장 빈번하게 사용되는 세 개의 단어

[함께 해봐요] 데이터를 동일한 길이로 맞추기 (use_embedding_layer.ipynb)

[함께 해봐요] Embedding층을 사용하여 모델 구성하기 (use_embedding_layer.ipynb)

[함께 해봐요] 모델 학습시키기 (use_embedding_layer.ipynb)

[함께 해봐요] 모델 평가하기 (use_embedding_layer.ipynb)

[함께 해봐요] 학습 과정 확인하기 (use_embedding_layer.ipynb)

[함께 해봐요] cos 함수를 이용하여 데이터 만들기 (use_SimpleRNN_layer.ipynb)

[함께 해봐요] 전처리 과정 수행하기 (use_SimpleRNN_layer.ipynb)

[함께 해봐요] 데이터 형태 확인하기 (use_SimpleRNN_layer.ipynb)

[함께 해봐요] SimpleRNN을 사용하여 모델 구성하기 (use_SimpleRNN_layer.ipynb)

[함께 해봐요] 모델 학습시키기 (use_SimpleRNN_layer.ipynb)

[함께 해봐요] 예측 결과 그려보기 (use_SimpleRNN_layer.ipynb)

[함께 해봐요] IMDB 데이터셋 사용하기 (use_SimpleRNN_layer.ipynb)

[함께 해봐요] SimpleRNN층의 출력값 변화 확인하기 (use_SimpleRNN_layer.ipynb)

[함께 해봐요] reuters 데이터셋 다뤄보기 (use_LSTM_layer.ipynb)

[함께 해봐요] 데이터셋 전처리 과정

[함께 해봐요] LSTM 층을 사용하여 모델 구성하기 (use_LSTM_layer.ipynb)

[함께 해봐요] 모델 학습시키기 (use_LSTM_layer.ipynb)

[함께 해봐요] Conv1D 층을 사용하여 모델 구성하기 (use_Conv1D_layer.ipynb)

[함께 해봐요] 모델 학습시키기 (use_Conv1D_layer.ipynb)

[함께 해봐요] 데이터 생성하기 (use_Conv1D_layer.ipynb)

[함께 해봐요] 모델 구성 및 결과 확인하기 (use_Conv1D_layer.ipynb)

 

7장 초급을 향해서-1

7.1 케라스의 모델 구성 방법

7.2 함수형 API

7.3 빙산인가? 선박인가?-3

‘나의 이해도를 측정하자’ 1번 문제

7.4 무슨 옷과 무슨 색?-2

7.5 케라스 콜백

정리해봅시다

실습해봅시다

 

[함께 해봐요] Sequential( ) 모델 구성 (make_model_three_ways.ipynb)

[함께 해봐요] 서브클래싱 모델 구성 (make_model_three_ways.ipynb)

[함께 해봐요] 함수형 API 모델 구성하기 (make_model_three_ways.ipynb)

[함께 해봐요] MNIST 데이터셋 불러오기 및 전처리 (functional_api_MNIST.ipynb)

[함께 해봐요] 함수형 API를 활용한 모델 구성 및 학습 (functional_api_MNIST.ipynb)

[함께 해봐요] 다중 입출력을 위한 데이터 생성하기 (functional_api_multi_io.ipynb)

[함께 해봐요] 다중 입출력 모델 구성하기 (functional_api_multi_io.ipynb)

[함께 해봐요] 모델 구조 그려보기 (functional_api_multi_io.ipynb)

[함께 해봐요] 모델 구조 확인하기 (functional_api_multi_io.ipynb)

[함께 해봐요] 다중 입출력 모델에서 학습 과정 설정하기 (functional_api_multi_io.ipynb)

[함께 해봐요] 다중 입출력 모델 학습하기 (functional_api_multi_io.ipynb)

[함께 해봐요] 잔차 연결을 사용하여 모델 구성하기 (residual_and_inception_module.ipynb)

[함께 해봐요] 인셉션 모듈을 사용하여 모델 구성하기 (residual_and_inception_module.ipynb)

[함께 해봐요] ResNet을 활용하여 모델 구성하기 (resnet_transfer.ipynb)

[함께 해봐요] 텐서플로우 허브 설치하기

[함께 해봐요] CIFAR-10 데이터셋 불러오기 (use_tensorflow_hub.ipynb)

[함께 해봐요] 전체 모델 구성하기 (use_tensorflow_hub.ipynb)

[함께 해봐요] 모델 학습시키기 (use_tensorflow_hub.ipynb)

[함께 해봐요] (clothes_classification/clothes3.csv)

[함께 해봐요] (clothes_classification/clothes3.csv)

[함께 해봐요] (clothes_classification/clothes3.csv)

[함께 해봐요] 케라스 콜백 사용 준비하기 (use_keras_callbacks.ipynb)

[함께 해봐요] ModelCheckpoint 콜백 사용하기 (use_keras_callbacks.ipynb)

[함께 해봐요] EarlyStopping 콜백 사용하기 (use_keras_callbacks.ipynb)

[함께 해봐요] ReduceLROnPlateau 콜백 사용하기 (use_keras_callbacks.ipynb)

[함께 해봐요] TensorBoard 콜백 사용하기 (use_keras_callbacks.ipynb)

[함께 해봐요] 텐서보드 실행하기 - 1

[함께 해봐요] 텐서보드 실행하기- 2

 

8장 초급을 향해서-2

8.1 커스터마이제이션

8.2 1×1 컨볼루션

8.3 초급 단계를 위해 한걸음 더

정리해봅시다

실습해봅시다

 

[함께 해봐요] Lambda 층 사용하기 (custom_keras_layer.ipynb)

[함께 해봐요] 커스텀 케라스층 사용하기 (custom_keras_layer.ipynb)

[함께 해봐요] Activation 함수에 직접 전달하는 방법 (custom_activation.ipynb)

[함께 해봐요] 커스텀 객체 목록을 사용하는 방법 - 1 (custom_activation.ipynb)

[함께 해봐요] 커스텀 객체 목록을 사용하는 방법 ? 2 (custom_activation.ipynb)

[함께 해봐요] RAdam 설치하기

[함께 해봐요] RAdam의 존재 알기 (custom_activation.ipynb)

[함께 해봐요] 커스텀 손실 함수 정의하기 (custom_loss.ipynb)

[함께 해봐요] 커스텀 손실 함수?MNIST 학습 (custom_loss.ipynb)

[함께 해봐요] 커스텀 평가지표 정의하여 사용하기 (custom_metrics.ipynb)

[함께 해봐요] 특정 시점에 학습률을 조정하는 커스텀 케라스 콜백 (custom_callback.ipynb)

[함께 해봐요] 커스텀 케라스 콜백을 사용하여 모델 학습시키기 (custom_callback.ipynb)

[함께 해봐요] 컨볼루션층만으로 구성한 모델 - 1 (MNIST_1×1_convolution.ipynb)

[함께 해봐요] 컨볼루션층만으로 구성한 모델 - 2 (MNIST_1×1_convolution.ipynb)

 

9장 케라스 튜너

9.1 탐색해야 할 하이퍼파라미터

9.2 케라스튜너 사용하기

9.3 케라스튜너 더 쉽게 사용하기

정리해봅시다

실습해봅시다

 

부록 A: 오토케라스(AutoKeras)

부록 B: tf.data

부록 C: 이렇게도 학습할 수 있어요!

 

[함께 해봐요] 간단한 구조의 CNN 모델 살펴보기 (keras_tuner_example.ipynb)

[함께 해봐요] 케라스 튜너 설치하기

[함께 해봐요] 케라스 튜너 모델 정의하기 (keras_tuner_example.ipynb)

[함께 해봐요] MNIST 데이터셋 준비하기 (keras_tuner_example.ipynb)

[함께 해봐요] RandomSearch 클래스 사용하기 (keras_tuner_example.ipynb)

[함께 해봐요] 탐색할 하이퍼파라미터 살펴보기 (keras_tuner_example.ipynb)

[함께 해봐요] 하이퍼파라미터 탐색하기 (keras_tuner_example.ipynb)

[함께 해봐요] 실험 결과 요약해보기 (keras_tuner_example.ipynb)

[함께 해봐요] 가장 좋은 성능의 모델 불러오기 (keras_tuner_example.ipynb)

[함께 해봐요] 모델 하이퍼파라미터 확인하기 (keras_tuner_example.ipynb)

[함께 해봐요] HyperResNet 사용하기 (keras_tuner_example.ipynb)

[함께 해봐요] (clothes_classification/tf_data_example.py)

[함께 해봐요] 데이터셋 불러오기 ()appendix/training_with_tensorflow2.0.ipynb

[함께 해봐요] 데이터셋 객체 정의하기 ()appendix/training_with_tensorflow2.0.ipynb

[함께 해봐요] 모델 구성하기 (appendix/training_with_tensorflow2.0.ipynb)

[함께 해봐요] 객체 정의하기 (appendix/training_with_tensorflow2.0.ipynb)

[함께 해봐요] 계산 발생 지정하기 (appendix/training_with_tensorflow2.0.ipynb)

[함께 해봐요] 학습 및 검증 스텝 정의하기 (appendix/training_with_tensorflow2.0.ipynb)

[함께 해봐요] 학습 진행하기 (appendix/training_with_tensorflow2.0.ipynb)

 

찾아보기

 

_주요 내용

 

입문 단계에서 포기하지 않고 다음 단계로 넘어갈 수 있게 해주는 책!

이 책을 학습한 후 점차 수학과 이론적 지식이 필요함을 느끼고, 프로세스나 기존에 제공되고 있는 서비스를 보았을 때 “과연 저기에 딥러닝을 적용하면 어떤 결과물이 나올까?”라는 생각을 하게 된다면 본격적으로 딥러닝 엔지니어, 연구자, 서비스 제공자로서의 삶이 시작된 것입니다.

 

“백견불여일타 공부법의 핵심은 반복입니다.

딥러닝도 다른 프로그래밍 입문서와 마찬가지로 반복 학습만이 입문 단계를 벗어나기 위한 가장 빠른 방법입니다. 이 책이 제시하는 학습 방법인, 데이터를 수집하고 모델을 만들며 학습을 시키는 패턴을 꾸준하게 반복 학습하다 보면 다음 단계로 나아가는 길을 찾을 수 있을 것입니다.

 

“연습문제를 직접 풀어보지 않으면 아무리 좋은 입문서라도 백약이 무효입니다.

직접 해보고 반복해서 학습해보는 것만이 낯설음을 익숙함으로 바꿀 수 있는 유일한 길입니다. 힌트까지 제공되니 반드시 혼자만의 힘으로 풀어보고 저자의 모범답안과 비교해보세요. 점핑업 되는 실력을 느낄 수 있을 것입니다.

 

 

[주요 특징]

초급자용 실습 예제 165개 수록!!

힌트와 미션이 주어지는 초급 탈출 실력 점핑용 연습문제 15개 수록!!

강의자료 제공!!

 

[이 책을 제대로 활용하는 방법]

이 책은 데이터를 모으고(이 책에서는 데이터가 주어지지만) 모델을 만들어 내며 학습을 시키고 결과를 내는 등의 일정 패턴을 반복적으로 학습합니다. 이러한 학습을 통해 필요한 라이브러리를 찾아내어 활용할 수 있는 능력을 갖추게 될 것입니다. 결국엔 데이터와 모델, 이 두 가지가 핵심입니다. 이 책에서 제시하는 단편적인 예제만으로는 실용적인 예제를 만들어낼 수 없습니다. 작은 미션들(여기서는 [함께 해봐요] 예제)에 익숙해지는 약간의 고통스런 과정이 필요하고, 그 다음에 얻은 지식을 바탕으로 자신이 원하는 무언가를 스스로 만들어낼 수 있도록 해주는 것이 이 책의 목표입니다.

 

무엇보다 이 책은 “백견불여일타”라는 시리즈 이름처럼 말 그대로 “그래, 그냥 해봐(Just do it)” 같은 책입니다. 중요한 것은 따라 하며 실행해보고 에러를 내뿜을 때 고민해보고 주변의 도움을 받아가며 배우는 과정을 통해 내가 부족한 지식이 무엇인지 깨닫게 된다는 점입니다.

_편집자 & 베타테스트

 

 

_편집자 코멘트

마지막까지 학습하면서 다양한 에러를 만나게 되었습니다. 단순한 구글 드라이브 마운트 문제부터 변수명 하나 잘못되어 고생했던 적도 있었는데, 그럴 때마다 ‘다른 독자들도 같은 실수를 할 수도 있겠구나!’ 하는 생각에 많은 부분을 보완하고 수정했지만, 분명 어딘가에서는 쉽게 넘어가지 못하는 부분도 있을 겁니다. 그땐 언제든지 백견불여일타 카페에서 도움을 얻으시기 바랍니다.

그리고 역시 하이라이트는 [실습해봅시다]였습니다. 몇가지 미션들을 풀어봄으로써 딥러닝을 이해하고 적용하는 데 큰 도움이 된 파트입니다. 편집자로서 다른 프로그래밍 도서의 문제보다 스스로 풀기가 힘들었지만, 본문의 내용과 검색을 통해 가능한 저자가 제공하는 답안을 보지 않고 풀어보려고 했습니다. 놀라운 것은 [실습해봅시다]를 직접 풀어보고 난 후 이해하기 힘들었던 내용도 선명하게 머릿속에서 정리가 되는 느낌이었습니다. 이런 부분은 이 책의 가장 큰 장점이 아닌가 싶습니다.

 

_저자 소개

지은이

조휘용

https://github.com/airplane2230

 

대학원 진학 전부터 신경망에 관심을 가지고 이를 공부하기 시작했다. 신경망 기술이 많은 사회적 문제를 해결할 수 있다는 매력에 끌려 지금까지 공부하고 있으며, 대학원 과정에서 신경망 기술을 활용하여 수작업을 자동화하는 문제를 다루면서 그 믿음이 굳어졌다. 정보 격차에 관심이 많으며, 이를 해결하기 위해 개인 블로그 운영, 오픈소스 참여 등의 활동을 하고 있고, 집필까지 하게 되었다. 

 

_상세이미지

                                                                                                _

posted by 로드북
: