Skip to content

bokjiri/back-end

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

835 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

image

๋ณต์ง€๋ฐ›๊ณ  ์„ธ์ƒ ํŽธํ•˜๊ฒŒ ์‚ด์ž!

๋ณต์„ธํŽธ์‚ด์€ ๋ณต์ง€ ์ •์ฑ… ๋ฐ ๋‰ด์Šค ๋งž์ถค ์ถ”์ฒœ ์‚ฌ์ดํŠธ์ž…๋‹ˆ๋‹ค!


ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๐Ÿ›  Architecture

แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ง (2) (1)


โฐ ํ”„๋กœ์ ํŠธ ํƒ€์ž„๋ผ์ธ

  • 4์›” 22์ผ ~ 6์›” 3์ผ (6์ฃผ)
  • 5์›” 19์ผ ๋ฐฐํฌ & ๋งˆ์ผ€ํŒ… & UT ์‹œ์ž‘
  • 5์›” 27์ผ ๋ˆ„์  ์‚ฌ์šฉ์ž 500๋ช… & ์กฐํšŒ์ˆ˜ 1๋งŒํšŒ ๋ŒํŒŒ
  • 6์›” 3์ผ ๋ˆ„์  ์‚ฌ์šฉ์ž 600๋ช… & ์กฐํšŒ์ˆ˜ 2๋งŒํšŒ ๋ŒํŒŒ

๐Ÿš€ ๊ธฐ๋Šฅ

๐Ÿ˜ƒ ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ „ํ•œ ํšŒ์›๊ฐ€์ž…

  • ์นด์นด์˜ค๋ฅผ ํ†ตํ•œ ์†Œ์…œ ๋กœ๊ทธ์ธ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ํšŒ์›๊ฐ€์ž… ํ•  ์ˆ˜ ์žˆ์–ด์š”!

๐Ÿ˜ƒ ๊ฐ„๋‹จํ•œ ์ •๋ณด ์ž…๋ ฅ์œผ๋กœ ๋ณต์ง€ ์ •์ฑ… ์ถ”์ฒœ ๋ฐ›๊ธฐ

  • ๋‚ด๊ฐ€ ์ž…๋ ฅํ•œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ณต์ง€ ์ •์ฑ…๋งŒ ๋ชจ์•„์„œ ์ถ”์ฒœํ•ด๋“œ๋ ค์š”!

๐Ÿ˜ƒ ์›ํ•˜๋Š” ์ •์ฑ…์„ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ

  • ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰์ด๋‚˜ ์ •์ฑ…๋ช…, ์นดํ…Œ๊ณ ๋ฆฌ ๊ฒ€์ƒ‰์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์›ํ•˜๋Š” ์ •์ฑ…์„ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์š”!

๐Ÿ˜ƒ ์ž์ฃผ ์ฐพ๋Š” ์ •์ฑ…์€ ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฐ„ํŽธ ํ™•์ธ

  • ๋ถ๋งˆํฌ๋ฅผ ํ•ด๋‘๋ฉด ์‚ฌ์ด๋“œ๋ฐ”์—์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”

๐Ÿ˜ณ ํ•„์š”์—†๋Š” ์ •์ฑ…์ด ์žˆ์„ ๋•Œ๋Š” ๋ฐ”๋กœ ์‚ญ์ œ

  • ๋งž์ง€ ์•Š๋Š” ์ •์ฑ…์ด ์žˆ๋‹ค๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”!๋ฅผ ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น ์ •์ฑ…์ด ๋‚˜์—๊ฒŒ ๋”์ด์ƒ ์ถ”์ฒœ๋˜์ง€ ์•Š์•„์š”!

๐Ÿ˜œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์€ ์ •์ฑ…์ด ์žˆ๋‹ค๋ฉด ๊ณต์œ ํ•˜๊ธฐ

  • ๊ณต์œ  ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํด๋ฆฝ๋ณด๋“œ๋กœ url์ด ๋ณต์‚ฌ๋ผ์š”

๐Ÿค  ์ž…๋ ฅ๋œ ์ง€์—ญ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ง€์—ญ ๋งž์ถค ๋‰ด์Šค๋งŒ ์ถ”์ฒœ

  • ์ž…๋ ฅํ•œ ์ง€์—ญ ์ •๋ณด์— ๋งž๋Š” ๋งž์ถค ๋ณต์ง€ ๋‰ด์Šค ์ถ”์ฒœ๋ผ์š”

๐Ÿ’ฌ ์ด์šฉ์ž๋“ค๊ณผ์˜ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ธฐ๋Šฅ

  • ๋ณต์„ธํŽธ์‚ด์„ ์ด์šฉ์ค‘์ธ ์‚ฌ๋žŒ๋“ค๊ณผ ์ž์œ ๋กญ๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์–ด์š”!

๐Ÿ’ก ๋†“์น˜๊ธฐ ์‰ฌ์šด ์ •์ฑ…์„ ์•Œ๋ฆผ ์„œ๋น„์Šค๋กœ ๋†“์น˜์ง€ ์•Š๊ธฐ

  • ์ •์ฑ… ์‹ ์ฒญ ๊ธฐํ•œ์ด ๋๋‚˜๊ธฐ ์ผ์ฃผ์ผ ์ „์— ์ด๋ฉ”์ผ๋กœ ์ •์ฑ…์„ ๋ถ๋งˆํฌ ํ•ด๋‘” ์‚ฌ์šฉ์ž์—๊ฒŒ ์•Œ๋ ค๋“œ๋ ค์š”!

๐Ÿ›  Tools

Design


Back-end

JavaScript NodeJS
NPM Express.js
AWS
MongoDB Redis
Passport
Jest

Front-end



Dev tools



์ด๋ฆ„ ํฌ์ง€์…˜ ๊ฐœ์ธ ๊นƒํ—ˆ๋ธŒ or ์ด๋ฉ”์ผ
๊ถŒ์ง€์› ๋ฐฑ์—”๋“œ https://github.com/zzpjw
์ดํ‘ธ๋ฆ„ ๋ฐฑ์—”๋“œ https://github.com/pooreumu
๊น€์˜์šฐ ๋ฐฑ์—”๋“œ https://github.com/rlasuddn
์ตœ์„œ๋ผ ํ”„๋ก ํŠธ์—”๋“œ https://github.com/Seol827
ํ•œ์ƒ์› ํ”„๋ก ํŠธ์—”๋“œ https://github.com/hsangwon
๊น€์ง€์› ๋””์ž์ด๋„ˆ ๐Ÿšข clue653@gmail.com
๋ฐฑ์ง€์œค ๋””์ž์ด๋„ˆ ๐Ÿšข qorwldbs1027@gmail.com

๐Ÿ”ฅ์ด์Šˆ ๋ฐ ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

โžก๏ธ CloudFront ๋ฐฐํฌ ๊ด€๋ จ ๋ฌธ์ œ

๋ฌธ์ œ : S3 ๋ฒ„ํ‚ท์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์บ์‹œ๊ฐ€ ์œ ์ง€๋˜๋Š” ์‹œ๊ฐ„๋‚ด์—์„œ๋Š” ํ•ด๋‹น ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด CloudFront์— ์ฆ‰์‹œ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ

ํ•ด๊ฒฐ : CloudFront์˜ Invalidations(๋ฌดํšจํ™”)๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ Edge Location์— ์ €์žฅ๋œ ์บ์‹œ๋ฅผ ์‚ญ์ œ

โžก๏ธ useSWR

๋ฌธ์ œ : Redux์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„์˜ ์‘๋‹ต๊ฐ’์„ ์ €์žฅํ•ด ๋†“๋Š” ์Šคํ† ์–ด ์—ญํ• ์ด ์•„๋‹Œ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, useEffect๋ฅผ ํ†ตํ•ด mount๋  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„์— ๋ถˆํ•„์š”ํ•œ GET ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

ํ•ด๊ฒฐ : SWR์€ ๊ธฐ์กด ํ๋ฆ„์„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ณ  ์บ์‹œ ๊ธฐ๋Šฅ๊นŒ์ง€ ๊ฐ€๋Šฅํ•œ data Fetching ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ, ๋ฆฌ๋•์Šค action, reducer, store ๋“ฑ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„ ๋กœ์ง์ด ๋งค์šฐ ๊ฐ„๊ฒฐํ•ด์ง„๋‹ค. ๋˜ํ•œ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ํ˜ธ์ถœ๊ณผ ๋žœ๋”๋ง์— ์‹œ๊ฐ„์„ ์“ฐ์ง€ ์•Š์•„ ํšจ์œจ์ ์ด๋‹ค.

โžก๏ธ ์„ฑ๋Šฅ ๋ฌธ์ œ

๋ฌธ์ œ : ์œ ์ € ์ •๋ณด๋ฅผ ํ†ตํ•œ ๋‰ด์Šค ํฌ๋กค๋ง๊ณผ ์ •์ฑ… ์ถ”์ฒœ ๋กœ์ง์ด ๋ฉ”์ธ ํŽ˜์ด์ง€๊ฐ€ ๋ณด์—ฌ์งˆ ๋•Œ๋งˆ๋‹ค ์ง€์†์ ์œผ๋กœ ๊ณ„์‚ฐ๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋ ˆํ”ฝ์ด ๋Š˜์–ด๋‚จ์— ๋”ฐ๋ผ ๋””์Šคํฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ CPU ๊ณ„์‚ฐ๋Ÿ‰์ด ํฌ๊ฒŒ ๋Š˜์–ด๋‚˜ ์„ฑ๋Šฅ์ƒ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Œ

ํ•ด๊ฒฐ๋ฐฉ์•ˆ : ๊ณ„์‚ฐ๋œ ๋ฐ์ดํ„ฐ๋“ค์„ ์บ์‹ฑ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฐ˜๋ณต๋˜๋Š” ์ •์ฑ… ์ถ”์ฒœ ๋กœ์ง ์ค„์ด๊ธฐ

ํ•ด๊ฒฐ : DB๋กœ์˜ ์ง์ ‘์ ์ธ ์ ‘๊ทผ์„ ์ตœ์†Œํ™” ์‹œ์ผœ์„œ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํ‚ค-๋ฐธ๋ฅ˜ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Redis๋ฅผ ๋„์ž…

ํšจ๊ณผ : redis ์ ์šฉ ํšจ๊ณผ ์ „ํ›„๋น„๊ต

โžก๏ธ ๊ณต๊ณตAPI ๋ถ„๋ฅ˜ ๋ฌธ์ œ

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

ํ•ด๊ฒฐ : ์ •์ฑ… ์„ธ๋ถ€ ๋‚ด์šฉ ๋“ฑ์—์„œ ํŒจํ„ด ํŒŒ์•…๊ณผ ์ •๊ทœ์‹ ํ‚ค์›Œ๋“œ ์ถ”์ถœ์„ ํ†ตํ•ด ์ž์ฒด ๋ถ„๋ฅ˜ ๊ธฐ์ค€ ์ƒ์„ฑ ๋ฐ ์žฌ์นดํ…Œ๊ณ ๋ฆฌํ™”๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ํ•ด๊ฒฐ

โžก๏ธ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์— ๊ด€ํ•œ ๋ฌธ์ œ

์„ค๋ช… : ๋ ˆ๋””์Šค ์ „๋žต์œผ๋กœ ๋กธ์ž‡ ์“ฐ๋กœ์šฐ ์ „๋žต์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ € ์ •๋ณด๊ฐ€ ๋ฐ”๋€”๋•Œ๋งˆ๋‹ค ๋ ˆ๋””์Šค ์…‹์„ ํ•˜๋Š”๋ฐ ์ด ์„ธ ๊ฐ€์ง€์˜ ๋ ˆ๋””์Šค ์…‹์ด ์„œ๋กœ ๋…๋ฆฝ์ ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์–ด์‹ฑํฌ ์–ด์›จ์ž‡์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ƒ์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ํŒŒ์•…/ํด๋žœ์ง• ๊ณผ์ •์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ

ํ•ด๊ฒฐ : ํ”„๋กœ๋ฏธ์Šค ์˜ฌ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ๊ฐ€์ง€ ๋ ˆ๋””์Šค ์…‹ ์ž‘์—…์ด ๋™์‹œ์— ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •

ํšจ๊ณผ : ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹ ์ „ํ›„๋น„๊ต

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors