Skip to content

๐Ÿ“ƒSpring Lv.1~5 | Board ๋งŒ๋“ค๊ธฐ

Notifications You must be signed in to change notification settings

jihyeon4956/SpringBoot_Board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

27 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Spring Boot Board

-[skil] : Spring Boot 3.1.3(JDK 17), Hibernate, MySQL, Java Security, JWT

API


User Case


Lv1.

- ๐Ÿ Goal: "์Šคํ”„๋ง ๋ถ€ํŠธ๋กœ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด ์—†๋Š” ๋‚˜๋งŒ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ"

์ œ์‹œ์‚ฌํ•ญ

  1. ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ์กฐํšŒ API

    • ์ œ๋ชฉ, ์ž‘์„ฑ์ž๋ช…, ์ž‘์„ฑ ๋‚ด์šฉ, ์ž‘์„ฑ ๋‚ ์งœ๋ฅผ ์กฐํšŒํ•˜๊ธฐ
    • ์ž‘์„ฑ ๋‚ ์งœ ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ
  2. ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ API

    • ์ œ๋ชฉ, ์ž‘์„ฑ์ž๋ช…, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ž‘์„ฑ ๋‚ด์šฉ์„ ์ €์žฅํ•˜๊ณ 
    • ์ €์žฅ๋œ ๊ฒŒ์‹œ๊ธ€์„ Client ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ
  3. ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ API

    • ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ, ์ž‘์„ฑ์ž๋ช…, ์ž‘์„ฑ ๋‚ ์งœ, ์ž‘์„ฑ ๋‚ด์šฉ์„ ์กฐํšŒํ•˜๊ธฐ (๊ฒ€์ƒ‰๊ธฐ๋Šฅ x)
  4. ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ • API

    • ์ˆ˜์ •์„ ์š”์ฒญํ•  ๋•Œ ์ˆ˜์ •ํ•  ๋ฐ์ดํ„ฐ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐ™์ด ๋ณด๋‚ด์„œ ์„œ๋ฒ„์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ•œ ํ›„
    • ์ œ๋ชฉ, ์ž‘์„ฑ์ž๋ช…, ์ž‘์„ฑ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  ์ˆ˜์ •๋œ ๊ฒŒ์‹œ๊ธ€์„ Client ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ
  5. ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ API

    • ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•  ๋•Œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐ™์ด ๋ณด๋‚ด์„œ ์„œ๋ฒ„์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ•œ ํ›„
    • ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€์„ ์‚ญ์ œํ•˜๊ณ  Client ๋กœ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ํ‘œ์‹œ ๋ฐ˜ํ™˜ํ•˜๊ธฐ


Lv2.

- ๐Ÿ Goal: "ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ๋‚˜๋งŒ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ"

์ƒˆ๋กœ์šด ์š”๊ตฌ์‚ฌํ•ญ

  1. ํšŒ์› ๊ฐ€์ž… API

    • username, password๋ฅผ Client์—์„œ ์ „๋‹ฌ๋ฐ›๊ธฐ
    • username์€ ์ตœ์†Œ 4์ž ์ด์ƒ, 10์ž ์ดํ•˜์ด๋ฉฐ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž(a~z), ์ˆซ์ž(0~9)๋กœ ๊ตฌ์„ฑ
    • password๋Š” ์ตœ์†Œ 8์ž ์ด์ƒ, 15์ž ์ดํ•˜์ด๋ฉฐ ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž(a~z, A~Z), ์ˆซ์ž(0~9)๋กœ ๊ตฌ์„ฑ
    • DB์— ์ค‘๋ณต๋œ username์ด ์—†๋‹ค๋ฉด ํšŒ์›์„ ์ €์žฅํ•˜๊ณ  Client ๋กœ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€, ์ƒํƒœ์ฝ”๋“œ ๋ฐ˜ํ™˜ํ•˜๊ธฐ
  2. ๋กœ๊ทธ์ธ API

    • username, password๋ฅผ Client์—์„œ ์ „๋‹ฌ๋ฐ›๊ธฐ
    • DB์—์„œ username์„ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ๋œ ํšŒ์›์˜ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•˜๊ณ  ์žˆ๋‹ค๋ฉด password ๋น„๊ตํ•˜๊ธฐ
    • ๋กœ๊ทธ์ธ ์„ฑ๊ณต ์‹œ, ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•œ ์œ ์ €์˜ ์ •๋ณด์™€ JWT๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•˜๊ณ , ๋ฐœ๊ธ‰ํ•œ ํ† ํฐ์„ Header์— ์ถ”๊ฐ€ํ•˜๊ณ  ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€, ์ƒํƒœ์ฝ”๋“œ ์™€ ํ•จ๊ป˜ Client์— ๋ฐ˜ํ™˜ํ•˜๊ธฐ

๋ณ€๊ฒฝ์‚ฌํ•ญ

  1. ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ API
    • ํ† ํฐ์„ ๊ฒ€์‚ฌํ•˜์—ฌ, ์œ ํšจํ•œ ํ† ํฐ์ผ ๊ฒฝ์šฐ์—๋งŒ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๊ฐ€๋Šฅ
    • ์ œ๋ชฉ, ์ž‘์„ฑ ๋‚ด์šฉ์„ ์ €์žฅํ•˜๊ณ  ์ €์žฅ๋œ ๊ฒŒ์‹œ๊ธ€์„ Client ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ(username์€ ๋กœ๊ทธ์ธ ๋œ ์‚ฌ์šฉ์ž)
  2. ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ • API
    • ์ˆ˜์ •์„ ์š”์ฒญํ•  ๋•Œ ์ˆ˜์ •ํ•  ๋ฐ์ดํ„ฐ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐ™์ด ๋ณด๋‚ด์„œ ์„œ๋ฒ„์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ•œ ํ›„
    • ํ† ํฐ์„ ๊ฒ€์‚ฌํ•œ ํ›„, ์œ ํšจํ•œ ํ† ํฐ์ด๋ฉด์„œ ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€๋งŒ ์ˆ˜์ • ๊ฐ€๋Šฅ
    • ์ œ๋ชฉ, ์ž‘์„ฑ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  ์ˆ˜์ •๋œ ๊ฒŒ์‹œ๊ธ€์„ Client ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ
  3. ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€ ์‚ญ์ œ API
    • ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•  ๋•Œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฐ™์ด ๋ณด๋‚ด์„œ ์„œ๋ฒ„์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธ ํ•œ ํ›„
    • ํ† ํฐ์„ ๊ฒ€์‚ฌํ•œ ํ›„, ์œ ํšจํ•œ ํ† ํฐ์ด๋ฉด์„œ ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒŒ์‹œ๊ธ€๋งŒ ์‚ญ์ œ ๊ฐ€๋Šฅ
    • ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€์„ ์‚ญ์ œํ•˜๊ณ  Client ๋กœ ์„ฑ๊ณตํ–ˆ๋‹ค๋Š” ๋ฉ”์‹œ์ง€, ์ƒํƒœ์ฝ”๋“œ ๋ฐ˜ํ™˜ํ•˜๊ธฐ




Lv3.

- ๐Ÿ Goal: "Goal: "ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋Œ“๊ธ€ ์ž‘์„ฑ/์กฐํšŒ/์ˆ˜์ •/์‚ญ์ œ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ๋‚˜๋งŒ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ""

์ƒˆ๋กœ์šด ์š”๊ตฌ์‚ฌํ•ญ

  1. ๋Œ“๊ธ€ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ API

    • ๊ฒŒ์‹œ๊ธ€์— ๋Œ“๊ธ€ ์ถ”๊ฐ€ํ•˜๊ธฐ
    • ํ† ํฐ์„ ๊ฒ€์‚ฌํ•˜์—ฌ, ์œ ํšจํ•œ ํ† ํฐ์ผ ๊ฒฝ์šฐ์—๋งŒ ๋Œ“๊ธ€ ์ž‘์„ฑ,์ˆ˜์ •, ์‚ญ์ œ ๊ฐ€๋Šฅ
    • ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€์˜ DB ์ €์žฅ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•˜๊ธฐ
  2. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

    • ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ ์ƒํƒœ์ฝ”๋“œ์™€ ๋ฉ”์„ธ์ง€๋ฅผ Client์— ๋ฐ˜ํ™˜ํ•˜๊ธฐ

๋ณ€๊ฒฝ์‚ฌํ•ญ

  1. ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก, ์„ ํƒ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ API
    • ๊ฐ๊ฐ์˜ ๊ฒŒ์‹œ๊ธ€์— ๋“ฑ๋ก๋œ ๋ชจ๋“  ๋Œ“๊ธ€์„ ๊ฒŒ์‹œ๊ธ€๊ณผ ๊ฐ™์ด Client์— ๋ฐ˜ํ™˜ํ•˜๊ธฐ
    • ๋Œ“๊ธ€์€ ์ž‘์„ฑ ๋‚ ์งœ ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ




Lv4.

- ๐ŸGoal: "Spring Security๋ฅผ ์ ์šฉํ•œ ๋‚˜๋งŒ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ"

๋ณ€๊ฒฝ์‚ฌํ•ญ

  1. Spring Security๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆ/์ธ๊ฐ€ ๊ตฌํ˜„ํ•˜๊ธฐ




Lv5.

- ๐Ÿ Goal: "๊ฒŒ์‹œ๊ธ€/๋Œ“๊ธ€์— "์ข‹์•„์š”"๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ๋‚˜๋งŒ์˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ"

์ƒˆ๋กœ์šด ์š”๊ตฌ์‚ฌํ•ญ

  1. ์ข‹์•„์š” ๊ธฐ๋Šฅ
    • ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ๊ฒŒ์‹œ๊ธ€&๋Œ“๊ธ€์— "์ข‹์•„์š”"๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค
    • ์ด๋ฏธ "์ข‹์•„์š”"๋ฅผ ๋ˆ„๋ฅธ ๋Œ“๊ธ€์— ๋‹ค์‹œ ์š”์ฒญํ•˜๋ฉด "์ข‹์•„์š”" ๊ธฐ๋ก์ด ์ทจ์†Œ๋œ๋‹ค.

๋ณ€๊ฒฝ์‚ฌํ•ญ

  1. ์˜ˆ์™ธ์ฒ˜๋ฆฌ AOP ๊ตฌํ˜„
    • ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋Š” AOP๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค.

About

๐Ÿ“ƒSpring Lv.1~5 | Board ๋งŒ๋“ค๊ธฐ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published