사용자가 턴제 전략 게임, Nim을 플레이할 수 있는 온라인 애플리케이션을 구축한다고 가정합니다. Nim에는 3개의 객체 힙이 있습니다. 2명의 플레이어가 턴을 바꾸며 하나의 더미에서 여러 객체를 제거합니다. 게임의 목표는 상대 플레이어가 마지막 객체를 제거하게 하는 것입니다.

애플리케이션의 일부로 기존 게임의 상태를 저장해야 합니다. 또한 게임의 여러 시점에서 사용자에게 알림을 제공해야 합니다. 새 게임에 사용자를 초대할 때, 플레이할 차례가 돌아왔을 때, 그리고 승자가 결정되었을 때 알림을 제공합니다.

이 실습에서는 Amazon DynamoDBAmazon SNS를 사용하여 이러한 요구 사항을 처리하는 방법을 학습합니다. Amazon DynamoDB는 턴 사이에서 지속될 수 있도록 기존 게임의 상태를 저장하는 데 사용됩니다. Amazon SNS는 게임의 주요 시점에서 플레이어에게 알림을 제공하는 데 사용됩니다.

모듈 1에서는 환경을 구성하고 실습 중에 사용하는 코드를 다운로드합니다.

모듈 완료 시간: 20분

 


  • 1단계: AWS 계정 생성

    개인 AWS 계정을 사용하거나 이 실습을 위해 새 AWS 계정을 생성합니다. 필요한 서비스에 대한 전체 액세스를 이용하고 실습에서 사용한 리소스를 남겨 두지 않도록 조직 계정은 사용하지 마십시오. 작업을 마친 후 이 실습에서 사용한 리소스를 삭제하지 않는 경우 AWS 요금이 청구될 수 있습니다.

  • 2단계: AWS Cloud9 IDE 설정

    AWS Cloud9은 브라우저만으로 코드를 작성, 실행 및 디버깅할 수 있는 클라우드 기반 IDE(통합 개발 환경)입니다. AWS Cloud9은 코드 편집기, 디버거 및 터미널을 포함합니다. 또한 널리 사용되는 프로그래밍 언어를 위한 핵심 도구도 사전에 패키지로 제공하며, AWS Command Line Interface(CLI)도 사전에 설치되었으므로, 이 실습을 위해 파일을 설치하거나 랩톱을 구성하지 않아도 됩니다. AWS Cloud9 환경은 AWS Management Console에 로그인한 사용자와 동일한 AWS 리소스에 액세스합니다.

    AWS Cloud9 개발 환경을 설정하려면 다음을 수행합니다.

    1. AWS Management Console로 이동하고 페이지 맨 위에서 [Services(서비스)]를 선택하고 [Developer Tools(개발자 도구)] 아래에서 Cloud9을 선택합니다.
    2. [Create environment(환경 생성)]를 선택합니다.
    3. [Name(이름)] 상자에 Turn-based game을 입력합니다. [Description(설명)] 상자는 빈 상태로 둡니다.
    4. [Next step(다음 단계)]을 선택합니다.
    5. [Environment settings(환경 설정)]를 기본값으로 두고 새 t2.micro EC2 인스턴스를 생성합니다. 30분 동안 활동이 없으면 최대 절전 모드가 설정됩니다.
    6. [다음 단계]를 선택합니다.
    7. 환경 이름 및 설정을 검토하고 [Create environment(환경 생성)]를 선택합니다. 몇 분 후에 환경이 프로비저닝 및 준비됩니다.
    8. 환경이 준비되면 환영 메시지와 함께 IDE가 열립니다.

    이제 AWS Cloud9 환경을 볼 수 있습니다. 다음 스크린샷에 표시된 AWS Cloud9 콘솔의 3개 영역에 친숙해야 합니다.

    • 파일 탐색기: IDE 왼쪽에 있는 파일 탐색기는 디렉터리의 파일 목록을 표시합니다.
    • 파일 편집기: IDE 오른쪽 상단에 있는 파일 편집기에서는 파일 탐색기에서 선택한 파일을 보고 편집할 수 있습니다.
    • 터미널: IDE 오른쪽 하단에서는 코드 샘플을 실행할 명령을 실행할 수 있습니다.

    (확대하려면 클릭)

  • 3단계: 지원 코드 다운로드

    이 실습에서는 JavaScript를 사용하여 Amazon DynamoDB 데이터베이스 및 Amazon SNS와 상호 작용합니다. AWS Cloud9 터미널에서 다음 명령을 실행하여 이 모듈 코드를 다운로드하고 압축을 풉니다.

    cd ~/environment
    curl -sL http://d118jxrmrxsq90.cloudfront.net/turn-based.tar | tar -xv
    

    AWS Cloud9 터미널에서 다음 명령을 실행하여 디렉터리를 봅니다.

    ls

    AWS Cloud9 파일 탐색기에서 2개의 디렉터리를 확인할 수 있습니다.

    • application: application 디렉터리는 턴제 게임 애플리케이션에 대한 코드 예제를 포함합니다. 이 코드는 실제 턴제 게임 애플리케이션 백엔드에 있는 코드와 비슷합니다.
    • scripts: scripts 디렉터리는 AWS 리소스 생성 또는 데이터베이스로 데이터 로드와 같은 관리자 수준의 스크립트를 포함합니다.

    AWS Cloud9 터미널에서 다음 명령을 실행하여 두 디렉터리에 대한 종속성을 설치합니다.

    npm install --prefix scripts/ && npm install --prefix application

    AWS Cloud9 터미널에서 다음 명령을 실행하여 환경 파일에서 AWS 리전을 설정합니다. 이 예제에서는 us-east-1을 사용하지만, 실습에서 사용할 원하는 AWS 리전을 입력합니다.

    echo "export AWS_REGION=us-east-1" >> env.sh && source env.sh

    env.sh 파일을 사용하여 리소스의 환경 변수 및 이 실습에 필요한 다른 파라미터를 저장합니다. 이 실습 중에 잠시 쉬면서 AWS Cloud9 환경에서 새 세션을 시작하는 경우 터미널에서 다음 명령을 실행하여 환경 변수를 다시 로드해야 합니다.

    source env.sh

이 모듈에서는 이 실습에서 구축한 애플리케이션 예제에 대해 학습했습니다. AWS 계정을 설정하고 AWS Cloud9 인스턴스도 구성했습니다.

이제 실습을 시작할 준비를 마쳤습니다. 다음 모듈에서는 Amazon DynamoDB 데이터베이스를 프로비저닝합니다.