๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐Ÿ”ต ์‹ค์ „ํ”„๋กœ์ ํŠธ

์‹ค์ „ ํ”„๋กœ์ ํŠธ LAB2

by UKHYUN22 2021. 10. 26.
728x90

STS4๋ฅผ ์ด์šฉํ•ด์„œ TodoList App์„ ๋งŒ๋“ค๊ณ  GitHub์— ์—…๋กœ๋“œ ํ•˜๊ธฐ

 

TodolistApp ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” Java Class ์กฐ์‚ฌํ•˜๊ธฐ

 

๊ฐ ํด๋ž˜์Šค ์šฉ๋„

Scanner : ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ Scanner ํด๋ž˜์Šค์˜ ๋งค์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

Comparator : Collection.sort ๋งค์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ €์žฅ๋œ ์ธ์ž๋“ค์„ ์ •๋ ฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

ArrayList : ์ž๋ฃŒ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค

 

์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋งค์†Œ๋“œ

addItem() : ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋งค์†Œ๋“œ

deleteItem() : ์‚ฌ์šฉ์ž ์ง€์ • ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ๋งค์†Œ๋“œ

editItem() : ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋งค์†Œ๋“œ

sortByName() : ์ด๋ฆ„์„ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๋Š” ๋งค์†Œ๋“œ

listAll() : ์ €์žฅ๋œ ๋ชจ๋“  ํŒŒ์ผ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋งค์†Œ๋“œ

sortByDate() : ์ €์žฅํ•œ date ์ˆœ์„œ๋Œ€๋กœ ํŒŒ์ผ์„ ์ •๋ ฌํ•˜๋Š” ๋งค์†Œ๋“œ

 

TodoListApp class ๋ถ„์„

๊ฐ ํด๋ž˜์Šค์˜ ์—ญํ• ๊ณผ ์‹คํ–‰๋˜๋Š” ๋ฉ”๋‰ด์™€์˜ ๊ด€๊ณ„ ์„ค๋ช…

TodoMain ํด๋ž˜์Šค๋Š” Mainํ•จ์ˆ˜์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์‹œ์ž‘๋˜๋Š” ํด๋ž˜์Šค.

TodoMain ํด๋ž˜์Šค์—์„œ TodoList ํด๋ž˜์Šค์™€ Menu ํด๋ž˜์Šค๊ฐ€ ์„ ์–ธ๋˜๋ฉฐ

Menu ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฉ”๋‰ด๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด TodoUtil ํด๋ž˜์Šค๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

TodoUtil ํด๋ž˜์Šค๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ถ”๊ฐ€/์ œ๊ฑฐ/์—…๋ฐ์ดํŠธ ํ•จ์ˆ˜์— ๋”ฐ๋ผ์„œ TodoItem ํด๋ž˜์Šค๊ฐ€ ์„ ์–ธ๋œ๋‹ค.

TodoItem ํด๋ž˜์Šค์—์„œ๋Š” get๊ณผ set ๋งค์†Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ํŒŒ์ผ์˜ ์ €์žฅ, ์ œ๊ฑฐ๊ฐ€ ์ง„ํ–‰๋œ๋‹ค.

๋‹ค์‹œ TodoMainํด๋ž˜์Šค์˜ do while ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋Œ์•„์™€์„œ ํ•ด๋‹น ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ quit์„ ์ž…๋ ฅํ•˜๋ฉด TodoMain ํด๋ž˜์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด์„œ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋œ๋‹ค.

 

๋ฉค๋ฒ„ ๋ณ€์ˆ˜: ์—ญํ•  ์„ค๋ช…

Islist ๋ณ€์ˆ˜ : ์‚ฌ์šฉ์ž๊ฐ€ ls ๋ช…๋ น์„ ํ•  ๊ฒฝ์šฐ true๋ฅผ ํ• ๋‹นํ•˜๊ณ 

if(islist)์ธ ๊ฒฝ์šฐ listAll์„ ํ•œ๋‹ค. Do while ํ•จ์ˆ˜ ์‹คํ–‰ํ•˜๋งˆ๋‹ค false๋กœ ์ดˆ๊ธฐํ™” ์‹œ์ผœ์•ผ ํ•œ๋‹ค.

Choice ๋ณ€์ˆ˜ : ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”๋‰ด๋ฅผ ๋ณด๊ณ  ์ž…๋ ฅํ•˜๋Š” ๊ฐ’์„ ์ €์žฅํ•˜๋Š” String ๊ฐ’

l ๋ณ€์ˆ˜ : TodoList ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๋ณ€์ˆ˜

sc ๋ณ€์ˆ˜ : Scanner type์˜ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ณ€์ˆ˜

title ๋ณ€์ˆ˜ : ADDํ•  ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•  ๋•Œ title ์ด๋ฆ„์„ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜

desc ๋ณ€์ˆ˜ : title์˜ description ์ด๋ฆ„์„ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜

current_date ๋ณ€์ˆ˜ : ์ž…๋ ฅ์‹œ ํ˜„์žฌ์˜ date๋ฅผ ์ €์žฅํ•˜๊ฒŒ ๋˜๋Š” ๋ณ€์ˆ˜

list ๋ณ€์ˆ˜ : TodoItem์˜ ํƒ€์ž…์„ ๊ฐ–๋Š” List ๋ณ€์ˆ˜

index ๋ณ€์ˆ˜ : update ํ•  ๊ฒฝ์šฐ todoItem์˜ ์ด๋ฆ„์„ ๊ฐ€์ง€๋Š” ๋ณ€์ˆ˜์˜ index๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜

 

๋ฉค๋ฒ„ ๋ฉ”์†Œ๋“œ: ํ•จ์ˆ˜๋ช…, ํŒŒ๋ผ๋ฏธํ„ฐ, ๋ฆฌํ„ด๊ฐ’, ๋™์ž‘๊ธฐ๋Šฅ ์„ค๋ช…

TodoItem : title ๊ณผ desc ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๋Š” ํ•จ์ˆ˜, (String title, String desc), return ์—†์Œ

getTitle : ํŒŒ๋ผ๋ฏธํ„ฐ X, title ๊ฐ’์„ ๋ฆฌํ„ด๋ฐ›์Œ, Title ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜

setTitle : ํŒŒ๋ผ๋ฏธํ„ฐ String title, return void, Title ์ด๋ฆ„์„ ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜

getDesc : ํŒŒ๋ผ๋ฏธํ„ฐ X, desc ๊ฐ’์„ ๋ฆฌํ„ด๋ฐ›์Œ, Desc ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜

setDesc : ํŒŒ๋ผ๋ฏธํ„ฐ String desc, return void, Desc ์ด๋ฆ„์„ ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜

getCurrent_date : ํŒŒ๋ผ๋ฏธํ„ฐ X, current_date ๊ฐ’์„ ๋ฆฌํ„ด ๋ฐ›์Œ, current_date๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜

setCurrent_date : ํŒŒ๋ผ๋ฏธํ„ฐ Date current_date, return void, current_date๋ฅผ ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜

addItem : ํŒŒ๋ผ๋ฏธํ„ฐ todoItem t, return void, TodoItem์˜ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜

deleteItem : ํŒŒ๋ผ๋ฏธํ„ฐ TodoItem t, return void, TodoItem์˜ ๊ฐ’์„ ์‚ญ์ œํ•˜๋Š” ํ•จ์ˆ˜

editItem : ํŒŒ๋ผ๋ฏธํ„ฐ TodoItem t, TodoItem update, return void, t์˜ index๋ฅผ ์ฐพ์•„์„œ ์‚ญ์ œํ•˜๊ณ 

update ๋œ TodoItem์„ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ํ•จ์ˆ˜

getList : ํŒŒ๋ผ๋ฏธํ„ฐ X, TodoItem์˜ Arraylist๋ฅผ return ๋ฐ›๋Š”๋‹ค. ๋ชจ๋“  list๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ํ•จ์ˆ˜

sortByName : ํŒŒ๋ผ๋ฏธํ„ฐ X, return void, TodoSortByName๋งค์†Œ๋“œ๋ฅผ ์„ ์–ธํ•ด์„œ ์ •๋ ฌํ•˜๋Š” ํ•จ์ˆ˜

listAll : ํŒŒ๋ผ๋ฏธํ„ฐ X, return void, list์— ์žˆ๋Š” ๋ชจ๋“  ๋‚ด์šฉ์„ for๋ฌธ์„ ๋ฐ˜๋ณต์‹œ์ผœ ์ถœ๋ ฅ์‹œํ‚ค๋Š” ํ•จ์ˆ˜

reverseList : ํŒŒ๋ผ๋ฏธํ„ฐ X, return void, list์— ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ Collection ๋งค์†Œ๋“œ๋กœ ๋„˜๊ฒจ ์ •๋ ฌ์‹œํ‚ค๋Š” ํ•จ์ˆ˜

sortByDate : ํŒŒ๋ผ๋ฏธํ„ฐ X, return void, Todolist์˜ o1๊ณผ o2๋ฅผ ๋น„๊ตํ•ด์„œ ์ •๋ ฌ์‹œํ‚ค๋Š” ํ•จ์ˆ˜

indexOf : ํŒŒ๋ผ๋ฏธํ„ฐ X, TodoList t์˜ Index๋ฅผ return ํ•œ๋‹ค. title์ด๋ฆ„์˜ index๋ฅผ ์ฐพ์•„์ฃผ๋Š” ํ•จ์ˆ˜

isDuplicate : ํŒŒ๋ผ๋ฏธํ„ฐ String title, return true or false, ํ•ด๋‹น title ์ด๋ฆ„๊ณผ ์ €์žฅ๋œ ๋ชจ๋“  list์˜ ์ด ๋ฆ„ ์ค‘ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด    true๋ฅผ ๋ฐ˜ํ™˜ ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Compare : ํŒŒ๋ผ๋ฏธํ„ฐ TodoItem o1, o2, return negative , 0 , 1, o1์˜ date์™€ o2์˜ date๋ฅผ ๋น„๊ตํ•ด ์„œ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค. Compare(Name) : ํŒŒ๋ผ๋ฏธํ„ฐ TodoItem o1, o2, return negative, 0, 1, o1์˜ title๊ณผ o2์˜ title์„ ๋น„ ๊ตํ•ด์„œ ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค. createItem : ํŒŒ๋ผ๋ฏธํ„ฐ TodoList item, return void, ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ title๊ณผ desc๊ฐ€ ๊ธฐ์กด์˜ ์ €์žฅ ๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„๊ณผ ์ค‘๋ณต๋˜  ์ง€ ์•Š์œผ๋ฉด ์ €์žฅํ•˜๋Š” ํ•จ์ˆ˜

deleteItem : ํŒŒ๋ผ๋ฏธํ„ฐ TodoList l, return void, ์‚ฌ์šฉ์ž๊ฐ€ title์„ ์ž…๋ ฅํ•˜๋ฉด item๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด List ์— ์žˆ๋Š” ๋ชจ๋“  ๋ณ€์ˆ˜์™€ title  ์˜ ์ด๋ฆ„์„ ๋น„๊ตํ•˜๊ณ  ๊ฐ™๋‹ค๋ฉด ํ•ด๋‹น List์˜ Item์„ ์ œ๊ฑฐํ•œ๋‹ค.

updateItem : ํŒŒ๋ผ๋ฏธํ„ฐ TodoList I. return void. ์‚ฌ์šฉ์ž๊ฐ€ title์„ ์ž…๋ ฅํ•˜๋ฉด ์ €์žฅ๋œ list์˜ ๋‚ด์šฉ๊ณผ title์˜ ์ด๋ฆ„์ด ๊ฒน์น˜๋Š”์ง€    ํ™•์ธํ•˜๊ณ  ์—†์œผ๋ฉด new_title์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›๊ณ , new_description์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  title์˜ ์ด๋ฆ„๊ณผ                     List ์˜ ์ด๋ฆ„์ด ๋™์ผํ•˜๋‹ค๋ฉด ํ•ด๋‹น title์„ ์ œ๊ฑฐํ•˜๊ณ  new_title ๊ณผ new_description TodoItem ํด๋ž˜์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ                  ์„ฑํ•˜๊ณ  AddItem์„ ํ†ตํ•ด ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.

listAll : ํŒŒ๋ผ๋ฏธํ„ฐ TodoList l, return void, ๋ชจ๋“  list๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ํ•ด๋‹น title๊ณผ desc๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ ์ˆ˜