STUDY/Python

โฑํƒ€์ž„์–ดํƒ ํ…Œ์ŠคํŠธ, ์ œํ•œ์‹œ๊ฐ„ 1์‹œ๊ฐ„์˜ ๊ฒฐ๊ณผ๋Š”?!โฑ | ํšŒ์› ๊ฐ€์ž… ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  Flask๋กœ ๊ตฌํ˜„ํ•œ ๊ฒŒ์‹œํŒ API ์—ฐ๋™๊นŒ์ง€ ! | 5์›” 6์ผ

nicesugi 2022. 5. 7. 18:02

 ๐Ÿšฉ What to do: ํšŒ์› ๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง€ / API ๊ตฌํ˜„

 

์ฒซ๋ฒˆ์งธ. ํšŒ์› ๊ฐ€์ž…/๋กœ๊ทธ์ธ ํŽ˜์ด์ง€, API

  • ํšŒ์›๊ฐ€์ž…์€ ์ด๋ฉ”์ผ, ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ
  • ํŒจ์Šค์›Œ๋“œ๋Š” hashlib์œผ๋กœ ์•”ํ˜ธํ™” ํ•˜์—ฌ DB์— ์ €์žฅํ•  ๊ฒƒ
  • ํšŒ์› ๊ฐ€์ž…, ๋กœ๊ทธ์ธ ๊ตฌํ˜„์‹œ ํŒจ์Šค์›Œ๋“œ hashlib, jwt ํ† ํฐ ์‚ฌ์šฉ
  • JWT ํ† ํฐ์—๋Š” ์‚ฌ์šฉ์ž์˜ id์™€ ๋งŒ๋ฃŒ์‹œ๊ฐ„์„ payload์— ๋‹ด์„๊ฒƒ
  • ๋กœ๊ทธ์ธ ํ›„ ๊ฒŒ์‹œํŒ์œผ๋กœ ์ด๋™ํ•˜๋„๋ก ๊ตฌํ˜„ํ• ๊ฒƒ
  • ๋กœ๊ทธ์ธ ํ•˜์ง€ ์•Š๊ณ  ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง€ (์•„๋ž˜ ์˜ˆ์ œ์—์„œ๋Š” index.html) ์— ์ ‘๊ทผ์‹œ unauthorized ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋„๋ก ํ• ๊ฒƒ
  • html๋กœ ๋ณ„๋กœ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๊ณ  Flask app.py ์—์„œ 401 ์ƒํƒœ์ฝ”๋“œ๋ฅผ ๋ฆฌํ„ดํ•˜์—ฌ ์ฒ˜๋ฆฌํ• ๊ฒƒ

๋‘๋ฒˆ์งธ. ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง€, API

  • ๋กœ๊ทธ์ธ ํ›„ ๋กœ๊ทธ์ธํ•œ ์œ ์ € ๊ฒŒ์‹œ๋ฌผ์˜ ๋ฒˆํ˜ธ, ์ œ๋ชฉ, ๋‚ด์šฉ, ๊ธ€์“ด์ด, ์‹œ๊ฐ„์„ ํ‘œ์‹œ
  • ๊ธ€์“ด์ด๋Š” ์ฟ ํ‚ค์— ๋‹ด๊ฒจ์žˆ๋Š” token์œผ๋กœ ์ธ์ฆํ•ด์„œ ๋กœ๊ทธ์ธํ•œ ์œ ์ €๊ฐ€ ์“ด๊ธ€๋งŒ ๋ณด์—ฌ์ค„๊ฒƒ
  • ๊ตฌํ˜„์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด ๊ฒŒ์‹œ๋ฌผ ๋ฒˆํ˜ธ๋Š” ํŽ˜์ด์ง€๋งˆ๋‹ค 1~5๋กœ ํ‘œ์‹œํ•˜๊ณ  ์ œ๋ชฉ์€ 30๊ธ€์ž, ๋‚ด์šฉ์€ 50๊ธ€์ž๋กœ ์ œํ•œ
  • ์‹œ๊ฐ„์€ ๊ธ€์“ด ์‹œ๊ฐ„๋งŒ ํ‘œํ˜„ํ•˜๋„๋ก ๋ฐ”๊ฟ”๋ณผ๊ฒƒ
  • DB์—ฐ๋™์€ ๋กœ์ปฌ DB ๋˜๋Š” ํด๋ผ์šฐ๋“œ DB ์‚ฌ์šฉํ• ๊ฒƒ
  • ๋กœ๊ทธ์•„์›ƒ ํ›„ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋„๋ก ๊ตฌํ˜„ํ•  ๊ฒƒ

 

์„ธ๋ฒˆ์งธ. ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง• ๊ธฐ๋Šฅ, API

  • ๊ฒŒ์‹œํŒ์— ๊ธ€์„ ๋งŽ์ด ์ž‘์„ฑํ•˜๋ฉด ํ•œ๋ฒˆ์— ๊ฒŒ์‹œ๊ธ€์„ ์ „๋ถ€ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋กœ๋”ฉ์ด ์˜ค๋ž˜๊ฑธ๋ฆฌ๊ฑฐ๋‚˜ ์•„๋ž˜๋กœ ๊ณ„์† ์Œ“์—ฌ์„œ ์ฐพ๊ธฐ๊ฐ€ ๋ถˆํŽธํ•  ์ˆ˜ ์žˆ์–ด์„œ ๊ฒŒ์‹œํŒ์—์„œ ํŽ˜์ด์ง€๋„˜๊ธฐ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ๋ณด์•„์š”.
  • ํŽ˜์ด์ง€๋‹น 5๊ฐœ์˜ ๊ฒŒ์‹œ๋ฌผ์„ ๋ณด์—ฌ์ฃผ๋„๋ก ๊ตฌํ˜„ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ๋“ค์–ด ํ•ด๋‹น ์œ ์ €์˜ ๊ฒŒ์‹œ๊ธ€์ด 12๊ฐœ๋ผ๋ฉด 1ํŽ˜์ด์ง€ ์—์„œ๋Š” 1~5๋ฒˆ์งธ ๊ฒŒ์‹œ๊ธ€์ด ๋ณด์ด๊ณ  2ํŽ˜์ด์ง€์—์„œ๋Š” 6~10๋ฒˆ์งธ ๊ฒŒ์‹œ๊ธ€์„ ๋ถˆ๋Ÿฌ์˜ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • ๊ตฌํ˜„ ํŽธ์˜๋ฅผ ์œ„ํ•ด ์ตœ๋Œ€ ๊ฒŒ์‹œ๊ธ€ ๊ฐœ์ˆ˜๋Š” 100๊ฐœ๋กœ ์ œํ•œ
  • ‘>’ ํด๋ฆญ์‹œ 11~20 ํŽ˜์ด์ง€๋กœ ์ด๋™, ‘<’ ํด๋ฆญ์‹œ ๋‹ค์‹œ 1~10 ํŽ˜์ด์ง€๋กœ ์ด๋™
  • ‘>>’ ํด๋ฆญ์‹œ ๊ฒŒ์‹œ๋ฌผ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€๋กœ ์ด๋™, ‘<<’ ํด๋ฆญ์‹œ ์ฒ˜์Œ ํŽ˜์ด์ง€๋กœ ์ด๋™

 

 


 

์ €์˜ 1์‹œ๊ฐ„์€ ๊ต‰์žฅํžˆ,, ์†์ƒํ•ฉ๋‹ˆ๋‹ค.

์ฒซ๋ฒˆ์งธ๋„ ์™„์ˆ˜ ๋ชปํ•˜๊ณ , ์‹ค์ˆ˜ ํˆฌ์„ฑ์ด๋ผ..

๊ทธ๋ž˜์„œ ์˜ค๋Š˜ ํ•œ์‹œ๊ฐ„ ์žฌ๊ณ  ๋‹ค์‹œ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹น.

๋ฌผ๋ก  ๊ทธ ์ „์— ๋‹ค์‹œ ํ•œ๋ฒˆ API ๊ณต๋ถ€ ์ข€ ํ•˜๊ตฌ์š” ! 

 

ํ•œ์‹œ๊ฐ„๋™์•ˆ,, ์ €์˜ ์‹ค๋ ฅ์€
์ด์ •๋„๋ฐ–์— ์•ˆ๋˜๋”๋ผ,,,,์‹ฌ์ง€์–ด ์‹ค์ˆ˜ํˆฌ์„ฑ์ธ๋ฐ ์ง€๊ธˆ์€ ์™œ ์•ˆ๋˜๋Š”์ง€ ๋ณด์ž„,,๋˜๋ฅต ํ•œ์‹œ๊ฐ„๋™์•ˆ ๋ญ˜ ํ•œ๊ฑด์ง€,,

 

 

๋ฐ˜์‘ํ˜•