2주차 주간보고서 (구버전)
2주차 종합 보고서 - Todo 애플리케이션 기초 개발
Section titled “2주차 종합 보고서 - Todo 애플리케이션 기초 개발”- 기간: 2주차 (월요일 ~ 금요일)
- 주제: 실전 프로젝트로 배우는 Java 프로그래밍
- 참가자: 12명 (1주차 수료자 전원)
- 목표: Todo 관리 프로그램 개발을 통한 실무 능력 배양
일일 진도 요약
Section titled “일일 진도 요약”월요일 - 프로젝트 시작
Section titled “월요일 - 프로젝트 시작”- Todo 애플리케이션 기획
- 기능 요구사항 정의
- 간단한 메뉴 시스템 구현
- 성과: 기본 메뉴 구조 완성
화요일 - 데이터 구조 설계
Section titled “화요일 - 데이터 구조 설계”- ArrayList를 활용한 데이터 저장
- Todo 추가/조회 기능 구현
- 입력 유효성 검사
- 성과: CRUD 중 Create/Read 완성
수요일 - 기능 확장
Section titled “수요일 - 기능 확장”- Todo 삭제 기능 추가
- 전체 목록 표시 개선
- 인덱스 기반 관리 시스템
- 성과: 기본 CRUD 완성
목요일 - 사용자 경험 개선
Section titled “목요일 - 사용자 경험 개선”- 에러 처리 강화
- 사용자 친화적 메시지
- 입력 편의성 개선
- 성과: 안정적인 애플리케이션 완성
금요일 - 고급 기능과 마무리
Section titled “금요일 - 고급 기능과 마무리”- 파일 저장/불러오기 시도
- 코드 리팩토링
- 프로젝트 발표 준비
- 성과: 완성도 높은 Todo 앱 구현
주요 학습 성과
Section titled “주요 학습 성과”기술적 성과
Section titled “기술적 성과”- 자료구조 활용: ArrayList의 실전 적용
- 프로그램 설계: 구조적 프로그래밍 실습
- 예외 처리: try-catch를 통한 안정성 확보
- 파일 I/O: 데이터 영속성 개념 이해
프로젝트 관리 능력
Section titled “프로젝트 관리 능력”- 요구사항 분석: 필요한 기능 도출
- 단계별 구현: 작은 단위로 나누어 개발
- 테스트와 디버깅: 체계적인 오류 해결
- 문서화: 코드 주석과 사용 설명서
주목할 만한 코드 진화
Section titled “주목할 만한 코드 진화”2주차 초 (월요일)
Section titled “2주차 초 (월요일)”System.out.println("1. 할일 추가");
System.out.println("2. 할일 보기");
String choice = scanner.nextLine();
if(choice.equals("1")) {
// 길고 복잡한 코드...
}
2주차 말 (금요일)
Section titled “2주차 말 (금요일)”public class TodoManager {
private List<String> todos = new ArrayList<>();
public void addTodo(String todo) {
if (isValidTodo(todo)) {
todos.add(todo);
System.out.println("✅ 할일이 추가되었습니다.");
}
}
private boolean isValidTodo(String todo) {
return todo != null && !todo.trim().isEmpty();
}
}
팀별/개인별 특별 성과
Section titled “팀별/개인별 특별 성과”🌟 창의성 상
Section titled “🌟 창의성 상”- 수상자: 김학생
- 특징: 이모지를 활용한 시각적 UI
- 평가: “CLI에서도 아름다울 수 있다”
🏆 안정성 상
Section titled “🏆 안정성 상”- 수상자: 이학생
- 특징: 모든 예외 상황 완벽 처리
- 평가: “절대 죽지 않는 프로그램”
💡 혁신 상
Section titled “💡 혁신 상”- 수상자: 박학생
- 특징: 우선순위와 카테고리 기능 추가
- 평가: “기본을 넘어선 도전”
어려움과 극복 과정
Section titled “어려움과 극복 과정”-
IndexOutOfBoundsException의 악몽
- 배열 인덱스 이해 부족
- 반복적인 에러 발생
- 디버깅을 통한 극복
-
파일 저장의 벽
- 파일 I/O 개념 이해 어려움
- 경로 문제로 인한 혼란
- 단계별 학습으로 해결
-
구조화의 어려움
- 모든 코드를 main에 작성
- 기능 분리의 필요성 인식
- 메서드 분리 연습
극복 스토리
Section titled “극복 스토리”“파일 저장이 안 돼서 3시간을 씨름했는데, 결국 경로 문제였어요. 해결했을 때 정말 기뻤어요!” - 학생 A
“처음엔 왜 메서드로 나눠야 하는지 몰랐는데, 나누고 나니 코드가 훨씬 깔끔해졌어요.” - 학생 B
출석률: 100% (60/60)
프로젝트 완성률: 100% (12/12)
평균 코드 라인: 250줄
평균 기능 구현: 8개
만족도: 4.8/5.0
- 1주차 말: 간단한 계산기 수준
- 2주차 말: 실용적인 애플리케이션 개발
문제 해결 능력
Section titled “문제 해결 능력”- 1주차: 에러 시 당황, 강사 의존
- 2주차: 스스로 디버깅, 구글링 활용
자신감 수준
Section titled “자신감 수준”- 1주차: “할 수 있을까?” (불안)
- 2주차: “더 만들고 싶어요!” (열정)
인상 깊은 순간들
Section titled “인상 깊은 순간들”-
첫 파일 저장 성공 “프로그램을 껐다 켜도 데이터가 남아있어요! 신기해요!”
-
동료 코드 리뷰 “친구 코드를 보니 같은 기능을 다르게 구현할 수 있다는 걸 알았어요.”
-
자발적 기능 추가 “선생님이 시키지 않았는데 검색 기능을 만들어봤어요!”
강사 관찰 기록
Section titled “강사 관찰 기록”긍정적 변화
Section titled “긍정적 변화”- 질문의 질이 향상됨 (“어떻게?”에서 “왜?”로)
- 서로 돕는 문화가 자연스럽게 정착
- 실패를 두려워하지 않는 도전 정신
- 코드에 대한 주인의식 생성
주의 관찰 대상
Section titled “주의 관찰 대상”- 2명의 학생이 진도 따라가기 버거워함
- 개별 멘토링 강화 필요
- 자신감 회복 프로그램 운영
3주차 준비
Section titled “3주차 준비”예고된 학습 내용
Section titled “예고된 학습 내용”- 객체지향 프로그래밍 본격 도입
- 클래스와 객체 설계
- Todo를 객체로 표현하기
- 더 복잡한 기능 구현
학생들에게 전달한 메시지
Section titled “학생들에게 전달한 메시지”“2주차에 보여준 열정과 성장이 놀라웠습니다. 이제 여러분은 ‘작동하는 프로그램’을 만들 수 있는 개발자입니다. 3주차에는 ‘잘 설계된 프로그램’을 만드는 법을 배워봅시다. 프로그래밍은 단순한 코딩이 아닌 ‘생각을 구현하는 예술’입니다.”
2주차는 학생들이 진정한 프로그래머로 변모하는 전환점이었다. 단순히 문법을 배우는 것을 넘어, 실제로 사용 가능한 프로그램을 만들어내는 경험을 했다.
가장 인상적인 것은 학생들의 태도 변화다. 1주차의 “선생님, 이거 어떻게 해요?”에서 2주차의 “선생님, 이렇게 해봤는데 더 좋은 방법이 있을까요?”로 질문이 진화했다. 수동적 학습자에서 능동적 개발자로의 성장이 뚜렷하게 보인다.
Todo 애플리케이션은 단순해 보이지만, 프로그래밍의 핵심 요소를 모두 담고 있는 훌륭한 학습 도구임이 증명되었다. 학생들은 이 프로젝트를 통해 요구사항 분석, 설계, 구현, 테스트, 유지보수의 전체 개발 생명주기를 경험했다.
특별히 자랑스러운 점: 12명 전원이 포기하지 않고 프로젝트를 완성했다. 각자의 속도와 수준은 달랐지만, 모두가 자신만의 Todo 애플리케이션을 만들어냈다. 이것이야말로 진정한 교육의 성공이다.
작성일: 2주차 금요일 작성자: 교육 담당 강사 다음 주: 객체지향의 세계로!