Comming Soon

텐서플로로 하는 딥러닝 기초와 응용 [텐서플로 2.x 구조 배우기]

  • 원서명Hands-On Neural Networks with TensorFlow 2.0: Understand TensorFlow, from static graph to eager execution, and design neural networks (ISBN 9781789615555)
  • 지은이파올로 갈리오니(Paolo Galeone)
  • 옮긴이김창엽, 최민환
  • ISBN : 9791161754741
  • 30,000원
  • 2020년 11월 30일 펴냄
  • 페이퍼백 | 412쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 데이터 과학

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

머신러닝과 신경망에 대한 이론과 텐서플로 1.x, 2.x 버전의 차이점을 다루는 것으로 시작한다. 이어서 신경망을 쉽게 구현할 수 있도록 데이터 입력 파이프라인을 구성하는 방법과 Estimator API 등에 대해서 설명한다. 최근 딥러닝 분야의 트렌드인 전이학습을 쉽게 할 수 있도록 텐서플로 허브를 활용하는 방법과 그 적용에 대해 다룬 뒤, 객체 탐지, 시맨틱 분할, GAN 등 딥러닝의 주요 응용 분야를 소개한다. 마지막으로 작성한 모델을 실무에 적용하는 방법을 소개하는 것으로 마친다. 텐서플로의 근간이 되는 큰 구조를 소개하고 텐서플로 2.x에서 변경된 여러 기능을 통해 신경망을 쉽게 개발하는 데 필요한 내용들을 예제를 통해 배울 수 있도록 구성돼 있다.

이 책에서 다루는 내용

■ 머신러닝과 신경망 기법 파악 후 과제 해결
■ 개발 속도를 높이기 위한 TF 2.0의 새로운 기능 적용
■ 텐서플로 데이터셋(tfds)와 tf.data API를 사용해 고효율 데이터 입력 파이프라인 구축
■ 텐서플로 허브로 전이학습 및 미세 조정 수행
■ 객체 탐지 및 시맨틱 분할 문제 해결을 위한 네트워크 정의와 훈련
■ 이미지 생성과 데이터 분포를 생성하는 GAN 훈련
■ SavedModel 파일 형식을 사용한 모델이나 일반 연산 그래프 실무 투입

이 책의 대상 독자

텐서플로 구조와 새로운 특징이 궁금한 동시에 신경망을 다루는 데이터 과학자, 머신러닝 개발자, 딥러닝 연구자, 기초 통계 배경지식을 가진 개발자를 대상으로 한다. 이 책을 최대한 활용하려면 파이썬 프로그래밍 언어 관련 실무 지식이 필요하다.

이 책의 구성

1장, ‘머신러닝이란?’에서는 머신러닝의 기초를 다룬다. 지도, 비지도, 준지도학습이 무엇이며 이러한 구분이 왜 중요한지 살펴본다. 또한 데이터 파이프라인을 만드는 방법, 알고리즘의 성능을 측정하는 방법, 결과를 검증하는 방법을 배운다.
2장, ‘신경망과 딥러닝’에서는 신경망에 초점을 맞춘다. 머신러닝 모델의 강점과 네트워크 학습 방법, 실제로 모델 파라미터 업데이트가 어떻게 수행되는지를 배우게 된다. 이 장을 마치면 역전파(backpropagation)와 네트워크 파라미터 업데이트 내부를 이해하게 된다. 도전적인 과제를 해결하는 데 심층 신경망 구조가 왜 필요한지 알게 될 것이다.
3장, ‘텐서플로 그래프 아키텍처’에서는 1.x 버전과 2.x 버전 사이에 공유되는 텐서플로 구조를 다룬다.
4장, ‘텐서플로 2.0 아키텍처’에서는 텐서플로 1.x와 2.x의 차이를 보여준다. 이 두 가지 버전을 모두 사용해 간단한 머신러닝 모델을 개발해본다. 두 버전의 공통적인 특징을 이해하게 될 것이다.
5장, ‘효율적인 데이터 입력 파이프라인 및 Estimator API’에서는 tf.data API를 사용해 전체 데이터 입력 파이프라인을 정의하는 방법과 tf.estimator API를 사용해 실험을 정의하는 방법을 다룬다. tf.data와 tf.io.gfile API의 모든 기능을 활용해 복잡하고 효율적인 입력 파이프라인을 만들 수 있게 될 것이다.
6장, ‘텐서플로 허브를 사용한 이미지 분류’에서는 케라스 API와의 긴밀한 통합을 활용한 텐서플로 허브를 사용해 전이(fine-tuning)학습 및 미세 조정을 쉽게 수행하는 방법을 다룬다.
7장, ‘객체 탐지 소개’에서는 분류기를 확장하는 방법을 다루며, 이를 경계 상자의 좌표를 회귀하는 객체 탐지기로 만들고 더욱 복잡한 객체 탐지 구조에 관해 소개한다.
8장, ‘시맨틱 분할과 사용자 정의 데이터셋’에서는 빌더 시맨틱 분할 네트워크를 구현하는 방법과 이러한 종류의 작업에 관한 데이터셋을 준비하는 방법, 모델을 훈련하고 성능을 측정하는 방법을 다룬다. U-Net을 사용해 시맨틱 분할 문제를 해결해본다.
9장, ‘생성적 적대 신경망’에서는 이론적이고 실무적인 관점에서 GAN을 다룬다. 생성 모델의 구조와 텐서플로 2.0을 사용해 적대적 훈련을 쉽게 수행할 수 있는 방법을 이해하게 될 것이다.
10장, ‘모델을 실무에 적용하기’에서는 훈련된 모델을 완전한 애플리케이션으로 전환하는 방법을 다룬다. 훈련된 모델을 지정된 표현(SavedModel)으로 내보내기하고, 이를 완전한 애플리케이션으로 사용하는 방법도 다룬다. tfgo 라이브러리를 사용해 파이썬 내부, TensorFlow.js, Go에서도 훈련된 모델을 내보내고 활용할 수 있다.

저자/역자 소개

지은이의 말

기술 선도업체들은 제품 품질을 향상시키기 위해 신경망을 채택하고 있으며, 제품을 더 똑똑하게 만들거나 마케팅 용어로 AI 적용 등을 언급하고 있다. 이 책은 텐서플로와 내부 구조, 2.0 버전의 새로운 특징, 이를 활용한 신경망 기반의 애플리케이션 제작 방법을 알려주는 유용한 안내서다. 이 책을 다 읽으면 텐서플로 아키텍처와 새로운 기능을 잘 이해할 수 있을 것이다. 신경망의 힘을 이용해 머신러닝 문제를 쉽게 풀 수 있을 것이다.
머신러닝과 신경망에 관한 이론적 개요로 시작해 1.x와 2.0 버전 모두에 관한 텐서플로 라이브러리 설명이 이어진다. 이 책을 읽고 나면 따라 하기 쉬운 예제를 사용해 신경망이 어떻게 작용하는지 이론에 정통하게 될 것이다. 다음으로 텐서플로 2.0에서 제공하는 새로운 모듈을 이용해 다양한 신경망 아키텍처를 구축하는 데 필요한 최적화 기법과 알고리즘을 마스터하는 방법을 배우게 된다. 나아가 텐서플로 구조를 분석한 후 연구 작업과 프로젝트에 필요한 분류를 위한 CNN, 의미 분할 네트워크, 생성적 적대 신경망 등과 같이 좀 더 복잡한 신경망 아키텍처를 구현하는 방법을 익히게 될 것이다.
후반부에 다다르면 텐서플로 구조를 숙달하게 되며, 이 머신러닝 프레임워크의 힘을 활용해 다양한 복잡도를 갖는 신경망을 큰 노력 없이 훈련하고 활용할 수 있게 된다.

지은이 소개

파올로 갈리오니(Paolo Galeone)

실무 경험이 풍부한 컴퓨터 엔지니어다. 이학 석사 학위를 받은 후 이탈리아 볼로냐대학교 컴퓨터 비전 연구소 연구원으로 입사해 광범위한 주제를 다루면서 컴퓨터 비전과 머신러닝 지식을 향상시켰다. 현재 이탈리아 ZURU Tech의 컴퓨터 비전 및 머신러닝 연구소를 이끌고 있다. 2019년, 구글은 머신러닝 분야에서 구글 개발자 전문가(GDE, Google Developer Expert)라는 칭호를 받으며 전문성을 인정했다. GDE로서 블로깅, 콘퍼런스에서 발표, 오픈소스 프로젝트에 기여하고 스택 오버플로에 관한 질문에 답하는 등 머신러닝과 텐서플로 프레임워크에 관한 열정을 공유한다.

옮긴이의 말

21세기 IT 기술 중 가장 섹시한(!) 분야를 꼽자면 한치의 망설임 없이 “AI(Artificial intelligence)”를 꼽을 것이다. AI는 금융, 의료, 운송, 교육, 보안, 농업 등 많은 산업에 접목해 자동화 및 맞춤형 서비스를 선보이고 있다. 가까운 미래에 AI는 단순 노동 업무를 넘어 전문직 영역으로 확대될 것이다. 많은 이들은 AI가 현존하는 일자리를 많이 줄일 것이라 생각하지만, 혁신적인 기술이 나올 때마다 일자리는 변모해왔고 더 다양해졌다.
이 책은 텐서플로(TF, TensorFlow) 2.0 버전의 새로운 기능과 텐서플로 2.0을 활용한 신경망과 머신러닝 기반 애플리케이션을 만드는 방법에 대해 편리한 가이드북 역할을 해줄 것이다. 머신러닝과 신경망에 대한 이론적 개요로 시작해 TF 1.x 및 TF 2.0 버전의 라이브러리 사용 방법에 대한 설명으로 이어진다. 그림와 실제 코드들을 보고 따라 하기 쉬운 예제로 구성돼 있어서, 신경망이 작동하는 방식을 자연스레 이해하고 구현할 수 있게 한다(책에서 제공하는 코드는 깃허브를 통해 다운로드할 수 있다).
다음으로 TF 2.0에서 제공하는 새로운 모듈을 사용해 넓은 범위의 신경망 아키텍처를 구축하기 위한 최적화 기술과 알고리즘을 마스터하는 방법을 배울 수 있다. 나아가, 분류 문제를 해결하기 위한 컨볼루션 신경망(CNN, Convolution Neural Network), 시맨틱 분할(Semantic Segmentation), 학습 데이터 확보를 위한 생성적 적대 신경망(GAN, Generative Adversarial Network) 등과 같은 더 복잡한 신경망 아키텍처를 구현하는 방법도 알 수 있다.
AI 전문가가 절대적으로 부족한 지금, 이 책을 통해 독자들이 머신러닝과 AI 알고리즘 설계 능력을 한층 더 발전시켜, 가능성이 무한한 시장을 선점하고 수없이 많은 기회를 쟁취하기를 희망한다.
최민환

개발자마다 혹은 속한 조직에 따라 선호하는 딥러닝 라이브러리가 다양한 실정이다. 또한 논문 저자가 구현 코드를 공개하는 경우에도 딥러닝 라이브러리와 버전이 다양하다. 연구자나 개발자 입장에서는 이 코드를 완벽히 이해한 뒤 다시 본인의 선호 라이브러리로 구현할 상황이 생기게 된다. 이 책은 여러 라이브러리 중 텐서플로 1.x, 2.x 버전 사이의 큰 구조 변화를 소개한다. 이 책을 살펴보면서 텐서플로 1.x, 2.x의 근간을 이루는 개념을 이해하고 케라스와의 통합으로 얻는 이점에 대해 배울 수 있을 거라 기대한다. 이 책이 딥러닝을 공부하는 분들에게 조금이나마 보탬이 되면 좋겠다.
김창엽

옮긴이 소개

김창엽

고려대학교 산업경영공학과 데이터사이언스 & 비즈니스 어낼리틱스(DSBA) 연구실에서 박사 과정을 수료했다. 현재 KT 융합기술원 인프라 연구소에서 머신러닝을 활용한 네트워크 분야 이상 탐지에 대해 연구하고 있다. 그 전에는 안랩에서 9년 동안 근무하며 악성코드 대응 및 침해사고 분석 업무를 수행했다. 번역서로는 에이콘출판사에서 출간한 『예제로 배우는 자연어 처리 기초』(2020), 『머신 러닝을 활용한 컴퓨터 보안』(2019), 『딥러닝 데이터 전처리 입문』(2018), 『케라스로 구현하는 딥러닝과 강화학습』(2017), 『텐서플로 입문』(2016) 등이 있다.

최민환

고신뢰 무선 통신 및 머신러닝 분야에 대한 관심을 바탕으로 한양대학교 전자통신공학과 내 지능 통신 시스템 연구실(ICSL)에 입학했다. 주로 고신뢰 통신을 위한 다중 안테나 및 다수의 사용자 간 무선 통신 신호 처리에 관한 분석과 실험을 했으며, 머신러닝 기반 변조 분류 기법 관련 연구를 수행한 후 박사 학위를 취득했다. 현재는 KT 융합기술원 인프라 연구소에서 3년 동안 인공지능 기술을 유/무선 네트워크에 접목시킨 연구 개발을 수행하고 있다. 번역한 책으로는 『예제로 배우는 자연어 처리 기초』(에이콘, 2020)가 있다.

목차

목차
  • 1부. 신경망 기초
  • 1장. 머신러닝이란?
    • 데이터셋의 중요성
      • n차원 공간
      • 차원의 저주
    • 지도학습
      • 거리와 유사도–k-NN 알고리즘
      • 모수 모델
      • 모델의 성능 측정–평가 지표
    • 비지도학습
    • 준지도학습
    • 요약
    • 실습

  • 2장. 신경망과 딥러닝
    • 신경망
      • 생물학적 뉴런
      • 인공 뉴런
      • 완전 연결 레이어
      • 활성화 함수
      • 손실함수
      • 파라미터 초기화
    • 최적화
      • 경사하강법
      • 경사하강법 최적화 알고리즘
      • 역전파와 자동 미분
    • 컨볼루션 신경망
      • 컨볼루션 연산자
      • 2D 컨볼루션
      • 볼륨 간 2D 컨볼루션
      • 1×1×D 컨볼루션
    • 일반화
      • 드롭아웃
      • 데이터 증강
      • 얼리스타핑
      • 배치 정규화
    • 요약
    • 실습

  • 2부. 텐서플로 기초
  • 3장. 텐서플로 그래프 아키텍처
    • 환경 설정
      • 텐서플로 1.x 환경
      • 텐서플로 2.0 환경
    • 데이터 흐름 그래프
      • 주요 구조–tf.Graph
      • 그래프 정의–tf.Operation부터 tf.Tensor까지
      • 그래프 배치–tf.device
      • 그래프 실행–tf.Session
      • 정적 그래프의 변수
    • 모델 정의와 훈련
      • tf.layers 기반 모델 정의
      • 자동 미분–손실과 옵티마이저
    • 파이썬을 활용한 그래프 다루기
      • 플레이스홀더에 전달
      • 요약 기록
      • 모델 파라미터 저장과 모델 선택
    • 요약
    • 실습

  • 4장. 텐서플로 2.0 아키텍처
    • 프레임워크 다시 배우기
    • 케라스 프레임워크와 모델
      • 순차 API
      • 함수 API
      • 서브클래스 기법
    • 즉시 실행과 새로운 기능들
      • 베이스라인 예제
      • 세션이 아닌 함수
      • 더 이상의 전역 변수는 없다
      • 제어 흐름
      • GradientTape
      • 사용자 정의 훈련 루프
      • 모델 상태 저장과 복원
      • 요약과 평가 지표
      • 오토그래프
    • 코드베이스 마이그레이션
    • 요약
    • 실습

  • 5장. 효율적인 데이터 입력 파이프라인 및 Estimator API
    • 효율적인 데이터 입력 파이프라인
      • 입력 파이프라인 구조
    • tf.data.
      • 성능 최적화
      • 데이터셋 구축
      • 데이터 증강
      • 텐서플로 데이터셋–tfds
      • 케라스 통합
      • 즉시 실행 통합
    • Estimator API
      • 데이터 입력 파이프라인
      • 사용자 정의 Estimator
      • 사전 정의 Estimator
      • 케라스 모델 사용하기
      • Canned Estimator 활용
    • 요약
    • 실습

  • 3부. 신경망의 응용 분야
  • 6장. 텐서플로 허브를 사용한 이미지 분류
    • 데이터 수집
    • 전이학습
      • 텐서플로 허브
      • 피처 추출기로 Inception v3 사용
      • 모델에 데이터 적용
      • 모델 작성–hub.KerasLayer
      • 훈련과 평가
      • 훈련 속도
    • 미세 조정
      • 미세 조정 시기
      • 텐서플로 허브 통합
      • 훈련 및 평가
      • 훈련 속도
    • 요약
    • 실습

  • 7장. 객체 탐지 소개
    • 데이터 수집
    • 객체 지역화
      • 회귀 문제로서의 지역화
      • Intersection over Union
      • 평균 정밀도
      • mAP
      • 훈련 스크립트 개선
    • 분류와 지역화
      • 멀티태스크 러닝
      • 더블 헤드 네트워크
      • 앵커 기반 탐지기
      • 앵커 상자
    • 요약
    • 실습

  • 8장. 시맨틱 분할 및 사용자 정의 데이터셋 빌더
    • 시맨틱 분할
      • 문제점
      • 디컨볼루션–전치 컨볼루션
      • U - Net 아키텍처
    • 텐서플로 DatasetBuilder 만들기
      • 계층적 구조
      • 데이터셋 클래스와 DatasetInfo
      • 데이터셋 분할
      • 예제 생성
      • 빌더 사용하기
    • 모델 훈련과 평가
      • 데이터 준비
      • 훈련 루프와 케라스 콜백
      • 평가와 추론
    • 요약
    • 실습

  • 9장. 생성적 적대 신경망
    • GAN과 해당 애플리케이션의 이해
      • 가치함수
      • 비포화 가치함수
      • 모델 정의와 훈련 단계
      • GAN 응용 분야
      • 무조건부 GAN
      • 데이터 준비
      • 생성기 정의
      • 판별기 정의
      • 손실함수 정의
      • 무조건부 GAN의 적대적 훈련 프로세스
    • 조건부 GAN
      • 조건부 GAN에 관한 데이터 가져오기
      • 조건부 GAN에서 생성기 정의
      • 조건부 GAN에서 판별기 정의
      • 적대적 훈련 과정
    • 요약
    • 실습

  • 10장. 모델을 실무에 적용하기
    • SavedModel 직렬화 형식
      • 기능
      • 케라스 모델로 SavedModel 생성하기
      • 일반 함수를 SavedModel로 변환하기
    • 파이썬 배포
      • 일반 연산 그래프
      • 케라스 모델
      • 플랫 그래프
    • 지원하는 배포 플랫폼
      • TensorFlow.js
      • Go 바인딩과 tfgo
    • 요약
    • 실습
  • 1부. 신경망 기초
  • 1장. 머신러닝이란?
    • 데이터셋의 중요성
      • n차원 공간
      • 차원의 저주
    • 지도학습
      • 거리와 유사도–k-NN 알고리즘
      • 모수 모델
      • 모델의 성능 측정–평가 지표
    • 비지도학습
    • 준지도학습
    • 요약
    • 실습

  • 2장. 신경망과 딥러닝
    • 신경망
      • 생물학적 뉴런
      • 인공 뉴런
      • 완전 연결 레이어
      • 활성화 함수
      • 손실함수
      • 파라미터 초기화
    • 최적화
      • 경사하강법
      • 경사하강법 최적화 알고리즘
      • 역전파와 자동 미분
    • 컨볼루션 신경망
      • 컨볼루션 연산자
      • 2D 컨볼루션
      • 볼륨 간 2D 컨볼루션
      • 1×1×D 컨볼루션
    • 일반화
      • 드롭아웃
      • 데이터 증강
      • 얼리스타핑
      • 배치 정규화
    • 요약
    • 실습

  • 2부. 텐서플로 기초
  • 3장. 텐서플로 그래프 아키텍처
    • 환경 설정
      • 텐서플로 1.x 환경
      • 텐서플로 2.0 환경
    • 데이터 흐름 그래프
      • 주요 구조–tf.Graph
      • 그래프 정의–tf.Operation부터 tf.Tensor까지
      • 그래프 배치–tf.device
      • 그래프 실행–tf.Session
      • 정적 그래프의 변수
    • 모델 정의와 훈련
      • tf.layers 기반 모델 정의
      • 자동 미분–손실과 옵티마이저
    • 파이썬을 활용한 그래프 다루기
      • 플레이스홀더에 전달
      • 요약 기록
      • 모델 파라미터 저장과 모델 선택
    • 요약
    • 실습

  • 4장. 텐서플로 2.0 아키텍처
    • 프레임워크 다시 배우기
    • 케라스 프레임워크와 모델
      • 순차 API
      • 함수 API
      • 서브클래스 기법
    • 즉시 실행과 새로운 기능들
      • 베이스라인 예제
      • 세션이 아닌 함수
      • 더 이상의 전역 변수는 없다
      • 제어 흐름
      • GradientTape
      • 사용자 정의 훈련 루프
      • 모델 상태 저장과 복원
      • 요약과 평가 지표
      • 오토그래프
    • 코드베이스 마이그레이션
    • 요약
    • 실습

  • 5장. 효율적인 데이터 입력 파이프라인 및 Estimator API
    • 효율적인 데이터 입력 파이프라인
      • 입력 파이프라인 구조
    • tf.data.
      • 성능 최적화
      • 데이터셋 구축
      • 데이터 증강
      • 텐서플로 데이터셋–tfds
      • 케라스 통합
      • 즉시 실행 통합
    • Estimator API
      • 데이터 입력 파이프라인
      • 사용자 정의 Estimator
      • 사전 정의 Estimator
      • 케라스 모델 사용하기
      • Canned Estimator 활용
    • 요약
    • 실습

  • 3부. 신경망의 응용 분야
  • 6장. 텐서플로 허브를 사용한 이미지 분류
    • 데이터 수집
    • 전이학습
      • 텐서플로 허브
      • 피처 추출기로 Inception v3 사용
      • 모델에 데이터 적용
      • 모델 작성–hub.KerasLayer
      • 훈련과 평가
      • 훈련 속도
    • 미세 조정
      • 미세 조정 시기
      • 텐서플로 허브 통합
      • 훈련 및 평가
      • 훈련 속도
    • 요약
    • 실습

  • 7장. 객체 탐지 소개
    • 데이터 수집
    • 객체 지역화
      • 회귀 문제로서의 지역화
      • Intersection over Union
      • 평균 정밀도
      • mAP
      • 훈련 스크립트 개선
    • 분류와 지역화
      • 멀티태스크 러닝
      • 더블 헤드 네트워크
      • 앵커 기반 탐지기
      • 앵커 상자
    • 요약
    • 실습

  • 8장. 시맨틱 분할 및 사용자 정의 데이터셋 빌더
    • 시맨틱 분할
      • 문제점
      • 디컨볼루션–전치 컨볼루션
      • U - Net 아키텍처
    • 텐서플로 DatasetBuilder 만들기
      • 계층적 구조
      • 데이터셋 클래스와 DatasetInfo
      • 데이터셋 분할
      • 예제 생성
      • 빌더 사용하기
    • 모델 훈련과 평가
      • 데이터 준비
      • 훈련 루프와 케라스 콜백
      • 평가와 추론
    • 요약
    • 실습

  • 9장. 생성적 적대 신경망
    • GAN과 해당 애플리케이션의 이해
      • 가치함수
      • 비포화 가치함수
      • 모델 정의와 훈련 단계
      • GAN 응용 분야
      • 무조건부 GAN
      • 데이터 준비
      • 생성기 정의
      • 판별기 정의
      • 손실함수 정의
      • 무조건부 GAN의 적대적 훈련 프로세스
    • 조건부 GAN
      • 조건부 GAN에 관한 데이터 가져오기
      • 조건부 GAN에서 생성기 정의
      • 조건부 GAN에서 판별기 정의
      • 적대적 훈련 과정
    • 요약
    • 실습

  • 10장. 모델을 실무에 적용하기
    • SavedModel 직렬화 형식
      • 기능
      • 케라스 모델로 SavedModel 생성하기
      • 일반 함수를 SavedModel로 변환하기
    • 파이썬 배포
      • 일반 연산 그래프
      • 케라스 모델
      • 플랫 그래프
    • 지원하는 배포 플랫폼
      • TensorFlow.js
      • Go 바인딩과 tfgo
    • 요약
    • 실습

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안