Spirit of Kiro 개발 환경 설정¶
로컬 개발 환경 설정¶
먼저 AWS 계정에 연결된 게임 클라이언트 및 서버의 로컬 사본을 시작해야 합니다. 이렇게 하면 Kiro를 사용하여 코드베이스를 수정할 때 변경 사항이 실제로 작동하는지 확인할 수 있습니다.
1
리포지토리 클론¶
오픈 소스 코드 리포지토리를 클론하고 challenge 브랜치로 전환합니다:
bash
git clone git@github.com:kirodotdev/spirit-of-kiro.git cd spirit-of-kiro/ git checkout challenge
클론 후 프로젝트를 이해하기 위해 몇 가지 주요 파일을 확인하세요:
architecture.md- 아키텍처 개요appsec-overview.md- 게임의 특정 구성 요소가 어떻게 연결되는지에 대한 세부 정보
2
사전 요구 사항 종속성¶
다음 종속성이 설치되어 있어야 합니다:
- Docker Desktop 또는 Podman (권장).
- AWS 설정:
- 다음 중 하나 이상에 대한 AWS Bedrock 모델 액세스:
- Amazon Nova Pro
- Anthropic Claude Sonnet 3.7
- Anthropic Claude Sonnet 4
3
종속성 확인¶
종속성 확인 스크립트를 실행하여 모든 것이 올바르게 설정되었는지 확인합니다:
sh
./scripts/check-dependencies.sh

4
Cognito 사용자 풀 배포¶
인증을 위해 Amazon Cognito 사용자 풀을 배포합니다 (AWS 프리 티어에서 사용 가능):
bash
./scripts/deploy-cognito.sh game-auth
정보
'game-auth'를 사용자 정의 CloudFormation 스택 이름으로 대체할 수 있습니다.

5
빌드 및 실행¶
Docker 또는 Podman을 사용하여 게임 스택을 빌드하고 실행합니다:
bash
podman compose build && podman compose up \ --watch \ --remove-orphans \ --timeout 0 \ --force-recreate
이 명령을 처음 실행하면 몇 분이 걸릴 수 있습니다. 이후 실행은 몇 초 안에 완료됩니다.
![[alt !!alt]](https://kiro.dev/images/video-game-guide/build-and-run.gif?h=9bb231bf)
팁
Podman을 처음 사용하는 경우 Podman을 사용하기 전에 podman machine init && podman machine start를 실행해야 합니다.
완료 후 컨테이너 인터페이스에서 실행 중인 게임 컨테이너를 볼 수 있습니다. 다음 예는 Podman UI를 보여줍니다: ![[alt !!alt]](https://kiro.dev/images/video-game-guide/podman.png?h=b0ec24dd)
Control + C 또는 Command + C를 사용하여 전체 스택을 중지할 수 있습니다.
정보
Podman을 사용할 때 일부 운영 체제에서는 시스템 슬립 시 가상 머신에서 시간 동기화 문제가 발생할 수 있습니다. 이로 인해 애플리케이션이 AWS와 통신하는 데 문제가 발생합니다. 이 문제가 발생하면 다음 명령으로 수정할 수 있습니다:
sh
podman machine ssh sudo systemctl restart chronyd.service
6
데이터베이스 부트스트랩¶
스택이 로컬로 실행되면 DynamoDB local도 실행됩니다. 이는 DynamoDB AWS 서비스를 모방하지만 로컬 머신에서 실행되는 특수 컨테이너입니다. 게임은 이 DynamoDB 컨테이너에 여러 테이블이 생성될 것으로 예상합니다.
게임 스택이 계속 실행되는 동안 새 터미널을 열고 다음 명령을 사용하여 필요한 테이블을 자동으로 생성합니다:
sh
podman exec server mkdir -p /app/server/iac && podman cp scripts/bootstrap-local-dynamodb.js server:/app/ && podman cp server/iac/dynamodb.yml server:/app/server/iac/ && podman exec server bun run /app/bootstrap-local-dynamodb.js
![[alt !!alt]](https://kiro.dev/images/video-game-guide/create-tables.gif?h=b19aa5ff)
정보
DynamoDB 데이터베이스는 docker/dynamodb/shared-local-instance.db 파일에 저장되어 재시작 시에도 유지됩니다. 데이터베이스를 지우거나 테이블 구조를 변경하려면 이 파일을 삭제하고 게임 스택을 재시작한 다음 이 데이터베이스 부트스트랩 명령을 다시 실행하세요.
7
테스트¶
모든 것이 제대로 작동하는지 확인할 시간입니다. 먼저 다음 명령을 시도하여 게임 서버가 로컬에서 실행 중인지 확인합니다:
sh
curl localhost:8080
OK 응답이 표시되어야 합니다.
다음으로 웹 브라우저를 열고 주소 표시줄에 다음 주소를 입력합니다:
localhost:5173
게임 클라이언트의 홈페이지가 표시됩니다. 계정을 만들고 플레이를 시작하세요.
게임 가이드¶
게임에서 시도해볼 수 있는 기본 사항:
WASD로 이동,E로 상호작용- 빨간색 "PULL" 레버를 사용하여 무작위 아이템 가져오기
- E로 아이템을 집어서 들고 다니기. T로 들고 있는 아이템 던지기. 힌트: 아이템을 하단의 문 밖으로 던질 수 있습니다.
- 아이템을 작업대로 가져가서 E를 사용하여 작업대에 올려놓기. 아이템을 드래그하여 뒷면의 도구 벽으로 이동하거나 하단의 작업 영역으로 이동. 도구 벽의 아이템을 클릭하여 "quirk" 중 하나를 시전한 다음 "quirk"의 대상을 하나 이상 선택. 도구와 대상 모두 quirk에 따라 변환됩니다. 이것으로 창의력을 발휘하세요. 거의 무한한 가능성이 있으며 정말 기괴한 것을 만들 수 있습니다.
- 아이템을 부수거나 자르거나 조각으로 나누고 작업대의 작업 영역에 많은 아이템이 있으면 넘쳐서 작업대 주변 바닥으로 떨어집니다. 바닥이 너무 지저분해지지 않도록 하세요!
- 상자는 아이템이 너무 많을 때 보관용입니다.
- 아이템을 하단의 문 밖으로 던지면 상점 주인이 판단하고 돈을 받습니다. 그는 재미있고, 특이하고, 상태가 좋거나, 희귀한 수집품처럼 보이는 아이템을 좋아합니다.
- 컴퓨터는 자신과 다른 플레이어가 버리거나 감정사에게 준 아이템을 보여줍니다. 이것은 다른 플레이어로부터 간접적으로 구매하거나 잃어버린 것을 다시 구매할 수 있는 무작위 "상점" 역할을 합니다.
게임 플레이를 마치셨나요? 첫 번째 작업을 시작해봅시다: