Skip to content

yhcho14/Java-CLI

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

8 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Java-CLI

โœ… CLI ์ž๋ฐ” ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ (์ฝ˜์†” ๊ธฐ๋ฐ˜)

๐ŸŽฏ ๊ฐœ์š”

์ด ๊ณผ์ œ๋Š” Java ์ฝ˜์†” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ ๊ฒŒ์‹œํŒ์„ ๊ตฌํ˜„ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

Java ๊ธฐ๋ณธ ๋ฌธ๋ฒ•, ํด๋ž˜์Šค ๋ฐ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„, ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ตฌ์กฐ(ArrayList ๋“ฑ)๋ฅผ ์—ฐ์Šตํ•ฉ๋‹ˆ๋‹ค.


๐Ÿงฉ ์ „์ฒด ๊ธฐ๋Šฅ ์˜ˆ์‹œ

๊ธฐ๋Šฅ ์„ค๋ช…
๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ write ๋ช…๋ น์–ด ์ž…๋ ฅ ์‹œ ์ œ๋ชฉ/๋‚ด์šฉ์„ ๋ฐ›์•„ ์ƒˆ ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ฑ
๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก list ๋ช…๋ น์–ด ์ž…๋ ฅ ์‹œ ๋ชจ๋“  ๊ฒŒ์‹œ๊ธ€์„ ๋ฒˆํ˜ธ์ˆœ์œผ๋กœ ์ถœ๋ ฅ
๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ๋ณด๊ธฐ detail [id] ๋ช…๋ น์–ด๋กœ ํŠน์ • ๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ์„ ์ „์ฒด ํ™•์ธ
๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ • update [id] ๋ช…๋ น์–ด๋กœ ์ œ๋ชฉ/๋‚ด์šฉ์„ ์ˆ˜์ •
๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ delete [id] ๋ช…๋ น์–ด๋กœ ํ•ด๋‹น ๊ธ€ ์‚ญ์ œ
์ข…๋ฃŒ exit ๋ช…๋ น์–ด๋กœ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ

โœ… ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์˜ˆ์‹œ

class Article {
    int id;
    String title;
    String content;
    String regDate;
}

โš™๏ธ ์ฃผ์š” ํด๋ž˜์Šค ๋ฐ ํŒŒ์ผ ๊ตฌ์กฐ ์˜ˆ์‹œ

src/
โ”œโ”€ Main.java         โ† ์ง„์ž…์ 
โ”œโ”€ App.java     โ† ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋กœ์ง
โ”œโ”€ Article.java      โ† ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค
โ””โ”€ Rq.java         โ† ์ปค๋งจ๋“œ ๋ช…๋ น์–ด ์š”์ฒญ ์œ ํ‹ธ ํด๋ž˜์Šค

๐Ÿง  ๋ฉ”์„œ๋“œ ์„ค๊ณ„ ์˜ˆ์‹œ

๋ฉ”์„œ๋“œ๋ช… ์„ค๋ช…
run() ์•ฑ ์‹คํ–‰ ๋ฃจํ”„ (์ž…๋ ฅ ๋Œ€๊ธฐ ๋ฐ ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ)
writeArticle() ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ์ฒ˜๋ฆฌ
listArticles() ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ์ถœ๋ ฅ
showDetail(int id) ํŠน์ • ๊ธ€ ์ƒ์„ธ ๋‚ด์šฉ ์ถœ๋ ฅ
updateArticle(int id) ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ • ์ฒ˜๋ฆฌ
deleteArticle(int id) ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ ์ฒ˜๋ฆฌ
getCurrentDate() ํ˜„์žฌ ๋‚ ์งœ ๋ฆฌํ„ด (yyyy-MM-dd ํ˜•์‹)

๐Ÿ’ฌ ์‹คํ–‰ ์˜ˆ์‹œ

๋ช…๋ น์–ด: write
์ œ๋ชฉ: ์ž๋ฐ” ๊ณต๋ถ€
๋‚ด์šฉ: ์ž๋ฐ” ํ…์ŠคํŠธ ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ
=> ๊ฒŒ์‹œ๊ธ€์ด ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด: list
๋ฒˆํ˜ธ | ์ œ๋ชฉ       | ๋“ฑ๋ก์ผ
-----------------------------
1    | ์ž๋ฐ” ๊ณต๋ถ€  | 2025-08-03

๋ช…๋ น์–ด: detail 1
๋ฒˆํ˜ธ: 1
์ œ๋ชฉ: ์ž๋ฐ” ๊ณต๋ถ€
๋‚ด์šฉ: ์ž๋ฐ” ํ…์ŠคํŠธ ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ
๋“ฑ๋ก์ผ: 2025-08-03

๋ช…๋ น์–ด: update 1
์ œ๋ชฉ (ํ˜„์žฌ: ์ž๋ฐ” ๊ณต๋ถ€): Java ๊ฒŒ์‹œํŒ
๋‚ด์šฉ (ํ˜„์žฌ: ์ž๋ฐ” ํ…์ŠคํŠธ ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ): ์ฝ˜์†” ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„
=> ๊ฒŒ์‹œ๊ธ€์ด ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด: delete 1
=> ๊ฒŒ์‹œ๊ธ€์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด: exit
ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.


๐ŸŽฏ ๊ฐœ๋ฐœ ํฌ์ธํŠธ ์š”์•ฝ

๊ธฐ์ˆ  ์š”์†Œ ์ ์šฉ
์ž…๋ ฅ ์ฒ˜๋ฆฌ Scanner ํ™œ์šฉํ•˜์—ฌ ๋ช…๋ น์–ด/๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋ฐ›๊ธฐ
๋ฆฌ์ŠคํŠธ ๊ด€๋ฆฌ ArrayList<Article>๋กœ ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ๊ด€๋ฆฌ
๋‚ ์งœ ์ฒ˜๋ฆฌ LocalDate.now() ๋˜๋Š” SimpleDateFormat ํ™œ์šฉ
์ •๋ ฌ ์ตœ์‹ ๊ธ€์ด ์œ„๋กœ ์˜ค๋„๋ก list() ์—ญ์ˆœ ์ถœ๋ ฅ
๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ๊ฒŒ์‹œ๊ธ€ ํด๋ž˜์Šค ๋ถ„๋ฆฌ, ๋ฉ”์„œ๋“œ ์—ญํ•  ๋ถ„๋ฆฌ

โœ… ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์˜ˆ์‹œ

  • ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ์ˆ˜ ๊ธฐ๋Šฅ (count ํ•„๋“œ ์ถ”๊ฐ€)
  • ๊ฒŒ์‹œ๊ธ€ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ (search [keyword])
  • ํŒŒ์ผ ์ €์žฅ/๋ถˆ๋Ÿฌ์˜ค๊ธฐ (BufferedWriter, BufferedReader ๋“ฑ ํ™œ์šฉ)
  • ๊ฒŒ์‹œ๊ธ€ ์ •๋ ฌ ์˜ต์…˜ (๋‚ ์งœ์ˆœ, ๋ฒˆํ˜ธ์ˆœ ๋“ฑ)

โœ… ๊ณผ์ œ ์ œ์ถœ ๋ฐฉ๋ฒ•

  • GitHub ์ €์žฅ์†Œ์— ํ”„๋กœ์ ํŠธ ์—…๋กœ๋“œ(๊ฐœ์ธ ๋ ˆํฌ ๊ฐ€๋Šฅ)
  • README.md์— ๊ธฐ๋Šฅ ์„ค๋ช…, ์‹คํ–‰ ์˜ˆ์‹œ, ๋ช…๋ น์–ด ์š”์•ฝ ํฌํ•จ
  • ํด๋” ๊ตฌ์กฐ ์ •๋ฆฌ ๋ฐ ์ฃผ์„ ๋˜๋Š” ๋ฌธ์„œํ™” ๊ถŒ์žฅ

ํŒ€ ์ปจ๋ฒค์…˜

๐Ÿ”– ๋ธŒ๋žœ์น˜ ์ปจ๋ฒค์…˜

  • main - ์ œํ’ˆ ์ถœ์‹œ ๋ธŒ๋žœ์น˜
  • develop - ์ถœ์‹œ๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • feature/๋ณธ์ธ์ด๋ฆ„ - ๊ฐ์ž ๊ฐœ๋ฐœํ•˜๋Š” ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋…๋ฆฝ์ ์ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์œ„ํ•ด ์ž‘์„ฑ
  • refactor/xx - ๊ฐœ๋ฐœ๋œ ๊ธฐ๋Šฅ์„ ๋ฆฌํŒฉํ† ๋ง ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ
  • hotfix/xx - ์ถœ์‹œ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ธŒ๋žœ์น˜
  • chore/xx - ๋นŒ๋“œ ์ž‘์—…, ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์„ค์ • ๋“ฑ
  • design/xx - ๋””์ž์ธ ๋ณ€๊ฒฝ
  • bugfix/xx - ๋ฒ„๊ทธ ์ˆ˜์ •

๐Ÿ“‘ ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

๐Ÿท๏ธ ์ปค๋ฐ‹ ํƒœ๊ทธ ๊ฐ€์ด๋“œ

ํƒœ๊ทธ ์„ค๋ช…
[Feat] ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
[Fix] ๋ฒ„๊ทธ ์ˆ˜์ •
[Refactor] ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์ด ๊ตฌ์กฐ ๊ฐœ์„ )
[Style] ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ, ๋“ค์—ฌ์“ฐ๊ธฐ ์ˆ˜์ • ๋“ฑ
[Docs] README, ๋ฌธ์„œ ์ˆ˜์ •
[Test] ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ •
[Chore] ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์„ค์ •, ๋นŒ๋“œ ์„ค์ • ๋“ฑ ๊ธฐํƒ€ ์ž‘์—…
[Design] UI, CSS, ๋ ˆ์ด์•„์›ƒ ๋“ฑ ๋””์ž์ธ ๊ด€๋ จ ์ˆ˜์ •
[Hotfix] ์šด์˜ ์ค‘ ๊ธด๊ธ‰ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๋ฒ„๊ทธ ๋Œ€์‘
[CI/CD] ๋ฐฐํฌ ๊ด€๋ จ ์„ค์ •, ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์„ฑ ๋“ฑ

โœ… ์ปค๋ฐ‹ ์˜ˆ์‹œ ๋ชจ์Œ (ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๋ชจ์ง€ ์‚ฌ์šฉ X)

๐ŸŽ‰ [Chore] ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ธํŒ…
โœจ [Feat] ํ”„๋กœํ•„ ํ™”๋ฉด UI ๊ตฌํ˜„
๐Ÿ› [Fix] iOS 17์—์„œ ๋ฒ„ํŠผ ํด๋ฆญ ์˜ค๋ฅ˜ ์ˆ˜์ •
๐Ÿ’„ [Design] ๋กœ๊ทธ์ธ ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ ์กฐ์ •
๐Ÿ“ [Docs] README์— ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ์ถ”๊ฐ€

๐Ÿ“ PR ์ปจ๋ฒค์…˜

  • PR ์‹œ, ํ…œํ”Œ๋ฆฟ์ด ๋“ฑ์žฅํ•œ๋‹ค. ํ•ด๋‹น ํ…œํ”Œ๋ฆฟ์—์„œ ์ž‘์„ฑํ•ด์•ผํ•  ๋ถ€๋ถ„์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค
    1. PR ์œ ํ˜• ์ž‘์„ฑ, ์–ด๋–ค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์—ˆ๋Š”์ง€ [] ๊ด„ํ˜ธ ์‚ฌ์ด์— x๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ฒดํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
    2. ์ž‘์—… ๋‚ด์šฉ ์ž‘์„ฑ, ์ž‘์—… ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ž์„ธํ•˜๊ฒŒ ์ž‘์„ฑ์„ ํ•œ๋‹ค.
    3. ์ถ”ํ›„ ์ง„ํ–‰ํ•  ์ž‘์—…, PR ์ดํ›„ ์ž‘์—…ํ•  ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•œ๋‹ค
    4. ๋ฆฌ๋ทฐ ํฌ์ธํŠธ, ๋ณธ์ธ PR์—์„œ ๊ผญ ํ™•์ธํ•ด์•ผ ํ•  ๋ถ€๋ถ„์„ ์ž‘์„ฑํ•œ๋‹ค.
    5. PR ํƒœ๊ทธ ์ข…๋ฅ˜, PR ์ œ๋ชฉ์˜ ํƒœ๊ทธ๋Š” ์•„๋ž˜ ํ˜•์‹์„ ๋”ฐ๋ฅธ๋‹ค.

๐ŸŒŸ ํƒœ๊ทธ ์ข…๋ฅ˜ (์ปค๋ฐ‹ ์ปจ๋ฒค์…˜๊ณผ ๋™์ผ)

ํƒœ๊ทธ ์„ค๋ช…
[Feat] ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
[Fix] ๋ฒ„๊ทธ ์ˆ˜์ •
[Refactor] ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง (๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์ด ๊ตฌ์กฐ ๊ฐœ์„ )
[Style] ์ฝ”๋“œ ํฌ๋งทํŒ…, ๋“ค์—ฌ์“ฐ๊ธฐ ์ˆ˜์ • ๋“ฑ
[Docs] ๋ฌธ์„œ ๊ด€๋ จ ์ˆ˜์ •
[Test] ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •
[Chore] ๋นŒ๋“œ/์„ค์ • ๊ด€๋ จ ์ž‘์—…
[Design] UI ๋””์ž์ธ ์ˆ˜์ •
[Hotfix] ์šด์˜ ์ค‘ ๊ธด๊ธ‰ ์ˆ˜์ •
[CI/CD] ๋ฐฐํฌ ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ ๊ด€๋ จ ์ž‘์—…

โœ… PR ์˜ˆ์‹œ ๋ชจ์Œ (ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ด๋ชจ์ง€ ์‚ฌ์šฉ X)

๐ŸŽ‰ [Chore] ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ ์„ธํŒ…
โœจ [Feat] ํ”„๋กœํ•„ ํ™”๋ฉด UI ๊ตฌํ˜„
๐Ÿ› [Fix] iOS 17์—์„œ ๋ฒ„ํŠผ ํด๋ฆญ ์˜ค๋ฅ˜ ์ˆ˜์ •
๐Ÿ’„ [Design] ๋กœ๊ทธ์ธ ํ™”๋ฉด ๋ ˆ์ด์•„์›ƒ ์กฐ์ •
๐Ÿ“ [Docs] README์— ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ์ถ”๊ฐ€

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 100.0%