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

유니티 물리 기반 셰이더 개발
저자 : 클라우디아도피오슬래시 ㅣ 출판사 : 에이콘출판 ㅣ 역자 : 최동훈

2019.04.30 ㅣ 356p ㅣ ISBN-13 : 9791161752891

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

크기 기타 규격
제품구성 단행본
이용약관 청약철회
국내도서 > 컴퓨터 > 컴퓨터일반 > 컴퓨터게임
각기 다른 플렛폼(OpenGL, Vulkan, DirectX) 및 유니티에서 사용하는 셰이딩 언어(Cg, GLSL, Shader lab)의 일반적인 범주에서 셰이더 프로그래밍이 어떻게 동작하는지부터 시작한다. 그리고 유니티 물리 기반 셰이더 개발에서는 BRDF(오렌-나얄, 쿡토렌스, 에시크민-셜리) 및 반투명, 하부 표면 산란과 같은 다양한 기술을 보여주면서 예술과 관련된 선택에 대해 논의한다. 더불어 이 기술을 어디에 사용할 수 있는지도 알려준다. 마지막으로 비슷한 결과를 내면서도 계산 비용은 저렴한 근사법을 개발하면서 코드 최적화의 중요성에 대해서 다룰 것이다.
펼쳐보기

[목 차]

1부. 유니티 셰이더 소개

1장. 셰이더 개발 과정
__셰이더란?
____빛의 시뮬레이션으로서의 셰이더
____원근법을 활용한 렌더링
____렌더링 과정
____GPU에서 동작하는 코드로서의 셰이더
____셰이더 실행
____여러 가지 종류의 셰이더
____좌표 체계
____빛의 종류
____점 광원
____방향 광원
____면 광원
__렌더링 방정식
____빛의 특성
________반사된 빛
____렌더러 종류
________포워드
________디퍼드
________포워드+(타일 포워드 셰이딩)
________미래 렌더러
____셰이더 시각 그래프
__요약

2장. 첫 유니티 셰이더
__유니티 소개
____준비
____유니티 UI
____첫 번째 씬 생성
____셰이더 수정
________셰이더의 경로와 이름
________특성
________하위 셰이더
________태그
________패스
________CGPROGRAM(그리고 ENDCG)
________Pragma 선언
________Includes
________입력과 출력 구조체
________변수 선언
________정점 함수와 프레그먼트 함수
__셰이더 수정
____하얀색에서 빨간색으로
____속성 추가
__요약

3장. 그래픽스 파이프라인
__그래픽스 API 기본을 배워야 하는 이유
__그래픽스 파이프라인의 일반적인 구조
__레스터라이저
__언릿 셰이더의 구조
__정점 데이터 구조체
__정점 함수
__프래그먼트 데이터 구조체
__프래그먼트 함수
__정점 색상 지원 추가
____Appdata에 추가
____v2f에 추가
____정점 함수에 색상 할당
____프레그먼트 함수에서 색상 값 사용하기
____최종 결과
__요약

4장. 좌표 공간 변환
__좌표 공간: 누가 누구인가?
____객체 공간
____월드 공간
____공간과 공간 간의 변환
____카메라 공간
____절단 공간
____정규 기기 좌표
____화면 공간
__내장 함수가 내포하는 것들
__셰이더 “표준 라이브러리” 코드 위치
__요약

5장. 최초 라이팅 셰이더
__라이팅 셰이더
____근사란?
____디퓨즈 근사
____스펙큘러 근사
____디퓨즈와 스펙큘러의 조합
__기본 라이팅 계산
____디퓨즈
__최초 유니티 라이팅 셰이더
____디퓨즈 항 구현하기
____텍스처 속성 추가
____엠비언트 값 추가
__요약

6장. 스펙큘러 구현
__기본 라이팅 계산(파트 II)
____스펙큘러
____최초 유니티 라이팅 셰이더 (파트 II)
________스펙큘러 구현
__더 많은 광원 지원하기
__요약

7장. 서피스 셰이더
__서피스 셰이더는 무엇인가?
____기본 서피스 셰이더
____Pragmas
____신규 데이터 구조체
____서피스 함수
____라이팅 모델이란?
____서피스 셰이더의 데이터 흐름
__서피스 셰이더 편집
____두 번째 알베도 맵 추가하기
____노멀맵 추가하기
____그림자 작동 확인하기
____다른 내장 라이팅 모델 사용
__커스텀 라이팅 모델 작성
____라이팅 모델 함수 시그니처
____SurfaceOutput 데이터 구조체
____서피스 함수
____속성 블록
____커스텀 라이팅 함수
__요약

2부. 물리 기반 셰이딩

8장. 물리 기반 셰이딩이란?
__전자기파의 일종인 빛
__미세면 이론 개요
__굴절과 다른 beasts
__프레넬 반사율
__빛을 측정하는 방법
____입체각
____파워
____일레디안스
__재질을 표현하는 방법
____양방향 반사 분포 함수
________양성
________상반성
________에너지 보존
__미세면 이론
________프레넬
________정규 분포 함수
________기하 함수
__렌더링 방정식(파트 2)
__실시간 렌더링 해킹에 필요한 것들
__HDR과 톤 매핑
__선형 색상 공간
__왜 물리 기반 셰이딩이 유용한가?
__요약

9장. 물리 기반 셰이더 제작하기
__퐁 분석하기
____양수성 확인
____상반성 확인
____에너지 보존법칙 확인
__개선된 퐁
__요약

10장. 후처리 효과
__후처리 효과 동작 원리
__왜 후처리 효과가 유용한가?
__후처리 효과 설정
____HDR과 선형 설정
____스크립트 설정
__선형 변환
__렌더 텍스처 간략 오버뷰
__단순 톤 매핑
__후처리 스택 v1
__후처리 스택 v2
__요약

11장. BRDF 누가 누구인가?
__BRDF 익스프롤러
__BRDF 파라미터화
__BRDF 익스플로러의 출력 해석
____퐁
____MERL 데이터베이스
____BRDF 비교하기
____실시간 렌더링에 사용하는 BRDF 불완전 리스트
________어시크먼 셜리
________쿡 토렌스
________오렌 네이어
________월드
________디즈니
__요약

12장. BRDF 구현하기
__어떤 BRDF를 구현할 것인가?
__레퍼런스 찾기
____쿡토렌스
____디즈니
__출발은 논문에서부터
____쿡토렌스 (혹은 미세면) BRDF
____디즈니 BRDF
__구현
____속성
____커스텀 라이트 함수 구현
____유틸리티 함수
____쿡토렌스 구현
____수정된 GGX 분포항
____슐릭 프레넬 항
____수정된 슐릭 기하항
____쿡토렌스 함수에 넣기
____디즈니 디퓨즈
____디즈니 디퓨즈의 다른 구현
____전부 한곳에 담기
__요약

13장. 표준 셰이더 후킹
__표준 셰이더 역공학
____셰이더 키워드
____표준 셰이더 구조체
____쉐이드 키워드 추적
____대체 표준 셰이더 구현
________BRDF 함수 구현
________BRDF 셰이더 작성하기
________BRDF 셰이더를 위한 GUI 제작
__요약

14장. 고급 기술 구현
__기술을 탐색할만 한 곳
__반투명 구현
____속성
____구현
__실시간 반사
____큐브맵이란?
____반사 브로브란?
____큐브맵 평가
____큐브맵 프로세싱 프로그램
__요약

3부. 셰이더 개발에 대한 조언

15장. 아티스트가 사용할 셰이더 제작
__디즈니 BRDF의 UX
__일반적인 문제 #1: 너무나도 많은 세팅
__일반적인 문제 #2: 불분명한 세팅 값의 효과
__일반적인 문제 #3: 세팅 값 의존성
__일반적인 문제 #4: 텍스처에 불분명한 정보 유입
__일반적인 문제 #5: 이상한 범위
__좋은 예시: 블렌더의 디즈니 BRDF
__요약

16장. 복잡도와 우버셰이더
__우버셰이더란?
__표준 셰이더
__셰이더에서 복잡도 문제를 일으키는 요인
__우버셰이더 가챠(Gotcha)
__우버셰이더 장점
__요약

17장. 셰이더가 정상작동하지 않을 때
__일반적인 트릭
__디버깅 도구
__생성된 셰이더 코드 살펴보기
__퍼포먼스 프로파일링
__요약

18장. 최신 트렌드 따라잡기
__컨퍼런스
__서적
__온라인 커뮤니티
__웹사이트
__소셜 미디어
__결론
펼쳐보기
★ 이 책에서 다루는 내용 ★

■ 셰이더 프로그래밍 마스터
■ 물리 기반 셰이딩 구현
■ 셰이더 하부시스템 조작법
■ 커스텀 물리 기반 라이팅 시스템 구현 및 선택 뒤에 숨겨진 로직 관찰

★ 이 책의 대상 독자 ★

유니티 경험이 있지만 셰이더 코딩 경험은 거의 없거나 전혀 없는 이들을 대상으로 쓴 책이다. 어느 정도 프로그래밍 경험이 있다면 코드를 다루는 것부터 공부할 필요가 없기 때문에 도움이 될 것이다.
물리 기반 셰이딩 원리나 노드 기반 인터페이스가 아닌 셰이더 프로그래밍 코드 작성법을 배우고자 하는 테크니컬 아티스트도 이 책을 읽기에 적합하다. 또한 셰이더 프로그래밍을 시작하는 방법을 배우고 싶거나 물리 기반 셰이딩과 관련된 몇 가지 기술을 구현하고자 하는 프로그래머에게도 도움이 될 것이다.

★ 이 책의 구성 ★

이 책은3부, 18장으로 구성돼 있다. 처음부터 순차적으로 읽을 수 있게 집필했지만 이미 알고 있는 부분은 넘어가도 괜찮다.
셰이더 경험이 어느 정도 있고 유니티에 대한 특정 내용을 찾고 있다면, 1장을 대충 훑고 바로5장으로 넘어가는 것을 추천한다. 이미 그래픽스 프로그래밍에 능숙하고 물리 기반 셰이딩에만 관심이 있다면, 1장을 대충 훑고 8장으로 넘어가는 것을 추천한다.
만약 단 한 줄의 셰이더 코드도 작성한 적이 없고 노드 에디터 사용에 익숙한 테크니컬 아티스트라면, 이 책을 순서대로 읽되 유니티에서 셰이더 코드를 작성하는 방법이 나오는2장을 특히 집중해서 읽을 것을 추천한다.

1부. 유니티 셰이더 소개
1부는 독자를 셰이더 초보에서 그래픽스 프로그래밍의 중요 개념 지식 및 비물리 기반 셰이더 작성에 대한 지식을 갖춘 사람으로 만들어 줄 것이다.
1장, ‘셰이더의 동작 방법’ 렌더링과 그래픽스 프로그래밍의 기본 개념을 다룬다. 셰이더가 무엇인지, 그래픽스 파이프라인의 동작, 렌더링 프로세스, 빛의 성질, 셰이더 및 렌더러 타입에 대한 전체적인 지식을 얻을 수 있다
2장, ‘첫 번째 유니티 셰이더’ 첫 번째 유니티 셰이더를 작성해 볼 것이다. 프로젝트 설정, 씬 제작, 문법, 유니티 셰이더를 구성하는 부품을 다룬다. 단순한 단색 언릿 셰이더를 작성해볼 것이다.
3장, ‘그래픽스 파이프라인’ 그래픽스 파이프라인이 어떻게 동작하는지, 그래픽스 파이프라인으로 셰이더의 다양한 부분을 어떻게 후킹하는지, 거기에 무슨 데이터가 전송되고 어떻게 처리되는지, 데이터를 가지고 할 수 있는 것이 무엇인지를 설명한다.
4장, ‘좌표 공간 변환’ 그래픽스 파이프라인에서 일반적으로 쓰이는 각각의 좌표 공간을 보여주고 설명한다. 그리고 유니티가 제공하는 변환 도구에 대해서 설명한다.
5장, ‘첫 번째 라이팅 셰이더’ 몇 가지 일반적인 라이팅 콘셉트와 근사법(디퓨즈나 스펙큘러와 같은)을 소개한다. 그리고 이를 언릿 셰이더에 구현하는 방법에 대해서 설명한다. 이 장을 마치면 독자는 첫 번째 커스텀 라이팅 셰이더를 작성하게 되는 것이다.
6장, ‘스펙큘러 구현’ 5장에 이어 스펙큘러 근사법을 구현해 디퓨즈를 완성한다. 또한 언릿 셰이더에 한 개 이상의 빛을 지원하는 방법과 셰이더 랩 패스의 실용적인 사용에 대해 설명한다.
7장, ‘서피스 셰이더’ 지금까지 언릿 셰이더만을 사용했다. 언릿 셰이더가 좀 더 직관적이고 그래픽스 파이프라인과 셰이더가 맞닿는 곳을 숨기지 않기 때문이다. 하지만 언릿 셰이더는 불필요한 내용이 많을 수 있으므로, 이 장에서는 서피스 셰이더를 소개하고 서피스 셰이더가 어떻게 꽤나 많은 양의 시간과 타이핑을 절약하는지에 대해서 설명한다. 앞의 두 장에서 구현했던 언릿 셰이더를 서피스 셰이더의 커스텀 라이팅 함수로 재구현할 것이다.

2장. 물리 기반 셰이딩
이론부터 구현까지 온전히 물리 기반 셰이딩에 집중한다. 이제 독자는 유니티 셰이더를 구현해봤으므로 렌더링이 어떻게 동작하는지 탄탄한 기초를 알 것이다. 따라서 물리 원리에 따른 셰이더 작성에 완전히 집중할 수 있다.
8장, ‘물리 기반 셰이딩이란?’ 미세면 이론을 보여주고1장에서 빛이 동작하는 방식을 설명하는 데 단순화한 몇 가지 것을 바로잡는다. 프레넬 반사와 굴절률뿐만 아니라 빛을 측정하는 방법, 재질을 때리는 빛의 성질을 함수로 표현하는 방법을 살펴볼 것이다. 물리 기반 라이팅 모델에 필요한 것을 설명하고, 렌더링 방정식의 모든 부분을 설명한다.
9장, ‘물리 기반 셰이더 제작하기’ 물리 기반 셰이딩의 개념을 곧바로 실전에 적용하기 위해7장에서 배운 커스텀 라이팅 서피스 셰이더를 가지고 물리 기반에 필요 조건들을 갖춘다.
10장, ‘후처리 효과’ 후처리는HDR 렌더링에 필요한 부분이다. 물리 기반 셰이딩에 HDR 자체가 필요하다. 에셋 스토어를 통해 유니티가 제공하는 후처리 효과 스택은 강력하지만, 여전히 이해가 필요하며 종종 후처리 효과를 구현할 수 있어야 한다. 또한 유니티 후처리 스택 버전1과 버전2의 개요를 포함하고 있다.
11장, ‘BRDF 누가 누구인가?’ 일반적인 라이팅 함수들을 이름과 효과에 따라 알게 될 것이다. 이 장에는 디즈니 연구소에서 커스텀 라이팅 함수를 개발하고 분석하기 위해 개발한 엄청난 프로그램인BRDF 익스플로러가 등장한다.
12장, ‘BRDF 구현’ 몇 가지 물리 기반 라이팅 함수를 알게 됐으므로 하나 혹은 둘 정도를 실제로 구현해본다. 정보를 수집하고 물리 기반BRDF를 구현하는 방법을 다루며, 쿡토렌스 스펙큘러와 디즈니 BRDF 디퓨즈를 구현할 것이다.
13장, ‘표준 셰이더 후킹’ 12장에서 구현한 라이팅 함수를 유니티 표준 셰이더 인프스트럭처에 주입하는 방법을 설명한다. 이로써 거의 무료로 반사와 광역 조명등을 제공할 것이다.
14장, ‘고급 기술 구현’ BRDF 구현과 관련된 모든 것을 마치고, 반투명과 같이BRDF로 구현할 수 없는 빛 현상을 추가하는 방법을 설명한다. 또한 반사 프로브가 작동하는 복잡한 메커니즘을 설명한다.

3부. 셰이더 개발 조언
유니티의 커스텀 라이팅 시스템 구현에 필수적인 것들을 모두 배웠다. 3부에서는 이에 관한 기술인 디버깅, 좋은 코드 작성법, 아티스트가 독자가 만든 셰이더를 잘 쓰게 만드는 방법에 대해서 설명한다.
15장, ‘아티스트가 사용할 셰이더 만들기’ 프로그래머가 아티스트가 사용하기에 너무 복잡한 셰이더를 만드는 경우가 많다. 심지어 본인이 그러고 있다는 사실조차도 깨닫지 못한 채로 말이다. 이 장은 프로그래머가 저지르는 셰이더 사용에 관한 다섯 가지 실수를 나열하고 몇 가지 해결책을 제시한다.
16장, ‘복잡성과 우버 셰이더’ 13장 이후 셰이더 시스템의 복잡성이 어떻게 생겼는지에 대해 어느 정도 다뤘다. 이 장은 시스템이 왜 그렇게 돼 있고, 왜 그것이 여전히 현재 셰이딩 언어에서 최고의 방법인지 설명한다.
17장, ‘셰이더가 정상 작동하지 않을 때’ 첫 번째 시도에서 작성한 셰이더가 제대로 되는 경우는 존재하지 않는다. 따라서 버그를 추적하는 방법과 문제를 찾아내는 방법을 배워야 한다. 이 장은 셰이딩 프로파일링과 디버깅 및 이것들을 위한 다양한 도구에 대해서 이야기한다.
18장, ‘최신 트렌드 따라잡기’ 게임과 영화 산업은 결코 잠들지 않으며, 매년 진보를 거듭한다. 이 책을 읽은 이후에는 독자는SIGGRAPH 논문을 읽어가며 지식을 더 깊게 쌓는 데 유리한 위치에 있을 것이다. 이 장은 렌더링과 셰이더 개발에 대한 최신 개발 기술과 어깨를 나란히 하는 다양한 방법을 나열한다.

★ 지은이의 말 ★

여러분들이 유니티 혹은 물리 기반 셰이딩에 관심이 있어서 이 책을 갖고 있을 것이라 생각한다.
Shadertoy 웹사이트가 증명하는 바와 같이 셰이더는 멋지다. 그리고 유니티는 셰이더를 작성하는 방법을 배우는 좋은 도구다. 지난 몇 년간 트리플A급 게임이 증명하듯이 물리 기반 셰이딩 역시 멋지다. 그리고 또 다시 유니티는 렌더러를 작성하지 않고도 그것에 발 담그는 편리한 방법이다.
이 책은 두 분야 모두의 온전한 범위(sanity thresholds)를 배우는 데 필요한 노력을 지속하는 편리한 매개체로서 유니티를 활용해 셰이더를 개발하는 방법과 물리 기반 셰이딩을 가르쳐 줄 것이다.

★ 옮긴이의 말 ★

많은 게임 개발자가 셰이더라는 단어를 신성시하는 것 같다. 나도 처음 셰이더를 배우려고 했을 때 셰이더에 대한 지식을 접하기 매우 어려웠으며(적어도 내가 셰이더에 대한 지식을 찾아 다닐 때는 그랬다) 셰이더와 관련된 추상적이고 괴상한 이야기를 많이 들었다. 어떤 사람들은 셰이더 개발은 천재들만 할 수 있다고도 말한다. 본래 사람은 자신이 잘 모르는 분야에 대해서는 두려워하고 경외시하는 것 같다. 잘 모르는 분야라도 막상 부딪히고, 익숙해지려고 노력하다 보면 대부분 생각보다 원리가 단순한 경우가 많다. 셰이더도 마찬가지라고 생각한다.
이 책은 요즘 인기 있는 유니티의 셰이더를 다룬다. 여기에서 나온 예제는 유니티 2018.2.13f1에서 직접 테스트를 완료했다. 내용을 따라 하다 보면, 유니티에서 셰이딩 프로그래밍을 어떤 식으로 진행하는지에 대한 감이 잡힐 것이다. 이 책이 예전 나와 같은 개발자들이 셰이더를 빠르고 간결하게 이해하는 데 필요한 지도가 됐으면 하는 바람으로 이 책을 번역했다. 이 책이 독자 여러분들에게 꼭 도움이 됐으면 한다.
펼쳐보기
클라우디아 도피오슬래시 (Claudia Doppioslash)
게임 개발자이자 함수형 프로그래머다. 주요 관심사는 게임 개발과 함수형 프로그래밍으로 지금까지 둘 다 완벽히 소화하고 있다. ShaderCat.com에서 셰이더 개발, 그래픽스 프로그래밍, DCC 스크립팅(블렌더 및 Houdini용)에 대해 작성하고 있다.
프로그래밍 콘퍼런스에서 연사로 활동하고 있으며, 플루럴사이트(Pluralsight)의 저자 중 한 명이다(여기에서 그녀의 유니티 커스텀 셰이더 개발 과정을 찾아보자). 쉬는 시간에 게임 AI 연구 주제에 대해 심도 있게 생각하기도 하고, 멋진 예술가가 되는 것을 시도하기도 하고, 일본어를 배우기도 하고, 고양이를 칭찬하기도 한다. 그리고 3개 국어(Zene?ize - 제노바 방언, 이탈리아어, 영어)를 유창하게 구사하고 일본어도 조금 할 줄 안다.
그녀에게 인사하고 싶다면 @doppiolash나 @shadercat으로 트윗을 보내면 된다.
홈페이지는 www.doppioslash.com이다.

옮긴이 최동훈
실무 경력 10년차 개발자, 프로그래밍 강사, IT 서적 번역가다. 과거에는 모바일 위주로 개발 했으나 현재는 주식회사 핀플레이에서 근무 중이다.
펼쳐보기

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

독자서평 쓰기 로그인을 하시면 독자서평을 쓰실 수 있습니다.
도서평점
내용
등록하기
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.
      영풍문고 네이버블로그 영풍문고 인스타그램
      맨위로가기