Svelte · 03 $state 객체의 변경 경로
단계: 컴파일과 runes 기초 · 외부 실행 예제 · 미리보기 안내 · 저장 ID: svelte-step-03
목표와 학습 후 역량
- 카드와 파생 done이 항상 일치한다.
- 일반 복사값이 초기 상태에 머무르는 현상을 기록한다.
선수 지식
3단위는 2단위 결과물과 실험 기록을 이어 사용합니다.
핵심 개념과 설명
깊은 반응성
일반 배열과 객체를 $state로 만들면 내부 변경을 추적합니다. 외부 객체나 클래스가 모두 같은 방식으로 처리된다고 가정하지 않습니다.
연결 유지
반응형 객체의 속성을 일반 변수로 복사하면 이후 변경 연결이 달라질 수 있습니다. 필요한 값은 원본에서 읽거나 파생 값으로 선언합니다.
실습 준비
예제 화면의 실행 범위 안내를 먼저 확인하세요. 다음은 과제를 별도 프로젝트로 확장할 때의 준비 환경입니다. 별도 Svelte 5 Vite 프로젝트에서 .svelte 파일을 컴파일해 실행합니다. 패키지 버전과 lockfile을 기록하세요. Frontory의 Svelte 미리보기는 실제 writable와 명시적 DOM 어댑터이며 .svelte 컴파일러나 runes 실행기가 아닙니다.
연결된 예제는 출발점입니다. 아래 과제 전체가 완성된 코드는 아니며, 예제의 지원 범위를 넘는 작업은 별도 프로젝트에서 수행하세요.
실습 과제
- src/App.svelte에서 items[0].done을 직접 바꾸는 버튼을 만드세요.
- 초기 done 복사 변수와 $derived(items[0].done)를 나란히 표시하세요.
- 세 번 토글하며 두 값의 변화를 기록하세요.
관찰할 변수
| 변수 | 기준 조건 | 바꿀 조건 | 예상할 변화·검증 가설 |
|---|---|---|---|
| 읽기 방식 | 초기 일반 변수 | $derived | 파생 값이 토글을 따라 갱신된다. |
표의 예상은 측정 결과가 아닙니다. 한 번에 한 조건만 바꾸고 실제 결과가 다르면 원인을 기록하세요.
완료 조건
- 카드와 파생 done이 항상 일치한다.
- 일반 복사값이 초기 상태에 머무르는 현상을 기록한다.
자가 점검
- 깊은 Proxy 추적과 객체 자체 교체는 어떻게 다른가요?
- 클래스 인스턴스 속성도 자동 반응형인가요?
공식 참고
연결된 예제와 실행 범위
미리보기는 Svelte writable/DOM 계약 실험입니다. runes·snippet·컴파일 결과는 실제 App.svelte를 Svelte 5 프로젝트에서 실행하세요.
원본 코드·기록은 자동으로 덮어쓰지 않습니다. 기존 예제를 초기화할 때도 필기는 유지됩니다.
다음 학습
이전: 마크업과 이벤트 속성 · 다음: $derived로 필터 계산하기