본문 바로가기
스터디 열기

개념 사전

낯선 말이 나오면 뜻을 읽고 AI에게 말하기를 써 보세요. 지금 고치려는 화면과 연결하면 됩니다.

실습 요청은 프롬프트 모음, 오류는 막혔을 때로 갑니다.

찾는 말바로 가기
작업할 곳과 파일도구와 환경
HTML, CDN, Import Map, Vite웹 페이지
카메라, 메시, 모델, 애니메이션3D
조작, 충돌, 점수, 소리게임
인터넷 공개, 경로, 이용 조건배포와 공유

1. 도구와 환경

터미널

뜻: 글자로 명령을 입력하고 실행 결과를 읽는 창입니다.

만나는 곳: 1장 2절의 선택 경로입니다. 기본 실습에서는 Code 탭의 Claude에게 실행을 요청합니다.

AI에게 말하기: “이 프로젝트를 실행해줘. 터미널을 직접 써야 한다면 어느 폴더에서 어떤 명령을 입력하는지도 알려줘.”

에디터와 IDE

뜻: 에디터는 코드 파일을 읽고 고치는 도구이고, IDE는 편집·실행·오류 추적 같은 개발 기능을 한곳에 모은 환경입니다.

만나는 곳: 1장 2절의 선택 도구인 VS Code입니다. 기본 실습은 Code 탭에서 진행합니다.

AI에게 말하기: “Claude Desktop의 Code 탭에서 이 폴더를 열었어. 여기 있는 파일로 작업을 이어가자.”

프로젝트 폴더

뜻: 결과물 하나에 필요한 코드·이미지·모델·설정을 모아 둔 폴더입니다. 작품 하나의 재료 상자입니다.

만나는 곳: 2장 4절의 상품 페이지와 3장 4절의 게임입니다.

AI에게 말하기: “지금 열린 프로젝트 폴더를 확인하고, 실행에 필요한 파일이 어디 있는지 알려줘.”

localhost

뜻: 지금 브라우저를 사용하는 컴퓨터 자신을 가리키는 이름입니다. http://localhost:5173은 내 컴퓨터의 5173번 창구입니다. http://127.0.0.1:5173도 같은 뜻입니다.

만나는 곳: 2장 4절부터 사용합니다. 안내받은 주소와 포트를 엽니다. 친구에게는 배포한 공개 주소를 보냅니다.

AI에게 말하기: “실행한 화면을 localhost에서 열 수 있게 해주고, 내가 누를 정확한 주소를 알려줘.”

2. 웹 페이지

HTML 파일

뜻: 제목·문단·버튼처럼 웹페이지의 내용과 구조를 적는 파일입니다. 페이지의 뼈대이며, CSS로 모양을 꾸미고 JavaScript로 동작을 붙입니다.

만나는 곳: 1장 3절의 카드입니다. 따로 받은 그림은 HTML과 같은 폴더에 둡니다.

AI에게 말하기: “HTML 파일 하나로 만들어줘. 이미지가 따로 필요하다면 같이 보관할 파일도 알려줘.”

index.html

뜻: 웹사이트의 첫 페이지에 흔히 쓰는 파일 이름입니다.

만나는 곳: 1장 3절에서 저장하고 2장 5절에서 배포합니다. 파일 이름이 index.html.txt나 index.html.html로 저장되지 않았는지 확인합니다.

AI에게 말하기: “폴더 맨 위의 첫 페이지 이름이 정확히 index.html인지 확인해줘.”

라이브러리

뜻: 다른 프로그램에서도 가져다 쓸 수 있도록 묶은 기능 모음입니다.

만나는 곳: 2장 1절의 Three.js입니다. 3D를 그리는 기능을 쓰고 점수·시간 규칙은 따로 만듭니다.

AI에게 말하기: “3D 화면은 Three.js로 만들고, 감귤을 모으면 점수가 오르는 규칙도 연결해줘.”

CDN

뜻: 라이브러리 같은 파일을 인터넷 주소로 받아 쓰도록 제공하는 배포망입니다.

만나는 곳: 2장 2절의 빌드 없는 HTML 방식입니다. 완성본은 CDN의 Three.js를 읽으므로 인터넷 연결이 필요합니다.

AI에게 말하기: “Three.js 0.186.1을 jsDelivr CDN에서 불러와줘. 추가 기능도 같은 버전과 CDN을 써줘.”

Import Map

뜻: three 같은 짧은 모듈 이름을 실제 파일 주소에 연결하는 표입니다. 이름을 보고 배달할 주소를 찾는 주소록입니다.

만나는 곳: 2장 2절의 Three.js·OrbitControls입니다. 모듈 코드보다 먼저 두고 본체·추가 기능을 같은 버전으로 연결합니다.

AI에게 말하기: “Import Map에 three 본체와 three/addons/ 경로를 연결하고 둘 다 0.186.1로 맞춰줘.”

캔버스

뜻: JavaScript로 그림을 그리는 HTML 요소입니다. 이 교재에서는 3D 장면이 나타나는 도화지입니다.

만나는 곳: 2장 2절의 카드 위 3D 영역입니다. 비어 있다면 크기와 렌더링 오류를 봅니다.

AI에게 말하기: “3D 캔버스가 카드 너비에 맞고, 창 크기를 바꿔도 도형이 찌그러지지 않게 해줘.”

왜 환경을 지정하나요

뜻: 같은 결과물도 파일을 묶고 실행하는 방법이 여러 가지라서, 지금 사용할 방법을 AI와 맞추는 것입니다.

만나는 곳: 2장 2절은 채팅의 한 파일 미리보기, 2장 4절은 Code 탭의 Vite 프로젝트입니다. 모델 파일이 생기면 Code 탭의 프로젝트 폴더로 옮깁니다.

AI에게 말하기: “이번에는 빌드 없는 HTML 파일 하나로 만들어줘.” 또는 “Code 탭에서 열린 폴더에 Vite 프로젝트로 만들어줘.”

Vite와 빌드

뜻: Vite는 개발 화면을 띄우고 배포용 파일을 만드는 도구입니다. 빌드는 작업 중인 재료를 공개할 파일 묶음으로 준비하는 과정입니다.

만나는 곳: 2장 4절과 3장 4절입니다. dev는 개발 화면, build는 dist/ 생성, preview는 빌드한 결과 확인입니다.

AI에게 말하기: “지원되는 Node 버전을 확인한 뒤 실행해줘. 개발 화면과 빌드한 결과에서 모델이 모두 보이는지도 확인해줘.”

콘솔과 오류 메시지

뜻: 콘솔은 프로그램이 남긴 기록을 읽는 창이고, 오류 메시지는 실패한 작업에 관한 단서입니다.

만나는 곳: 2장 4절과 막혔을 때입니다. 브라우저 Console인지 명령 실행 기록인지 함께 전달합니다.

AI에게 말하기: “localhost에서 열었을 때 브라우저 Console에 나온 첫 오류야. 이 원문을 보고 원인을 찾아줘: [오류 붙여넣기]”

3. 3D

장면과 카메라를 바꾸면 렌더러가 그리는 캔버스의 모습이 달라집니다.

WebGL

뜻: 브라우저에서 GPU를 이용해 그래픽을 그리도록 하는 API입니다.

만나는 곳: 2장 1절입니다. 이 책의 완성본은 WebGLRenderer를 쓰며 WebGL 2 지원이 필요합니다.

AI에게 말하기: “이 브라우저에서 WebGL 2를 사용할 수 있는지 확인하고, 사용할 수 없으면 이해할 수 있는 안내를 보여줘.”

장면 카메라 렌더러

뜻: 장면은 물체가 놓이는 공간, 카메라는 보는 위치와 범위, 렌더러는 그 둘을 받아 화면을 그리는 도구입니다.

만나는 곳: 2장 3절의 3D 화면 실험입니다. 원근 카메라를 물체에서 멀리 옮기면 작게 보입니다.

AI에게 말하기: “원근 카메라를 조금 뒤로 옮겨서 한라봉 전체가 화면 안에 들어오게 해줘.”

메시 지오메트리 머티리얼

뜻: 메시는 지오메트리와 머티리얼을 결합한 3D 물체입니다. 지오메트리는 모양, 머티리얼은 색·금속성 같은 표면 특성이며, 몸과 옷에 비유할 수 있습니다.

만나는 곳: 2장 3절에서 모양과 재질을 따로 바꿉니다.

AI에게 말하기: “지오메트리만 구로 바꾸고 재질은 유지해줘.” 또는 “모양은 두고 머티리얼만 보라색 금속으로 바꿔줘.”

조명

뜻: 장면 속 표면을 비추는 빛입니다.

만나는 곳: 2장 3절의 조명 실험입니다. MeshStandardMaterial은 조명의 영향을 받지만 MeshBasicMaterial은 받지 않습니다. 금속 재질은 반사할 환경에 따라서도 모습이 달라집니다.

AI에게 말하기: “한라봉의 주황색과 입체감이 보이도록 조명과 노출을 조정해줘.”

애니메이션 루프

뜻: 물체의 위치·회전 등을 갱신하고 화면을 반복해서 그리는 흐름입니다. 조금씩 다른 그림을 넘기는 플립북과 비슷합니다.

만나는 곳: 2장 3절의 회전 실험입니다. 기기마다 그리는 횟수가 달라서 움직이는 양은 지난 시간으로 계산합니다.

AI에게 말하기: “자동 회전만 멈추고 드래그 조작은 유지해줘.” 또는 “화면 갱신 속도가 달라도 같은 시간에 같은 만큼 회전하게 해줘.”

좌표와 크기

뜻: 좌표는 물체의 위치를, 크기는 물체가 차지하는 범위를 나타냅니다.

만나는 곳: 2장 4절에서 모델을 가운데 맞추고 3장 4절에서 라이캣의 발을 바닥에 맞춥니다. 이 게임은 Y축을 높이, X·Z 평면을 이동할 바닥으로 사용합니다.

AI에게 말하기: “모델의 중심과 전체 크기를 계산해서 화면에 맞춰줘.” 또는 “캐릭터의 발이 바닥에 닿도록 높이를 맞춰줘.”

glTF와 GLB

뜻: glTF는 3D 장면·재질·동작 등을 전달하는 형식이고, GLB는 이를 담는 바이너리 컨테이너입니다.

만나는 곳: 2장 4절의 한라봉과 3장 2절의 라이캣입니다. 필요한 외부 파일·압축 디코더와 동작 목록은 파일마다 확인합니다.

AI에게 말하기: “이 GLB에 필요한 외부 파일과 디코더가 있는지 확인하고, 애니메이션 이름도 알려줘.”

리깅과 애니메이션

뜻: 리깅은 모델을 움직일 뼈대와 연결을 준비하는 작업이고, 애니메이션은 시간에 따른 동작입니다.

만나는 곳: 3장 2절의 재료 확인과 3장 4절의 걷기입니다. 제공한 라이캣은 스킨 뼈대 변형 대신 팔·다리 그룹을 회전하며, GLB 안에 Idle·Walk 클립이 들어 있습니다.

AI에게 말하기: “GLB 안의 애니메이션 목록을 먼저 확인해줘. Idle과 Walk가 있다면 멈출 때와 걸을 때 전환해줘.”

4. 게임

입력 처리

뜻: 키보드·마우스·터치의 동작을 읽어 게임 행동으로 연결하는 일입니다.

만나는 곳: 3장 4절의 WASD·방향키와 3장 6절의 가상 조이스틱입니다. 떼기·취소·창 이탈 때도 멈추는지 봅니다.

AI에게 말하기: “키를 떼거나 조이스틱 터치를 취소하면 캐릭터가 멈추게 해줘. 창 밖으로 나갔다 돌아와도 입력이 남으면 안 돼.”

충돌 판정

뜻: 두 물체가 닿았거나 정해 둔 거리 안에 들어왔는지 계산하는 일입니다.

만나는 곳: 3장 4절의 장애물과 3장 5절의 감귤 획득입니다. 실제로 가까이 가 보며 판정 범위를 맞춥니다.

AI에게 말하기: “감귤 획득 범위를 조금 넓혀줘. 나무를 통과하지 못하는 판정은 유지해줘.”

상태

뜻: 지금 게임이 어느 단계이며 어떤 값을 갖는지 나타내는 정보입니다.

만나는 곳: 3장 5절입니다. 완성본은 ready·playing·clear·gameover를 구분하고, 점수·남은 시간·수집한 감귤도 관리합니다. 시작·종료 화면에서는 이동과 획득을 막습니다.

AI에게 말하기: “playing 상태에서만 이동·획득·타이머가 진행되고, 성공 화면에서는 멈추게 해줘.”

게임 루프

뜻: 입력을 읽고, 이동과 규칙을 갱신하고, 화면을 그리는 과정을 반복하는 흐름입니다.

만나는 곳: 3장 4절과 3장 5절입니다. 다시하기에서도 반복 흐름이 하나만 도는지 봅니다.

AI에게 말하기: “다시하기에서 게임 루프나 타이머를 하나 더 만들지 않고, 상태와 시작 시각을 초기화하게 해줘.”

자동재생 정책

뜻: 브라우저가 사용자 동작 없이 시작하는 소리 재생 등을 제한하는 규칙입니다.

만나는 곳: 3장 5절의 시작 버튼입니다. 버튼을 누를 때 재생을 요청하고 거절돼도 게임은 계속되게 만듭니다.

AI에게 말하기: “시작 버튼을 누를 때 음악을 재생하고, 재생 실패는 처리해줘. 소리 켜기·끄기도 제공해줘.”

5. 배포와 공유

배포

뜻: 만든 파일을 호스팅 서비스에 올려 다른 사람이 주소로 접속하게 하는 일입니다.

만나는 곳: 2장 5절과 3장 6절입니다. 위니버시티에 폴더·ZIP을 올리면 갤러리에도 공개됩니다.

AI에게 말하기: “위니버시티에 올릴 폴더를 점검하고, 공개 주소에서 확인할 동작을 알려줘.”

정적 사이트

뜻: 준비된 HTML·CSS·JavaScript·이미지 등을 받아 브라우저가 표시하고 실행하는 사이트입니다. 미리 만든 파일을 꺼내 보여 주는 진열장에 비유할 수 있습니다.

만나는 곳: 2장 5절의 페이지와 3장 6절의 게임입니다. 이 예제들은 별도 서버 프로그램 없이 파일을 올려도 회전·수집·소리가 동작합니다.

AI에게 말하기: “이 프로젝트가 정적 사이트로 배포되는지 확인하고, 배포에 포함할 파일을 알려줘.”

base 경로

뜻: 배포한 사이트가 시작되는 기본 URL 경로입니다.

만나는 곳: 2장 5절의 GitHub Pages 대안입니다. https://이름.github.io/my-game/은 보통 /my-game/, 도메인의 루트에서 여는 사이트는 보통 /를 사용합니다. 모델 주소에도 맞는 경로 처리가 필요합니다.

AI에게 말하기: “배포 주소가 /my-game/에서 시작해. Vite base와 GLB·소리 주소를 함께 맞추고 빌드 결과를 확인해줘.”

CI/CD

뜻: 변경을 모아 검사·빌드하고 배포까지 이어 주는 자동화 과정입니다.

만나는 곳: 2장 5절의 GitHub Actions 대안입니다. 빌드·배포가 성공하면 공개 주소에 반영됩니다.

AI에게 말하기: “main에 push하면 검사·빌드·Pages 배포가 이어지게 설정하고, 실패했을 때 읽을 로그 위치도 알려줘.”

라이선스

뜻: 만든 사람이 다른 사람에게 허용한 이용 범위와 조건입니다.

만나는 곳: 3장 2절과 완성본과 재료 내려받기입니다. 무료 다운로드·공개·상업 이용·원본 재배포는 각각 조건을 봅니다.

AI에게 말하기: “에셋출처.md를 읽고 파일별 제작자·출처·라이선스·변경 사항을 정리해줘. 확인되지 않은 이용 권한은 있다고 적지 마.”

참고 자료