Axios 기반 주문 암호 보물 찾기

JavaScriptBeginner
지금 연습하기

소개

이 프로젝트에서는 Axios 를 사용하여 인증 헤더와 함께 요청을 보내고, 응답 데이터를 기반으로 DOM 을 업데이트하는 방법을 배우게 됩니다. 신비로운 주문의 일부를 얻기 위해 서버와 상호 작용하는 간단한 웹 애플리케이션을 구축할 것입니다.

👀 미리보기

웹 앱 상호 작용 미리보기

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • 프로젝트를 설정하고 초기 코드를 얻는 방법
  • "Key 1" 버튼의 기능을 구현하는 방법
  • "Key 2" 버튼의 기능을 구현하는 방법
  • 얻은 주문 부분을 기반으로 보물 상자를 열 수 있는지 확인하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • Axios 를 사용하여 사용자 정의 헤더와 함께 HTTP 요청을 보낼 수 있습니다.
  • 동적 콘텐츠를 표시하기 위해 DOM 을 조작할 수 있습니다.
  • 특정 조건을 확인하기 위해 조건부 로직을 구현할 수 있습니다.
  • 웹 개발 프로젝트를 완료하기 위해 단계별 지침을 따를 수 있습니다.

프로젝트 구조 설정

이 단계에서는 프로젝트 파일과 구조를 설정합니다. 이 단계를 완료하려면 아래 단계를 따르세요:

프로젝트 폴더를 엽니다. 디렉토리 구조는 다음과 같습니다:

├── css
├── lib
├── js
│   └── index.js
└── index.html

그 중:

  • index.html은 메인 페이지입니다.
  • css는 프로젝트 스타일을 저장하는 폴더입니다.
  • lib는 프로젝트의 JavaScript 종속성을 저장하는 폴더입니다.
  • js/index.js는 코드를 추가해야 하는 JavaScript 파일입니다.

WebIDE 의 오른쪽 하단 모서리에 있는 Go Live 버튼을 클릭하여 프로젝트를 실행합니다.

다음으로, VM 상단의 "Web 8080"을 열고 수동으로 새로 고쳐 페이지를 확인합니다.

✨ 솔루션 확인 및 연습

Key 1 버튼 구현

이 단계에서는 "Key 1" 버튼의 기능을 구현합니다.

  1. js/index.js 파일에서 key1Button.addEventListener("click", async () => { ... }) 블록을 찾습니다.

  2. let { data } = await axios.get("/spellone");을 다음 코드로 변경합니다:

    let { data } = await axios.get("/spellone", {
      headers: {
        Authorization: "2b58f9a8-7d73-4a9c-b8a2-9f05d6e8e3c7"
      }
    });

    이 코드 줄은 제공된 토큰으로 설정된 Authorization 헤더와 함께 /spellone 엔드포인트로 GET 요청을 보냅니다. 응답 데이터는 spell1 요소에 표시됩니다.

  3. js/index.js 파일을 저장합니다.

✨ 솔루션 확인 및 연습

Key 2 버튼 구현

이 단계에서는 "Key 2" 버튼의 기능을 구현합니다.

  1. js/index.js 파일에서 key2Button.addEventListener("click", async () => { ... }) 블록을 찾습니다.

  2. let { data } = await axios.get("/spelltwo");을 다음 코드로 변경합니다:

    let { data } = await axios.get("/spelltwo", {
      headers: {
        Authorization: "2b58f9a8-7d73-4a9c-b8a2-9f05d6e8e3c7"
      }
    });

    이 코드 줄은 제공된 토큰으로 설정된 Authorization 헤더와 함께 /spelltwo 엔드포인트로 GET 요청을 보냅니다. 응답 데이터는 spell2 요소에 표시됩니다.

  3. js/index.js 파일을 저장합니다.

✨ 솔루션 확인 및 연습

보물 상자 확인

이 단계에서는 보물 상자를 열 수 있는지 확인하는 로직을 구현합니다.

  1. js/index.js 파일에서 tryOpenTreasureBox() 함수를 찾습니다.
  2. 이 함수는 spell1spell2 요소의 내용이 예상 값 ("I love you" 및 "You love me too") 과 일치하는지 확인합니다. 조건이 충족되면 treasureBox 요소에 "opened" 클래스를 추가하고 성공 메시지를 표시합니다.
  3. js/index.js 파일을 저장합니다.
✨ 솔루션 확인 및 연습

애플리케이션 테스트

  1. 브라우저로 돌아가 페이지를 새로 고칩니다.
  2. "Key 1" 및 "Key 2" 버튼을 클릭하고 페이지의 변경 사항을 확인합니다.
  3. 보물 상자가 성공적으로 열리면 성공 메시지가 표시됩니다. 완료된 효과는 다음과 같습니다:
Completed Effect

축하합니다! "Mysterious Incantation" 프로젝트를 완료했습니다. Axios 를 사용하여 인증 헤더와 함께 요청을 보내는 방법과 응답 데이터를 기반으로 DOM 을 업데이트하는 방법을 배웠습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.