Skip to content

real-project1110/BackEnd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ํ•ญํ•ด 99 9๊ธฐ 4์กฐ ์‹ค์ „ ํ”„๋กœ์ ํŠธ - Status!

แ„‡แ…ณแ„…แ…ฉแ„‰แ…ง

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

[statUs] ์›ํ™œํ•œ ํŒ€ ์—…๋ฌด์™€ ํŒ€ ๋‚ด ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ๋„์™€์ฃผ๋Š” ์„œ๋น„์Šค

ํŒ€์˜ ์ผ์ •์„ ํ™•์ธํ•œ๋‹ค! ๋ˆ„๊ฐ€ ์–ด๋–ค ์ผ์ •์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค! ํŒ€์›์ด ์–ด๋–ค ์ƒํƒœ์ธ์ง€ ๋ณด์—ฌ์ค€๋‹ค!

๐ŸšŒ Status ์„œ๋น„์Šค ์ด์šฉํ•˜๊ธฐ
๐Ÿ—’ Status ๋…ธ์…˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ—“๏ธ ํ”„๋กœ์ ํŠธ ์šด์˜ ๊ธฐ๊ฐ„

  • ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„: 2022๋…„ 11์›” 11์ผ ~ 2022๋…„ 12์›” 16์ผ
  • ์šด์˜ ๊ธฐ๊ฐ„: 2022๋…„ 12์›” 07์ผ ~ 2022๋…„ 12์›” 15์ผ


แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-02-21 แ„‹แ…ฉแ„’แ…ฎ 6 27 19


๐Ÿ‘ฅ ํ”„๋ก ํŠธ์—”๋“œ ํŒ€์› ์†Œ๊ฐœ

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ํ•œ์„ธ์ค€: https://github.com/hansejun/

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ์•ˆ์น˜์˜: https://github.com/Returnmakdo

๐Ÿ‘ฅ ๋ฐฑ์—”๋“œ ํŒ€์› ์†Œ๊ฐœ

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ๊น€์ •ํ˜„: https://github.com/1005jh

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ์ •ํ˜„์ง„: https://github.com/hyunjin9603

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ์œ ๋™ํฌ: https://github.com/donghee44

๐Ÿ‘ฅ ๋””์ž์ด๋„ˆ ํŒ€์› ์†Œ๊ฐœ

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ๋ฌธ์˜ˆ์ง„


๐Ÿ’š ์ฃผ์š” ๊ธฐ๋Šฅ

  • ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ

    • ์ด๋ฉ”์ผ ์ธ์ฆ์„ ํ†ตํ•œ ํšŒ์›๊ฐ€์ž…
    • ์นด์นด์˜ค ๋กœ๊ทธ์ธ์„ ํ†ตํ•œ ๊ฐ„ํŽธํ•œ ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ
    • ๋กœ๊ทธ์ธ ์‹œ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ ‘์†ํ•œ ๊ทธ๋ฃน ํŽ˜์ด์ง€๋กœ ์ด๋™

  • ์บ˜๋ฆฐ๋” ๋ฐ ์ƒํƒœ๋“ฑ๋ก

    • ์ƒํƒœ์— ๋Œ€ํ•œ ์ƒ‰์ƒ์„ ๋“ฑ๋กํ•˜์—ฌ ์ผ์ • ์ž‘์„ฑ ex) ํœด๊ฐ€์ค‘, ์—ฐ์ฐจ, ์ถœ์žฅ ๋“ฑ...
    • ์ž‘์„ฑํ•œ ํšŒ์›์ด ์•„๋‹ ์‹œ ์ˆ˜์ • ๋ถˆ๊ฐ€
    • ๋“œ๋ž˜๊ทธ์•ค๋“œ๋กญ์„ ํ†ตํ•œ ์ผ์ • ์ˆ˜์ •

  • ๊ฒŒ์‹œํŒ

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

  • ๊ทธ๋ฃน ํšŒ์› ์ƒํƒœ

    • ์†ํ•œ ๊ทธ๋ฃน๋‚ด์—์„œ ์ƒํƒœ๋ฉ”์‹œ์ง€์™€ ์ƒํƒœ ์•„์ด์ฝ˜ ๋“ฑ๋ก ๊ฐ€๋Šฅ
    • ์ƒํƒœ ์•„์ด์ฝ˜์€ ์œ ์ €์˜ ์˜ค๋ฅธ์ชฝ์— ํ‘œ์‹œ๋˜๋ฉฐ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค๋†“์„ ์‹œ์— ํ•ด๋‹น ์œ ์ €์˜ ์ƒํƒœ ๋ฉ”์‹œ์ง€ ํ™•์ธ ๊ฐ€๋Šฅ
    • ํ•ด๋‹น ๊ทธ๋ฃน์˜ ์ ‘์†ํ•˜๊ณ  ์žˆ๋Š” ์œ ์ €๋“ค์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ‘œ์‹œ

  • ๊ทธ๋ฃน ์ƒ์„ฑ ๋ฐ ์ดˆ๋Œ€

    • ๊ทธ๋ฃน์—์„œ ์œ ์ € ์ดˆ๋Œ€ ๊ฐ€๋Šฅ
    • ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ ์•Œ๋ฆผ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๋ฉด ๋ฐ›์€ ์ดˆ๋Œ€ ๋ชฉ๋ก์„ ๋ณด์—ฌ์คŒ
    • ์ดˆ๋Œ€ ์ˆ˜๋ฝ์‹œ์— ํ•ด๋‹น ๊ทธ๋ฃน์œผ๋กœ ์ด๋™

  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…

    • ๊ทธ๋ฃน๋‚ด์˜ ์œ ์ €์™€ ์‹ค์‹œ๊ฐ„ 1๋Œ€1 ์ฑ„ํŒ…
    • ์ƒ๋Œ€๋ฐฉ์ด ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ์ƒ๋Œ€๋ฐฉ์˜ ํ™”๋ฉด์—์„œ ์ฝ์ง€ ์•Š์€ ๋ฉ”์‹œ์ง€ ์ˆ˜ ํ‘œ์‹œ


โœ… ๋‹ด๋‹น ์ž‘์—…

๐Ÿ‘ท๐Ÿปโ€โ™‚๏ธ ๊น€์ •ํ˜„

  • ๊ทธ๋ฃน,์Šค์ผ€์ฅด,์ดˆ๋Œ€,๊ฒŒ์‹œํŒ,๋Œ“๊ธ€,๋ฃธ,์ฑ„ํŒ…,์ด๋ฏธ์ง€ ๊ธฐ๋Šฅ๊ตฌํ˜„
  • redis ๋ฐ์ดํ„ฐ ์บ์‹ฑ
  • lambda ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง•
  • socket.io : ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… / ์•ˆ์ฝ์€ ๋ฉ”์‹œ์ง€ ์•Œ๋ฆผ / ์‹ค์‹œ๊ฐ„ ์ ‘์† ์œ ์ € ํ‘œ์‹œ
  • CICD
  • swagger
  • morgan/winton ์—๋Ÿฌ๋กœ๊ทธ ์ €์žฅ
  • ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ (artillery)
  • test
  • nginx(https , Load Balancer)
  • ์ „๋ฐ˜์ ์ธ ์—๋Ÿฌ์ˆ˜์ • ๋ฐ ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜
  • ๋ฐ์ดํ„ฐ ๊ด€๊ณ„ ์„ค์ •

๐Ÿ‘ท๐Ÿปโ€โ™‚๏ธ ์ •ํ˜„์ง„

  • ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž…, ์œ ์ €ํ”„๋กœํ•„, ๋‹‰๋„ค์ž„/๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๊ตฌํ˜„
  • ๊ทธ๋ฃน๋‚ด ์œ ์ €, ์ปฌ๋Ÿฌ, ๊ฒŒ์‹œ๊ธ€/๋Œ“๊ธ€ ์ข‹์•„์š” ๊ตฌํ˜„
  • ์นด์นด์˜ค ์†Œ์…œ๋กœ๊ทธ์ธ : axios ์‚ฌ์šฉ ๊ตฌํ˜„
  • ๊ตฌ๊ธ€/๋„ค์ด๋ฒ„ ์†Œ์…œ๋กœ๊ทธ์ธ : passport ๊ตฌํ˜„
  • nodemailer (๋„ค์ด๋ฒ„๋ฉ”์ผ)
  • ๋กœ๊ทธ์ธ ๋ฏธ๋“ค์›จ์–ด
  • nginx (https)
  • jwt
  • test
  • DB ๋ชจ๋ธ ์„ค๊ณ„(ERD)

๐Ÿ‘ท๐Ÿปโ€โ™‚๏ธ ์œ ๋™ํฌ

  • ์Šค์ผ€์ฅด, ๊ทธ๋ฃน, ์ปฌ๋Ÿฌ CRUD
  • socket.io ์ฑ„ํŒ…

๐Ÿ’ฌ ๊ธฐ์ˆ ์  ์˜์‚ฌ๊ฒฐ์ •

ย  ย  ย  ย  ย  ย  ย  ย 

ย  ย  ย  ย  ย 

์‚ฌ์šฉ ๊ธฐ์ˆ  ๊ธฐ์ˆ  ๊ฒฐ์ • ์ด์œ 
Socket.io webSocket์˜ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ € ๋ณ„๋กœ ์ง€์› ๋ฒ„์ „์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์–ด์„œ ์ผ๊ด€๋œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ socket.io๋ฅผ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
redis In-Memory ๊ธฐ๋ฐ˜์˜ Dictionary ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ๊ด€๋ฆฌ ์„œ๋ฒ„๋กœ key-value์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐ™์ด ์ฟผ๋ฆฌ ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ๊ณ ์†์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ์— ์ตœ์ ํ™”๊ฐ€ ๋˜์–ด ์žˆ๊ณ , ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—… ์†๋„๊ฐ€ ๋น ๋ฅธ ์žฅ์ ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹ฑํ•˜์—ฌ ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
lambda ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง• ์ž‘์—…์ด CPU์™€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋กœ์ปฌ์„œ๋ฒ„์—์„œ ์ž‘์—…์„ ๋Œ๋ฆฌ๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ชป ๋ฐ›๋Š” ํ˜„์ƒ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๊ณ , node.js์˜ ํŠน์„ฑ์ƒ ๋น„๋™๊ธฐํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฐ˜์œผ๋กœ I/O ์ž‘์—…์— ์œ ๋ฆฌํ•˜๊ณ  CPU์ž‘์—…์— ๋ถˆ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— S3๋ฅผ ํŠธ๋ฆฌ๊ฑฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” lambda๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋์Šต๋‹ˆ๋‹ค.
git action(CICD) ๋ฐ˜๋ณต์  ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ•ด์ฃผ๋Š” ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ์ฝ”๋“œ๋ณ€๊ฒฝ์„ ์›ํ™œํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

jenkins๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ด ์ปดํ“จํ„ฐ์ƒ์—์„œ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ git action์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ github๊ณผ ํ†ต์ผ๋œ ํ™˜๊ฒฝ์—์„œ CICD๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ณด๋‹ค ์นœ์ˆ™ํ•œ ๋ฌธ๋ฒ•์˜ yamlํŒŒ์ผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— git action์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.
Nginx https๋ฅผ ์ ์šฉํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ์— ์ œ๊ณตํ•˜๋Š” ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ์‚ฌ์ด์ฆˆ์™€ ์‚ฌ์šฉ์ž ์ˆ˜ ๋ฐ ๋น„์šฉ์ ์ธ ๋ฉด์„ ๊ณ ๋ คํ•ด ELB๋ณด๋‹ค Nginx๋ฅผ Load Balancer๋กœ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๊ณ  ์‘๋‹ต์†๋„๋ฅผ ๋†’์ด๋Š”๋ฐ ๋” ํšจ๊ณผ์ ์ผ๊ฑฐ๋ผ ํŒ๋‹จํ•˜๊ณ  ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
axios response timeout (fetch์—๋Š” ์—†๋Š” ๊ธฐ๋Šฅ) ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์ด ์กด์žฌ Promise ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง• ์ตœ์ ํ™”๋กœ ๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ(๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ € ์ง€์›)์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.
artillery JMETER๋ผ๋Š” ํˆด๋„ ์žˆ์ง€๋งŒ ์šฐ๋ฆฌ์—๊ฒŒ ์นœ์ˆ™ํ•œ ์ฝ”๋“œ๋กœ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋์Šต๋‹ˆ๋‹ค.
mysql ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์ธ ๋ฉด๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ณ ์œ ํ•œ ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๋›ฐ์–ด๋‚œ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋์Šต๋‹ˆ๋‹ค.
sequelize ๊ฐ์ฒด์ง€ํ–ฅ์  ์ฝ”๋“œ๋กœ ์ง๊ด€์ ์ด๋ฉฐ ๋กœ์ง์— ๋”์šฑ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๊ณ , ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์ข‹๋‹ค๋Š” ์  ๊ทธ๋ฆฌ๊ณ  DBMS์— ๋Œ€ํ•œ ์ข…์†์„ฑ์ด ์ค„์–ด๋“ค๊ฒŒ ํ•˜๋ฉฐ ์ฟผ๋ฆฌ๋ฌธ์„ javascript๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์–ด ๋ณด๋‹ค ํด๋ฆฐํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋Š” ์ชฝ์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋์Šต๋‹ˆ๋‹ค.

โŒ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…


Lambda Access denied
  • ๋ฌธ์ œ ์ƒํ™ฉ

    • S3 ๋ฒ„์ผ“์— ์ด๋ฏธ์ง€๊ฐ€ ์˜ฌ๋ผ๊ฐ€์ง€๋งŒ lambda ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์ž‘๋™์„ ํ•˜์ง€ ์•Š๊ณ  access denied 403 ์—๋Ÿฌ๋ฅผ ๋„์›€
  • ์ฒซ๋ฒˆ์งธ ์ ‘๊ทผ

    • access denied๊ฐ€ ๋œจ๋ฏ€๋กœ ๊ถŒํ•œ์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜๊ณ  IAM ๊ถŒํ•œ์ชฝ์œผ๋กœ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ์‹œ๋„ โ†’ ์‹คํŒจ(access denied 403) โ†’ ใ„น๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ AWS ์„ธํŒ… โ†’ ์‹คํŒจ(access denied 403)
  • ๋‘๋ฒˆ์งธ ์ ‘๊ทผ

    • AWS์˜ ์„ธํŒ…์— ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋ฉด lambda์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ ํŒ๋‹จํ•˜๊ณ  ํ•จ์ˆ˜์™€ ํŠธ๋ฆฌ๊ฑฐ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ์‹œ๋„ โ†’ ์‹คํŒจ(access denied 403) โ†’ lambda์™€ s3๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค๋ฉฐ ์ง„ํ–‰ โ†’ ์‹คํŒจ(access denied 403)
  • ์„ธ๋ฒˆ์งธ ์ ‘๊ทผ(ํ•ด๊ฒฐ)

    • lambda์™€ ๊ถŒํ•œ์„ ๊ฑด๋“œ๋ ค๋ดค์œผ๋‚˜ ํ•ด๊ฒฐ์ด ๋˜์ง€ ์•Š์•„ multerMiddleware ์ฝ”๋“œ ๋‹ค์‹œ์ž‘์„ฑ ์‹œ๋„ โ†’ ์‹คํŒจ(access denied 403) โ†’ multer ์„ธํŒ…์„ ๋ฐ”๊พธ๋ฉฐ ๋‹ค์‹œ์‹œ๋„ โ†’ ์ด๋ฆ„์„ ํ˜„์žฌ๋‚ ์งœ๋กœ๋งŒ ๋ฐ”๊ฟ”์คฌ์„ ๋•Œ ์„ฑ๊ณต
  • access denied๊ฐ€ ํ•ด๊ฒฐ๋œ ์ด์œ ?

    stackoverflow์—์„œ ๊ฒ€์ƒ‰ํ•˜๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๊ธ€์— ๋”ฐ๋ฅด๋ฉด AWS๋Š” ๊ฐ์ฒด๊ฐ€ ์—†์œผ๋ฉด 404 NOT FOUND๊ฐ€ ์•„๋‹ˆ๋ผ 403 ACCESS DENIED๋ฅผ ๋„์šด๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทผ๋ฐ ์ €๋Š” ๊ธฐ์กดํŒŒ์ผ๋ช…์— ๋‚ ์งœ๋ฅผ ๋”ํ•ด์„œ ํŒŒ์ผ๋ช…์„ ์ •ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰์„ ํ–ˆ์—ˆ๊ณ , ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— S3์— ํ•œ๊ธ€๋กœ ๋œ ํŒŒ์ผ๋ช…์ด ์˜ฌ๋ผ๊ฐˆ ๋•Œ ํ•œ๊ธ€์ด ๊นจ์ ธ์„œ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ S3์—๋Š” ์˜ฌ๋ผ๊ฐ€์ง€๋งŒ lambda์—์„œ๋Š” ๊นจ์ง„ ํ•œ๊ธ€์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ด S3์— ๊ฐ์ฒด๊ฐ€ ์—†๋‹ค๊ณ  ํŒ๋‹จ์„ ํ•˜๊ณ  access denied๋ฅผ ๋„์šด ๊ฒƒ์ด๋ผ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ์žฅ์˜ ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ S3์— ๋ช‡์žฅ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์†Œ์‹ค๋˜๋Š” ๋ฌธ์ œ
  • ๋ฌธ์ œ ์ƒํ™ฉ

    • ์—ฌ๋Ÿฌ์žฅ์˜ ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ ธ์„ ๋•Œ S3์— ๋ช‡์žฅ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์†Œ์‹ค๋˜๋Š” ๋ฌธ์ œ
  • ์ฒซ๋ฒˆ์งธ ์ ‘๊ทผ

    • multerMiddleware๋ฅผ ํ†ต๊ณผํ•ด์„œ S3์— ์ด๋ฏธ์ง€๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋ฏ€๋กœ multerMiddleware๋ฅผ ์‚ฌ์šฉํ•˜๋Š” route ๋ถ€๋ถ„์„ ์ˆ˜์ • โ†’ ์‹คํŒจ
  • ๋‘๋ฒˆ์งธ ์ ‘๊ทผ

    • S3์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋‹ค๊ฐ€ ํŒŒ์ผ๋ช…์ด ํฌ๊ฒŒ ์ฐจ์ด๊ฐ€ ๋‚˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ํŒŒ์•… โ†’ ์„œ๋กœ ๋ช…ํ™•ํ•œ ์ฐจ์ด๋ฅผ ์ฃผ๊ธฐ ์œ„ํ•ด ๋žœ๋ค์ˆซ์ž์™€ ํ˜„์žฌ์‹œ๊ฐ„์„ ๋”ํ•ด์„œ ํŒŒ์ผ๋ช…์„ ๋งŒ๋“ค์–ด์คŒ โ†’ ์„ฑ๊ณต
  • ์ด๋ฏธ์ง€๊ฐ€ ์™œ ์†Œ์‹ค๋œ๊ฑธ๊นŒ?

    ๋‘๋ฒˆ์งธ ์ ‘๊ทผ์„ ํ–ˆ์„ ๋•Œ ํŒŒ์•…ํ•˜๊ธฐ๋กœ๋Š” ์—ฌ๋Ÿฌ์žฅ์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ™์ด ์˜ฌ๋ฆด ๋•Œ ๋ช‡์žฅ์˜ ์ด๋ฏธ์ง€์˜ ํŒŒ์ผ๋ช…์ด ๊ฐ™๊ฒŒ ๋˜์–ด ์†Œ์‹ค๋˜๋Š”๊ฑธ๋กœ ํŒŒ์•…๋ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ํŒŒ์ผ๋ช…์ด ์˜ฌ๋ผ์˜ค๊ธฐ ๋•Œ๋ฌธ์— S3์—์„œ๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์ธ์‹ํ•˜๊ณ  ์ด๋ฆ„์ด ๊ฒน์น˜๋Š” ํŒŒ์ผ์ด ์‚ฌ๋ผ์ง€๊ฒŒ ๋˜์—ˆ๋‹ค.

Lambda๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํ™•์žฅ์ž๋ช…์˜ ๋ฌธ์ œ
  • ๋ฌธ์ œ ์ƒํ™ฉ

    • lambda๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํ™•์žฅ์ž๋ช…์˜ ๋ฌธ์ œ
  • ์ฒซ๋ฒˆ์งธ ์ ‘๊ทผ

    • ํ™•์žฅ์ž๋ช…์— ์ œํ•œ์„ ๋‘์–ด lambda๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํ™•์žฅ์ž๋ช…์„ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ์ž‘์—… โ†’ ์„ฑ๊ณต โ†’ ์ด๋ฏธ์ง€ ํ™•์žฅ์ž๋ช…์— ๋Œ€ํ•ด ๋ชจ๋ฅด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ ํŒ๋‹จ โ†’ ๋‹ค๋ฅธ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ๋ชจ์ƒ‰
  • ๋‘๋ฒˆ์งธ ์ ‘๊ทผ

    • ์ด๋ฏธ์ง€ ํ™•์žฅ์ž๋ช…์„ multerMiddleware์—์„œ ๋ณ€๊ฒฝ โ†’ ์„ฑ๊ณต โ†’ ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ์˜ฌ๋ฆด ๋•Œ ์‹ ๊ฒฝ ์“ธ ์ผ์ด ์—†๊ฒŒ ๋จ โ†’ ์ฑ„ํƒ
  • lambda๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” JFIF, ๋ณ€๊ฒฝํ•ด์ค€ ํ™•์žฅ์ž๋ช… webp

    lambda๊ฐ€ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ํ™•์žฅ์ž๋ช…์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๋Š” ์ƒ๊ฐ์„ ํฌ๊ฒŒ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์ € jpg๋Š” jpeg๋กœ ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ๋งŒ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ JFIF๋ผ๋Š” ํ™•์žฅ์ž๋ช…์ด ๋“ค์–ด์™”์„ ๋•Œ 1๋ฒˆ ๋ฌธ์ œ์™€ ๋น„์Šทํ•˜๊ฒŒ ๋žŒ๋‹ค ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋ฐœ๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ™•์žฅ์ž๋ช…์„ ๋ณ€๊ฒฝํ•˜๊ธฐ๋กœ ํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ํ”ํ•œ JPEG๋กœ ํ–ˆ์—ˆ๋Š”๋ฐ webp๋ผ๋Š” ํ™•์žฅ์ž๊ฐ€ ์••์ถ•์„ฑ๋„ ๋›ฐ์–ด๋‚˜๊ณ  ํ™”์งˆ์ ์ธ๋ฉด์—์„œ๋„ png์™€ ๋น„์Šทํ•˜๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ๋˜์–ด webp๋ผ๋Š” ํ™•์žฅ์ž๋ช…์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  webp๋ผ๋Š” ํ™•์žฅ์ž๋ฅผ ์„ ํƒํ•˜๋ฏ€๋กœ ๋ช‡๋ช‡ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›์„ ํ•˜์ง€ ์•Š๋Š” ์ ๊ณผ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฒ„์ „์— ๋”ฐ๋ผ ์ง€์›์„ ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์€ ๊ฐ€์ ธ๊ฐ€์•ผ ํ•˜์ง€๋งŒ webp๋ฅผ ์ผ์„ ๋•Œ์˜ ๋งค๋ฆฌํŠธ๊ฐ€ ์ถฉ๋ถ„ํžˆ ํฌ๋‹ค๊ณ  ์ƒ๊ฐ๋˜์–ด ์“ฐ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Redis ์บ์‹ฑ ๊ด€๋ จ ๋ฌธ์ œ
  • ๋ฌธ์ œ ์ƒํ™ฉ

    • get ์š”์ฒญ์„ ์บ์‹ฑ ํ–ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋ถ€๊ฐ€ ๋˜‘๊ฐ™์€ ์˜ค๋ฅ˜
  • ์ฒซ๋ฒˆ์งธ ์ ‘๊ทผ

    • cacheMiddleware์—์„œ redis.set ๋ถ€๋ถ„์„ ์ˆ˜์ • โ†’ ์‹คํŒจ
  • ๋‘๋ฒˆ์งธ ์ ‘๊ทผ

    • set์˜ key ๊ฐ’์œผ๋กœ req.originalUrl์„ ์ด์šฉํ–ˆ์—ˆ๋Š”๋ฐ ์œ ์ €๋งˆ๋‹ค key ๊ฐ’์„ ์ฐจ๋ณ„ํ™”๋˜๊ฒŒ ๋ณ€๊ฒฝ -> ์„ฑ๊ณต โ†’ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•ด๋„ ๋ณ€ํ•˜๊ธฐ ์ „ ๋ฐ์ดํ„ฐ ์‘๋‹ต โ†’ ์‹คํŒจ
  • ์„ธ๋ฒˆ์งธ ์ ‘๊ทผ

    • set์˜ key ๊ฐ’์— ์ฐจ๋ณ„ํ™”๋ฅผ ์ฃผ๊ณ , ์บ์‹ฑ๋œ ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๋ช…์„ ์งง๊ฒŒ ํ•ด์คŒ โ†’ ์‹คํŒจ
  • ๋„ค๋ฒˆ์งธ ์ ‘๊ทผ

    • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๋™๋  ๋•Œ๋งˆ๋‹ค ์บ์‹ฑ ๋ฐ์ดํ„ฐ ์ˆ˜์ • โ†’ ์„ฑ๊ณต โ†’ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๋™์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์ˆ˜์ •์„ ๊ฑฐ๋“ญํ•˜๋‹ค๋ณด๋‹ˆ ํ˜„์žฌ ์„œ๋น„์Šค์—์„œ ๋น„ํšจ์œจ์ ์œผ๋กœ redis๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๊ณ  ํŒ๋‹จ โ†’ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ๋ชจ์ƒ‰
  • ๋‹ค์„ฏ์งธ ์ ‘๊ทผ

    • ๋ฐ์ดํ„ฐ์˜ ๋ณ€๋™์ด ์ ๊ณ , ์ž์ฃผ ํ˜ธ์ถœ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํƒ€๊ฒŸ์œผ๋กœ ์บ์‹ฑ โ†’ ์„ฑ๊ณต
  • ์‹คํŒจ์˜ ์ด์œ 

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

Time ๊ด€๋ จ ๋ฌธ์ œ
  • ๋ฌธ์ œ ์ƒํ™ฉ

    • ์‹œ๊ฐ„์„ ์ฃผ๊ณ  ๋ฐ›๋Š”๋ฐ ์žˆ์–ด ํ”„๋ก ํŠธ์—์„œ ๋ฐฑ์œผ๋กœ ์™”์„ ๋•Œ ์„œ๋ฒ„์— ์ €์žฅ๋˜์—ˆ์„ ๋•Œ ์‹œ๊ฐ„์ด ๋‹ค๋ฅธ ๋ฌธ์ œ
  • ์ฒซ๋ฒˆ์งธ ์ ‘๊ทผ

    • ํ”„๋ก ํŠธ์—์„œ ์‹œ๊ฐ„๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์œผ๋ฉด ์›ํ•˜๋Š” ์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ โ†’ ์‹คํŒจ(์‘๋‹ต์†๋„ ๋ถˆ๋งŒ์กฑ)
  • ๋‘๋ฒˆ์งธ ์ ‘๊ทผ

    • ๋ฐฑ์—์„œ ์ผ๊ด„์ ์œผ๋กœ 9์‹œ๊ฐ„์„ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ๋Š” ์ฒ˜๋ฆฌ์ž‘์—… โ†’ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Œ(์‹คํŒจ)
  • ์„ธ๋ฒˆ์งธ ์ ‘๊ทผ

    • ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ string ๊ฐ’์œผ๋กœ ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ํ•„์š”์‹œ์— ๋ณ€ํ™˜ โ†’ ์„ฑ๊ณต โ†’ ๊ทผ๋ณธ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ์•„๋‹˜
  • ๋„ค๋ฒˆ์งธ ์ ‘๊ทผ

    • timezone ์„ค์ •์„ ํ•˜์—ฌ UTC๊ธฐ์ค€์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์ง€์—ญ๋Œ€์— ๋งž๊ฒŒ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ฒ˜๋ฆฌ โ†’ ์„ฑ๊ณต
  • ์‹คํŒจ์˜ ์ด์œ 

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

์†Œ์…œ๋กœ๊ทธ์ธ ๋ฌธ์ œ
  • ๋ฌธ์ œ ์ƒํ™ฉ
    • passport๋ฅผ ํ™œ์šฉํ•ด ์†Œ์…œ๋กœ๊ทธ์ธ ์‹œ๋„โ†’์„œ๋ฒ„์—์„œ ๋ณด๋‚ด๋Š” ์นด์นด์˜ค ๋กœ๊ทธ์ธ ์ •๋ณด๊ฐ€ ํ”„๋ก ํŠธ์—์„œ ๋ณด์—ฌ์ง€๊ธด ํ•˜๋‚˜, ํ”„๋ก ํŠธ ์—์„œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ
  • ์ฒซ๋ฒˆ์งธ ์ ‘๊ทผ
    • redirectURI์™€ callbackURL์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒƒ์ธ๊ฐ€ ๊ณ ๋ฏผํ•ด๋ด„
  • ๋‘๋ฒˆ์งธ ์ ‘๊ทผ
    • redirectURI์™€ callbackURL์ด ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ž„์„ ๊นจ๋‹ซ๊ณ  ํ”„๋ก ํŠธ์ชฝ URI์—๋„ ๋งž์ถฐ๋ณด๊ณ  ๋ฐฑ์—”๋“œ์ชฝ URI์—๋„ ๋งž์ถฐ๋ด„ โ†’ ์‹คํŒจ
  • ์„ธ๋ฒˆ์งธ ์ ‘๊ทผ
    • passport์ „๋žต์„ ์‚ฌ์šฉํ•˜์ง€๋ง๊ณ  ๋ฐฑ์—”๋“œ์—์„œ axios๋ฅผ ํ™œ์šฉํ•ด ์†Œ์…œ๋กœ๊ทธ์ธ ๋ฐฉ์‹์„ ํ•ด๋ณด์ž๋Š” ์˜๊ฒฌ์ด ๋‚˜์™€ ์‹œ๋„ํ•จ
  • ๋„ค๋ฒˆ์งธ ์ ‘๊ทผ - axios๋ฅผ ํ™œ์šฉํ•ด ์œ ์ €์ •๋ณด๋ฅผ ๋ฐ›์•„ ์˜จ ํ›„ ์†Œ์…œ๋กœ๊ทธ์ธ์— ์„ฑ๊ณต

๋ธŒ๋กœ์…”

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •