Skip to content

TODO-List-Study/Todo-List-Study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

TO-DO List Study

Reference

๊ทน๋ฝ์ฝ”๋”ฉ


Based Dependency

  • Java or Kotlin ์›ํ•˜๋Š” ์–ธ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”.
  • SpringBoot๋„ ์›ํ•˜๋Š” ๋ฒ„์ „์„ ์„ ํƒํ•ด์ฃผ์„ธ์š”.

ํ•„์ˆ˜ ์‚ฌํ•ญ

  • TODOLIST CRUD API๋ฅผ ๊ตฌํ˜„(์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ, ๋‹จ๊ฑด์กฐํšŒ, ์ „์ฒด์กฐํšŒ)
  • RESTFULํ•œ API๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ
  • ํด๋ฆฐ์ฝ”๋“œ๋ž€?
  • ๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๊ณ ๋ฏผํ•˜๋ฉฐ ๊ตฌํ˜„์„ ์ง„ํ–‰
  • README๋ฅผ ๊ผญ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!!(๋„๋ฉ”์ธ ๊ตฌ์„ฑ, ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„์„ ํ†ตํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก ๋„์ถœ)
  • ๋ณธ์ธ์ด ์ƒ๊ฐํ•˜๊ธฐ์— TODO-LIST์— ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋ฉด ์ถ”๊ฐ€ํ•ด๋„ ์ข‹์•„์š”!
  • Junit, Mockito๋ฅผ ์ด์šฉํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

์ฃผ์ฐจ๋ณ„ ์ง„ํ–‰

0์ฃผ์ฐจ

  • ์ง„ํ–‰๋ฐฉํ–ฅ์— ๋Œ€ํ•œ ํ† ๋ก  ๋ฐ ์‚ฌ์šฉ tool & Language ํ† ๋ก 

1์ฃผ์ฐจ

  • (assignment) in-memory ๊ธฐ๋ฐ˜ todo-list ๊ตฌํ˜„
  • (assignment) ๋ด‰ํˆฌ ํŒจํ„ด(error, data, message) ์ ์šฉ ๋ฐ ์—๋Ÿฌ ์ „์—ญ์ฒ˜๋ฆฌ
    • error : ์—๋Ÿฌ์ฝ”๋“œ
    • data : Client์—๊ฒŒ Response
    • message : ์—๋Ÿฌ ๋ฉ”์‹œ์ง€
  • (cs) spring mvc์˜ ๋™์ž‘์›๋ฆฌ ํŒŒ์•…

2์ฃผ์ฐจ

  • (assignment) db ๊ธฐ๋ฐ˜ todo-list ๊ตฌํ˜„
  • (assignment) bulk-create api ๋งŒ๋“ค๊ธฐ (max: 5000๊ฐœ, count๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ , ๋‹ค๋ฅธ todo ์ปฌ๋Ÿผ์—๋Š” ๋žœ๋คํ•œ ๊ฐ’์„ ์ž…๋ ฅ)
  • (assignment) ํ•„์š” ์ปฌ๋Ÿผ Index ์ฒ˜๋ฆฌ (unique, not null)
  • (cs) mysql index, memory vs disk
    • index๋ฅผ ์„ค๋ช…ํ•ด๋ณด์ž! ๊ทธ๋Ÿฐ๋ฐ memory๋ž‘ disk์˜ ์ฐจ์ด๋Š” ์–ผ๋งˆ๋‚˜ ๋‚ ๊นŒ?

3์ฃผ์ฐจ

  • (assignment) viewer๋ฅผ countํ•ด์ฃผ๋Š” api๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”. api ํ˜ธ์ถœ ์ง„ํ–‰์‹œ, viewer๋ฅผ 1๋งŒํผ ์˜ฌ๋ ค์ฃผ๋„๋ก์š”. (DB์— count ๋ฐ์ดํ„ฐ ํ•„์š”)
  • (assignment) api-doc ๋ฐ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋Ÿฌ์ง€ (rest docs) (์„ ํƒ์‚ฌํ•ญ)
  • (assignment) Cahcing์„ ์ด์šฉํ•˜์—ฌ ์กฐํšŒ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œ์ผœ๋ณด์ž
  • (cs) test-code (stub, mock)
    • ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ.. ๋“ฑ๋“ฑ ๋งŽ์€ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๊ฑด ๋ญ๊ณ , ํ…Œ์ŠคํŠธ๋Š” ์™œ ์ž‘์„ฑํ•ด์•ผํ• ๊นŒ?
    • Caching์„ ์ ์šฉํ•ด์•ผํ•˜๋Š” ์ด์œ ๋Š” ์•Œ๊ฒ ๋Š”๋ฐ, Local Cahce, Redis? ๋ญ๊ฐ€ ๋”์ข‹๊ณ  ๋ถ„์‚ฐ์‹œ์—๋Š”?

4์ฃผ์ฐจ

  • (assignment) restful api (7 promise) ๊ทœ์น™์„ ์ง€์ผœ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”.
  • (assignment) ๋ณ€ํ™”์— ์‰ฝ๊ฒŒ ๋Œ€์ฒ˜ํ•˜๊ธฐ
  • (assignment) DB ์Šค์ผ€์ค„๋ง์„ ํ†ตํ•ด ์กฐํšŒ์ˆ˜๊ฐ€ 5์ดํ•˜์ธ ๊ฒŒ์‹œ๋ฌผ์€ ์‚ญ์ œํ•˜์—ฌ์ฃผ์„ธ์š”
  • (cs) restful์ด๋ž€, http, tcp, udp
  • (cs) ๋””์ž์ธํŒจํ„ด, ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ํด๋ฆฐ์ฝ”๋“œ
    • ๋‹ค์–‘ํ•œ ๋””์ž์ธํŒจํ„ด๋“ค.. ์–ธ์ œ ์–ด๋–ป๊ฒŒ ์“ธ๊นŒ?
  • (cs) ๋ฉฑ๋“ฑ์„ฑ

5์ฃผ์ฐจ

  • (assignment) OOP์ ์ธ ์„ค๊ณ„์— ์ดˆ์ ์„ ๋‘์–ด๋ณด์ž (Getter๋ฅผ ์ง€์–‘ ๋“ฑ๋“ฑ)
    • (assignment) ์ถ”์ƒํ™”
  • (assignment) ์„ฑ๋Šฅ์ง€ํ‘œ๋ฅผ ๋ฌธ์„œํ™”ํ•˜์—ฌ๋ณด์ž
  • (assingment) ์ฟผ๋ฆฌํŠœ๋‹์— ๋Œ€ํ•ด ๋ฐฐ์›Œ๋ณด์ž (๋ณด๋ฅ˜)
  • (cs) ์ฟผ๋ฆฌํŠœ๋‹์€ ๋ฌด์—‡์ด๋ฉฐ, OOP์— ๊ทผ์ ‘ํ•œ ์„ค๊ณ„๋Š” ๋ฌด์—‡์ธ๊ฐ€?

6์ฃผ์ฐจ

  • (assignment) ํ…Œ๋ผํผ์„ ํ†ตํ•œ ๋ฐฐํฌํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜์—ฌ๋ณด์ž
  • (assignment) ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ(๋ฐฐํฌ ์„œ๋ฒ„ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ)์„ ๊ตฌ์ถ•ํ•ด๋ณด์ž(default grafana)
  • (assignment) ๋””์Šค์ฝ”๋“œ ์—๋Ÿฌ ์•Œ๋ฆผ ์ฒ˜๋ฆฌ
  • (cs) IaC๋Š” ๋ฌด์—‡์ด๋ฉฐ, ์–ด๋– ํ•œ ์žฅ์ ์ด์กด์žฌํ•˜๋Š”๊ฐ€?

7์ฃผ์ฐจ

  • (assignment) ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ (default๋Š” ngrinder, locust, jmeter)
  • (assignment) ํ†ตํ•ฉํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ๋ณด์ž (testcontainer)
  • (cs) ์„ฑ๋Šฅ ์ง€ํ‘œ ๊ธฐ๋ฐ˜์˜ ๊ฐœ์„  ๋ฐฉ๋ฒ•
    • ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. cpu๊ฐ€ ํ„ฐ์ง€๋„ค? api-latency๋А๋ฆฌ๋„ค?, ram์ด ๋ถ€์กฑํ•˜๋„ค!

8์ฃผ์ฐจ

  • (assignment) ๋ฉ€ํ‹ฐ๋ชจ๋“ˆ ํŒจํ‚ค์ง€๋กœ ๋ถ„๋ฆฌ์‹œ์ผœ๋ณด์ž
  • (assignment) ์„œ๋ฒ„๋ถ„์‚ฐ? ํ• ๊ฒŒ ์žˆ๋‹ค๋ฉด ์ ์šฉํ•ด๋ณด์ž! (๋ณด๋ฅ˜)
  • (assignmnet) DB ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฒ˜๋ฆฌ (๊ณต๋ถ€)
  • (cs) ๋ถ„์‚ฐ์„œ๋ฒ„์—์„œ ์บ์‹œ ๋™๊ธฐํ™” ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ง

Ground Rule

  • ๋งค์ฃผ ์ผ์š”์ผ ์˜คํ›„ 9์‹œ(์œ ๋™์ ์œผ๋กœ ์Šค์ผ€์ค„๋”ฐ๋ผ์„œ ๋ณ€๊ฒฝ ์ฃผ๋‚ด์—์„œ)
    • ๊ฐ„๋žตํ•˜๊ฒŒ ์ฝ”๋“œ ํ๋ฆ„ ์„ค๋ช…(์ฃผ์š”ํ•œ ์ฝ”๋“œ์œ„์ฃผ๋กœ)
    • ์Šคํ„ฐ๋””์ „๊นŒ์ง€ ๋ฌด์กฐ๊ฑด PR์˜ฌ๋ฆฌ๊ณ  ๋ฆฌ๋ทฐ๋‚จ๊ธธ์ˆ˜์žˆ๋„๋ก PR์€ ์ตœ์†Œํ•œ ์ผ์š”์ผ ์˜ค์ „ 12์‹œ๊นŒ์ง€๋Š”
    • ์ฝ”๋“œ๋ฆฌ๋ทฐ๋Š” ๊ถ๊ธˆํ•œ์ , ์ง„์งœ ์ดํ•ด์•ˆ๊ฐ€๋Š”์ , (๋‚˜๋Š” ์ด๋ ‡๊ฒŒํ–ˆ๋Š”๋ฐ ๋‹˜์€ ์–ด์ผ€์ƒ๊ฐํ•จ?)
  • ๋งค์ฃผ ์ง„ํ–‰์ „์— README.md ํ•œ ์ฃผ์ฐจ ๊ณ„ํš ์ •๋ฆฌ
  • ์ธ๋ฑ์‹ฑ, ์บ์‹ฑ์ฒ˜๋ฆฌ ์ „์— ์ง€ํ‘œ๋ฅผ ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ์“ฐ๋“ฏ์ด ์ •๋ฆฌํ•ด์„œ wiki ๋””๋ ‰ํ„ฐ๋ฆฌ์•ˆ์— ์ ์–ด์ฃผ์„ธ์š”
  • ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ : ์ฃผ์ฐจ-github ์•„์ด๋””
  • Repository๋ฅผ forkํ•˜์—ฌ PR ์˜ฌ๋ ค์ฃผ์„ธ์š”

Group Member

  • @seonghoo1217
  • @jjinwo0
  • @jhnyuk

About

Learning Case on Kotlin Todo List

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages