1. 광고배너
  2. 광고배너
/ 이전버튼 다음버튼
2
미리보기

언리얼 엔진 블루프린트 비주얼 스크립팅
저자 : 로렌페로 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 김제룡,배상하

2019.12.31 ㅣ 528p ㅣ ISBN-13 : 9791161753812

정가40,000
판매가38,000(5% 할인)
적립금 1,600원 (4%)
배송일정 05월 02일 출고 가능
주문 수량 변경시 안내 배송안내
쿠폰 및 결제혜택 확인하기

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 컴퓨터일반 > 컴퓨터게임
언리얼 엔진 4 입문자용 책으로 언리얼 엔진 4의 수많은 기능 중에서도 게임 개발에 꼭 필요한 핵심 기능을 설명한다.
블루프린트만 사용해 세 가지 게임을 단계별로 만들고, 언리얼 엔진 4를 처음 접하는 사람도 어렵지 않도록 단순하고 쉽게 설명한다. 머티리얼, AI, UMG, 멀티플레이어 네트워크 등 전반적인 기능을 경험하기 좋은 입문서다.
펼쳐보기

[목 차]


1장. 언리얼 시작
__언리얼과 프로젝트 설정하기
____언리얼 마켓
__프로젝트에 필요한 것
____간단한 플랫폼 게임(1장에서 6장)
____생존 미로 탐험가(7장에서 13장)
____Sci-FPS(14장에서 19장)
__게임을 위한 프로젝트 생성 #1
__네이밍 컨벤션
__블루프린트란 무엇인가
__머티리얼을 활용한 창의력 발휘하기
__첫 번째 머티리얼 만들기
____머티리얼에 빛나는 효과 주기
__블루프린트로 머티리얼 사용하기
__빛나는 다이나믹 머티리얼
____블루프린트에서 머티리얼 수정하기
__환경에 라이트 추가하기
____블루프린트로 라이트 사용하기
__배운 내용 확장하기
__요약

2장. 블루프린트의 기본 이해하기
__블루프린트의 개요와 워크플로우
____속도
____컬러 스키마
__레벨 블루프린트와 클래스 블루프린트 소개
____레벨 블루프린트
____클래스 블루프린트
__충돌 체크
__트리거 - 트리거를 생성하고 활성화하는 방법
____블루프린트를 이용해 이벤트 트리거하기
____블루프린트를 사용해 이벤트 트리거하기: 움직이는 플랫폼
__배운 내용 확장하기
__ 요약

3장. 상호작용 개선하기
__블루프린트 함수
__블루프린트를 읽기 쉽고 확장하기 쉽게 유지하기
____경유 노드
____시퀀스 노트
____코멘트
__대화형 오브젝트의 블루프린트 인터페이스
____블루프린트 인터페이스 생성하기
____액터에 인터페이스 구현하기
____커스텀 이벤트로 플랫폼 이동하기
____키 바인딩 설정하기
____플레이어와 대화형 오브젝트의 상호작용
__배운 내용 확장하기
__요약

4장. UI 요소 추가하기
__UI와 GUI, HUD의 차이점
____UI: 유저 인터페이스
____GUI: 게임 유저 인터페이스
____HUD: heads up display
__언리얼 모션 그래픽 UI 디자이너(UMG)
____논다이제틱(두 개의 메뉴)
____상호작용을 위해 E 누르기
____메타
__배운 내용 확장하기
__요약

5장. 인벤토리 추가하기
__획득하고 수집하는 아이템
__인벤토리 생성하기
____인벤토리를 나타나고 사라지게 만들기
__아이템 수집하기
__배운 내용 확장하기
__요약

6장. 모험요소 만들기
__기본 레벨 디자인
____게임 환경 조성하기
____목표
__기본 퀘스트 시스템 만들기
____퀘스트 정보를 전달하는 NPC와의 상호작용 만들기
____퀘스트 UI 생성하기: 디자인
____퀘스트 UI 생성하기: 기술 측면
____퀘스트 상태
____퀘스트 매니저
____파란 간판에 불 붙이기 -> 제목 확인
____지붕에 도착하기 -> 제목 확인
____문 열기
____환경에 블루프린트 배치하기
__배운 내용 확장하기
__요약

7장. AI로 생동감 넣기
__비헤이비어 트리와 블랙보드 소개
____비헤이비어 트리란 무엇인가
____블랙보드란 무엇인가
__AI 프로젝트 만들기
____블랙보드 생성하기
____비헤이비어 트리 준비하기
____내비게이션 추가
____AI 캐릭터 임포트하기
____AI 컨트롤러 설정하기
__배운 내용 확장하기
__요약

8장. 게임플레이 업그레이드
__프로젝트 설정하기
__(어딘가에 있는)최종 문
____수집 가능한 아이템
__승리 조건
__AI 파괴하기
__적군을 위한 스폰 시스템 만들기
__레벨 재시작하기
__배운 내용 확장하기
__요약

9장. AI 업그레이드
__시야를 가지는 AI
__데이터로 가득 찬 블랙보드
__추적 행동 만들기
____서비스로 값 업데이트하기
____데코레이터 사용하기
____추적 태스크 만들기
____플레이어의 마지막 위치로 이동해 배회하기
____비헤이비어 트리 실행하기
__배운 내용 확장하기
__요약

10장. 오디오 추가하기
__게임에서 사운드 사용
__언리얼에서 사운드 기초
____사운드 애셋 유형
__프로젝트에 오디오 추가하기
____환경(앰비언트) 오디오 추가하기
__다양한 상호작용에 오디오 효과 추가하기
____무기 발사하기
____아이템 수집하기
__배운 내용 확장하기
__요약

11장. 멋있게 만들기
__다이내믹 머티리얼
__채워지는 머티리얼 생성하기
____머티리얼을 위한 블루프린트 생성
__LIT 시작하기
____라이트 모빌리티
____라이트 모빌리티
__블루프린트를 통해 게임플레이에서 파티클 매개변수 다루기
__배운 내용 확장하기
__요약

12장. 게임 분석과 디버깅, 펑셔널 테스팅
__게임 분석
____블루프린트 분석 플러그인
____게임 내 분석기능 구현하기
____세션 시작하기
____세션 끝내기
____플레이어가 아이템을 수집할 때 이벤트 기록하기
____킬과 승리와 패배 기록하기
____결과 살펴보기
__블루프린트 디버깅
____중단점
____디버그 탭
____일반적인 블루프린트 문제들
____게임 밸런스
__펑셔널 테스트
____게임의 펑셔널 테스트
____펑셔널 테스트를 위한 세션 프론트엔드
____세션 프론트엔드: 프로파일링 툴
__레벨 디자인
__배운 내용 확장하기
__요약

13장. 레벨 스트리밍과 월드 컴포지션
__레벨 스트리밍
____블루프린트로 레벨 로딩하기
____예제: 성 스트리밍
____블루프린트로 레벨 언로드하기
__월드 컴포지션
____월드 컴포지션 활성화하기
____레벨 탭 이해하기
____월드 컴포지션 예제
____원점 이동
__요약

14장. 사냥개 애니메이션하기
__세 번째 프로젝트 설정 및 계획
____프로젝트 설정
____게임
____사냥개 메시 임포트 및 설정
__1D_블렌드스페이스
__애니메이션 블루프린트
____애니메이션 블루프린트란 무엇인가
____애니메이션 블루프린트 생성하기
____이벤트 그래프
____애니메이션 그래프
__배운 내용 확장하기
__요약

15장. 데이터 주도형 게임플레이
__구조체란 무엇인가
____프로젝트에서 구조체 사용하기
____구조체 생성하기
____구조체 정보에 접근하기
__데이터 테이블 사용하기
____데이터 테이블 만들기
____엔진 내에서 값 변경하기
____데이터 테이블값 가져오기
____컨스트럭션 스크립트 사용하기
__사냥개 블루프린트 제작하기
__배운 내용 확장하기
__요약

16장. 멀티플레이어 기초
__언리얼 네트워크의 개요
__멀티플레이어 환경 설정
____애셋 준비하기
____은 총알
__플레이어 블루프린트
____플레이어 블루프린트 설정하기
____올바른 매시 숨기기
____은 총알 발사하기
__사냥개 블루프린트
____애니메이션 블루프린트 변수 설정하기
____사냥개 AI 컨트롤러
____사냥개 충돌체
____피해를 받는 사냥개
__배운 내용 확장하기
__요약

17장. 멀티플레이어 설정 확장하기
__플레이어 블루프린트 완성하기
____체력 회복 시스템
____데미지 입기
__사냥개의 공격
____사냥개의 체력 회복 시스템
____블루프린트의 물기 이벤트
____애니메이션 블루프린트에서 물기
____비헤이비어 트리로 플레이어 추적하기
__배운 내용 확장하기
__요약

18장. 추가 기능 더하기
__리슨 서버 vs 데디케이트 서버
__게임 플레이 테스트
____맵 준비하기
____테스트 방법
____수정 #1: 게임 모드를 추가해 올바른 플레이어 클래스를 스폰하기
____수정 #2: 두 번째 플레이어가 발사체를 볼 수 없는 문제
____수정 #3: 사냥개가 움직이지 않는 문제
____수정 #4: 서버가 아닌 두 번째 플레이어가 총을 쏠 때 총알이 총의 위치와 관계 없이 일직선으로만 유지된다
__친구와 함께 플레이하기
____리슨 서버에 연결하기
____우리가 무엇을 놓쳤을까
__추가 기능을 위한 아이디어
____일시정지!
____저장, 불러오기 시스템(세이브 포인트)
____로딩 화면
____체크포인트 생성
____재시작(과 종료)을 위한 옵션 생성
__배운 내용 확장하기
__요약

19장. 빌드와 퍼블리싱
__게임 최적화하기
____로딩 시간 개선하기
____게임 최적화하기
__패키징과 퍼블리싱
____게임 준비
____패키징 설정
____패키징
____온라인 스토어에 배포하기
__배운 내용 확장하기
____책 읽기 및 튜토리얼 보기
____트위치 라이브 스트리밍
____언리얼 엔진 4 게임 잼
____유저 그룹
____포럼과 온라인 네트워크
____가장 중요한 것은 계속해서 게임을 만드는 것!
__요약
펼쳐보기
★ 이 책에서 다루는 내용 ★
■ 언리얼 및 기본 컴포넌트 설정
■ 게임 오브젝트에 기본적인 이동 추가 및 콜리전 메커니즘 추가
■ 플레이어 상호작용을 확장하기 위한 인터페이스 설계 및 구현
■ UI와 함께 실시간으로 채워지는 인벤토리 시스템을 상호작용하도록 생성
■ 게임 환경의 다양한 부분에 이벤트 트리거에 기반한 오디오 효과 추가
■ 분석 정보를 사용해 게임 밸런스를 적절하게 조정
■ 멀티플레이어 게임에서 월드 주변을 감지하는 복잡한 AI 적 생성
■ 게임을 여러 플랫폼에 배포하고 전 세계와 공유

★ 이 책의 대상 독자 ★
독자가 어떠한 사전 지식도 없다고 가정한다. 심지어 언리얼이 설치돼 있지도 않은 신입 게임 개발자거나 언리얼 엔진 4 블루프린트 비주얼 스크립팅 시스템을 이제 막 시작하는 사람이라도 볼 수 있다.

★ 이 책의 구성 ★
1장, '언리얼 시작'에서는 이 책을 읽는 데 필요한 배경지식인 언리얼 엔진의 필수적인 부분을 배운다. 첫 번째 레벨을 제작하며 게임 오브젝트를 추가하고 머티리얼을 적용해 나머지 장을 배울 준비를 한다.
2장, '블루프린트의 기본 이해하기'에서는 1장 내용을 기반으로 블루프린트에 관련된 지식을 배우고 강화한다. 게임 오브젝트의 기본적인 움직임을 추가하고, 충돌 메커니즘을 생성과 트리거 제작을 배운다.
3장, '상호작용 개선하기'에서는 오브젝트의 인터페이스를 설명하고 플레이어의 상호작용을 확장하는 데 사용하는 방법을 배운다. 또한 블루프린트 함수 생성, 블루프린트를 사용하기에 적합한 시기, 다른 사람이 읽기 쉽게 만드는 방법, 블루프린트를 모듈화해 재사용할 수 있게 만드는 방법을 설명한다. 마지막으로 경유 노드를 생성하는 방법도 소개한다.
4장, 'UI 요소 추가하기'에서는 UI/HUD/GUI의 기본 정의와 게임 디자인에서의 중요성을 강조해서 설명한다. 또한 UI/HUD/GUI 요소를 언리얼 프로젝트에 구현하는 방법도 다룬다. 마지막으로 이러한 요소를 게임플레이에 연결하는 방법을 배운다(예: 플레이어가 오브젝트와 충돌하면 체력 바가 줄어들도록 만들기).
5장, '인벤토리 추가하기'에서는 이전 장들의 내용을 확장한다. 플레이어가 수집하고 찾아낸 아이템을 사용할 수 있는 인벤토리 시스템을 만드는 방법을 다룬다. 플레이어가 아이템(체력, 무기 및 탄약, 마법)을 줍고 수집할 수 있도록 하는 블루프린트 스크립트를 만들고 다음으로 수집된 아이템을 인벤토리에 추가하는 방법과 플레이어가 아이템을 사용하는 방법을 배운다.
6장, '모험요소 만들기'에서는 기본적인 레벨 디자인과 게임 환경을 제작하는 방법을 설명한다. 또한 기본적인 퀘스트 시스템을 만드는 방법과 오브젝트와 데미지를 주고받는 방법을 배운다.
7장, 'AI로 생동감 넣기'에서는 언리얼의 AI와 AI 컨트롤러의 동작 방식을 소개한다. 그리고 간단한 AI를 만들면서 언리얼 AI를 이해한 내용을 8장에서 확장한다.
8장, '게임플레이 업그레이드'에서는 AI 적을 파괴할 수 있는 인게임 시나리오를 만드는 방법을 설명한다. 또한 플레이어, 적, 아이템의 리스폰 시스템을 만드는 방법도 소개한다. 다음으로 플레이어의 승리 또는 패배를 결정하는 게임 플레이 조건을 정의한다. 마지막으로 플레이어가 승리 또는 패배하는(예: 죽어가는) 게임 상태를 만드는 방법을 설명한다.
9장, 'AI 업그레이드'에서는 AI에 더 깊이 들어가 비헤이비어 트리의 모든 기능을 활용해 역동적인 AI를 만드는 방법을 설명한다.
10장, '오디오 추가하기'에서는 게임 환경의 다양한 부분에 오디오 효과를 추가하는 방법을 알려준다. 언리얼 엔진 4 오디오 시스템의 개요를 설명하고 엠비언트 사운드를 생성하는 방법을 배운다.
11장, '멋있게 만들기'에서는 블루프린트를 사용해 다양한 이펙트, 기본적인 다이나믹 머티리얼, 파티클 효과를 추가하는 방법과 블루프린트 내에서 이들을 트리거하는 방법을 설명한다.
12장, '게임 분석, 디버깅, 펑셔널 테스트'에서는 플레이어 분석의 중요성과 게임의 밸런스를 조정하는 방법, 개발용 세션 프론트엔드를 사용하는 방법을 다룬다. 또한 적은 오차로 더 빠르게 반복 작업을 하기 위해 블루프린트에 내장된 다양한 디버깅 및 자동화된 테스트 기능을 자세히 설명한다.
13장, '레벨 스트리밍 및 월드 컴포지션'에서는 레벨 스트리밍을 사용해 월드/실내/전투 맵 시스템을 만들고 게임 루프와 함께 매끄럽게 동작하는 방법을 설명한다.
14장, '사냥개 애니메이션하기'에서는 이 책의 세 번째이자 마지막 프로젝트를 시작한다. 특히 사냥개를 애니메이션하는 방법을 배우면서 애니메이션 블루프린트를 살펴본다. 멀티플레이어 게임의 기초도 알아본다
15장, '데이터 주도형 게임플레이'에서는 게임플레이를 만들기 위한 데이터 테이블의 중요성과 이들을 효과적으로 블루프린트에 통합하는 방법을 설명한다. 이로 인해 디자이너는 훨씬 많은 반복 작업을 줄일 수 있으며 프로세스는 블루프린트로 자동화된다.
16장, '멀티플레이어 기초'에서는 간단한 로컬 멀티플레이어 설정, 멀티플레이어의 스폰 시스템 및 공유 카메라를 만드는 방법을 설명한다. 이미 다룬 내용이지만 유저들이 멀티플레이어 환경에 있기 때문에 확장해 다룬다.
17장, '멀티플레이어 설정 확장하기'에서는 이전 장에서 다룬 멀티플레이어 설정을 확장한다. 플레이어가 게임을 생성하고 참여해 상호작용할 수 있도록 로비 메뉴 시스템을 만드는 방법을 배운다. 또한 모든 것이 원활하게 실행되는지 테스트하고 확인하는 방법도 설명한다.
18장, '추가 기능 더하기'에서는 플레이어 간에 정보가 이동하도록 이벤트와 변수들을 올바르게 리플리케이트하는 방법을 설명한다.
19장, '빌드 및 퍼블리싱'에서는 게임을 패키징하는 것이 버튼을 누르는 것처럼 간단해 보이지만 실제로는 그렇지 않다는 것을 설명한다. 특히 언리얼 같은 엔진의 경우 패키징은 중요한 단계며 패키지로 익스포트하기 전에 다양한 옵션을 잘 이해하고 있어야 한다.

★ 지은이의 말 ★
비디오 게임이나 인터랙티브한 경험의 아이디어는 있지만 프로그래밍 실력이나 기술력이 부족했던 적이 있는가? 그렇다면 이 책은 여러분을 위한 것이다. 블루프린트 비주얼 스크립팅 언어는 언리얼로 게임플레이 요소를 만드는 데 도움을 준다. 이 책은 코드를 작성하지 않고도 쉽고 빠른 방법으로 복잡한 인터랙티브 경험을 만드는 데 필수적인 기초를 배우는 데 필요한 기반을 제공한다.
블루프린트의 개념, 기본적인 블루프린트 생성 방법, 게임의 기본 컴포넌트 설정 방법으로 시작해 퀘스트 시스템이 있는 단순한 첫 번째 3D 플랫폼 게임을 완성해나간다. 그 다음으로 생존 미로 게임을 만들며 블루프린트를 사용해 오디오, 특수 이펙트, AI와 같은 게임의 추가 기능을 더하는 방법을 배운다. 마지막으로 세 번째 프로젝트는 네트워크상에서 다른 사람과 함께 플레이할 수 있는 멀티플레이어 게임을 만드는 방법을 설명한다. 세 개의 멋진 프로젝트를 완성하며 AI, 인터페이스, 실감 나는 환경 그리고 흥미로운 멀티플레이어 경험을 활용해 복잡한 게임을 만드는 데 필요한 지식과 기술을 갖추게 된다.

★ 옮긴이의 말 ★
언리얼 엔진 4를 처음 시작할 때 어디서부터 어떻게 시작해야 할지 막막한 경우가 많다. 언리얼 엔진 공식 문서는 한글화가 잘 돼있으나 말 그대로 매뉴얼 기능에 충실한 기능적인 설명이 대부분이다. 물론 공식문서만큼 정확한 정보는 없으며 이 책을 읽고 난 후에는 공식문서를 더 많이 보게 될 것이다.

이 책은 이제 막 언리얼 엔진 4를 시작하려는 입문자를 위한 책으로 블루프린트만 사용해 게임을 만드는 방법을 설명한다. 언리얼 엔진 4에는 수많은 기능이 있지만, 책에서는 게임 개발에 필요한 몇 가지 핵심 기능 위주로 소개한다.
플레이할 수 있는 게임의 모양을 갖출 수 있도록 실습 예제로 구성돼 있으며 원하는 게임 속 기능을 만들기 위해 어떻게 블루프린트를 응용해야 하는지 알려준다. 또한 언리얼 엔진 4에 대해 아무것도 모르는 사람도 쉽게 따라 할 수 있도록 하나씩 천천히 설명하고 있다.
이는 방대한 언리얼 엔진 4의 기능 속에서 막막함을 느끼는 입문자에게 훌륭한 튜토리얼이 될 것이며 이 책을 읽고 난 후에는 언리얼 엔진 4에 대한 두려움이 사라지게 될 것이다.
펼쳐보기
로렌 페로(Lauren S. Ferro)
플레이어 프로파일링과 모델링 박사 학위를 가지고 있다. 현재 로마 라 사피엔차대학교의 부교수이자 연구원이다. 또한 로마 Unreal Engine Meetup의 공동 주최자다. 게임 경험을 위한 프로토타이핑 툴인 Gamicards의 게임 디자인 리소스를 만들었다. 세상과 그 안의 사람들이 소통하는 방식에 흥미를 느끼고 있다.



옮긴이 김제룡
인터넷과 텍스트 게임이 유행이던 1998년 대학생 시절 <나이스 캡짱>이라는 텍스트 머드 게임을 개발했으며, 이를 기점으로 게임 개발에 발을 들였다.
2005년부터 지금까지 엔씨소프트(NCSoft), NHN, 이스트소프트(EstSoft), VK 모바일 등에서 상업적인 게임 개발을 했으며, PC MMORPG <카발 온라인 1>과 <카발 온라인 2> 개발에 참여했다. 모바일 게임에 관심을 가지면서 <아이돌 드림걸즈>, , , <리니지1, 2>, <아이온 IP> 프로젝트 등에 참여했다.
현실 안주보다는 새롭고 도전전인 것을 즐기는 성격으로, 엔씨소프트에서 언리얼 엔진 4를 사용한 네 번째 모바일 MMORPG를 개발 중이다.

펼쳐보기

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
0/2000자
교환/반품 방법
  • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
  • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
교환/반품 가능기간
  • 변심반품의 경우 수령 후 7일 이내
  • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
교환/반품 비용
  • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
교환/반품 불가사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 예) 만화, 잡지, 수험서 및 문제집류
  • 복제가 가능한 상품 등의 포장을 훼손한 경우 예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
상품 품절
  • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

더보기 >

    이 분야의 신간

    더보기 >
      맨위로가기

      영풍문고 로고

      • 회사명 : (주)영풍문고
      • 대표이사 : 김경환
      • 소재지 : 서울특별시 종로구 청계천로 41 (우)03188
      • 사업자 등록번호 : 773-86-01800 ㅣ 통신판매업 신고번호 : 2023-서울종로-0130 [ 사업자정보확인 ]
      • 개인정보관리 책임자 : 조순제 ㅣ customer@ypbooks.co.kr ㅣ 대량주문 : webmaster@ypbooks.co.kr
      COPYRIGHT © YOUNGPOONG BOOKSTORE INC. ALL RIGHTS RESERVED.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기