Coder Social home page Coder Social logo

studygroup's Introduction

studygroup's People

Contributors

rbgus2002 avatar arkady1356 avatar

studygroup's Issues

ํ• ์ผ๊ณผ ๊ด€๋ จํ•œ API ์ˆ˜์ • ์š”์ฒญ ๋ฆฌ์ŠคํŠธ

  • 1. POST /tasks : ํƒœ์Šคํฌ ์ƒ์„ฑ
// ์ „๋‹ฌ ์ธ์ž
roundParticipantId,
taskType,
detail,

// ๋ฐ›๊ธธ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ
taskId,
  • 2. DELETE /tasks : ํƒœ์Šคํฌ ์‚ญ์ œ
// ์ „๋‹ฌ ์ธ์ž
taskId,     // ์ด๊ฒƒ ๋งŒ์œผ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํƒœ์Šคํฌ๊นŒ์ง€ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‚˜..?
//roundParticipantId,
  • 3. PATCH /tasks : ํƒœ์Šคํฌ ์ˆ˜์ •
// ์ „๋‹ฌ ์ธ์ž
taskId,    // ~~์ด๊ฒƒ ๋งŒ์œผ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํƒœ์Šคํฌ๊นŒ์ง€ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‚˜..?~~ -> ๊ฐ์ž ์ˆ˜์ •์œผ๋กœ Fix
detail,
  • 4. PATCH /tasks/check : ํƒœ์Šคํฌ ์ˆ˜ํ–‰ ์—ฌ๋ถ€ ๋ณ€๊ฒฝ
// ์ „๋‹ฌ ์ธ์ž
taskId

ํšŒ์› ๊ฐ€์ž… ์‹œ ํœด๋Œ€ํฐ ์ธ์ฆ ๊ด€๋ จ ์•ˆ๋‚ด์‚ฌํ•ญ

ํšŒ์› ๊ฐ€์ž… ์‹œ์— ๋ฌธ์ž์ธ์ฆ ๊ตฌํ˜„ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. (POST auth/messages/send, POST auth/messages/verify)
FLOW๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ๋ณด๋‹ˆ๊นŒ ๊ทธ์ง€ ๊ฐ™์•„์„œ ์Šฌํผ์š”)
image

10/11 16:00 ๊ฒฝ์— ๋ณด๋‚ด๋“œ๋ฆฐ application.properties๋กœ ๊ต์ฒดํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค!
๋˜ํ•œ ๋‚ด๋ถ€์ ์œผ๋กœ ์ธ์ฆ ๋กœ์ง์— ์ธ๋ฉ”๋ชจ๋ฆฌ ๋””๋น„์ธ Redis๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์„œ๋ฒ„๋ฅผ ๋„์›Œ๋†“์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ปฌ์— Redis๋ฅผ ์„ค์น˜ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์˜ ์ˆœ์„œ๋กœ ์„ค์น˜ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

image



๋‹ค์Œ์€ ์•„์…”์•ผ ํ•  ๋‚ด์šฉ๋“ค์ž…๋‹ˆ๋‹ค!

๋ฌธ์ž ์ธ์ฆ๋ฒˆํ˜ธ๋Š” 6์ž๋ฆฌ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ž๋Š” ๊ฑด๋‹น 20์›์ด๊ณ  ํ˜„์žฌ 10,000์› ์ถฉ์ „ํ•ด๋†“์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 500๊ฑด ๋ฌธ์ž ์ „์†ก์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (์ด๋ฉ”์ผ ์ธ์ฆ์€ ๋ฌด๋ฃŒ์ง€๋งŒ ๋ฌธ์ž ์ธ์ฆ์€ ๋ฌด๋ฃŒ๋กœ ๊ตฌํ˜„์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค)

ํšŒ์› ๊ฐ€์ž… ์‹œ์— ๋ฐœ๊ธ‰๋ฐ›์€ ๋ฌธ์ž ์ธ์ฆ๋ฒˆํ˜ธ๋Š” ์ •ํ™•ํžˆ 3๋ถ„๊ฐ„ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ๋ณ„ ์Šคํ„ฐ๋”” ์ƒ‰์ƒ ๋ณ€๊ฒฝ API

Description

์Šคํ„ฐ๋””์˜ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๋Š” API ๊ฐœ๋ฐœ
์‚ฌ์šฉ์ž๋Š” ์Šคํ„ฐ๋”” ๋งˆ๋‹ค ์›ํ•˜๋Š” ์ƒ‰์ƒ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐœ๋ฐœ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. Request URL์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

http://localhost:8080/studies/participants/colors?participantId=1&colorCode=0xFF

Originally posted by @Arkady1356 in #18 (comment)


๋…ผ์˜ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค ์žฌ์šฐ๋‹˜~
์Šคํ„ฐ๋”” ์ฒ˜์Œ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์— ์–ด๋–ป๊ฒŒ ์ƒ‰์ƒ์„ ๊ฒฐ์ •ํ• ์ง€ ์ •์ฑ… ์„ธ์šฐ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์•„์š”.

๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•œ๊ฑด ์Šคํ„ฐ๋”” ์ฒ˜์Œ์— ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ, ํ”Œ๋Ÿฌํ„ฐ ๋‹จ์—์„œ ๋žœ๋ค์œผ๋กœ ์ƒ‰์ƒ ์ฝ”๋“œ ์ƒ์„ฑํ•ด์„œ request์— ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ์ข‹์„ ๊ฑฐ ๊ฐ™๊ธดํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ง์”€ ๋“œ๋ฆฐ๋Œ€๋กœ ์ƒ‰์ƒ์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒฝ์šฐ์— ์Šคํ„ฐ๋”” ์ƒ์„ฑ API์˜ request๊ฐ€ ์กฐ๊ธˆ ์ˆ˜์ •๋  ๊ฑฐ ๊ฐ™์•„์š”
ํ˜„์žฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€๋ฐ colorCode๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋  ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์„ธ์šค

{
  "studyName": "string",
  "detail": "string",
  "picture": "string",
  "hostUserId": 0
}

๋‚˜์ค‘์— ํ• ์ผ ๋ฆฌ์ŠคํŠธ

๋กœ๊ทธ์ธ ๋„์ž… ๊ณผ์ •์—์„œ ๋ฏธ๋ค„๋‘๋Š” ์ผ๋“ค์„ ๊ธฐ๋กํ•˜๋Š” ์šฉ๋„์ž…๋‹ˆ๋‹ค

  • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ Form Validate
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ****
  • ์ƒ์œ„ ๊ณต์ง€์‚ฌํ•ญ ์กฐํšŒ์‹œ 3limits ํ˜ธ์ถœ -> ํŽ˜์ด์ง• ํ˜ธ์ถœ ๋กœ ์ˆ˜์ •
  • virtual Task Group์— ์ถ”๊ฐ€ํ•˜๊ธฐ
  • ํ• ์ผ ์ƒ์„ธ๋‚ด์šฉ ์ˆ˜์ •์‹œ ํŒจ๋„์ด ๊ฒ€์ •์ƒ‰์ด ๋˜๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •
  • ์ƒ์œ„ ๊ณต์ง€์‚ฌํ•ญ ์กฐํšŒ ๋ฐ•์Šค์˜ ํด๋ฆญ ์˜์—ญ ๋ฒ„๊ทธ ์ˆ˜์ •
  • ํ’€ํˆฌ๋ฆฌํ”„๋ ˆ์‰ฌ? ์—ฐ๊ฒฐํ•˜๊ธฐ

์„œ๋ฒ„์ธก์—๋„ ์ˆ˜์ • ์š”์ฒญํ•˜๊ธฐ

  • ํšŒ์ฐจ์˜ ์˜ˆ์ •๋จ ์—ฌ๋ถ€ ์ฒ˜๋ฆฌ back -> front
  • ๊ฐœ์ธ๋ณ„ ํšŒ์ฐจ ์ง„ํ–‰์ •๋„ ๊ณ„์‚ฐ ์ฒ˜๋ฆฌ back -> front

๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ์กฐํšŒ ์‹œ์— ๋Œ“๊ธ€ ๊ฐœ์ˆ˜ ํ‘œ์‹œ ์—ฌ๋ถ€

[GET /notices] API์— ๊ด€ํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. (๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ์กฐํšŒ)

๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ์กฐํšŒ ์‹œ์— ๋Œ“๊ธ€ ๊ฐœ์ˆ˜๋„ ๋‚˜ํƒ€๋‚ด๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”?
๋Œ€๋žต์ ์ธ ๋””์ž์ธ์€ ๋ธ”๋ผ์ธ๋“œ ์–ดํ”Œ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

[B] Notice์™€ ๊ด€๋ จ๋œ API์— ๋Œ€ํ•œ Issue

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜,

ํ•ด๋‹น Issue๋Š” Notice ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ API์— ๋Œ€ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ ์กฐ์ •์„ ์œ„ํ•œ Issue์ž…๋‹ˆ๋‹ค.


  1. /notices/list | ๊ณต์ง€์‚ฌํ•ญ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ : Notice Id ํ•„์š”
    ๊ฐ Notice Summary์˜ Notice Id๋˜ํ•œ ์ „๋‹ฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    ํ•ด๋‹น Notice Id๋ฅผ ํ†ตํ•ด Notice ์ƒ์„ธ ๋ณด๊ธฐ๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

[F] feat : task ์‚ญ์ œ API ์˜ค๋ฅ˜

task ์‚ญ์ œ API ํ˜ธ์ถœ์‹œ 500 ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค..! ํ™•์ธ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค

๐ŸŒ Summary

task ์‚ญ์ œ API๋ฅผ ๊ณ ์ณ์ฃผ์„ธ์š”
DELETE api/tasks

๐Ÿ“ To Do List

  • task ์‚ญ์ œ API ๊ณ ์น˜๊ธฐ

ํ• ์ผ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋ฐ ์ˆ˜์ •ํ•˜๊ธฐ API ์š”์ฒญ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!
์ด๋ ฅ์„œ ์ž‘์„ฑ์ด๋‹ˆ ๋ญ๋‹ˆ ํ•˜๋ฉด์„œ ์ •์‹ ์ด ํ•˜๋‚˜๋„ ์—†๋„ค์š” ํ•˜ํ•˜

๋‹ค๋ฆ„ ์•„๋‹ˆ๋ผ
์ƒˆ๋กœ์šด Task์˜ ์ž‘์„ฑ๊ณผ Task์˜ ์ˆ˜์ •์„ ์œ„ํ•œ API๋ฅผ ์š”์ฒญ ๋“œ๋ฆฝ๋‹ˆ๋‹ค!
์ด๋•Œ ์ž‘์„ฑ์˜ ๊ฒฝ์šฐ์—๋Š”

  1. ์Šคํ„ฐ๋”” ์ „์ฒด ํ• ๋‹น
  2. ๊ฐœ์ธ ํ• ๋‹น

์„ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

API ๊ฐœ๋ฐœ ์š”์ฒญ ๋ฆฌ์ŠคํŠธ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!
API ๊ฐœ๋ฐœ ์š”์ฒญํ•  ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑํ•ด์„œ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
ํ•œ๋ฒˆ์— ๋‹ค ์ƒ๊ฐ ๋‚˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ, ์ƒ๊ฐ ๋‚˜๋Š”๋Œ€๋กœ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!


  • ํšŒ์ฐจ ์‚ญ์ œ API
  • ํ• ์ผ ๋ชฉ๋ก ์กฐํšŒ API ์ˆ˜์ • #30
  • ์ž์‹ ์ด ์ฐธ์—ฌํ•˜๋Š” ์Šคํ„ฐ๋”” ๋ชฉ๋ก ์กฐํšŒ API (*Home ํ™”๋ฉด) #32
  • Task ์ถ”๊ฐ€์‹œ taskId๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์ˆ˜์ • ์š”์ฒญ #25
  • Task์˜ ์ˆ˜ํ–‰ ์—ฌ๋ถ€ ์ˆ˜์ • API #25
  • GET users ์—์„  nickname, GET tasks ์—์„  nickName ์ธ๋ฐ ์–ด๋–ค๊ฒŒ ๋งž๋‚˜์š”?!
  • GET users์—์„œ picture์ด ๋น ์ ธ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค
  • ํ• ์ผ ์ง„ํ–‰์ •๋„ ๊ณ„์‚ฐ -> front์—์„œ ๊ณ„์‚ฐ
  • ํšŒ์ฐจ ์ƒ์„ธ๋ณด๊ธฐ์‹œ ํšŒ์ฐจ ์ฐธ์—ฌ์ž๋“ค์˜ ์ผ๊ด€๋œ ์ •๋ ฌ ์š”์ฒญ
  • GET /api/studies ์—์„œ ์Šคํ„ฐ๋”” ์ƒ‰์ƒ์ธ color๋„ ํ•จ๊ป˜ return ์š”์ฒญ
  • ํฐ ๋ชจ๋ธ -> Later
  • ํšŒ์› ๊ฐ€์ž…์‹œ ํ”„๋กœํ•„ ๋ฉ”์„ธ์ง€ ํ•„์š” -> ๋ณ„๋„๋กœ ์„ค์ • ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ฒฐ์ •

[BE] repository ๊ณ„์ธต ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ผ๊ด„ ์ˆ˜์ •

์ง์ ‘ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ์ž‘์—…ํ•˜์ง€ ์•Š๊ณ , Sql script๋กœ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์™€ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋„๋ก ์ „๋ฉด ์ˆ˜์ •

domain

  • common
    • ํ…Œ์ŠคํŠธ์šฉ ๊ฐ์ฒด ์‚ญ์ œ
  • comment
  • notice
  • round
  • rule
  • study
  • task
  • user

ํšŒ์ฐจ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ API ์š”์ฒญ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!

"ํšŒ์ฐจ ์ •๋ณด ๋ฆฌ์ŠคํŠธ"๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API๋ฅผ ์š”์ฒญ๋“œ๋ฆฝ๋‹ˆ๋‹ค!
๋‘ ๊ฐœ์˜ ํŽ˜์ด์ง€์—์„œ ํšŒ์ฐจ ์ •๋ณด๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  1. '์Šคํ„ฐ๋”” ์ƒ์„ธ ๋ณด๊ธฐ'์—์„œ์˜ ํšŒ์ฐจ ์ •๋ณด ๋ฆฌ์ŠคํŠธ
  2. 'ํšŒ์ฐจ ์ƒ์„ธ ๋ณด๊ธฐ'์—์„œ ์ƒ๋‹จ์˜ ํšŒ์ฐจ ์ •๋ณด

์‚ฌ์ง„์„ ํ•˜๋‹จ์— ์ฒจ๋ถ€ํ•ด๋‘์—ˆ์Šต๋‹ˆ๋‹ค!!

  1. '์Šคํ„ฐ๋”” ์ƒ์„ธ ๋ณด๊ธฐ'์—์„œ๋Š” ์—ฌ๋Ÿฌ ํšŒ์ฐจ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ํ•„์š”๋กœํ•˜๊ณ ,
    ์ฐธ์—ฌ์ž๋“ค์— ๋Œ€ํ•œ ์ •๋ณด๋„ ์ถ”๊ฐ€๋กœ ์š”์ฒญ๋ฉ๋‹ˆ๋‹ค. (์›ํ˜• ์‚ฌ์ง„ ๋ฆฌ์ŠคํŠธ)
    ์ฐธ์—ฌ์ž๋“ค์˜ ์ •๋ณด๋Š” ๋‹ค์Œ์„ ๋‚ดํฌํ•ฉ๋‹ˆ๋‹ค
    #Case ์˜ˆ์ •๋œ ํšŒ์ฐจ : ํ•ด๋‹น ํšŒ์ฐจ์˜ ์ฐธ์„ ์˜ˆ์ • ์—ฌ๋ถ€์˜ ์ƒ‰์ƒ๊ณผ ์ด๋ฒˆ ์ˆ™์ œ์˜ ์ง„ํ–‰ ์ •๋„(%)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    #Case ์ข…๋ฃŒ๋œ ํšŒ์ฐจ : ํšŒ์ฐจ์— ์ฐธ์„/์ง€๊ฐ/๊ฒฐ์„/๋ถˆ์ฐธ ๋“ฑ์˜ ์—ฌ๋ถ€๊ฐ€ ์ƒ‰์ƒ์œผ๋กœ ํ‘œ์‹œ๋˜๊ณ , ์ตœ์ข… ์ˆ™์ œ ์ง„ํ–‰ ์ •๋„(%)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    (๊ฒฐ๊ตญ์€ [ ์ƒ‰์ƒ, ์ง„ํ–‰์ •๋„[0:1] ]์˜ ๋ฆฌ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•จ)
    ์ถ”๊ฐ€๋กœ ๊ฐœ์ธ ํ”„๋กœํ•„๋กœ ์ ‘๊ทผ์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์•„์ด๋””๋„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค
image
  1. '์Šคํ„ฐ๋”” ์ƒ์„ธ ๋ณด๊ธฐ'์—์„œ์˜ ํšŒ์ฐจ ์ •๋ณด ๋ฆฌ์ŠคํŠธ
image
  1. 'ํšŒ์ฐจ ์ƒ์„ธ ๋ณด๊ธฐ'์—์„œ ์ƒ๋‹จ์˜ ํšŒ์ฐจ ์ •๋ณด

๋…ผ์˜๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„ ์žˆ๋‹ค๋ฉด ๋ง์”€ํ•ด ์ฃผ์„ธ์š” !!

[F] feat : ํšŒ์› ๊ฐ€์ž… API ์ˆ˜์ • ์š”์ฒญ

ํšŒ์› ๊ฐ€์ž… API์—์„œ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”!

(ํ˜„์žฌ) : URL ํ˜•์‹์œผ๋กœ ์—…๋กœ๋“œ -> ๋ถˆ๊ฐ€
(๋‹ˆ์ฆˆ) : Multipart ํ˜•์‹์œผ๋กœ ํŒŒ์ผ ์—…๋กœ๋“œ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

๊ผผ์ˆ˜๋กœ
ํšŒ์› ๊ฐ€์ž… API + ํ”„๋กœํ•„ ์ˆ˜์ • API์„ ํ•ด๋ณด๋ ค ํ–ˆ๋Š”๋ฐ
ํ”„๋กœํ•„ ์ˆ˜์ • API๊ฐ€ ๋กœ๊ทธ์ธ ๋˜์–ด์•ผ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋”๊ตฐ์š”...

๐ŸŒ Summary

ํšŒ์› ๊ฐ€์ž… API๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”

  • ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋ฅผ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์„ธ์š”

๐Ÿ“ To Do List

  • ํšŒ์› ๊ฐ€์ž… API์— ํ”„๋กœํ•„ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •

[๊ถŒํ•œ ์ข…๋ฅ˜&๊ถŒํ•œ์— ๋”ฐ๋ฅธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๊ธฐ๋Šฅ]์— ๋Œ€ํ•œ ์ด์ฒด์ ์ธ ๊ธฐํš ๋…ผ์˜

(๋ฌผ๋ก  ์ฒ˜์Œ์— ๊ธฐํš์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์–ด๋Š์ •๋„ ์‚ฌ์ „์— ํ˜‘์˜๋Š” ์ด๋ฃจ์–ด์กŒ์ง€๋งŒ, ํ•ด๋‹น issue๋ฅผ ํ†ตํ•ด ๋ฌธ์„œํ™”๋ฅผ ํ•ด๋†“์œผ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค)

ํฌ๊ฒŒ 5๊ฐ€์ง€๋กœ ๋‚˜๋ˆ ์„œ ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•  ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ฑ&์‚ญ์ œ&์ˆ˜์ •
  2. ๊ทœ์น™ ์ƒ์„ฑ&์‚ญ์ œ&์ˆ˜์ •
  3. ๊ฐ ์‚ฌ์šฉ์ž ํƒœ๊ทธ ์ƒ์„ฑ&์‚ญ์ œ&์ˆ˜์ •
  4. ์Šคํ„ฐ๋””๋ฃธ ํƒˆํ‡ด ๊ด€๋ จ ๋ฐฉ์žฅ ์œ„์ž„ ๊ธฐ๋Šฅ
  5. ๋ฐฉ์žฅ/์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ์™ธ์— ์ถ”๊ฐ€์ ์ธ ์—ญํ• ์˜ ํ•„์š”์„ฑ

[B] feat: ์Šคํ„ฐ๋”” ํŽธ์ง‘ API ๋…ผ์˜ ์š”์ฒญ

๐ŸŒ Summary

  1. (์‚ฌ์šฉ์ž๊ฐ€ ์Šคํ„ฐ๋”” ํŽธ์ง‘ ํŽ˜์ด์ง€๋กœ ์ง„์ž…ํ•˜๋ฉด ๊ธฐ์กด์— ๊ฐ€์ง€๋Š” ์ •๋ณด๋“ค์„ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.) ์Šคํ„ฐ๋”” ํŽธ์ง‘ ํŽ˜์ด์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ ์Šคํ„ฐ๋”” ํŽธ์ง‘ ํŽ˜์ด์ง€ ์กฐํšŒ API๋ฅผ ์ถ”๊ฐ€๋กœ ๊ฐœ๋ฐœํ•ด์•ผํ•˜๋‚˜์š”? ์•„๋‹ˆ๋ฉด ์ด์ „ ํŽ˜์ด์ง€์ธ ์Šคํ„ฐ๋”” ์ƒ์„ธ ํŽ˜์ด์ง€ ๋‚ด์— ์žˆ๋Š” ์ •๋ณด๋“ค๋กœ ์กฐํ•ฉ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?

๐Ÿ“ To Do List

  • ์งˆ๋ฌธ ๋Œ€๋‹ตํ•ด์ค˜์ž‰

๐Ÿ“ทย ์Šคํฌ๋ฆฐ์ƒท(์„ ํƒ)

image

[B] feat: ์Šคํ„ฐ๋”” ์ƒ์„ฑ ์‹œ์— color ์ž…๋ ฅํ•˜๋„๋ก ์ถ”๊ฐ€ & ์Šคํ„ฐ๋”” ์ƒ‰์ƒ ์ž…๋ ฅ API ์‚ญ์ œ

๐ŸŒ Summary

[POST /api/studies] ์ƒˆ๋กœ์šด ์Šคํ„ฐ๋”” ์ƒ์„ฑ ์‹œ์— color ์ž…๋ ฅํ•˜๋„๋ก ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
์Šคํ„ฐ๋”” ์ƒ‰์ƒ ์ž…๋ ฅ API ์‚ญ์ œํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿ“ To Do List

  • [POST /api/studies]์—์„œ color ์ถ”๊ฐ€ ๋ฐ˜์˜

๐Ÿ“ทย ์Šคํฌ๋ฆฐ์ƒท(์„ ํƒ)

image

[F] feat : NULL ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋…ผ์˜

ํ•˜ํ•˜ ์ œ๊ฐ€ ์ „์— ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋ฅผ ๋“ฑ๋กํ•˜์ง€ ์•Š์•˜์„๋•Œ (== ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๊ฐ€ ์—†์„๋•Œ)
NULL ๊ฐ’์ด์—ฌ๋„ ์ƒ๊ด€์—†๋‹ค๊ณ  ๋ฌด์˜์‹์ค‘์— ๋งํ•œ๊ฒƒ ๊ฐ™์€๋ฐ์š”...

์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋‹ค ๋ณด๋‹ˆ NULL๋ณด๋‹ค ""์ด ๋” ์™„์„ฑ๋„ ๋†’์€ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค... ํ•˜ํ•˜
๊ทธ๋ž˜์„œ ํ˜น์‹œ ๋ชจ๋“  String ํƒ€์ž…์˜ NULL์„ ""๋กœ ์ฒ˜๋ฆฌํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

ํšŒ์› ์ •๋ณด, ์Šคํ„ฐ๋”” ์ •๋ณด, ํšŒ์ฐจ ๋“ฑ ๋ชจ๋‘๊ฐ€ ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค
์ˆ˜์ •์ด ๋งŽ์•„์งˆ๊นŒ์š”..

๐ŸŒ Summary

String ํƒ€์ž…์˜ NULL์„ ๋ชจ๋‘ ""๋กœ ๋ฐ”๊ฟ”์ฃผ์„ธ์š”

๐Ÿ“ To Do List

  • (String)NULL -> ""

[F] text_style ํŒŒ์ผ์˜ font size ๋ณ€๊ฒฝ

Flutter ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ Font Size๊ฐ€ ์ „๋ฐ˜์ ์œผ๋กœ ํฌ๊ธฐ๋•Œ๋ฌธ์— ๋””์ž์ธ์— ์–ด๋ ค์›€์„ ๊ฒช๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค
๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ Font Size๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๊ดœ์ฐฎ์œผ์‹ค๊นŒ์š”?

๋กœ๊ทธ์ธ ๊ตฌํ˜„์œผ๋กœ ์ธํ•œ API ๊ด€๋ จ ์ˆ˜์ • ์š”์ฒญ

์Šคํ”„๋ง ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ํ™œ์šฉํ•ด ์ž์ฒด ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์— ๋”ฐ๋ผ ์ˆ˜์ • ๋ฐ ์ถ”๊ฐ€๋œ API ๋ชฉ๋ก์€ ์—ฌ๊ธฐ๋‹ค๊ฐ€ ์ •๋ฆฌํ•ด๋†“๊ฒ ์Šต๋‹ˆ๋‹ค.

To Do

์ถ”๊ฐ€

  • ๋กœ๊ทธ์ธ API ์ƒ์„ฑ (/auth/signIn)

์ˆ˜์ •

  • ํšŒ์›๊ฐ€์ž… API ๊ฒฝ๋กœ ๋ณ€๊ฒฝ (/auth/signUp)
  • ๋ชจ๋“  API ์•ž์— /api๋ฅผ prefix๋กœ ์ถ”๊ฐ€
  • User API
    • id๋ฅผ ํ†ตํ•œ ์‚ฌ์šฉ์ž ์กฐํšŒ => userId ์ธ์ž ์‚ญ์ œ
  • Study Participant API
    • ์Šคํ„ฐ๋””์— ํšŒ์› ์ดˆ๋Œ€ => userId ์ธ์ž ์‚ญ์ œ
    • ์Šคํ„ฐ๋””์—์„œ ํšŒ์› ์ดˆ๋Œ€ => API ๊ฒฝ๋กœ ์ˆ˜์ • (POST /api/studies/participants)
    • ์Šคํ„ฐ๋””์—์„œ ํšŒ์› ํƒˆํ‡ด => userId ์ธ์ž ์‚ญ์ œ
    • ์Šคํ„ฐ๋””์—์„œ ํšŒ์› ํƒˆํ‡ด => API ๊ฒฝ๋กœ ์ˆ˜์ • (DELETE /api/studies/participants)
  • Study API
    • ์ƒˆ๋กœ์šด ์Šคํ„ฐ๋”” ์ƒ์„ฑ => body ๋‚ด hostUserId ํ•„๋“œ ์‚ญ์ œ
  • Round API
    • ํšŒ์ฐจ ์‚ญ์ œํ•˜๊ธฐ => userId ์ธ์ž ์‚ญ์ œ
  • Notice API
    • ์ƒˆ๋กœ์šด ๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ฑ => body ๋‚ด userId ํ•„๋“œ ์‚ญ์ œ
    • ๊ณต์ง€์‚ฌํ•ญ ์กฐํšŒ => userId ์ธ์ž ์‚ญ์ œ
    • ๊ณต์ง€์‚ฌํ•ญ ์ฝ์Œ/์•ˆ์ฝ์Œ ์ฒดํฌ => userId ์ธ์ž ์‚ญ์ œ
    • ๊ณต์ง€์‚ฌํ•ญ ๋ชฉ๋ก ์กฐํšŒ => userId ์ธ์ž ์‚ญ์ œ
  • Comment API
    • ๋Œ“๊ธ€ ์ž‘์„ฑ => body ๋‚ด userId ํ•„๋“œ ์‚ญ์ œ

What you need to know

๋กœ๊ทธ์ธ ๋ฐ ํšŒ์›๊ฐ€์ž…์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ API๋ฅผ ํ˜ธ์ถœ ํ•  ๋•Œ request header ๋‚ด Authorization์— token์„ ๋‹ด์•„์„œ ํ˜ธ์ถœํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค!
(์ด์— ๋Œ€ํ•œ ๊ฐœ๋…๊ณผ ๊ด€๋ จํ•ด์„œ๋Š” ์—ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”)

swagger ์‚ฌ์šฉ๋ฒ• ๋ณ€๊ฒฝ (=> swagger ๋‚ด์—์„œ Header Authorization์— Bearer {token} ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•)

  1. Auth์˜ [POST /auth/signIn] ํ˜ธ์ถœ์„ ํ†ตํ•ด token ๊ฐ’ ๋ฐ›์•„์˜ค๊ธฐ
  2. ์Šค์›จ๊ฑฐ ๋ฉ”์ธ ํŽ˜์ด์ง€ ์ƒ๋‹จ ๐Ÿ”’Authorize ํด๋ฆญ ํ›„ token ๊ฐ’ ์ž…๋ ฅ
  3. API ํ˜ธ์ถœ ๊ฐ€๋Šฅ

/api/** API์— ๋Œ€ํ•ด์„œ๋Š” ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด USER ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
/auth/** API์— ๋Œ€ํ•ด์„œ๋Š” ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ๊ถŒํ•œ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

JWT๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํ† ํฐ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์€ 24์‹œ๊ฐ„์ด๊ณ  ์ถ”ํ›„ ํ˜‘์˜๋ฅผ ํ†ตํ•ด ํ† ํฐ ์œ ํšจ์‹œ๊ฐ„ ์ •์ฑ…์„ ๊ฒฐ์ •ํ•˜๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

โญ๏ธ ๊ธฐ์กด ์ตœ๊ทœํ˜„, ์žฅ์žฌ์šฐ์˜ ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” 0000 ์ž…๋‹ˆ๋‹ค.

ํ”„๋กœํ•„ ์‚ฌ์ง„ ์—…๋กœ๋“œ API ์—ฐ๋™ ์š”์ฒญ

[PATCH] /api/users/profile/images ํ”„๋กœํ•„ ์‚ฌ์ง„ ์—…๋กœ๋“œ

API ๊ฐœ๋ฐœ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”ํ›„์— ๋””์ž์ธ ์™„๋ฃŒ๋˜๋ฉด ์—ฐ๋™ ๋ถ€ํƒ ๋“œ๋ฆฝ๋‹ˆ๋‹ค!


์Œ POST๊ฐ€ ๋งž๋‹ค๊ณ  ์ƒ๊ฐ ๋“ค์–ด์„œ ๋‹ค์Œ์— ์„œ๋ฒ„ ๋ฐฐํฌํ•  ๋•Œ POST๋กœ ๋ณ€๊ฒฝํ•ด๋†“๊ฒ ์Šต๋‹ˆ๋‹ค!

์Šคํ„ฐ๋”” ์ƒ์„ธ ๋ณด๊ธฐ์˜ ์Šคํ„ฐ๋”” ์š”์•ฝ ์ •๋ณด API ์š”์ฒญ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!
์ƒˆ๋กœ์šด ์ž‘์—… ์š”์ฒญ์„ ๊ธฐ๋‹ค๋ฆฌ์‹œ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ์ƒˆ๋กœ์šด ์š”์ฒญ ๋“œ๋ ค์š”
์‚ฌ์ง„์˜ ์ƒ๋‹จ์— ์œ„์น˜ํ•œ ์Šคํ„ฐ๋”” ์š”์•ฝ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” API๋ฅผ ์š”์ฒญ๋“œ๋ฆฝ๋‹ˆ๋‹ค!
ํ”„๋กœํ•„ ์‚ฌ์ง„, ์Šคํ„ฐ๋”” ๊ณ ์œ  ์ƒ‰์ƒ, ์Šคํ„ฐ๋”” ์ด๋ฆ„ ๋ฐ ์Šคํ„ฐ๋”” ์„ค๋ช…, ์Šคํ„ฐ๋”” ์•„์ด๋””๊ฐ€ ํ•„์š”ํ•˜๊ฒ ๋„ค์š”
๋ถ€ํƒ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค~

image

[ํ™ˆ ํ™”๋ฉด] ํšŒ์ฐจ ํ‘œ์‹œ ๊ด€๋ จ ์—๋Ÿฌ ์‚ฌํ•ญ

image image

์‚ฌ์ง„๊ณผ ๊ฐ™์ด ํ™ˆํ™”๋ฉด์—์„œ 7ํšŒ์ฐจ๋ผ๊ณ  ํ‘œ์‹œ๋˜์–ด ์žˆ์ง€๋งŒ
์‹ค์ œ ๋‚ด์šฉ์€ ์ „์ฒด 7๊ฐœ ์ค‘ 3๋ฒˆ์งธ์ธ 3ํšŒ์ฐจ์˜ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค!

ํšŒ์ฐจ ๋ฒˆํ˜ธ๊ฐ€ ์ž˜๋ชป ํ‘œ์‹œ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!!

๊ณต์ง€์‚ฌํ•ญ ์ฝ์Œ/์•ˆ์ฝ์Œ ์ฒดํฌ API์˜ reponse ์ˆ˜์ • ๊ด€๋ จ ์š”์ฒญ์‚ฌํ•ญ ์งˆ๋ฌธ

[PATCH /notices/check] API ๊ด€๋ จ ์ด์•ผ๊ธฐ ์ž…๋‹ˆ๋‹ค!

"์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!
๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ์กฐํšŒ ์ฝ์Œ ํ‘œ์‹œ API์™€ ๊ด€๋ จํ•ด์„œ ์š”์ฒญ์‚ฌํ•ญ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
ํ˜„์žฌ ๋ฐ˜ํ™˜๊ฐ’์œผ๋กœ ์ฝ์Œ/์•ˆ์ฝ์Œ ์—ฌ๋ถ€๋งŒ ๋ฆฌํ„ดํ•ด์ฃผ๊ณ  ์žˆ๋Š”๋ฐ์š”,
์ถ”๊ฐ€๋กœ ๋ช‡๋ช…์ด ์ฝ์€ ์ƒํƒœ์ธ์ง€๋„ ๋ฆฌํ„ดํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ใ…Žใ…Žใ…Žใ…Ž"

๋ผ๊ณ  ์žฌ์šฐ๋‹˜์ด ์š”์ฒญํ•ด์ฃผ์…จ์Šต๋‹ˆ๋‹ค.
์•„๋งˆ๋„ ์ฝ์Œ/์•ˆ์ฝ์Œ ์—ฌ๋ถ€๋ฅผ returnํ•˜๋Š” ์ด์œ ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๊ณ ์ž ์š”์ฒญํ•ด์ฃผ์‹  ์‚ฌํ•ญ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ๋ฒ„ํŠผ ์—ฐํƒ€,... ํ•˜๋Š” ๊ฒฝ์šฐ ๋“ฑ ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๋ ค๊ณ  ๋ช‡๋ช…์ด ์ฝ์€ ์ƒํƒœ์ธ์ง€ ์•Œ๊ธฐ ์œ„ํ•ด ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ฆฌ๋Š” ๊ฑด ์•ฝ๊ฐ„ ๊ณผํ•˜์ง€ ์•Š์„๊นŒ ์‹ถ์€๋ฐ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ???

[B] feat : ์Šคํ„ฐ๋”” ์ƒ์„ฑ API ์ˆ˜์ • ์š”์ฒญ

์Šคํ„ฐ๋”” ์ƒ์„ฑ์—์„œ ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ํ•จ๊ป˜ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์˜ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๐ŸŒ Summary

POST /api/studies

  1. ๊ธฐ์กด์— ์กด์žฌํ•˜๋˜ picture ํ•„๋“œ ์‚ญ์ œ
  2. request body์— profileImage ์ถ”๊ฐ€

๐Ÿ“ To Do List

  • ์Šคํ„ฐ๋”” ์ƒ์„ฑ ์‹œ์— ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ • ์š”์ฒญ

๐Ÿ“ทย ์Šคํฌ๋ฆฐ์ƒท(์„ ํƒ)

image

๊ณต์ง€์‚ฌํ•ญ ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ ๊ด€๋ จ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์š”์ฒญ

ํŠน์ • ์Šคํ„ฐ๋””์˜ ๊ณต์ง€์‚ฌํ•ญ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ๋•Œ ๊ฐ• ๊ณต์ง€์‚ฌํ•ญ ๋งˆ๋‹ค ์ž‘์„ฑ๋˜์–ด์žˆ๋Š” ๋Œ“๊ธ€ ์ˆ˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋ธ”๋ผ์ธ๋“œ ์–ดํ”Œ์˜ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

image
...
"noticeList": [
      {
        "noticeId": 5,
        "title": "๋นˆ์†์— ์ปคํ”ผ๋ฅผ ๋งˆ์‹œ๋ฉด",
        "contents": "์†์ด ์“ฐ๋ฆฝ๋‹ˆ๋‹ค.\n\n๊ทผ๋ฐ ๋ฐฅ๋จน๊ณ  ์ปคํ”ผ๋ฅผ ๋งˆ์‹œ๋‹ค ๋ณด๋ฉด ์ ์  ๋ฐฐ๊ฐ€ ๊บผ์ง€์ž–์•„์š”? ๊ทธ๋Ÿฌ๋ฉด ๊ทธ๊ฑด ๋นˆ์†์— ์ปคํ”ผ๋ฅผ ๋งˆ์‹œ๋Š” ๊ฑธ๊นŒ์š”? ์‚ฌ์‹ค ์ง€๊ธˆ ์กฐ๊ธˆ ์†์ด ์“ฐ๋ฆฝ๋‹ˆ๋‹ค. ์ปคํ”ผ๋ฅผ ๊ทธ๋งŒ ๋งˆ์…”์•ผ ๊ฒ ์–ด์š”โ€ฆ",
        "writerNickname": "arkady",
        "pinYn": "Y",
        "createDate": "2023-09-08T17:51:35.764478",
        "commentCount": 3
      },
...

๊ทธ๋ž˜์„œ ๊ฐ ๊ณต์ง€์‚ฌํ•ญ์— ๋Œ“๊ธ€ ์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก commentCount๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค!
๊ดœ์ฐฎ์œผ์‹œ๋ฉด ๋ฐ˜์˜ํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์œผ์‹ ๊ฐ€์š” ใ…Žใ…Ž

"๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ์กฐํšŒ"์‹œ "๋ณธ์ธ์˜ ์ฝ์Œ ์—ฌ๋ถ€" ์ถ”๊ฐ€ ์š”์ฒญ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!
๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ์กฐํšŒ API (notices?noticeId)์—์„œ ์ถ”๊ฐ€ ์š”์ฒญ์‚ฌํ•ญ ์žˆ์–ด์„œ Issue ๋‚ ๋ ค์š”

์‚ฌ์šฉ์ž(๋ณธ์ธ)์ด ํ•ด๋‹น ๊ณต์ง€๋ฅผ ์ฝ์Œ ํ‘œ์‹œํ–ˆ๋Š”์ง€ ์•ˆํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๊ฐ€ ํ•„์š”ํ•˜๋”๊ตฐ์š”

์ด ๊ณผ์ •์—์„œ ์‚ฌ์šฉ์ž ์•„์ด๋””๋„ ํ•„์š”ํ•˜์‹œ๊ฒ ๋„ค์š”
์ด์ฏค ๋˜๋ฉด "์ฝ์Œ ์—ฌ๋ถ€ ๋ฒ„ํŠผ"์—์„œ ํ˜ธ์ถœํ•˜๋Š” ์ •๋ณด์— ๋Œ€ํ•œ API๋ฅผ ๋ณ„๋„๋กœ ๋นผ์•ผํ•˜๋‚˜ ์‹ถ์„์ •๋„๋„ค์š” ใ…‹ใ…‹

image

ํšŒ์ฐจ ์ƒ์„ธ ๋ณด๊ธฐ์˜ ์„ธ๋ถ€ ๊ธฐ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ/์ˆ˜์ • API ์š”์ฒญ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!!
'ํšŒ์ฐจ ์ƒ์„ธ ๋ณด๊ธฐ'์˜ ์„ธ๋ถ€ ๊ธฐ๋ก (Detail Record)์™€ ๊ด€๋ จ๋œ API ์š”์ฒญ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  1. '์„ธ๋ถ€ ๊ธฐ๋ก' ๊ฐ€์ ธ์˜ค๋Š” API
  2. '์„ธ๋ถ€ ๊ธฐ๋ก' ์ˆ˜์ •ํ•˜๋Š” API
    ๋ฅผ ์š”์ฒญ ๋“œ๋ฆฝ๋‹ˆ๋‹ค !!

์šฐ์„  '์„ธ๋ถ€ ๊ธฐ๋ก'์€ String ์ž๋ฃŒํ˜•์œผ๋กœ๋งŒ ์ž…๋ ฅ ๋ฐ›๊ณ , ์ €์žฅํ•˜๊ณ  ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค!
๋‚˜์ค‘์—... ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ ํ•  ์ˆ˜ ์žˆ๋„๋ก๋„ ๊ฐœ์„ ํ•ด๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค !!
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค !

image

์ˆœ์„œ ์ปค์Šคํ…€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•  ๊ธฐ๋Šฅ ๋…ผ์˜

todomate์— ํ• ์ผ ์ฒ˜๋Ÿผ ์ˆœ์„œ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผํ•  ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ ๋‚˜๋ˆ ๋ณด๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ์ •๋ ฌ ๊ธฐ์ค€์„ ํŽ˜์ด์ง€์— ์ •๋ฆฌํ•ด๋†จ๋Š”๋ฐ, ์ €๋Š” ์•„๋ž˜ 2๊ฐœ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  • ํ™ˆํ™”๋ฉด ๋‚ด ์Šคํ„ฐ๋”” ๋ชฉ๋ก๋“ค
    image

  • ํƒœ์Šคํฌ ๋ชฉ๋ก๋“ค
    image

ํ• ์ผ ์กฐํšŒ API ์ˆ˜์ • ์š”์ฒญ

GET /tasks?roundId=

ํŠน์ • ํšŒ์ฐจ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ํ• ์ผ์„ ์กฐํšŒํ•˜๋Š” API์— ์ˆ˜์ •์„ ์š”์ฒญ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

ํ˜„์žฌ๋Š”

  1. roundParticipantId (?? ๋ญ”์ง€๋ฅผ ๋ชฐ๋ผ์„œ ํ•œ๊ธ€๋กœ ํ‘œํ˜„์„ ๋ชปํ•˜๊ฒ ๋„ค์š”)
  2. ์œ ์ €์•„์ด๋””
  3. [ ํ• ์ผ ๋ฆฌ์ŠคํŠธ ]

์˜ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค.

์ €ํฌ๊ฐ€ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ํ”„๋กœํ† ํƒ€์ž…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

๋”ฐ๋ผ์„œ

  1. ์‚ฌ์šฉ์ž ๋‹‰๋„ค์ž„
  2. ํ•ด๋‹น ํšŒ์ฐจ์˜ ๋‹ฌ์„ฑ ์ •๋„
  3. ์ฐธ์—ฌ ์˜ˆ์ • ์—ฌ๋ถ€ ํƒœ๊ทธ { ์ฐธ์„, ๋Šฆ์ฐธ, ๋ถˆ์ฐธ ... } || ์ถœ์„ ์ƒํƒœ ํƒœ๊ทธ { ์ง€๊ฐ, ์ถœ์„ ... }

๊ฐ€ ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

[F] Round Info ์œ„์ ฏ์˜ ์ •๋ ฌ ๊ธฐ์ค€

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜,

๋‹ค๋ฆ„ ์•„๋‹ˆ๋ผ Study Info Panel ์—์„œ Round Info ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋˜ ๋„์ค‘

Round Info ์œ„์ ฏ์˜ ๋‚ด๋ถ€๊ฐ€ ๊ฐ€์šด๋ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•˜์—ฌ ๋ง์”€๋“œ๋ฆฝ๋‹ˆ๋‹ค

Request : Round Info ๋‚ด๋ถ€๋ฅผ ์™ผ์ชฝ์„ ๊ธฐ์ค€์œผ๋กœ (์ •ํ™•ํžˆ๋Š” ๋‚ด๋ถ€ ์ „์ฒด์— ๊ฝ‰์ฐจ๋„๋ก) ํ•ด์ฃผ์„ธ์š”

์•„๋ž˜์— ์‚ฌ์ง„ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค..! ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ์ƒ‰์น ๋œ ๋ถ€๋ถ„์€ Round Info๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋กœ ๋‚ด๋ถ€์˜ Round Info์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์‹œ๊ฐํ™” ํ•ด์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

image

[B] User Profile๊ณผ ๊ด€๋ จ๋œ API์— ๋Œ€ํ•œ Issue

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜,

ํ•ด๋‹น Issue๋Š” User Profile ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ API์— ๋Œ€ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ ์กฐ์ •์„ ์œ„ํ•œ Issue์ž…๋‹ˆ๋‹ค.

์ด์•ผ๊ธฐ์— ์•ž์„œ Profile์—์„œ๋Š” 3๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…์นญ ์ •์˜ํ•˜๊ณ  ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. User Profile Summary : ์ด๋ฏธ์ง€, ์ด๋ฆ„, ์ƒํƒœ ๋ฉ”์„ธ์ง€๋ฅผ ๊ฐ€์ง„ ์š”์•ฝ ํ”„๋กœํ•„
  2. User Profile (Detail) : ์œ„์˜ ๋‚ด์šฉ๊ณผ ๋”๋ถˆ์–ด ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋Š” ์Šคํ„ฐ๋””, ์ถœ์„๋ฅ  ๋“ฑ์„ ๋ณด์—ฌ์คŒ
  3. User Profile Image : ์ฐธ์—ฌ์ž ๋ฆฌ์ŠคํŠธ ๋“ฑ์„ ๋ณด์—ฌ์ค„๋•Œ ๋ณด์—ฌ์ค„ ์ด๋ฏธ์ง€ ํ”„๋กœํ•„

  1. ?? | User Profile Image๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    ์ด๋•Œ ์„ธ๋ถ€์ ์œผ๋กœ User Profile Image๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
    (1) userId : ํด๋ฆญ์‹œ ์„ธ๋ถ€ ์ •๋ณด ์กฐํšŒ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(?์•„๋‹Œ๊ฐ€?)
    (2) image : ํ‘œ์‹œ๋  ์ด๋ฏธ์ง€์ž…๋‹ˆ๋‹ค ์ด๋•Œ ์Šค์ผ€์ผ์ด ์ž‘์€ ์ด๋ฏธ์ง€์ด๊ธด ํ•˜๋‚˜ ์ด๊ฒƒ์€ ๋‚˜์ค‘์— ๋‹ค๋ฃจ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
    (3) color : ์ฐธ์„ ์—ฌ๋ถ€, ํ˜น์€ ์ง„ํ–‰๋„๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ํ‘œ์‹œ๋  ์ƒ‰์ƒ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    (4) progress : ์ง„ํ–‰๋„๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ [0:1.0]์˜ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๊ฐ’์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํŠน๋ณ„ํžˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋Š” 1.0์„ ๋ฆฌํ„ดํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

[B] Comment ๋Œ“๊ธ€๊ณผ ๊ด€๋ จ๋œ API์— ๋Œ€ํ•œ Issue

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜,

ํ•ด๋‹น Issue๋Š” ๊ณต์ง€ ์‚ฌํ•ญ ์ƒ์„ธ ๋ณด๊ธฐ์—์„œ์˜ Comment ๊ธฐ๋Šฅ๊ณผ ๊ด€๋ จ๋œ API์— ๋Œ€ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ ์กฐ์ •์„ ์œ„ํ•œ Issue์ž…๋‹ˆ๋‹ค.


  1. ๋Œ€๋Œ“๊ธ€ ๊ธฐ๋Šฅ์˜ ๊ตฌํ˜„
    ๋Œ€๋Œ“๊ธ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ ๋ณด๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™์•„์š”.
    DB์—์„œ๋Š” ๋Œ“๊ธ€์ด ๋ถ€๋ชจ ๋Œ“๊ธ€์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๋Œ€๋Œ“๊ธ€ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ ๊ฒƒ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋•Œ Front์—์„œ comments๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์–ด๋–ค์‹์œผ๋กœ ๋ฆฌํ„ด๋ฐ›์„์ง€๋ฅผ ์ƒ๊ฐํ•ด๋ด์•ผํ• ๊ฒƒ ๊ฐ™์•„์š”.
    ์ œ๊ฐ€ ์ƒ๊ฐํ•ด๋ณธ ๊ฒƒ์€ ๋‘๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.
    (1) Comment๋Š” replies๋ผ๋Š” ์ด๋ฆ„์˜ List๋ฅผ ๊ฐ€์ง€๋„๋ก ํ•˜๋Š”๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋ฅผ ํ•˜๋‹จ์— ์ฒจ๋ถ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
    (2) Comment๋Š” isRepy๋ผ๋Š” bool๊ฐ’์„ ๊ฐ€์ง€๊ณ , ํ•ด๋‹น ๊ฐ’์— ๋”ฐ๋ผ ์ผ๋ฐ˜ ๋Œ“๊ธ€ UI์™€ ๋‹ต๊ธ€์˜ UI๋กœ ๋‹ฌ๋ผ๋ณด์ด๋„๋ก ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(1)์˜ ์˜ˆ์‹œ
image

(2)์˜ ์˜ˆ์‹œ
image

๊ฒฐ๊ณผ
image

์Šคํ„ฐ๋”” ์ƒ์„ธ ๋ณด๊ธฐ์˜ ๊ณต์ง€ ์‚ฌํ•ญ 3๊ฐœ API ์š”์ฒญ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜,
๋‹ค์Œ ์ž‘์—…์œผ๋กœ ์Šคํ„ฐ๋”” ์ƒ์„ธ ๋ณด๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ณต์ง€ ์‚ฌํ•ญ 3๊ฐœ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” API๋ฅผ ์š”์ฒญ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ํ•˜์‹ค ์‚ฌ์ง„ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค~

image

๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ์กฐํšŒ ์‹œ ์ฝ์Œ ํ‘œ์‹œ์— ๋Œ€ํ•œ ๊ธฐํš ๋…ผ์˜

์žฌ์šฐ๋‹˜ ํ•˜์ด
ํ˜„์žฌ ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์•ฑ ๊ฐœ๋ฐœ์ด ๋˜์–ด์žˆ๋Š” ๊ฑธ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
image

์งˆ๋ฌธํ•˜๊ณ ์ž ํ•˜๋Š”๊ฑด ์ ‘๋•Œ ์ €ํฌ ์ง€ํ•˜์ฒ  ํƒ€๋ฉด์„œ ๊ณต์ง€์‚ฌํ•ญ ์ฝ์Œ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จํ•ด์„œ ๋…ผ์˜ํ–ˆ๋˜ ๋ถ€๋ถ„์˜ ์—ฐ์žฅ์„  ์ž…๋‹ˆ๋‹ค.

  1. ๊ณต์ง€์‚ฌํ•ญ ์ฝ์Œ ๋ถ€๋ถ„์„ ๊ธธ๊ฒŒ ๋ˆŒ๋ €์„ ๋•Œ ์ฝ์Œ ์ฒ˜๋ฆฌ ํ•œ ์ธ์›์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ๋กœ ํ•œ ๊ฑธ๋กœ ๊ธฐ์–ตํ•˜๋Š”๋ฐ ๋งž๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค~

  2. ๋งž๋‹ค๋ฉด ๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ๋ณด๊ธฐ ์‹œ์—๋Š” ๊ณต์ง€์‚ฌํ•ญ ์ฝ์Œ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ ์ธ์›์˜ ์ˆ˜๋งŒ client๋กœ response ํ•ด๋“œ๋ฆฌ๋ฉด ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค~

๋‹ต๋ณ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค~

ํ™ˆ ํ™”๋ฉด ๊ด€๋ จ API ์š”์ฒญ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!

ํ™ˆ ํ™”๋ฉด ๊ด€๋ จ API๋ฅผ ์š”์ฒญ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ด์Šˆ ์ž‘์„ฑ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
ํ™ˆ ํ™”๋ฉด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

image

์‚ฌ์šฉ์ž์˜ ์•„์ด๋””๋ฅผ ๊ธฐ์ค€์œผ๋กœ, ์ฐธ์—ฌํ•˜๊ณ  ์žˆ๋Š” ์Šคํ„ฐ๋””์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ด์ฃผ๋Š”๋ฐ์š”,
๊ฐ ์Šคํ„ฐ๋”” ๋ณ„๋กœ ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  1. ์Šคํ„ฐ๋”” ์ •๋ณด
  2. ํšŒ์ฐจ ์ •๋ณด
  3. ํšŒ์ฐจ๋‚ด ํ• ์ผ ์ •๋ณด

๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์€ ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ํ•จ๊ป˜ ์ฒจ๋ถ€ ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

image

[F] feat : ๊ณต์ง€ ์ƒ์„ฑ API ์ˆ˜์ • ์š”์ฒญ

ํ˜„์žฌ๋Š” ์ƒˆ๋กœ์šด ๊ณต์ง€์˜ noticeId๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š”๋ฐ์š”,
์ด๋ฒˆ์— ๊ณต์ง€ ์กฐํšŒ ๋ฐฉ์‹์„ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜๋ฉด์„œ

  1. ๊ณต์ง€ ์ƒ์„ฑ API -> ์ƒˆ๋กœ์šด noticeId
  2. ์ƒˆ๋กœ์šด noticeId -> ๊ณต์ง€์‚ฌํ•ญ ์กฐํšŒ API -> ๊ณต์ง€์‚ฌํ•ญ ์ •๋ณด ํš๋“
  3. ๊ณต์ง€์‚ฌํ•ญ ์ •๋ณด -> ๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ์กฐํšŒ ํŽ˜์ด์ง€๋กœ ์ด๋™

์˜ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š”๋ฐ์š”,
์š”์•ฝ ํ•˜์ž๋ฉด API๋ฅผ 2๋ฒˆ์”ฉ ํ˜ธ์ถœํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.

์ด์—
์ƒˆ๋กœ์šด ๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ฑ์‹œ
์ƒˆ๋กœ์šด ๊ณต์ง€์‚ฌํ•ญ์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

๐ŸŒ Summary

์ƒˆ๋กœ์šด ๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ฑ์‹œ ์ƒ์„ฑ๋œ ๊ณต์ง€์‚ฌํ•ญ ์ „์ฒด๋ฅผ ์ „๋‹ฌํ•ด ์ฃผ์„ธ์š”
POST /api/notices/

๐Ÿ“ To Do List

  • ์ƒˆ๋กœ์šด ๊ณต์ง€ ์ƒ์„ฑ์‹œ ์ƒ์„ฑ๋œ ๊ณต์ž์‚ฌํ•ญ์„ ๋ฆฌํ„ดํ•˜๋„๋ก ์ˆ˜์ •

[B] spring boot version ๋ณ€๊ฒฝ

๋ณ€๊ฒฝ ์ „ spring boot version -> 3.0.5
๋ณ€๊ฒฝ ํ›„ spring boot version -> 2.7.11
๋ณ€๊ฒฝ ์ „ jdk -> 17
๋ณ€๊ฒฝ ํ›„ jdk -> 11

๋ณ€๊ฒฝํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. spring boot์˜ version์ด 3.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ๋จ์— ๋”ฐ๋ผ spring security, swagger ๋“ฑ์—์„œ ์„ค์ • ๋ฐฉ์‹์ด ๋‹ค์†Œ ๋‹ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณต์‹๋ฌธ์„œ ์กฐ์ฐจ ์ด์— ๋Œ€ํ•œ ๋ฐ˜์˜์ด ์ž˜ ์•ˆ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋งค์šฐ ์ ์Šต๋‹ˆ๋‹ค.
  2. spring boot 3.0์ด ์ •์‹ release ๋์Œ์—๋„ ๋ถˆ์•ˆ์ •ํ•œ ์š”์†Œ๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์€ ์ด์œ ๋“ค๋กœ ์ธํ•ด version downgrade๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Paging ์ ์šฉํ•  API ๋ชฉ๋ก

  • ๊ณต์ง€์‚ฌํ•ญ ๋ชฉ๋ก API
    image
    image

  • ๊ณต์ง€์‚ฌํ•ญ ๋Œ“๊ธ€ ๋ชฉ๋ก API

  • ํšŒ์ฐจ ๋ชฉ๋ก API

ํŽ˜์ด์ง• ์ ์šฉํ•œ API๋Š” ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ๋” ๊ฐ์ŒŒ์Šต๋‹ˆ๋‹ค.

  • response์˜ ํ•„๋“œ์ธ totalElements๋Š” ๊ฐ์ฒด์˜ ์ด ๊ฐœ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๊ณ  totalPages๋Š” ์ „์ฒด ํŽ˜์ด์ง€์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • API๋ฅผ ์š”์ฒญํ•  ๋•Œ offset์€ ์‹œ์ž‘ ํŽ˜์ด์ง€๋ฅผ ์˜๋ฏธํ•˜๊ณ , pageSize๋Š” ํ•œ ํŽ˜์ด์ง€์— ๋ณด์—ฌ์ค„ ๊ฐ์ฒด ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

RoundInfo class์˜ ๋ถ„ํ•  ๊ด€๋ฆฌ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜ RoundInfo Class ์„ธ๋ถ„ํ™” ์š”์ฒญ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

ํ˜„์žฌ RoundInfo class๋Š”
image
๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์žˆ๋Š”๋ฐ,

RoundInfo๋Š”
image
๋‹จ์œ„๋กœ ๋งŒ๋“ค์–ด์ง€๊ณ , RoundInfoPanel์—์„œ RoundInfo์™€ UserListButtons๋ฅผ ๊ฐ€์ง€๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ถ”๊ฐ€๋กœ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด Tag๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ๋งˆ๋ จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค ๊ทธ๋ฆฌ๊ณ  '>'๊ธฐํ˜ธ๋„ RoundInfo์—์„œ ๊ฐ€์ง€๊ธฐ ๋ณด๋‹ค๋Š” ์ด์šฉํ• ๋•Œ ๋ณ„๋„๋กœ ์˜†์— ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์ด๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค!

์š”์•ฝ

  1. RoundInfo์™€ RoundInfoPanel์„ ๊ตฌ๋ถ„ํ•˜๊ณ , ์„ธ๋ถ„ํ™” ํ•ด์ฃผ์„ธ์š”
  2. RoundInfo์— Tag๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์žฅ์†Œ๋ฅผ ๋งˆ๋ จํ•ด ์ฃผ์„ธ์š”
  3. '>'๊ธฐํ˜ธ๋Š” ๋ณ„๋„๋กœ ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•˜๊ฒŒ ํ•ด์ฃผ์„ธ์š”

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

UserListButton Class์— ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์š”๊ตฌ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜, UserListButton Class์— ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ ์š”์ฒญ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  1. ์ด๋ฏธ์ง€๋“ค์˜ scale์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์„ธ์š”
  2. ์ด๋ฏธ์ง€๊ฐ„ padding์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์„ธ์š”

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

[F] ๊ณต์ง€์‚ฌํ•ญ ์ž‘์„ฑ ์‹œ๊ฐ ๊ด€๋ จ ์ฝ”๋“œ ์„ค๋ช… ์š”์ฒญ

์žฌ์šฐ๋‹˜ ~ ๊ถ๊ธˆํ•ด์„œ ์ฝ”๋“œ ์–ด๋–ค ์‹์œผ๋กœ ์งœ์‹  ๊ฑด์ง€ ์‹œ๊ฐ„์žˆ์„ ๋•Œ ์„ค๋ช… ๋ถ€ํƒ๋“œ๋ ค๋„ ๋ ๊นŒ์š”?

๊ณต์ง€์‚ฌํ•ญ์—์„œ [๋ฐฉ๊ธˆ์ „], [n๋ถ„์ „] ์ฒ˜๋Ÿผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„ ๊ตฌํ˜„ ์™„๋ฃŒ๋œ ๊ฑธ๋กœ ์•„๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ์งœ์…จ๋‚˜์š”?!
์‚ฌ์‹ค ์ œ๊ฐ€ ์ง์ ‘ ๋ณด๋ฉด ๋˜๊ธด ํ•˜๋Š”๋ฐ (์ปค๋ฐ‹ ๋ฉ”์„ธ์ง€์—์„œ ํ™•์ธ์ด ์–ด๋ ค์›€ && ์ƒˆ ๋งฅ์— ํ”„๋ก ํŠธ ๋ถ€๋ถ„ ์„ธํŒ… ์•ˆ๋จ) ์ด์Šˆ๋กœ ํ™•์ธ์ด ํž˜๋“ญ๋‹ˆ๋‹ค (== ๊ท€์ฐฎ์Šต๋‹ˆ๋‹ค).

์‹ฌ์‹ฌํ•  ๋•Œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” ใ…‹.ใ…‹

[B] ๊ณต์ง€์‚ฌํ•ญ ์„ธ๋ถ€์กฐํšŒ API๊ด€๋ จ Issue

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜,

ํ˜„์žฌ ๊ณต์ง€์‚ฌํ•ญ ์„ธ๋ถ€์กฐํšŒ API์—์„œ๋Š” ๊ณต์ง€์‚ฌํ•ญ ์•„์ด๋””๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ์ง€ ์•Š๋Š”๋ฐ ํ•จ๊ป˜ ๊ณต์ง€์‚ฌํ•ญ ์•„์ด๋””๋„ ๋ฆฌํ„ดํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ณต์ง€์‚ฌํ•ญ ์ƒ์„ธ ๋ณด๊ธฐ์—์„œ์˜ ๊ณต์ง€ ์‚ฌํ•ญ ์‚ญ์ œํ•˜๊ธฐ ๋ฐ ๋Œ“๊ธ€ ์‚ญ์ œํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!
"์ƒˆ๋กœ์šด ์ž‘์—… ์š”์ฒญ"์„ ๊ธฐ๋‹ค๋ฆฌ์‹œ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๋˜ ์ถ”๊ฐ€๋กœ ์ƒˆ๋กœ์šด ์š”์ฒญ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  1. ๊ณต์ง€ ์‚ฌํ•ญ ๊ฒŒ์‹œ๋ฌผ์„ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ
  2. ๋Œ“๊ธ€์„ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ

๋‘ ๊ฐ€์ง€์˜ ๊ธฐ๋Šฅ์„ ์š”์ฒญ๋“œ๋ฆฝ๋‹ˆ๋‹ค =)
image

๊ณตํ†ต ํ• ์ผ ์ถ”๊ฐ€์™€ ์ฝ•์ฐŒ๋ฅด๊ธฐ ๊ธฐ๋Šฅ ๋…ผ์˜

์•ˆ๋…•ํ•˜์„ธ์š” ๊ทœํ˜„๋‹˜!

์ด๋ฒˆ์— 'ํšŒ์ฐจ ์ƒ์„ธ๋ณด๊ธฐ'์—์„œ
๊ณตํ†ต ํ• ์ผ์— ํ• ์ผ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ๋„ ํ• ์ผ์ด ์ถ”๊ฐ€๋˜๋„๋ก '๋ณด์—ฌ์ง€๋Š”' ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด๋•Œ ์•„์‹œ๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™์€ ๋‚ด์šฉ๋“ค์„ ๋‹ด์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.


1. ํ• ์ผ ๊ทธ๋ฃน์˜ ๊ณต์œ  ์—ฌ๋ถ€ (๊ณตํ†ต ํ• ์ผ ์—ฌ๋ถ€)

image

์‚ฌ์ง„์— ๋งคํ•‘๋˜๋Š”
taskType๊ณผ task ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” TaskGroup ํด๋ž˜์Šค๊ฐ€ ์žˆ๋Š”๋ฐ์š”,

๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ์œ„ํ•ด ํ•ด๋‹น ํด๋ž˜์Šค์— bool isShared์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” ๊ณต์œ ๋˜๋Š” ํ…Œ์Šคํฌํƒ€์ž…์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค (GROUP์€ ํ•˜๋‚˜์˜ ์˜ˆ์‹œ)

class TaskGroup {
  String taskType;
  List<Task> tasks;
  bool isShared;            //< this member is added
}

์ด๋Š” ๋‚˜์ค‘์— ํ˜น์‹œ ๋ชจ๋ฅผ taskType์ถ”๊ฐ€์— ๋Œ€ํ•œ ํ™•์žฅ์„ฑ์„ ๊ณ ๋ คํ•˜๋ฉด์„œ ์ƒ๊ฒจ๋‚œ ๊ฒƒ์ธ๋ฐ์š”,
์ด๋•Œ ํ˜„์žฌ์—๋Š” isShared๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒ๋ณ„ํ•˜๋Š”๋ฐ์š”,

static Set<String> sharedTaskGroups = { 'GROUP' }; // hard coding...

// set์— ํฌํ•จ ์—ฌ๋ถ€
taskGroup.isShared = sharedTaskGroups.contains(taskType);

๋งŒ์•ฝ ์„œ๋ฒ„์—์„œ๋„ ํ• ์ผ ๊ณต์œ  ์—ฌ๋ถ€๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค๋ฉด
ํ˜น์€ ์ดํ›„ taskType์— ํ™•์žฅ ์ž์œ ๋„๋ฅผ ๋†’์ด๋Š” ๊ฒฝ์šฐ

isShared : ๊ณต์œ ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋„ ๊ฐ™์ด ์„œ๋ฒ„์—์„œ ๋ฐ˜ํ™˜ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

๋Œ€์‘ API : GET api/tasks


2. ๊ฐ€์ƒ์˜ ํ• ์ผ๊ณผ ์ƒˆ๋กœ์šด ์ฝ•์ฐŒ๋ฅด๊ธฐ์˜ ๋ชจ์ˆœ

ํ˜„์žฌ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์ถ”๊ฐ€๋˜๋Š” ๊ฒƒ์ด ๊ฐ€์ƒ์˜ ํ• ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์—
taskId = -1 (nonAllocatedTaskId) ๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ

๋ฐฉ๊ธˆ ๋งŒ๋“  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ• ์ผ๋„ ์ฐŒ๋ฅผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๋ฉด
๊ฐ€์ƒ์ด ์•„๋‹Œ ์ง„์งœ taskId๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.
(์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ†ตํ•œ ์ฝ• ์ฐŒ๋ฅด๊ธฐ ๋„์ž…์˜ ๊ฒฝ์šฐ)

๋‚˜์ค‘์— ์ฝ•์ฐŒ๋ฅด๊ธฐ ๊ธฐ๋Šฅ์ด ํ™•์ •๋˜๋ฉด ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™์•„ ์ ์–ด๋‘ก๋‹ˆ๋‹ค!!

[B] feat : ํƒœ์Šคํฌ ๋ชฉ๋ก ์กฐํšŒ ์‹œ์— taskTypeName ๋ฐ˜์˜ ์š”์ฒญ

๏ฟฝ๊ธฐ์กด์— ๋ฐ˜ํ™˜๋˜๋Š” taskType์„ ๊ทธ๋Œ€๋กœ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด taskTypeName์ด๋ผ๋Š” ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐ŸŒ Summary

[GET api/tasks]์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ํ•œ taskTypeName์„ ๋ฐ˜์˜ํ•ด์ฃผ์„ธ์š”

๐Ÿ“ To Do List

  • taskTypeName ๋ฐ˜์˜

๐Ÿ“ทย ์Šคํฌ๋ฆฐ์ƒท(์„ ํƒ)

image

๋ฐฑ๋กœ๊ทธ ์œ ํšจ์„ฑ์— ๊ด€ํ•œ ๋…ผ์˜

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๊ฐœ๋ฐœํ•ด์•ผํ•  ๊ธฐ๋Šฅ, ์šฐ์„ ์ˆœ์œ„ ๋“ฑ์„ Backlog๋ฅผ ํ†ตํ•ด ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
์œ„์˜ ์ด์œ ๋กœ ๊ตฌ๊ธ€ ์‹œํŠธ๋ฅผ ํ†ตํ•ด ๋ฐฑ๋กœ๊ทธ๋ฅผ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์„ฑ์„ ๋Š๋ผ์ง€ ๋ชปํ•˜๊ณ  ์žˆ์–ด์„œ ์•„์‰ฝ์Šต๋‹ˆ๋‹ค..!

์ง€๊ธˆ ์–ด๋Š ํŽ˜์ด์ง€๊นŒ์ง€ ๊ฐœ๋ฐœ์ด ๋˜์–ด์žˆ๋Š”์ง€, ์ง„ํ–‰์ƒํ™ฉ์„ ์ž˜ ๋ชจ๋ฅด๊ณ  ์žˆ๋Š”๋ฐ ๋ฐฑ๋กœ๊ทธ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์„œ ์†Œํ†ต ์—†์ด๋„ ๋ฐ”๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด๋ณด๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?

์‚ฌ์‹ค ๋ฐฑ๋กœ๊ทธ๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ํผํฌ๋จผ์Šค๋ฅผ ๋†’์ด๋Š” ์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„์ง ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋ณธ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ๋ชจ๋ฅด๋Š” ๋งŒํผ ์ผ๋‹จ์€ ํ•œ๋ฒˆ ๋ฐฑ๋กœ๊ทธ ์—ด์‹ฌํžˆ ์ž‘์„ฑํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค! ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹œ๋‚˜์š” ใ…Žใ…Ž

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.