<< 목차 >>
* 프로젝트 깃허브 레포지토리 주소
* 메모장 프로젝트의 대략적인 방향
* 최종 클래스 다이어그램
* 기능 소개
* 문제와 해결
* 느낀 점
프로젝트 깃허브 레포지토리 주소
GitHub - JisooPyo/HI5_Project
Contribute to JisooPyo/HI5_Project development by creating an account on GitHub.
github.com
메모장 프로젝트의 대략적인 방향
최종 클래스 다이어그램
기능소개
MemoProgram
메모장을 실행시키는 프로그램
onMemo() : 메모장을 실행시킨다. 번호 선택에 따라 다른 화면으로 전환한다.
1. inputScreen() : 메모장을 입력할 수 있는 화면
2. printAllnotes() : 모든 메모 목록을 조회할 수 있는 화면
3. amendScreen() : 메모를 수정할 수 있는 화면
4. deleteScreen() : 메모를 삭제할 수 있는 화면
5. offMemo() : 메모장 프로그램을 종료한다.
Memo
Memo 객체를 만든다.
MemoList
save(Memo) : Memo객체를 받아 mapMemo에는 메모의 idNumber와 Memo를, mapPassword에는 메모의 idNumber와 그에 맞는 password를 저장한다.
getMemoList() : 전체 메모 목록을 조회한다.
Input
input() : 사용자의 이름, 비밀번호, 메모의 내용을 입력 받아, idNumber와 메모를 입력한 날짜의 특성을 가지고 있는 Memo를 return한다.
Amend
amend() : idNumber을 받아 비밀번호가 일치하면 메모를 수정한다.
Delete
delete() : idNumber을 받아 비밀번호가 일치하면 메모를 삭제한다.
문제와 해결
1. Memo 객체를 어떤 자료구조에 저장할 것인가
처음에는 List< Memo >에 Memo 객체를 저장하려고 했으나 1번 메모, 2번 메모, 3번 메모가 있을 때, 2번 메모를 삭제하면 3번 메모가 2번 메모로 되어 버리기 때문에 Map<Integer, Memo>에 저장하게 되었다. 하지만 지금 생각해보면 아예 Memo 객체의 변수에 번호를 추가하여 List에 저장하는게 더 편하게 했을 것 같다..!
2. Input()에서 수정한 값이 input되지 않는 문제
Input 클래스의 Input() 메서드에서 값을 잘못 입력했을시 다시 입력하게 해주는데 다시 입력된 값으로 Memo 객체를 생성해주지 않았다. 뭐가 잘못된 건지 전혀 모르겠어서 주소를 이용하여 객체를 추적해보니 처음 입력한 값으로 Memo 객체를 생성해주고 있었다. 재귀용법을 잘못써서 잘못된 값이 return 되고 있던걸 깨달아서 return 부분을 잘 수정하여 해결하였다.
[TIL] 잘못 알았던 재귀함수
Scanner로 String 값을 입력 받아 저장하고 다시 int 값을 받아서 그 값이 1이면 String 값을 return 하고, int 값이 2이면 다시 메서드를 호출하여 String 값을 재입력 받아 저장하는 구조의 메서드를 구현해
argente29.tistory.com
느낀 점
Input()의 문제를 해결할 때는 친구한테 물어보고 겨우 원인을 알게 되었다. 다음에는 실수하지 않도록 TIL로 남겨 놓았고, 잘 수정해서 올바른 Memo 객체를 생성해 낼 수 있었다. 후에 팀원이 호텔 프로젝트를 할 때 같은 오류를 겪기에 내가 도와줄 수 있었다. 미리 같은 문제를 겪어 팀원의 문제를 빨리 해결해 줄 수 있어서 다행이라고 생각했다!
Memo프로젝트를 했을 때는 기간이 상당히 짧았기 때문에 준비를 많이 못했는데 그래서 어거지로 막 시작을 하려다 보니 오히려 포함되어야 하는 변수가 서로 약간 다르다던가, 변수명과 메서드명을 수정을 해줘야 한다던가 하는 문제가 생겨서 나중에 해결하느라 조금 골치가 아팠다..!
프로젝트를 시작할 때는 변수, 필요한 메서드(크게크게), 필요한 클래스 등 대략적인 구조를 잡고 시작을 해야겠다고 생각했다.
'SPARTA Project' 카테고리의 다른 글
[ Spring ] Trillion 조 - Exercise Blog Project 시작! (0) | 2023.06.30 |
---|---|
[Java] HI5조 - 호텔 예약 프로그램 프로젝트 (6/6 - 6/9) (1) | 2023.06.07 |
[Java] 개인 프로젝트 - 키오스크 구현 정리(5/26 ~ 6/2) (0) | 2023.06.02 |
< 초록색이 젤다 맞죠? > - KPT 회고 (0) | 2023.05.19 |
< 초록색이 젤다 맞죠? > - 팀 프로젝트 04 (1) | 2023.05.18 |