포스트 카드 HTML — 더미 데이터로 먼저 만들기

props를 연결하기 전에, 구조부터 확실히 완성합니다

10초 핵심 요약

01

왜 데이터 연결 없이 먼저 만들까

카드 구조(HTML)와 실제 데이터 연결을 동시에 하면, 뭔가 안 됐을 때 둘 중 어디가 문제인지 알 수 없습니다. 배우가 대사와 동선을 동시에 처음 맞추면 실수가 어디서 났는지 모르는 것과 같습니다. 먼저 대사(구조)만 완벽히 외운 뒤, 그다음 실제 데이터를 연결합니다.

이렇게 하면 오류 지점이 항상 둘 중 하나로 좁혀집니다: "구조가 잘못됐나" 또는 "데이터 연결이 잘못됐나."

02

카드의 뼈대 — 시맨틱 구조 + BEM

포스트 카드 하나는 "글 한 편"이므로 <article>이 적절합니다. 내부는 이미지·제목·요약·날짜로 구성합니다.

<article class="post-card">
  <figure class="post-card__thumb">
    <img src="dummy.jpg" alt=""> // REPLACE: props.thumbnail
  </figure>
  <header>
    <h3 class="post-card__title">더미 포스트 제목입니다</h3> // REPLACE: props.title
  </header>
  <p class="post-card__summary">더미 요약 텍스트입니다.</p> // REPLACE: props.summary
  <footer><time>2026.07.13</time></footer> // REPLACE: props.date
</article>
실전 적용// REPLACE: 이름 주석을 미리 달아두면, Day 10에서 실제 값으로 바꿔치기할 때 Ctrl+F로 REPLACE만 검색해도 빠뜨리는 곳 없이 순서대로 처리할 수 있습니다.
03

클래스명은 왜 이렇게 길까 — BEM

.post-card__title처럼 밑줄 두 개(__)로 이어 쓰는 방식을 BEM이라고 합니다. 이름이 길고 번거로워 보이지만, 다른 컴포넌트의 CSS와 이름이 겹칠 확률을 크게 줄여줍니다.

Block

Block.post-card, 덩어리 전체

Element

Element.post-card__title, 덩어리 안의 부품

Modifier

Modifier.post-card--featured, 특별 버전(강조 카드)

04

오늘의 실습

1src/components/PostCard.astro를 만들고 위 카드 구조를 그대로 붙여넣습니다.
2아무 페이지에서나 이 컴포넌트를 3번 반복 배치해 더미 카드 3개가 어떻게 보이는지 확인합니다.
3Day 6에서 만든 .post-list Grid로 카드 3개를 감싸 목록 형태로 만들어봅니다.
이 습관을 들이세요: 새 컴포넌트를 만들 때마다 "먼저 더미 데이터로 구조 확인 → 문제없으면 그때 실제 데이터 연결" 순서를 지키면, 어디가 문제인지 훨씬 빨리 찾을 수 있습니다.
05

Day 9 완료 체크리스트

더미 포스트 카드 컴포넌트를 만들어 3개 반복 배치해봤다.
각 데이터 교체 예정 자리에 REPLACE 주석을 달았다.
BEM 네이밍(Block/Element/Modifier)의 목적을 설명할 수 있다.
스스로 설명해보기 — 실제 데이터를 연결하기 전에 더미 데이터로 구조부터 완성하는 이유를 설명할 수 있나요?

오늘의 용어

BEM
클래스 이름 짓는 규칙. 이름 충돌을 막아주는 네이밍 방식
Block
덩어리 전체 (예: .card)
Element
덩어리 안의 부품 (예: .card__title)
Modifier
특별판 (예: .card--featured)
더미 데이터
실제 데이터 연결 전, 구조 확인용으로 넣는 가짜 텍스트