Dingdongrami / PicMap_backend

์ง€๋„ ๊ธฐ๋ฐ˜ ๊ณต์œ ์•จ๋ฒ” ์ปค๋ฎค๋‹ˆํ‹ฐ
1 stars 0 forks source link

๐Ÿพ 2023-2 ์œตํ•ฉ์บก์Šคํ†ค๋””์ž์ธ

2023๋…„ 2ํ•™๊ธฐ ์œตํ•ฉ์บก์Šคํ†ค๋””์ž์ธ 5์กฐ ๋”ฉ๋™ํŒ€์ž…๋‹ˆ๋‹ค.

โœ๏ธ ๊ณผ์ œ ์†Œ๊ฐœ

๊ธฐ์กด์˜ ๊ฐค๋Ÿฌ๋ฆฌ ํ”Œ๋žซํผ๋“ค์—์„œ ๊ณต์œ ์•จ๋ฒ” ๊ธฐ๋Šฅ์€ ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ ์ค‘์— ๋‹จ์ง€ ์ผ๋ถ€์˜ ๊ธฐ๋Šฅ์œผ๋กœ์„œ ์ž๋ฆฌ ์žก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์œผ๋กœ ๊ณต์œ ์•จ๋ฒ” ๊ธฐ๋Šฅ์ด ์ œ๊ณตํ•˜๋Š” ์žฅ์ ๋“ค์ด ์ถฉ๋ถ„ํžˆ ํ™œ์šฉ๋˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ณต์œ ์•จ๋ฒ” ๊ธฐ๋Šฅ์— ์ดˆ์ ์„ ๋งž์ถ˜ ๊ฐค๋Ÿฌ๋ฆฌ ์•ฑ์„ ์ œ์ž‘ํ•˜๊ณ , ์ด์— ๋”ํ•˜์—ฌ ์‚ฌ์ง„์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€๋„ ์œ„์— ์‚ฌ์ง„์„ ๋„์›€์œผ๋กœ์จ, ์—ฌ๋Ÿฌ ์žฅ์†Œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ณต์œ  ์•จ๋ฒ”์˜ ์žฅ์ ์„ ๊ฐœ์ธ์ , ์‚ฌํšŒ์  ์ธก๋ฉด์—์„œ ๊ทน๋Œ€ํ™”์‹œํ‚ค๊ณ ์ž ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿง‘โ€๐Ÿ’ป ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

ํ”„๋กœ์ ํŠธ๋ช…

์ง€๋„๊ธฐ๋ฐ˜ ๊ณต์œ ์•จ๋ฒ” ์ปค๋ฎค๋‹ˆํ‹ฐ PicMap

ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

๋”ฉ๋™ํŒ€์˜ PicMap ์„œ๋น„์Šค๋Š” ๋‹จ์ˆœํ•œ ์•จ๋ฒ” ์„œ๋น„์Šค๋‚˜ ์†Œํ†ต ๊ธฐ๋Šฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋ผ๋ฆฌ ๊ทธ๋ฃน์„ ํ˜•์„ฑํ•˜์—ฌ ์•จ๋ฒ”์„ ๋งŒ๋“ค์–ด๋‚˜๊ฐ€๋Š” ๊ณต์œ ์•จ๋ฒ” ๊ธฐ๋Šฅ๊ณผ, ๊ทธ๋ฃน์˜ ์‚ฌ์ง„์„ ์ง€๋„ ์œ„์—์„œ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋ฌผ ์†Œ๊ฐœ

  1. ๋งˆ์ดํŽ˜์ด์ง€ ์‚ฌ์ง„ํƒญ

    ๋งˆ์ดํŽ˜์ด์ง€ ์‚ฌ์ง„ํƒญ์€ ์ž์‹ ์ด ์†ํ•œ ๊ฐ ์จํด๋งˆ๋‹ค์˜ ์ตœ์‹  ์‚ฌ์ง„ 4์žฅ์„ ๋ณด์—ฌ์ฃผ๋Š” ํƒญ์ด๋‹ค. ์ด ๋ถ€๋ถ„์—์„œ ์‚ฌ์ง„์˜ ๋ Œ๋”๋ง์ด ๋Šฆ์–ด์ง€๋Š” ๋ฌธ์ œ์ ์„ AWS CloudFront๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ๋‹ค. ๊ฐ€์žฅ ์œ„๋กœ ์Šคํฌ๋กคํ•  ์‹œ ์‚ฌ์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ(refetch)ํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์จํด ์‚ฌ์ง„์„ ํด๋ฆญํ•  ์‹œ ๋‘ ๋ฒˆ์งธ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ํ•ด๋‹น ์จํด๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.


  1. ๋งˆ์ดํŽ˜์ด์ง€ ์ง€๋„ํƒญ

    ๋งˆ์ดํŽ˜์ด์ง€์˜ ์ง€๋„ํƒญ์€ ์ž์‹ ์ด ์†ํ•œ ์จํด์— ์—…๋กœ๋“œ๋œ ์‚ฌ์ง„๋“ค ์ค‘ ์œ„์น˜ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ์‚ฌ์ง„๋“ค์„ ์ง€๋„ ์œ„์—์„œ ๋ณด์—ฌ์ค€๋‹ค.
    Supercluster์™€ map marker ๋“ฑ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง€๋„์œ„์— ๋งˆ์ปค๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ์—ฌ๋Ÿฌ ์žฅ์˜ ์‚ฌ์ง„์ด ๋ชจ์—ฌ์žˆ๋Š” ๊ณณ(ํด๋Ÿฌ์Šคํ„ฐ)์„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ํด๋Ÿฌ์Šคํ„ฐ์— ์†ํ•œ ์‚ฌ์ง„๋“ค์˜ ๋ฆฌ์ŠคํŠธ ์Šคํฌ๋ฆฐ์œผ๋กœ ์ด๋™ํ•œ๋‹ค. (๋‘ ๋ฒˆ์งธ ์‚ฌ์ง„)
    ํ•ด๋‹น ์Šคํฌ๋ฆฐ์—์„œ ํŠน์ • ์‚ฌ์ง„์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ์‚ฌ์ง„์˜ ์ƒ์„ธ ์Šคํฌ๋ฆฐ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.(์„ธ ๋ฒˆ์งธ ์‚ฌ์ง„)
    ์‚ฌ์ง„์˜ ์ƒ์„ธ ์Šคํฌ๋ฆฐ์—์„œ๋Š” ์‚ฌ์ง„์— ๋Œ€ํ•ด ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋Œ“๊ธ€์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์œ ์ €์™€ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋‹ค.
    ๊ฐœ๋ณ„ ์‚ฌ์ง„์„ ํด๋ฆญํ•˜๋ฉด ๋ฐ”๋กœ ํ•ด๋‹น ์‚ฌ์ง„์˜ ์ƒ์„ธ ์Šคํฌ๋ฆฐ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.


  1. ๋งˆ์ดํŽ˜์ด์ง€ ์จํดํƒญ, ์จํด์ƒ์„ฑ ์Šคํฌ๋ฆฐ

    ๋งˆ์ดํŽ˜์ด์ง€์˜ ์จํดํƒญ์€ ์ž์‹ ์ด ์†ํ•œ ์จํด์˜ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค€๋‹ค. ์จํด์„ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์จํด์˜ ๊ณต์œ ์•จ๋ฒ”์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์™ผ์ชฝ ํ•˜๋‹จ์˜ โ€˜+โ€™ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ƒˆ๋กœ์šด ์จํด์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์จํด์€ ๊ณต๊ฐœ ์จํด๊ณผ ๋น„๊ณต๊ฐœ ์จํด๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค. ๊ณต๊ฐœ ์จํด์˜ ๊ฒฝ์šฐ ์นœ๊ตฌ์˜ ์ดˆ๋Œ€์™€ ํƒ€์ž„๋ผ์ธ ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ๊ณ , ๋น„๊ณต๊ฐœ ์จํด์˜ ๊ฒฝ์šฐ ์นœ๊ตฌ์˜ ์ดˆ๋Œ€๋กœ๋งŒ ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.


  1. ์จํด ๊ณต์œ ์•จ๋ฒ” ์Šคํฌ๋ฆฐ

    ๊ณต์œ ์•จ๋ฒ” ์Šคํฌ๋ฆฐ์˜ ์ƒ๋‹จ์—๋Š” ์•จ๋ฒ”์— ์†ํ•œ ์œ ์ €๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. ํŠน์ • ์œ ์ €๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์œ ์ €์˜ ํ”„๋กœํ•„ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ๋‹ค.
    ์ง€๋„ ๋ถ€๋ถ„์—๋Š” ํ•ด๋‹น ๊ณต์œ ์•จ๋ฒ”์— ์—…๋กœ๋“œ ๋œ ์‚ฌ์ง„๋“ค ์ค‘ ์œ„์น˜ ์ •๋ณด๊ฐ€ ์žˆ๋Š” ์‚ฌ์ง„๋“ค์„ ๋„์›Œ์ค€๋‹ค. ์ง€๋„์˜ ์•„๋ž˜์—๋Š” ์—…๋กœ๋“œ ๋œ ์‚ฌ์ง„๋“ค์„ 3์—ด๋กœ ๋ณด์—ฌ์ค€๋‹ค.
    ์‚ฌ์ง„ ๋ฆฌ์ŠคํŠธ์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— โ€˜์„ ํƒโ€™ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, ์‚ฌ์ง„์„ ์„ ํƒํ•˜์—ฌ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ž์‹ ์˜ ๊ธฐ๊ธฐ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
    ํ—ค๋”์—๋Š” ๊ฐ€์žฅ ์™ผ์ชฝ์— ์จํด๋ช…์ด, ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์—๋Š” ์„ค์ • ๋ฒ„ํŠผ์ด ์žˆ๋‹ค.
    ์„ค์ •๋ฒ„ํŠผ์„ ํ†ตํ•ด ์‚ฌ์ง„ ์ •๋ ฌ, ์œ ์ € ์ถ”๊ฐ€ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฌ์ง„ ์ •๋ ฌ์€ ์ตœ์‹ ์ˆœ, ๊ณผ๊ฑฐ์ˆœ, ์ข‹์•„์š”์ˆœ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์œ ์ € ์ถ”๊ฐ€๋ฅผ ํ†ตํ•ด ์นœ๊ตฌ๋ฅผ ํ•ด๋‹น ์จํด์— ์ดˆ๋Œ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์จํด ๋‚ด์˜ ์ง€๋„์˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ™•๋Œ€๋œ ์ง€๋„ ์Šคํฌ๋ฆฐ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
    ๊ฐ ์‚ฌ์ง„์„ ํด๋ฆญํ•˜๋ฉด [๊ทธ๋ฆผ 2]์˜ ์„ธ ๋ฒˆ์งธ ์‚ฌ์ง„๊ณผ ๊ฐ™์€ ์‚ฌ์ง„ ์ƒ์„ธ ์Šคํฌ๋ฆฐ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.


  1. ์จํด ๊ณต์œ ์•จ๋ฒ” ์Šคํฌ๋ฆฐ - ์‚ฌ์ง„ ์—…๋กœ๋“œ

    ์™ผ์ชฝ ํ•˜๋‹จ์˜ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์‚ฌ์ง„์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๋Ÿฌ ์žฅ์˜ ์‚ฌ์ง„์„ ์„ ํƒํ•˜์—ฌ ์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ง์ ‘ ์‚ฌ์ง„์„ ์ดฌ์˜ํ•˜์—ฌ ์—…๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.


  1. ํƒ€์ž„๋ผ์ธ(๊ณต๊ฐœ์จํด ๋ชฉ๋ก) ์Šคํฌ๋ฆฐ

    ๊ณต๊ฐœ ์จํด์˜ ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฏธ๊ฐ€์ž… ์จํด์— ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์ž… ํ›„ ๋ฐ”๋กœ ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์œ„์˜ ๋‘ ๋ฒˆ์งธ ์‚ฌ์ง„๊ณผ ๊ฐ™์€ ํผ๋ธ”๋ฆญ ์จํด์€ ๊ณต์ ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.


  1. ๊ฒ€์ƒ‰ ์Šคํฌ๋ฆฐ

    ์œ ์ €์˜ ๊ฒฝ์šฐ ์œ ์ €๋„ค์ž„์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์จํด์˜ ๊ฒฝ์šฐ ์จํด๋ช…์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
    ์ง€๋„์˜ ๊ฒฝ์šฐ ํŠน์ • ์ง€์—ญ์„ ๊ฒ€์ƒ‰ํ•˜๋ฉด ํ•ด๋‹น ์ง€์—ญ์— ๋Œ€ํ•œ ์‚ฌ์ง„์ด ์žˆ๋Š” ํผ๋ธ”๋ฆญ ์จํด์˜ ์‚ฌ์ง„์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.


  1. ํ”„๋กœํ•„ ํŽธ์ง‘ ๋ฐ ์นœ๊ตฌ๋ชฉ๋ก

    ๋งˆ์ดํŽ˜์ด์ง€์˜ ์ƒ๋‹จ์˜ ํ”„๋กœํ•„์—์„œ ํ”„๋กœํ•„ ํŽธ์ง‘ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ž์‹ ์˜ ํ”„๋กœํ•„์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœํ•„ ์‚ฌ์ง„์„ ์ง์ ‘ ์ž์‹ ์˜ ๊ฐค๋Ÿฌ๋ฆฌ๋กœ๋ถ€ํ„ฐ ํ˜น์€ ์ดฌ์˜ํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    ๋˜ํ•œ ํ”„๋กœํ•„์˜ ์นœ๊ตฌ๋ชฉ๋ก ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์นœ๊ตฌ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ๋‹จ ํ—ค๋”์˜ ์˜ค๋ฅธ์ชฝ ์„ค์ • ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋ฐ›์€ ์นœ๊ตฌ์š”์ฒญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ณ , ์นœ๊ตฌ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.


  1. ๋‹ค๋ฅธ ์œ ์ € ํŽ˜์ด์ง€ ์Šคํฌ๋ฆฐ

    ๋‹ค๋ฅธ ์œ ์ €๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์œ ์ €์˜ ํŽ˜์ด์ง€์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฏธ ์นœ๊ตฌ์ธ ๊ฒฝ์šฐ โ€˜์นœ๊ตฌโ€™๋ผ๋Š” ํ…์ŠคํŠธ๊ฐ€ ํ‘œ์‹œ๋œ๋‹ค.
    ์นœ๊ตฌ๊ฐ€ ์•„๋‹Œ ๋น„๊ณต๊ฐœ ๊ณ„์ • ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ ์‚ฌ์ง„ํƒญ๊ณผ ์ง€๋„ํƒญ ๋˜ํ•œ ๋น„๊ณต๊ฐœ ๋œ๋‹ค.


๐ŸŽž๏ธ ์‹œ์—ฐ์˜์ƒ