Skip to content

HH-campUs/campUs_BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

376 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Hits

๐Ÿ•๏ธ [CampUs] ๋‚ ์”จ ๊ธฐ๋ฐ˜ ์บ ํ•‘ ์žฅ์†Œ ์ถ”์ฒœ ์„œ๋น„์Šค

์–ด๋–ค ๋‚  ์–ด๋””๋กœ ์–ธ์ œ ์บ ํ•‘ ๊ฐˆ๊นŒ?

์บ ํ•‘์€ ์ €ํฌ CampUs ์™€ ํ•จ๊ป˜!

๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ›„๊ธฐ๋‚˜ ์›ํ•˜๋Š” ์บ ํ•‘ ์žฅ์†Œ์˜ ๋‚ ์”จ, ๊ทธ๋ฆฌ๊ณ  ์บ ํ•‘ ์žฅ์†Œ์˜ ์œ ํ˜•, ์šด์˜ ๊ธฐ๊ฐ„, ํŽธ์˜ ์‹œ์„ค, ํ…Œ๋งˆ ํ™˜๊ฒฝ, ์ฒดํ—˜ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์บ ํ•‘ ์ •๋ณด๋ฅผ ํ™œ์šฉํ•ด ๋‚˜์—๊ฒŒ ์•Œ๋งž๋Š” ์บ ํ•‘ ๊ณ„ํš์„ ์„ธ์šฐ์‹œ๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?

์„œ๋น„์Šค ์‹œ์—ฐ ์˜์ƒ - Clipchamp๋กœ ์ œ์ž‘


Contents | ๋ชฉ์ฐจ

  1. โŒ› TimeLine | ํƒ€์ž„๋ผ์ธ
  2. ๐Ÿช› Architecture | ์•„ํ‚คํ…์ณ
  3. ๐Ÿ’กFeature | ๊ตฌํ˜„ ๊ธฐ๋Šฅ
  4. ๐Ÿ–ผ๏ธ ERD | ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋„
  5. ๐Ÿ› ๏ธ Stacks | ์‚ฌ์šฉ ์Šคํƒ
  6. โšฝ Trouble Shooting | ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…
  7. ๐Ÿช› PATCH NOTES | ํŒจ์น˜ ๋…ธํŠธ
  8. ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ‘ฉโ€๐Ÿ’ปWho Made It | ์„œ๋น„์Šค๋ฅผ ๊ฐ€๊พผ ์‚ฌ๋žŒ๋“ค

โŒ› TimeLine | ํƒ€์ž„๋ผ์ธ

  • ์ด ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ 11์›” 4์ผ ~ 12์›” 15์ผ (6์ฃผ)
  • 12์›” 10์ผ ๋ฐฐํฌ ๋ฐ ๋Ÿฐ์นญ

๐Ÿช› Architecture | ์•„ํ‚คํ…์ณ

title


๐Ÿ–ผ๏ธ ERD | ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋„

ERD ๋ณด๊ธฐ
image

๐Ÿ’กFeature | ๊ตฌํ˜„ ๊ธฐ๋Šฅ

๐ŸŒง๏ธ ์บ ํ•‘์„ ๋– ๋‚˜๊ธฐ ์ „! ๊ฐ‘์ž๊ธฐ ๋น„๊ฐ€ ๋‚ด๋ฆฌ๋ฉด ์–ด๋–กํ•˜์ง€..?

๊ฑฑ์ •๋งˆ์„ธ์š”. CampUs์—์„œ๋Š” ์ง€์—ญ ๊ฒ€์ƒ‰์œผ๋กœ ์บ ํ•‘์žฅ ์กฐํšŒ ์‹œ, ๊ธˆ์ผ๋กœ๋ถ€ํ„ฐ ์ตœ๋Œ€ 8์ผ๊นŒ์ง€์˜ ๋‚ ์”จ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค. 
๋ฏธ๋ฆฌ ํ™•์ธํ•˜์‹œ๊ณ  ๋”์šฑ ๋” ์ฆ๊ฑฐ์šด ์บ ํ•‘์ด ๋˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

๐Ÿค” ์ด๋ฒˆ ์ฃผ๋ง.. ๋‚˜๋Š” ๋– ๋‚ ๊บผ์•ผ. ๊ทผ๋ฐ ์–ด๋””๊ฐ€ ๋– ๋‚˜๊ธฐ ์ข‹์€ ๊ณณ์ด์ง€?

์ €ํฌ ์„œ๋น„์Šค์—์„œ๋Š” ์ž์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๊ธˆ์ฃผ ๋‚ ์”จ๊ฐ€ ๊ฐ€์žฅ ์ข‹์€ ์ง€์—ญ์„ ์ถ”์ฒœํ•ด์ฃผ๊ณ , ํ•ด๋‹น ์ง€์—ญ์˜ ์บ ํ•‘์žฅ๋“ค์„ 
์†Œ๊ฐœ์‹œ์ผœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

โ˜ ๋‚˜๋Š” ์ง€์—ญ๋ณ„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ‚ค์›Œ๋“œ ํ˜•ํƒœ์˜ ์บ ํ•‘์žฅ ๋ชฉ๋ก์ด ๋ณด๊ณ ์‹ถ์–ด

CampUs์—์„œ๋Š” ์ง€์—ญ๋ณ„ ๊ฒ€์ƒ‰ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰, ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ์บ ํ•‘์žฅ ์กฐํšŒ, ๊ทธ๋ฆฌ๊ณ  ํ˜„์žฌ ์ธ๊ธฐ๊ฐ€ ๋งŽ์€ ์บ ํ•‘์žฅ์„ 
์ œ๊ณตํ•จ์œผ๋กœ์จ, ์บ ํ•‘๋“ค์˜ ์„ ํƒ์„ ๋‹ค์ฑ„๋กญ๊ฒŒ ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๐Ÿ—บ๏ธ ๋นจ๋ฆฌ ๊ฐ”๋‹ค์˜ค๊ณ ์‹ถ์€๋ฐ.. ๊ทผ๊ต์— ์–ด๋”” ์ข‹์€ ์บ ํ•‘์žฅ ์—†๋‚˜?

ํ˜„ ์œ„์น˜ ์กฐํšŒ์— ๋™์˜ํ•˜์‹œ๋ฉด, ๋‚ด ์ฃผ๋ณ€ 30km ๋‚ด์˜ ์–ด๋–ค ์บ ํ•‘์žฅ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”!
๊ทผ๊ต์— ์œ„์น˜ํ•ด์žˆ๋Š” ์บ ํ•‘์žฅ ์ •๋ณด๋„ ์ œ๊ณตํ•ด๋“œ๋ ค์š”~

๐Ÿ™‹โ€โ™€๏ธ ์บ ํ•‘์žฅ ์ •๋ณด ์–ด๋””๊นŒ์ง€ ์•Œ์•„๋ณด๊ณ  ์˜ค์…จ์–ด์š”?

์ €ํฌ CampUs์— ์—ฐ๊ฒฐ๋œ ์บ ํ•‘์žฅ ์ •๋ณด๋Š” ์œ„์น˜, ์˜์—…๋‚ ์งœ, ๋ฐ˜๋ ค๋™๋ฌผ ๋ฐ˜์ž…, ๋ถ€๋Œ€์‹œ์„ค, ์ฃผ๋ณ€์ด์šฉ์‹œ์„ค ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณต๋“œ๋ฆฌ๊ณ  ์žˆ์œผ๋ฉฐ,
ํ•ด๋‹น ์บ ํ•‘์žฅ์„ ์ด์šฉํ–ˆ๋˜ ์‚ฌ๋žŒ๋“ค์˜ ๋ฆฌ๋ทฐ๋ฅผ ๋ณด๊ณ , ๋ฐ˜๋Œ€๋กœ ์“ฐ๊ธฐ๋„ ๊ฐ€๋Šฅํ•ด์š”!

โœ๏ธ ์ด ์บ ํ•‘์žฅ์œผ๋กœ ์ด๋ฒˆ์ฃผ ํ† ์š”์ผ์— ๋– ๋‚  ์˜ˆ์ •์ธ๋ฐ ๋”ฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์–ด์š”

๋งˆ์Œ์— ๋“œ๋Š” ์บ ํ•‘์žฅ์„ ์ฐœํ•ด์„œ ์ฑ™๊ฒจ์„œ๋ณด๊ณ , ๋” ๋‚˜์•„๊ฐ€ ์ •๋ง๋กœ ๊ฐ€๊ณ ์‹ถ์€ ์บ ํ•‘์žฅ์„ ์—ฌํ–‰์ผ์ •์œผ๋กœ ๋“ฑ๋กํ•ด ๋ณด์„ธ์š”! 
CampUs๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์˜ ์บ ํ•‘์ผ์ •์„ ๊ด€๋ฆฌํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ Stacks | ์‚ฌ์šฉ ์Šคํƒ

Front End


Back End


โšฝ Trouble Shooting | ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

์บ ํ•‘์žฅ / ๋‚ ์”จAPI ์‚ฌ์šฉ
1. ์š”๊ตฌ์‚ฌํ•ญ

1) ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์บ ํ•‘์žฅ / ๋‚ ์”จ api ์ฐพ๊ธฐ
2) ์„œ๋น„์Šค ๋ชฉ์ ์— ๋งž๋Š” api ์„ ๋ณ„.

2. ์„ ํƒ์ง€

์บ ํ•‘์žฅ : ๊ณต๊ณตData / gocamping.
๋‚ ์”จ : ๊ณต๊ณตData / openWetherAPI / accuweatherAPI

3. ์˜๊ฒฌ ์กฐ์œจ/๊ฒฐ์ •

- ์บ ํ•‘์žฅ

๊ณต๊ณตdata๋Š” ์ „๊ตญ ์บ ํ•‘์žฅ๋“ค์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋กœ ํŒ๋‹จ์ด ๋˜์–ด goCamping api๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •.
์ดํ›„ ์„œ๋น„์Šค ๋ชฉ์ ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์„ ๋ณ„ํ•ด์„œ ์‚ฌ์šฉํ•จ.

- ๋‚ ์”จ

๊ณต๊ณตdata์˜ ๊ฒฝ์šฐ ์„œ๋น„์Šค ๋ชฉ์ ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ผ๊ธฐ ๋ณด๋‹ค๋Š” ๋ฐ์ดํ„ฐ๋ถ„์„์— ์•Œ๋งž๋Š” api๋กœ ์ƒ๊ฐ์ด ๋˜์—ˆ์Œ.
(์ ์„ค๋Ÿ‰, 5.0m์ง€์ค‘์˜จ๋„, ํ’์† ํ’ˆ์งˆ๊ฒ€์‚ฌ ๋“ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ˆ๋ณด์™€๋Š” ๋งž์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จํ•จ)
accuweather์˜ ๊ฒฝ์šฐ ์˜ˆ๋ณด์ผ์ด 5์ผ๋กœ openWeather๋ณด๋‹ค ์ƒ๋Œ€์ ์œผ๋กœ ์งง์•„์„œ ์ตœ์ข…์ ์œผ๋กœ openWeatherAPI๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •.

ํ•ด์™ธ์˜ api์ด๋‹ค ๋ณด๋‹ˆ ์ขŒํ‘œ๊ฐ’ ์„ค์ •์ด ์„œ์šธ๋กœ ์ง€์ • ๋˜์–ด ์žˆ์–ด ์„œ๋น„์Šค์— ๋งž๊ฒŒ
์ „๊ตญ์„ ํŠน๋ณ„/๊ด‘์—ญ์‹œ์™€ ๋„๋กœ ๋‚˜๋ˆˆ ์ดํ›„ ์ขŒํ‘œ๊ฐ’์„ค์ •์„ ํ†ตํ•˜์—ฌ ์ง€์—ญ์— ๋งž๋Š” ๋‚ ์”จ์™€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ api๋ฅผ ๊ฐ€์ ธ์˜ด
๋˜ํ•œ apiCall์ด ํ•˜๋ฃจ 1000๊ฑด์œผ๋กœ ์ œํ•œ์ด ๋˜์–ด ์žˆ์–ด, ํ”„๋ก ํŠธ์—์„œ ๊ณ„์† ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ
๋ฐฑ์—”๋“œ ์„œ๋ฒ„์— api์ •๋ณด๋“ค์„ ๋‹ด์•„์„œ FE๋Š” BE๋กœ apiํ˜ธ์ถœ์„ ํ•˜๊ณ , BE๋Š” ์ง€์ •๋œ ์‹œ๊ฐ„์— apiํ˜ธ์ถœ์„ ํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ์šด์˜ ํ•จ.
๋ฐ์ดํ„ฐ api์‚ฌ์šฉ / ์นด์นด์˜ค ๋งต ์ด์šฉ
 1. ๋ฌธ์ œ์ƒํ™ฉ

์นด์นด์˜ค๋งต ์‚ฌ์šฉ์‹œ X,Y์ขŒํ‘œ์— ์บ ํ•‘์žฅ ์ขŒํ‘œ๊ฐ€ ๋‹ด๊ธฐ์ง€ ์•Š๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•จ.

2. ๋ฌธ์ œํ•ด๊ฒฐ๊ณผ์ •

1 ) useEffect๋กœ ์นด์นด์˜ค๋งต์ด ์‹คํ–‰์„ ํ•˜๋‹ค ๋ณด๋‹ˆ, ๋ฐฑ์—”๋“œ์—์„œ ์ขŒํ‘œ๊ฐ’์„ ๋ฐ›์•„์„œ ๋ณ€์ˆ˜๋กœ 
    ์ฒ˜๋ฆฌํ•ด ์ค€๋‹ค ํ•˜์—ฌ๋„ ๋งตcomponent๋Š” Mount๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งต์ด ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํŒ๋‹จ.
2 ) useEffect์™ธ๋ถ€์—์„œ ๋ณ€์ˆ˜(X,Y)๊ฐ€ ๋ฐ”๋€”๋•Œ๋งˆ๋‹ค ์žฌ ๋žœ๋”๋ง์„ ํ• ์ˆ˜ ์žˆ๋„๋ก ์˜์กด์„ฑ๋ฐฐ์—ด์—
    ๋ณ€์ˆ˜ ๊ฐ’ ์ถ”๊ฐ€ ๋ฐ ์ผ์ •๊ธฐ๊ฐ„ ์ดํ›„์— ๋‹ค์‹œ ๋™์ž‘ํ•˜๋„๋ก setTimeoutํ•จ์ˆ˜ ๊ตฌํ˜„.
3 ) ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋™์ž‘ํ•˜์ง€ ์•Š๊ณ  ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ.
4 ) ๋งตcomponent์˜ ์ขŒํ‘œ ๊ฐ’์— ํ•˜๋“œ์ฝ”๋”ฉ์œผ๋กœ ์ˆซ์ž๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ์ž˜ ๋™์ž‘ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•œ ํ›„, ๋ฐฑ์—”๋“œ์—์„œ ๋ฐ›์•„์˜ค๋Š” api๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธ ํ•จ.

5-1 ) ํ”„๋ก ํŠธ : ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ•œ๋ฒˆ ๋ฐ›์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ๋ณ€์ˆ˜์— ๋‹ด์€ ํ›„ ์‚ฌ์šฉํ•˜์—ฌ undefined์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์—ˆ๊ณ  ๊ฒฝ๋กœ๋„ ๋งž์ง€ ์•Š์Œ์„ ํ™•์ธ.
5-2 )๋ฐฑ์—”๋“œ : ๊ฒฝ๋กœ ์ˆ˜์ •์ด ๋˜์—ˆ์œผ๋‚˜ ํ”„๋ก ํŠธ์™€ ์†Œํ†ต์„ ํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Œ์„ ํ™•์ธ.
6 ) ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ๋งต ๊ตฌํ˜„ 

3. ์˜๊ฒฌ์กฐ์œจ ๋ฐ ๊ฒฐ์ •

1 ) ํ”„๋ก ํŠธ ์—์„œ๋Š” ๊ฐ€๋Šฅํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ 2์ค‘์œผ๋กœ ๋ฐ›์•„์˜ค์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ๋กœ ํ•จ.
2 ) ๋ฐฑ์—”๋“œ ์—์„œ๋Š” ์‚ฌ์†Œํ•œ ๊ฒฝ๋กœ๋ณ€๊ฒฝ๋„ ์†Œํ†ต ํ›„ ์ˆ˜์ •ํ•˜๊ธฐ๋กœ ํ•จ.
openWether API request scheduling
1. ๋ฌธ์ œ์ƒํ™ฉ
๋‚ ์”จ์ •๋ณด ํŠน์„ฑ์ƒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž์ฃผ ๋ณ€๋™๋˜๋ฏ€๋กœ, ์‚ฌ๋žŒ์ด ์ ‘์†ํ•˜์ง€ ์•Š๋Š” ์‹œ๊ฐ„์— ์š”์ฒญ์„
๋ณด๋‚ด๋Š”๊ฒƒ์€ ๊ด€๋ฆฌ์™€ ์šด์˜์— ์žˆ์–ด ํšจ์œจ์ด ์ข‹์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™ํ™”์˜ ํ•„์š”์„ฑ์„ ๋А๋‚Œ

2. ์„ ํƒ์ง€ ๋ฐ ์˜๊ฒฌ์กฐ์œจ

1) node-cron
2) node-schedule

3. ๊ฒฐ๊ณผ
๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์€ ๋น„์Šทํ•˜์ง€๋งŒ node-schedule์€ ์œ ์ง€ ๋ณด์ˆ˜ ์ธ์›์ด ๋งŽ๊ณ  object-literal ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋†’์ด ๋•Œ๋ฌธ์— ์„ ํƒ
์‹œ๊ฐ„ : ๋งค์ผ 0์‹œ๋งˆ๋‹ค openWether API์— ์š”์ฒญ์„ ๋ณด๋‚ด ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
์ง€์—ญ๋ณ„ ๋ฐ ์ฃผ์ œ๋ณ„ ์บ ํ•‘์žฅ ์กฐํšŒ์‹œ ์ด ์บ ํ•‘์žฅ ๊ฐฏ์ˆ˜ ์กฐํšŒ / ์„ฑ๋Šฅ ๊ฐœ์„ 
1. ์š”๊ตฌ์‚ฌํ•ญ

doNm:๋„์ด๋ฆ„, numOfRows : ํ•œ ํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐˆ ๊ฐฏ์ˆ˜, pageNo : ํŽ˜์ด์ง€ ์ˆซ์ž, sort : ์ •๋ ฌ ๊ฐ’

์ง€์—ญ๋ณ„ ๋ฐ ์ฃผ์ œ๋ณ„ ์บ ํ•‘์žฅ ์กฐํšŒ์‹œ doNm, numOfRows, pageNo, sort์˜ ๊ฐ’์„ ๋ฐ›์•„ 
๋””๋น„์— ์ ‘๊ทผํ•˜์—ฌ ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๋ชจ๋“  ์บ ํ•‘์žฅ์˜ ์ˆซ์ž์™€ ํŽ˜์ด์ง€๋„ค์ด์…˜ํ•ด์„œ ์บ ํ•‘์žฅ์˜ ์ •๋ณด๋ฅผ ๋ณด๋‚ด์ค€๋‹ค.

 2. ๋ฌธ์ œ์ƒํ™ฉ

Pagination์„ ํ†ตํ•ด ์บ ํ•‘์žฅ ์กฐํšŒ๋ฅผ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ,
์ด๋•Œ ์กฐํšŒ๋˜๋Š” ์ด ์บ ํ•‘์žฅ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 
์กฐํšŒ + limit, offset ์ฝ”๋“œ์—์„œ ์ค‘๋ณต๋˜๋Š” ์กฐํšŒ ์ฝ”๋“œ๋งŒ ์ž‘์„ฑํ•˜์—ฌ ์ด ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.
์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์ค‘๋ณต๋˜๊ณ , ํผํฌ๋จผ์Šค๊ฐ€ ๋А๋ ค์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

3. ์„ ํƒ์ง€ 

1) SQL ์ฟผ๋ฆฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐํšŒ ์ฟผ๋ฆฌ๋ฌธ๊ณผ, Pagination ์ฟผ๋ฆฌ๋ฌธ์„ ๋‚˜๋ˆ„์–ด ๊ตฌํ˜„ํ•œ๋‹ค. 
2) Sequelize ORM์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐํšŒ ์ฝ”๋“œ์™€ Pagination์ด ๋“ค์–ด๊ฐ„ ์กฐํšŒ ์ฝ”๋“œ๋ฅผ ์ค‘๋ณต๋˜๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค

4 . ์˜๊ฒฌ ์กฐ์œจ

1๋ฒˆ) MySQL ์ฟผ๋ฆฌ๋ฌธ์„ ์ „์ฒด์กฐํšŒ,ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋‚˜๋ˆ„์–ด ์ž‘์„ฑํ•˜์—ฌ ์ด ๊ฐฏ์ˆ˜๋ฅผ ์กฐํšŒ ํ•  ๋•Œ๋Š” ์ „์ฒด ์กฐํšŒ ์ฟผ๋ฆฌ๋ฌธ ์‚ฌ์šฉ, ํŽ˜์ด์ง€๋„ค์ด์…˜์„ ๊ตฌํ˜„ ํ•  ๋•Œ๋Š” ๋‘๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฌธ์„ ํ•ฉ์ณ์„œ ์‚ฌ์šฉ

2๋ฒˆ) ์‹œํ€„๋ผ์ด์ฆˆ ORM์œผ๋กœ op.like๋กœ ์ „์ฒด์กฐํšŒ์™€,ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋‚˜๋ˆ„์–ด์„œ ๊ตฌํ˜„

5. ์˜๊ฒฌ ๊ฒฐ์ • 

SQL ์ฟผ๋ฆฌ๋ฌธ ์‚ฌ์šฉํ•˜์—ฌ ์กฐํšŒ ์ฟผ๋ฆฌ๋ฌธ๊ณผ, Pagination ์ฟผ๋ฆฌ๋ฌธ์„ ๋‚˜๋ˆ„์–ด ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.  
๋‘ ๊ฐœ์˜ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด๋ณธ๊ฒฐ๊ณผ ORM์œผ๋กœ ์กฐํšŒํ•˜๊ฒŒ ๋  ์‹œ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผ ํ•  ๋•Œ ์ฝ”๋“œ๊ฐ€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๊ธธ์–ด์ง€๊ฒŒ ๋˜๋ฉด์„œ 
์†๋„๊ฐ€ ์ €ํ•˜๋˜๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ  ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ดค์„ ๋•Œ  ์š”์ฒญ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋ณด๋ฉด
ORM์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์ตœ๋Œ€๊ฐ’์ด 179.3ms์ด์—ˆ๋˜ ๊ฒƒ์ด ์ฟผ๋ฆฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด 66ms๋กœ 113ms์ •๋„ ๋‹จ์ถ• ๋˜์—ˆ๊ณ  ํ‰๊ท ์น˜๋„ 5ms ์ •๋„ ๋‹จ์ถ•๋œ ๊ฒƒ์„ ํ™•์ธํ•˜์—ฌ SQLQuery๋ฅผ ์„ ํƒํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

๐Ÿช› PATCH NOTES | ํŒจ์น˜ ๋…ธํŠธ


๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ‘ฉโ€๐Ÿ’ปWho Made It | ์„œ๋น„์Šค๋ฅผ ๊ฐ€๊พผ ์‚ฌ๋žŒ๋“ค

์ด๋ฆ„ ํฌ์ง€์…˜ Github or Email
๊น€์ง€ํ—Œ BackEnd (Leader) https://github.com/KJIHEON
๋ฌธ์ง€ํ˜„ BackEnd https://github.com/JiHyeunM
์ตœ์›์„  BackEnd https://github.com/wonsunny
์ด์ƒ์› FrontEnd (Sub Leader) https://github.com/buddle6091
๋ฐฐ์ธ์› FrontEnd https://github.com/wonstruckk
๊น€์ง€์› Designer janeblue@naver.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages