Skip to content

TECKIT-SHOPPING/Trend-hub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

190 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“† ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

2024.01.15 ~ 2024.02.15 / ์„œ๋น„์Šค ๋Ÿฐ์นญ : 2024.01.30



โœ”๏ธ ์‚ฌ์ดํŠธ ํ…Œ์ŠคํŠธ ์ „ ์œ ์˜์‚ฌํ•ญ

  1. ๊ตฌ๋งคํ›„๊ธฐ๋Š” ๋ฌผํ’ˆ ๊ตฌ๋งค ํ›„ '๋ฌผํ’ˆํ›„๊ธฐ ์ž‘์„ฑํ•˜๊ธฐ' ๋ฒ„ํŠผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. (๊ฒฐ์ œ ๊ธˆ์•ก์€ ๋œจ์ง€๋งŒ ์‹ค์ œ๋กœ ๊ธˆ์•ก์ด ๊ฒฐ์ œ๋˜์ง„ ์•Š์Šต๋‹ˆ๋‹ค.)

  2. ๋ฌธ์˜์‚ฌํ•ญ qna ๋‹ต๋ณ€์€ ๊ด€๋ฆฌ์ž๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ์ž…์žฅ ์‹œ ๋Œ“๊ธ€ ์ฐฝ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (๊ด€๋ฆฌ์ž ํ…Œ์ŠคํŠธ trendhub7 / trendhub7@)


โš™๏ธ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ

stack


๐Ÿ“’ ๊ธฐ์ˆ ์Šคํƒ

FRONT-END

BACK-END

Java

Docker

Design

Figma

etc

Google GitHub

๐Ÿงฑ ERD

TrundHub3-ERD



๐Ÿ› ๏ธ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

BACK-END

์ƒํ’ˆ๋ชฉ๋ก ์กฐํšŒ ์ข‹์•„์š” ์œ ๋ฌด N+1 ์ด์Šˆ

์š”๊ตฌ ์‚ฌํ•ญ ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ์„ ํƒํ•œ ์ด์œ  ๋ฐ ๊ทผ๊ฑฐ
๐Ÿ˜ฑ ๋ฌธ์ œ ํŽ˜์ด์ง•์ฒ˜๋ฆฌ๋œ ์ƒํ’ˆ๋ชฉ๋ก 20๊ฐœ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ๊ฐ ์ƒํ’ˆ๋ณ„๋กœ ์œ ์ €๊ฐ€ ์ข‹์•„์š” ์œ ๋ฌด๋ฅผ ํŒ๋‹จํ•˜๋Š” ์ฟผ๋ฆฌ๋ฌธ์€ ์ƒํ’ˆ
๊ฐฏ์ˆ˜ 20๊ฐœ๋งŒํผ ์ฟผ๋ฆฌ๋ฌธ ๋‚ ๋ฆฌ๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
๐Ÿค” ์›์ธ ์ƒํ’ˆ๋“ค์„ ๋จผ์ € ์กฐํšŒํ•˜๊ณ  likes์—์„œ exists๋กœ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— N+1 ๋ฌธ์ œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ–ˆ๋‹ค.
๐Ÿ˜ญ ์‹œ๋„ โ€ข ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ๊ฒŒ์‹œํŒ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋“ค์„ ๋ด๋„ N+1 ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•˜๋„๋ก ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์–ด์žˆ์–ด ์ฟผ๋ฆฌ๋ฌธ์„ ์• ์ดˆ์— ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•จ.
โ€ข product๋ž‘ likes๋ฅผ ์กฐ์ธํ•˜๊ณ  where์ ˆ์— user๋ฅผ eq์กฐ๊ฑด์— ๋„ฃ์–ด ํ•ด๊ฒฐํ•ด๋ด๋„ N+1๋ฐœ์ƒ
โ€ข on์ ˆ์— productId์ผ์น˜, user๊ฐ€ ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์— ์ผ์น˜ํ•˜๋„๋กํ•˜์—ฌ ํ•ด๊ฒฐํ•จ.
๐Ÿ˜„ ํ•ด๊ฒฐ likes ์—”ํ„ฐํ‹ฐ ๊ฐ„์˜ leftJoinํ•˜์—ฌ on์ ˆ์— product ๋ฐ user๊ฐ€ ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์— ์ผ์น˜ ์กฐ๊ฑด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•จ

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์—๋Ÿฌ

์š”๊ตฌ ์‚ฌํ•ญ ํ•ต์‹ฌ ๊ธฐ์ˆ ์„ ์„ ํƒํ•œ ์ด์œ  ๋ฐ ๊ทผ๊ฑฐ
๐Ÿ˜ฑ ๋ฌธ์ œ ํ›„๊ธฐ ์ž‘์„ฑํ•˜๊ธฐ ํŽ˜์ด์ง€ ๋งŒ๋“œ๋Š” ๊ณผ์ • ์ค‘ 'validation failed for object="reviewDto"' ๋ž€ ์—๋Ÿฌ ๋ฐœ์ƒ.
๐Ÿค” ์›์ธ ํ˜„์žฌ ๋กœ์ง์— ํƒ€์ž„๋ฆฌํ”„ ์—๋Ÿฌ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„ ํ˜น์€ DTO ๋ถ€๋ถ„์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„๊ฑฐ๋ผ ํŒ๋‹จ.
๐Ÿ˜ญ ์‹œ๋„ โ€ข ๋ฐฑ ๋ถ€ํ„ฐ Controller๋ฅผ ์‹œ์ž‘์œผ๋กœ service, DTO ๋“ฑ ์ˆœ์œผ๋กœ ๊ฒ€์‚ฌ ์‹œ์ž‘.
โ€ข DTO์—์„œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌํ•˜๋Š” ๋ถ€๋ถ„์„ ์ง€์šฐ๊ณ  Controller์—์„œ ์ข€ ๋” ๊ณ ๋ฏผ
โ€ข ํƒ€์ž„๋ฆฌํ”„ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€ ์ฒ˜๋ฆฌ ๋ถ€๋ถ„์—์„œ๋„ ํ•œ ๋ฒˆ์”ฉ ํ™•์ธํ–ˆ์ง€๋งŒ ๋กœ์ง ์ƒ ํฐ ๋ฌธ์ œ๊ฐ€ ์—†์–ด๋ณด์—ฌ ๋ฐฑ์—”๋“œ ์ชฝ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๊ฑฐ๋ผ ํ™•์‹ .
โ€ข ๊ฒฐ๊ตญ Controller ๋ถ€๋ถ„์—์„œ PostMapping ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ GetMapping์—์„œ๋„ @Valid ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์„ ํ™•์ธ ํ›„ ์ œ๊ฑฐ
๐Ÿ˜„ ํ•ด๊ฒฐ @GetMapping ๋ถ€๋ถ„ @Valid๋ฅผ ์ œ๊ฑฐํ•จ์œผ๋กœ์จ ํ›„๊ธฐ ์ž‘์„ฑ ๋ถ€๋ถ„ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ์ž˜ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Œ

โ€๐Ÿง‘โ€๐Ÿ’ป ํ”„๋กœ์ ํŠธ ๋ฉค๋ฒ„

๐Ÿ”ฐ์•ˆ์šฐ์„ฑ ๐Ÿ”ฐ์ตœ๋„์˜ ๐Ÿ”ฐ๊น€๋ถ€๊ถŒ ๐Ÿ”ฐํ˜„์ง„์˜ ๐Ÿ”ฐ์ด์žฌ์œค ๐Ÿ”ฐ์‹ ์„์šฐ
์•ˆ์šฐ์„ฑ ์ตœ๋„์˜ ๊น€๋ถ€๊ถŒ ํ˜„์ง„์˜ ์ด์žฌ์œค ์‹ ์„์šฐ
BACK-END BACK-END BACK-END BACK-END BACK-END BACK-END

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors