๊ด€๋ฆฌ ๋ฉ”๋‰ด

HANA -J

ํ•ญํ•ด99 ์‹ค์ „ํ”„๋กœ์ ํŠธ ์ค‘๊ฐ„ํšŒ๊ณ  ๋ณธ๋ฌธ

๊ธฐ๋ก/ํ•ญํ•ด99

ํ•ญํ•ด99 ์‹ค์ „ํ”„๋กœ์ ํŠธ ์ค‘๊ฐ„ํšŒ๊ณ 

Hana-J 2022. 1. 9. 17:40

๐Ÿ  .zip(๋‹ท์ง‘)

ํ”„๋กœ์ ํŠธ ๊ฐœ์š” : ๊ณต๊ณต๊ณผ ๋ฏผ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ฒญ์•ฝ ์ •๋ณด๋ฅผ ํ•œ๊ณณ์—์„œ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•˜๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒญ์•ฝ ํ•˜๋Š” ๊ณณ์œผ๋กœ ์ด์–ด์ฃผ๋Š”์—ญํ• 

 

โ—๏ธํ•ต์‹ฌ๊ธฐ๋Šฅ

1. OpenApi ์™€ ํฌ๋กค๋งํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ์ €์˜ ์กฐ๊ฑด์— ๋งž์ถ˜(๊ด€์‹ฌ์ง€์—ญ์„ค์ •, ์ง€์—ญ๋ณ„ ํ•„ํ„ฐ)์ •๋ณด๋ฅผ ์ œ๊ณต

 

๐Ÿ“† MVP ๋„๋ฉ”์ธ

https://www.dotzip.today/

 

์ง‘์„ ๋ชจ์•„๋†“๋‹ค.zip

ํšŒ์›๋‹˜์„ ์œ„ํ•œ ์ฒญ์•ฝ ์ •๋ณด๊ฐ€ 166๊ฐœ ๋ชจ์—ฌ์žˆ์–ด์š”!

www.dotzip.today

 

๐Ÿ“Ž ๋ฐฑ์—”๋“œ ๋ฐฐํฌ workflow

 

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

  • ํ•„์š”ํ•œ ๊ฐ’๋“ค์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ถ€๋ถ„
    1. openApi๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋“ ๊ฐ’์„ ๋ฐ›์•„์™”๋‹ค
    2. ๋ฏผ์˜๊ณผ ๊ณต์˜์ด ๋ฐ›์•„์˜ค๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์ด ๋„ˆ๋ฌด๋‹ฌ๋ผ์„œ ๊ฐ๊ฐ์˜ api๋ฅผ ์ƒ์„ฑ
    3. ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ธฐ์œ„ํ•ด ์Šค์ผ€์ค„๋Ÿฌ ํ™œ์šฉ
  • ์ฐœํ•˜๊ธฐ ๊ธฐ๋Šฅ ๋ถ€๋ถ„
    • ์—ฌ๋Ÿฌ๊ฐœ ์„ ํƒ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ–ˆ๋Š”๋ฐ ์„ ํƒํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ํ•œ๊ฐœ์˜ ๊ฐ’๋งŒ ์„ ํƒ๋จ.
      1. existLike๋ผ๋Š” ๋ณ€์ˆ˜์— like ํ…Œ์ด๋ธ”์—์„œ userkey๋ฅผ ์ฐพ๊ณ , ๋ฏผ์˜์„ ์ฐพ๊ฒŒ๋˜๋ฉด ๋ฏผ์˜ ๊ณ ์œ ๊ฐ’, ๊ณต์˜์ด๋ฉด ๊ณต์˜ ๊ณ ์œ ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ or ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
      2. if๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ—ค์„œ ๋ฏผ์˜ ๊ด€๋ จ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ attributes๋กœ ์ฐพ๊ณ  ์‹ถ์€ ๊ฐ’์„ ๋„ฃ์–ด์ค€ ๋’ค where ์กฐ๊ฑด์ ˆ์„ ์‚ฌ์šฉํ•œ ๋’ค raw: true๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค„ ๋•Œ ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คฌ๋‹ค.
      3. if๋ฌธ์—๋Š” ์ฐœํ•˜๊ธฐ๊ฐ€ ์—†์„ ์‹œ ๋ฏผ์˜ ๊ด€๋ จ ๋œ ๊ฒƒ์€ ๋ฏผ์˜ ์ฐœํ•˜๊ธฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ฏผ์˜์ด ์•„๋‹ˆ๋ฉด ๊ณต์˜ ์ฐœํ•˜๊ธฐ๋ฅผ ์ƒ์„ฑ์„ ํ•ด์คฌ๋‹ค.
      4. if๋ฌธ ๋’ค์—๋Š” else๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ฐœํ•˜๊ธฐ๊ฐ€ ์žˆ์„ ๋•Œ๋Š” ๋ฏผ์˜๊ณต๊ณ ๋ฉด ์ฐœํ–ˆ๋˜ ๊ฒƒ์„ ์‚ญ์ œํ•˜๊ณ , ๊ณต์˜๊ณต๊ณ ๋ฉด ๊ณต์˜๊ณต๊ณ  ์ฐœํ–ˆ๋˜ ๊ฒƒ์„ ์‚ญ์ œํ•˜๊ฒŒ ํ•ด์คฌ๋‹ค.
  • ๋ฐฐํฌ ์ค‘ .env ํŒŒ์ผ์„ ๊นƒํ—ˆ๋ธŒ์— Push๊ฐ€ ์•ˆ๋˜์–ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ
    • ํ•ด๊ฒฐ
      • EC2 ์„œ๋ฒ„๋‚ด์— .env ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๊ณ  config.jsํŒŒ์ผ์— dotenvํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.
      require('dotenv').config({path:'/home/ubuntu/.env'});
      
  • request๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉ ํ–ˆ์„ ๋•Œ, request ์•ˆ์—์„œ ๋น ์ ธ๋‚˜์˜ค์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ
    • ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์Šค์ผ€์ฅด๋Ÿฌ๋ฅผ ๋งŒ๋“ค๊ธฐ์œ„ํ•ด node-schedule ์„ ์ป๋Š”๋ฐ ํ•œ ์Šค์ผ€์ค„์žก์—์„œ ์˜คํ”ˆapi์— ์š”์ฒญ์„ ํ•˜๊ธฐ์œ„ํ•œ request๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ณ„์† ์ค‘๊ฐ„์— ๋™์ž‘์ด ๋ฉˆ์ถฐ์„œ ์ฝ˜์†”๋กœ ํ™•์ธํ•ด๋ณด๋‹ˆ ๊ณ„์† ํ•œ request ์•ˆ์—์„œ ๋ชป๋น ์ ธ๋‚˜์˜ค๊ณ  ์žˆ์–ด์„œ return๋„ ์ค˜๋ณด๊ณ  response๋„ ์ค˜๋ดค์ง€๋งŒ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค. ์ผ๋‹จ ๋™์ž‘์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ํ•ด๊ฒฐ
      • ์Šค์ผ€์ฅด๋Ÿฌ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋ถ„๋ฆฌํ•ด์ฃผ์–ด์„œ ๋™์ž‘์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ–ˆ๋‹ค.

 

๐Ÿ“Œ ๋‚จ์€ 3์ฃผ๋™์•ˆ ๋‚˜์•„๊ฐˆ ๋ฐฉํ–ฅ ํ”ผ๋“œ๋ฐฑ ์ •๋ฆฌ

๋ฐฑ์—”๋“œ ํ”ผ๋“œ๋ฐฑ

๋‘๊ฐ€์ง€ ๋ฐฉํ–ฅ ๋””๋ฐธ๋กญ

1. ์ง€๋„ api ์ถ”๊ฐ€ ๊ณ ๋ ค

2. ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ๋™์ž‘ํ• ๋•Œ์‹คํŒจํ• ๋•Œ  ์•Œ๋ฆผ์ฒ˜๋ฆฌ / ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ ๋ถ™์ด๊ธฐ.

3. ์ฃผ๋ณ€ ์ฃผํƒ์ •๋ณด ๊ฐ€๊ฒฉ ์ •๋ณด ๋น„๊ต ๊ธฐ๋Šฅ

์ž„ํŒฉํŠธ ๋ถ€์กฑ. ์ž„ํŒฉํŠธ๊ฐ€ ๋ ์ˆ˜์žˆ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

 

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

์˜ค๋Š˜์€ ํŒ€์› ๋ชจ๋‘ ๊ฐœ์ธ ์‹œ๊ฐ„๊ณผ ํœด์‹์„ ํ•˜๊ณ  ๋‚ด์ผ ์›”์š”์ผ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋‹ฌ๋ ค๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. ํ•ด๋ณด์ž๊ณ  ~.~

 

728x90
Comments