carrot0911 2025. 2. 10. 23:23

์˜ค๋Š˜ ์ง„ํ–‰ํ•œ ๋‚ด์šฉ๋“ค ๐Ÿง 

์ตœ์ข… ํ”„๋กœ์ ํŠธ ๋ฐœ์ œ ๋“ฃ๊ธฐ

  • ๊ธฐ๋ก์ด ์งฑ์งฑ ์ค‘์š”ํ•˜๋‹ค!!!
  • ํ™”๋ฉด ์บก์ฒ˜์™€ ์˜์ƒ ์ดฌ์˜์ด ํ•„์ˆ˜์ ์ด๋‹ค.
  • ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜ ๊ตฌํ˜„ํ•  ๋•Œ๋งˆ๋‹ค ํ˜น์€ ๋ง‰ํ˜”์„ ๋•Œ ๊ณ ๋ฏผ ์‚ฌํ•ญ์„ ์ž˜ ๊ธฐ๋กํ•ด ๋‘์ž!
  • 5๋ถ„ ๊ธฐ๋ก ๋ณด๋“œ ์ค‘์š”ํ•˜๋‹ค.
  • ๋ฏธ๋ž˜๋ฅผ ์œ„ํ•ด ๋ฌด์กฐ๊ฑด ๊ธฐ๋กํ•ด๋†”์•ผ ํ•œ๋‹ค!

๋„๋ฉ”์ธ ์ •ํ•˜๊ธฐ

  • ์ฒซ ๋ฒˆ์งธ ํ›„๋ณด: ๊ณ ๊ฐ์„ผํ„ฐ ๊ด€๋ จ
  • ๋‘ ๋ฒˆ์งธ ํ›„๋ณด: ์ทจ์—… ์‚ฌ์ดํŠธ ๊ด€๋ จ(์ฑ„ํƒ)

S.A ์ž‘์„ฑํ•˜๊ธฐ

  1. ์™€์ด์–ดํ”„๋ ˆ์ž„
  2. ERD ๋‹ค์ด์–ด๊ทธ๋žจ
  3. API ๋ช…์„ธ์„œ
  4. ๊ธฐ์ˆ  ๋ช…์„ธ์„œ

์Šค์ผˆ๋ ˆํ†ค ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ

  • ๊ฐ€์žฅ ๋ฐ–์— ์žˆ๋Š” ํŒจํ‚ค์ง€: common, domain
    • domain ์•ˆ์— ๋“ค์–ด๊ฐ„ ํŒจํ‚ค์ง€: auth, keyword, data, bookmark, user, history
  • ๊ธฐ๋ณธ Entity๋งŒ ์ž‘์„ฑํ•œ ์ƒํƒœ์ด๋‹ค!

์ˆ™์ œ: ๋กœ๊ทธ๋ฅผ ์–ด๋””์— ๋‚จ๊ฒจ์•ผ ํ• ๊นŒ?
์ˆ™์ œ: ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ ๊ธฐ๋Šฅ์—์„œ ExceptionHandler์—์„œ ์ฒ˜๋ฆฌํ•  ์˜ˆ์™ธ๋Š” ๋ญ๊ฐ€ ์žˆ์„๊นŒ?

 

์˜ค๋Š˜ ํ•˜๋ฃจ ์ •๋ฆฌ โœ๏ธ

๋“œ๋””์–ด ์ตœ์ข… ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๋‹ค..!!! ์บ ํ”„๊ฐ€ ์‹œ์ž‘๋œ ์ง€ ์–ผ๋งˆ ์•ˆ ๋๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋ฒŒ์จ ์ตœ์ข… ํ”„๋กœ์ ํŠธ๋ผ๋‹ˆ..

๊ทธ๋ž˜๋„ ํŒ€ ํŽธ์„ฑ์ด ์—„์ฒญ ์ž˜๋œ ๊ฒƒ ๊ฐ™๋‹ค!! ์ข‹์€ ํŒ€์žฅ๋‹˜, ๋ถ€ํŒ€์žฅ๋‹˜๊ณผ ์ข‹์€ ํŒ€์›๋ถ„๋“ค๊ณผ ์ตœ์ข… ํ”„๋กœ์ ํŠธ๋ฅผ ๋ถ€์ˆ  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. (๋ฌผ๋ก  ํ”„๋กœ์ ํŠธ์— ๋‚ด๊ฐ€ ๋ถ€์ˆ˜์–ด์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ..)

์˜ค์ „์ด๋ž‘ ์˜คํ›„ ์‹œ๊ฐ„์„ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ ๋„๋ฉ”์ธ ์–˜๊ธฐ๋ฅผ ๊ณ„์†ํ•˜๊ณ , ํŠœํ„ฐ๋‹˜๊ป˜ ํ”ผ๋“œ๋ฐฑ๋„ ๋ฐ›๊ณ  ํ•˜๋ฉด์„œ ์ตœ์ข…์ ์œผ๋กœ ๋„๋ฉ”์ธ์„ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ํŒ€์› ๋ชจ๋‘๊ฐ€ ๋งŒ์กฑํ•˜๋Š” ์ฃผ์ œ๋กœ ์ •ํ•ด์กŒ๋‹ค!

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

๋‚ด๊ฐ€ ๋งก์€ ๊ธฐ๋Šฅ์€ ํŽ˜์ด์ง€ ์กฐํšŒ(๊ฒ€์ƒ‰ ํฌํ•จ), ๊ฒ€์ƒ‰ ๊ธฐ๋ก ์กฐํšŒ ๊ธฐ๋Šฅ์ด์—ˆ๋‹ค.
QueryDSL์„ ์ด์šฉํ•ด์„œ ๋™์  ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๋ฐ ์•ˆ์— ํฌํ•จ๋˜๋Š” ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด 7๊ฐœ...? ์ •๋„์—ฌ์„œ ์ด๊ฑธ ์–ด๋–ป๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์ด ๋งŽ์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

์—ญํ•  ๋ถ„๋‹ด์„ ๋๋‚ธ ํ›„, ํŠœํ„ฐ๋‹˜๊ป˜ ์ตœ์ข… ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๊ณ  ์ตœ์ข…์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ ์„ค๊ณ„๋ฅผ ์ •๋ฆฌํ•œ ํ›„ ์Šค์ผˆ๋ ˆํ†ค ์ฝ”๋“œ๋ฅผ ๋‹ค ํ•จ๊ป˜ ์ž‘์„ฑํ–ˆ๋‹ค.
ํŒจํ‚ค์ง€๋ฅผ ๋‚˜๋ˆ„๊ณ  Entity๊นŒ์ง€ ์ž‘์„ฑํ•˜๋Š” ๊ฑธ ๋์œผ๋กœ ์ตœ์ข… ํ”„๋กœ์ ํŠธ 1์ผ ์ฐจ๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋˜์—ˆ๋‹ค.

๋‚ด์ผ๊นŒ์ง€ ์ˆ™์ œ๋ฅผ ์ž˜ ์ƒ๊ฐํ•ด์„œ ๋‹ค์‹œ ์ด์–ด์„œ ์ง„ํ–‰ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค!

 

๋‚ด์ผ ๊ณ„ํš โฐ

  • MVP ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์‹œ์ž‘~~~!
  • QueryDSL ๊ณต๋ถ€๐Ÿง

+ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๊ฒƒ ์žˆ์œผ๋ฉด ๊ณต๋ถ€ํ•ด์„œ 5๋ถ„ ๊ธฐ๋ก ๋ณด๋“œ๋“  ์–ด๋””๋“  ์ •๋ฆฌ!!