week-4-day-5-report주차 week-4-day-5-report일차 일일보고서
[4주차 5일] 오늘의 수업 이야기
Section titled “[4주차 5일] 오늘의 수업 이야기”날짜: 2025년 07월 11일
오늘의 주제
Section titled “오늘의 주제”다마고치 게임 만들기 - 복잡한 상태 관리의 도전
수업 진행 기록
Section titled “수업 진행 기록”금요일은 특별한 프로젝트로 마무리했다. 다마고치 게임을 만들며 그동안 배운 객체지향 개념을 종합적으로 활용했다. “추억이다!”라는 반응과 함께 학생들의 참여도가 매우 높았다.
Tamagotchi 클래스를 설계했다. hunger(배고픔), happiness(행복도), energy(에너지) 등의 상태 변수를 정의하고, feed(), play(), sleep() 같은 상호작용 메서드를 구현했다.
사이드 이펙트의 개념을 자연스럽게 배웠다. play() 메서드를 호출하면 행복도는 올라가지만 배고픔과 피로도도 함께 증가한다. 하나의 행동이 여러 상태에 영향을 미치는 현실적인 시스템을 구현했다.
시간 경과에 따른 자동 상태 변화도 구현했다. setInterval을 사용해 주기적으로 배고픔이 증가하고 행복도가 감소하도록 했다. 실시간으로 변하는 상태를 관리하는 것이 쉽지 않았다.
가장 큰 도전은 회귀 버그였다. 새로운 기능을 추가할 때마다 기존 기능이 깨지는 현상이 반복되었다. 이를 통해 테스트의 중요성을 절실히 느꼈다.
학생들이 각자 창의적인 기능을 추가했다. 미니게임, 아이템 시스템, 진화 기능 등 다양한 아이디어가 나왔다. 기본 구조 위에 자신만의 특색을 더하는 모습이 인상적이었다.
학생 상담 노트
Section titled “학생 상담 노트”- 사이드 이펙트가 뭔지 이해가 안 된다는 질문. 함수 실행의 부수 효과로 설명.
- 상태가 너무 많아서 관리가 어렵다는 의견. 상태 객체로 묶어서 관리하는 방법 제안.
- setInterval이 계속 실행되는 문제. clearInterval의 필요성과 사용법 설명.
- 회귀 버그가 계속 발생한다는 불만. 단위 테스트 작성의 중요성 강조.
교육자 성찰
Section titled “교육자 성찰”게임 개발은 프로그래밍 학습에 매우 효과적이다. 즉각적인 피드백과 시각적인 결과가 학습 동기를 높인다. 특히 추억의 게임을 직접 구현한다는 점에서 몰입도가 높았다.
복잡한 상태 관리는 실무에서도 자주 마주치는 과제다. 이번 프로젝트를 통해 학생들이 그 어려움과 해결 방법을 체험한 것이 의미있다.
4주차를 마무리하며 학생들의 성장이 눈에 띈다. 단순한 문법 학습을 넘어 실제 동작하는 애플리케이션을 설계하고 구현할 수 있게 되었다.
- 상태 관리 라이브러리(Redux 등)는 추후 소개 예정
- 게임 개발 프로젝트 더 준비 (테트리스, 스네이크 등)
- 5주차는 최종 프로젝트 준비