프로젝트 발표까지 D-2일
오늘의 계획
- 운동기록 저장기능 구현하기(완료)
- 레벨 테스트 기능 추가하기(미완료)
- 운동일지 기능 추가하기(미완료)
원래 계획은 미리 생각해두었던 핵심기능을 오늘 안에 구현하는 것이었다.
하지만, 역시나 쉽게 진행되지 않았다.
운동저장기능을 구현했지만 오류가 있어서 3,4시간 동안 고민을 했다.
고민을 하다가 차라리 다른걸 먼저 하면 어떨까 생각했는데
그렇게 하면 전부 어중간해지고
마치 엔진을 안만들고 바퀴먼저 만드는 모양새가 될까봐 계속 오류수정을 했다.
처음에 오류원인을 찾고 든 생각은 '드디어 찾았다'가 아니라 '이거 하나 못찾아서 시간을 날렸나' 같은 허무함이었다.
찾기 쉬운 오류는 아니었지만, 아직 구현할 게 많은 상태에서 시간을 뺏기니 허무함이 들었다.
다행히 지금은 나머지 기능을 구현하는 중인데 속도가 나쁘지 않다.
생각해보면 이 오류를 통해 내가 만든 프로그램의 구조를 다시 자세히 볼 수 있었던 것 같다.
프로그램을 만들면서 동기들이랑 계속해서 공유를 했다.
그러다보니 동기들은 내 설명을 통해 프로그램 작동법을 이해한 상태였다.
작동 관련된 피드백이 없으니 당연히 문제가 없다고 생각했다.
하지만 로지님께 프로그램을 어떻게 사용하는지 어렵다는 피드백을 받은 뒤 접근성이 좋지 않다는걸 깨닫게 되었다. 그래서 일단 동생들에게 물어봤는데 아무런 설명이 없으니 어떻게 사용하는지 어렵다는 말이 나왔다.
어떻게 할까 30분정도 고민을 해봤다. 화면마다 간단하게 설명을 추가하는게 어떨까? 동기들에게 물어보고 긍정의 답을 얻어 바로 수정을 시작했다.
수정한 결과 swing 특성상 원하는대로 구현하기 어려웠지만 전보다 만족스러운 결과를 얻을 수 있었다. 하지만 간단한 설명이기 때문에 자세한 설명은 추가로 페이지를 만들어서 적어보려고 생각중이다.
핵심은 내 프로그램을 나만 이해하면 안되고, 처음쓰는 사용자 입장에서도 생각해야한다는 것이다.
사실 이 프로그램을 사용할 사람은 나밖에 없겠지만, 이 프로젝트를 하는 진짜 목적은 다른 사람들이 사용할 수 있는 프로그램을 만드는 연습을 하는 것이다.
그런데 설명이 아니더라도 코드부분이나 다른부분에서도 이걸 고려하지 못한것 같다.
아무리 좋은 기능을 넣어도 사용하는 사람이 제대로 쓰지 못하면 무슨 소용이 있을까
좋은 코드든 좋은 프로그램이든, 누가보더라도 보기 좋고 사용하기 편한 게 제일 좋은 게 아닐까 라는 생각이든다.
내일은 발표 전날이다. 기능구현을 끝낸 뒤, 보이는 부분보다는 코드의 관심사의 분리를 하는데 집중해보자!