카테고리 없음

[TIL] 프론트와 API 연동 | 맛집 리스트

mooncommit 2026. 3. 10. 21:56
맛집 리스트
" 오늘 뭐 먹지? "

 

index.html

<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8">
  <title>오늘 뭐 먹지?</title>
  <link rel="stylesheet" href="style.css">
</head>

<body>
<header>
  <h1>오늘 뭐 먹지?</h1>
  <p>나의 소중한 맛집 기록장</p>
</header>

<main>
  <section id="add-place">
    <h2>맛집 추가하기</h2>
    <form id="place-form">
      <input type="text" placeholder="가게 이름" required>
      <input type="text" placeholder="가게 종류" required>
      <input type="file" accept="image/*">
      <button type="submit">추가</button>
    </form>
  </section>

  <section id="place-list">
    <h2>맛집 리스트</h2>
    <ul>
    </ul>
  </section>
</main>

<footer>
  <p>&copy; 2026 오늘 뭐 먹지?</p>
</footer>

<script src="app.js"></script>
</body>
</html>

 

HTML 구조와 역할
더보기
  • header : 페이지 제목과 설명
  • main : [맛집 추가 폼 add-place] - 사용자가 가게 이름, 종류, 이미지를 입력
  • [맛집 리스트 place-list] - javascript가 API 데이터를 받아 카드 형태로 화면에 표시
  • footer : 나만의 저작권 정보 표시
  • 스크립트 연결 app.js : 페이지가 열리면 js가 실행되어 동적으로 데이터 추가/렌더링

css는 AI를 적극 활용하여 생성(생략)

 

app.js

document.addEventListener("DOMContentLoaded", () => {
    console.log("JS 실행됨");
    const placeList = document.querySelector("#place-list ul");
    const MOCK_URL = "https://3061e7c9-c10b-4860-a129-cbdb7bd34eab.mock.pstmn.io/places";
    fetch(MOCK_URL)
        .then(response => response.json())
        .then(data => {

            data.forEach(place => {

                const card = document.createElement("li");

                card.innerHTML = `
        <div>
          <h3>${place.name}</h3>
          <p>📍 ${place.address}</p>
          <p>📞 ${place.call}</p>
          <p>🍴 ${place.category}</p>
          <p>⭐ ${place.rating}</p>
        </div>
        `;

                placeList.appendChild(card);

            });

        });

});
더보기
  • fetch(MOCK_URL)
    .then(response => response.json())
  • 서버에서 JSON 형식의 맛집 정보를 받아온다.
  • 받은 데이터 하나씩 카드로 만들기
  • 이름, 주소, 전화번호, 종류, 평점을 <li> 카드로 만들어서 ul에 추가

느낀점

오늘 처음으로 Postman을 이용해 맛집 정보를 조회하도록 JavaScript를 활용해 코딩해보았다.
초반에는 이해가 잘 되지 않아 2시간 정도 막혔지만, 튜터님께 질문하고 강의를 차근차근 따라가면서 흐름을 어느 정도 이해할 수 있었다.
내일은 JavaScript를 코드에 더 정확하게 활용하는 방법을 학습할 계획이다!