week-4-day-3-report주차 week-4-day-3-report일차 일일보고서
[4주차 3일] 오늘의 수업 이야기
Section titled “[4주차 3일] 오늘의 수업 이야기”날짜: 2025년 07월 09일
오늘의 주제
Section titled “오늘의 주제”스톱워치 만들기 - 상태 관리의 이해
수업 진행 기록
Section titled “수업 진행 기록”오늘은 Todo 프로젝트를 잠시 벗어나 새로운 프로젝트를 시작했다. 스톱워치 애플리케이션을 만들며 클래스의 상태 관리를 배우는 시간이었다.
주 강사가 스톱워치의 동작 원리를 설명할 때, 시작 시간을 기록하고 현재 시간과의 차이를 계산한다는 개념을 이해하는 데 시간이 걸렸다. 실습 강사로서 실제 스톱워치를 보여주며 설명했다.
StopWatch 클래스를 설계했다. startTime, stopTime, isRunning 같은 상태 변수들을 정의하고, start(), stop(), reset(), getElapsedTime() 메서드를 구현했다.
Date 클래스와 System.currentTimeMillis()를 사용해 시간을 측정하는 방법을 배웠다. 밀리초 단위의 시간을 초, 분으로 변환하는 과정에서 수학적 계산이 필요했는데, 일부 학생들이 어려워했다.
상태 변수의 중요성을 강조했다. isRunning 플래그를 통해 현재 스톱워치가 실행 중인지 멈춰있는지 추적하는 것이 왜 필요한지 실습을 통해 이해했다.
getter 메서드를 통해서만 경과 시간을 읽을 수 있도록 했다. 외부에서 직접 상태를 변경할 수 없도록 캡슐화하는 것의 중요성을 다시 한 번 확인했다.
학생 상담 노트
Section titled “학생 상담 노트”- 밀리초가 뭔지 모르겠다는 질문. 1초 = 1000밀리초 설명하고 시간 단위 변환 연습.
- Date와 LocalDateTime 중 뭘 써야 하는지 질문. 일단 Date로 시작하고 나중에 새로운 API 소개 예정.
- 왜 isRunning 같은 플래그가 필요한지 의문. 같은 버튼을 여러 번 누르는 경우를 예로 설명.
- 스톱워치가 Todo 프로젝트와 무슨 관련이 있는지 질문. 상태 관리는 모든 애플리케이션의 핵심이라고 설명.
교육자 성찰
Section titled “교육자 성찰”Todo 프로젝트만 계속하다가 새로운 프로젝트를 시작하니 학생들이 신선해했다. 스톱워치는 누구나 아는 도구라서 요구사항이 명확했다.
상태 관리는 프로그래밍의 핵심 개념이다. 스톱워치처럼 상태가 명확한 애플리케이션을 통해 배우는 것이 효과적이었다.
시간 처리는 프로그래밍에서 자주 마주치는 주제다. 이번 기회에 기초를 확실히 다져두면 나중에 도움이 될 것이다.
- 시간 단위 변환 연습 문제 준비
- Java 8의 날짜/시간 API는 추후 소개
- 상태 머신(State Machine) 개념 설명 자료 준비