소개
이 프로젝트에서는 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" 버튼의 기능을 구현합니다.
js/index.js파일에서key1Button.addEventListener("click", async () => { ... })블록을 찾습니다.let { data } = await axios.get("/spellone");을 다음 코드로 변경합니다:let { data } = await axios.get("/spellone", { headers: { Authorization: "2b58f9a8-7d73-4a9c-b8a2-9f05d6e8e3c7" } });이 코드 줄은 제공된 토큰으로 설정된
Authorization헤더와 함께/spellone엔드포인트로 GET 요청을 보냅니다. 응답 데이터는spell1요소에 표시됩니다.js/index.js파일을 저장합니다.
Key 2 버튼 구현
이 단계에서는 "Key 2" 버튼의 기능을 구현합니다.
js/index.js파일에서key2Button.addEventListener("click", async () => { ... })블록을 찾습니다.let { data } = await axios.get("/spelltwo");을 다음 코드로 변경합니다:let { data } = await axios.get("/spelltwo", { headers: { Authorization: "2b58f9a8-7d73-4a9c-b8a2-9f05d6e8e3c7" } });이 코드 줄은 제공된 토큰으로 설정된
Authorization헤더와 함께/spelltwo엔드포인트로 GET 요청을 보냅니다. 응답 데이터는spell2요소에 표시됩니다.js/index.js파일을 저장합니다.
보물 상자 확인
이 단계에서는 보물 상자를 열 수 있는지 확인하는 로직을 구현합니다.
js/index.js파일에서tryOpenTreasureBox()함수를 찾습니다.- 이 함수는
spell1및spell2요소의 내용이 예상 값 ("I love you" 및 "You love me too") 과 일치하는지 확인합니다. 조건이 충족되면treasureBox요소에 "opened" 클래스를 추가하고 성공 메시지를 표시합니다. js/index.js파일을 저장합니다.
애플리케이션 테스트
- 브라우저로 돌아가 페이지를 새로 고칩니다.
- "Key 1" 및 "Key 2" 버튼을 클릭하고 페이지의 변경 사항을 확인합니다.
- 보물 상자가 성공적으로 열리면 성공 메시지가 표시됩니다. 완료된 효과는 다음과 같습니다:

축하합니다! "Mysterious Incantation" 프로젝트를 완료했습니다. Axios 를 사용하여 인증 헤더와 함께 요청을 보내는 방법과 응답 데이터를 기반으로 DOM 을 업데이트하는 방법을 배웠습니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



