이제는 .svelte 파일 하나를 완전히 이해하는 힘이 필요합니다. 짧은 문장으로 컴포넌트의 뼈대를 정리하고, 실제 코드가 어떤 순서를 따르는지 확인합니다.
이번 글에서 새로 나오는 용어
.svelte파일: 스크립트·마크업·스타일을 한 문서 안에 모아둔 Svelte 전용 컴포넌트 파일입니다.- export let: 부모가 내려줄 값을 선언하는 구문으로, 기본값을 적어두면 빈 props에도 안전합니다.
- 블록 구조:
<script>, 마크업,<style>영역을 뜻하며 역할을 나눠 코드를 일정한 순서로 읽게 해 줍니다. - 상태(state): 화면에 그릴 데이터를 담은 변수로, 값이 바뀌면 컴포넌트가 자동으로 다시 렌더링됩니다.
개념
컴포넌트는 하나의 화면 조각입니다. 같은 조각을 복사해 카드나 공지 묶음을 빠르게 만들 수 있습니다. 상태(state)는 화면에 그릴 값이며 변수나 props로 표현됩니다. 상태가 바뀌면 화면이 새로 렌더링되어 입력 반응이 빨라집니다. 블록은 Svelte 파일을 나누는 영역입니다. <script>는 로직, 마크업은 HTML 구조, <style>은 디자인을 맡아 읽는 순서를 단순하게 유지합니다.
코드
세 블록을 모두 사용하는 프로젝트 카드 예제로 기본 패턴을 익힙니다.
<script>
export let title = "Daily Meal Checker";
export let summary = "급식 데이터와 알레르기 정보를 한 번에";
</script>
<article class="service-card">
<h3>{title}</h3>
<p>{summary}</p>
<a href="/projects/{title}" class="cta">프로토타입 열람</a>
</article>
<style>
.service-card { border: 1px solid #eee; padding: 1rem; border-radius: 12px; }
.cta { color: #0a7; font-weight: 600; }
</style>
읽는 순서는 간단합니다. 먼저 export let 구문으로 부모가 내려 줄 값을 확인합니다. 다음으로 마크업에서 그 값이 어디에 쓰이는지 살핍니다. 마지막으로 스타일에서 시각적 마감을 확인합니다. 이 순서를 습관화하면 나중에 페이지를 조립할 때도 길을 잃지 않습니다.
왜 중요한가
교내 데모데이 페이지처럼 반복되는 카드 레이아웃은 정확한 구조 이해가 필수입니다. 각 블록의 역할이 뚜렷하면 디자인 담당자와 개발자가 같은 파일을 함께 수정할 수 있습니다. 또한 상태 흐름을 먼저 찾는 습관은 다음 편의 props·이벤트, 이후 편의 페이지 데이터 로딩으로 자연스럽게 이어집니다.
실습
- 따라 하기: 위 예제를 작성하고 제목과 요약을 두 번 교체한다.
- 확장하기:
.cta링크에target="_blank"를 달아 새 창 테스트를 해 본다. - 디버깅: 제목이 비어 보이면
export let에 기본값을 넣었는지 확인한다. - 완료 기준: 서로 다른 카드 두 개가 리스트에 정상 렌더링된다.
마무리
Svelte 컴포넌트를 읽을 때는 상태→마크업→스타일 순서를 반복적으로 점검하면 됩니다. 다음 글에서는 이 구조를 이어 props와 이벤트 전달까지 연결해 봅니다.
💬 댓글
이 글에 대한 의견을 남겨주세요