๐Ÿฆ Python Online Store ๋งŒ๋“ค๊ธฐ 15ํŽธ - ์‚ฌ์šฉ์ž๊ตฌ๋ถ„(๋กœ๊ทธ์ธ/๋น„๋กœ๊ทธ์ธ)

yohan-record[web]ยท2022๋…„ 8์›” 10์ผ
0

python onlinestore ๊ฐœ๋ฐœ์ผ์ง€

๋ชฉ๋ก ๋ณด๊ธฐ
15/25
post-thumbnail

๐ŸŽˆ Front End Developer ์˜ Back End ๋„์ „๊ธฐ ! ๐ŸŽˆ

์ด ๊ธ€์€ PROJECT LION : ํ˜ธ์ฝ”์น˜ ๊ฐ•์‚ฌ๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ์ฐธ๊ณ ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

์ž‘์—… ์ค‘, ๊ฐœ๋ฐœ๊ณผ์ • ์ •๋ฆฌ ๋ฐ issue๊ฐ€ ๋˜์—ˆ๋˜ ๋ถ€๋ถ„๋“ค์„ ๊ณต์œ  ๋ฐ ๊ธฐ๋กํ•˜๊ณ ์ž ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1. ์‚ฌ์šฉ์ž ๊ตฌ๋ถ„ ๋ฐ ๊ถŒํ•œ(๋กœ๊ทธ์ธ/๋น„๋กœ๊ทธ์ธ)

โœ ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž์™€ ๋น„๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž ๋กœ ๊ตฌ๋ถ„์ง€์„ ์ˆ˜ ์žˆ๋‹ค.

๋กœ๊ทธ์ธ์„ ํ•œ ์‚ฌ์šฉ์ž๋Š” ์ƒํ’ˆ์„ ๊ตฌ๋งคํ•˜๊ฑฐ๋‚˜ ๋กœ๊ทธ์•„์›ƒ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋กœ๊ทธ์ธ์„ ํ•˜์ง€์•Š์€ ์‚ฌ์šฉ์ž๋Š” ์ƒํ’ˆ์„ ๋ณด๋Š” ๊ฒƒ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด ๋˜ํ•œ ๊ตฌ๋ถ„ ํ›„ ์š”์ฒญ์„ ์ œํ•œํ•ด์•ผํ•œ๋‹ค.
์ž‘์—… ์ „ ๊ตด๋Ÿฌ๊ฐ€๋Š” ๋กœ์ง์„ ์ƒ๊ฐํ•œ ํ›„ ์ž‘์—…ํ•ด ๋ณด๊ฒ ๋‹ค.

์šฐ์„ ,

๋กœ๊ทธ์ธ/๋น„๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž > session ์กด์žฌ์œ ๋ฌด์— ๋”ฐ๋ผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

ํ˜„์žฌ ์„ธ์…˜์œผ๋กœ ๋กœ๊ทธ์ธ ๋˜์—ˆ์„ ์‹œ ๋กœ๊ทธ์•„์›ƒ์ด ๋‚˜์˜ค๊ณ , ๋กœ๊ทธ์•„์›ƒ ์‹œ ๋กœ๊ทธ์ธ์ด ๋ณด์ด๋„๋ก ํ•ด๋‘์—ˆ๋‹ค.

์ด์™€ ๋ณ„๋„๋กœ, session์ด ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋กœ๊ทธ์•„์›ƒ ๋ฒ„ํŠผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•˜์—ฌ ๋ฏธ๋กœ๊ทธ์ธ ์ƒํƒœ์—์„œ ๋กœ๊ทธ์•„์›ƒ์„ ํด๋ฆญ ์‹œ ๋กœ๊ทธ์ธ ํ›„ ์ด์šฉ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ๊ฒƒ์ด๋‹ค.

๐Ÿงจ ๋กœ๊ทธ์ธ ์œ ์ € ๊ตฌ๋ถ„

  1. controllers > auth.py file ์ƒ์„ฑ
    = user controllers(controllers > user.py) ์—์„œ ์‚ฌ์šฉํ•˜์—ฌ๋„ ๋˜์ง€๋งŒ, ๋กœ๊ทธ์•„์›ƒ ๋ฟ๋งŒ์ด ์•„๋‹Œ ๋“ฑ๋ก ๋ฐ ๊ตฌ๋งค์—์„œ๋„ ์‚ฌ์šฉ๋  ์˜ˆ์ •์ด๋ฏ€๋กœ ๊ณตํ†ต๋œ ํ•จ์ˆ˜๋กœ ์‚ฌ์šฉํ•ด ์ค€๋‹ค.

  1. ๋กœ๊ทธ์ธ์„ ์ฒดํฌํ•  ํ•จ์ˆ˜ ์ƒ์„ฑ

๐Ÿ“ ๋น„๋กœ๊ทธ์ธ์˜ ๊ฒฝ์šฐ = ๋กœ๊ทธ์ธ์„ ํ–ˆ๋Š”์ง€ ์•ˆํ–ˆ๋Š”์ง€ session์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ํ™•์ธ.
์ฆ‰, session์— user_id ๊ฐ’์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ๊ตฌ๋ถ„ํ•˜๊ณ , ๊ฐ’์ด ์—†๋‹ค๋ฉด false๋ฅผ return(๋กœ๊ทธ์ธ ํ•œ ์œ ์ €๊ฐ€ ์•„๋‹ˆ๋‹ค.)


๐Ÿ“๋กœ๊ทธ์ธ์˜ ๊ฒฝ์šฐ = session์— ์žˆ๋Š”user_id์˜ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  user๋ฅผ ์ฐพ๋Š”๋‹ค.


  1. find_one ํ•จ์ˆ˜ ์ƒ์„ฑ
    = user_id๋ฅผ ๋ฐ›์•„์ฃผ๊ณ , _id๊ฐ’์ด user_id์™€ ๊ฐ™์€ user๋ฅผ ์ฐพ๊ฒŒ ๋œ๋‹ค.
    ๊ทธ ํ›„ user๊ฐ€ ์—†๋‹ค๋ฉด false๋ฅผ returnํ•˜๊ณ , ์กด์žฌํ•œ๋‹ค๋ฉด user๊ฐ’์„ return ์‹œ์ผœ์ค€๋‹ค.

  1. auth.py > user ๊ฐ’ ์ „๋‹ฌ
    = find_one ํ•จ์ˆ˜์— session id ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋ฉด user๊ฐ€ ๋‚˜์˜ค๊ฑฐ๋‚˜ false๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

check_login ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ตœ์ข… ๊ฐ’์€ user ๋˜๋Š” false ์ผ ๊ฒƒ์ด๋‹ค.


  1. controllers > user.py -> check_login ํ•จ์ˆ˜ ์‹คํ–‰
    = check_login ํ•จ์ˆ˜ ์‹คํ–‰์„ ์œ„ํ•ด import ๋„ ํฌํ•จ

  1. check_login์„ ํ• ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉํ•  ํ•จ์ˆ˜ ์ƒ์„ฑ
    = login page๋กœ ์ด๋™์‹œํ‚ค๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜ ์ƒ์„ฑ
    ์—ฌ๊ธฐ์„œ url_for ๋‚ด๋ถ€์˜ signin_form ์˜ ๊ฒฝ์šฐ user controllers ์— ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด ๋‘” ์ฝ”๋“œ์ด๋‹ค.
    flash ๋„ ์ถ”๊ฐ€ํ•˜์—ฌ alert ํ›„ ์ด๋™๋˜๋„๋ก ์ฒ˜๋ฆฌํ•ด ๋‘์—ˆ๋‹ค.


  1. redirect_to_signin_form ํ•จ์ˆ˜ ํ™œ์šฉ ๋ฐ import
    = user๊ฐ€ ์—†๋‹ค๋ฉด redirect ํ•จ์ˆ˜ ์‹คํ–‰ ๋ฐ ๋กœ๊ทธ์ธ page ์ด๋™

  1. ๋ฏธ๋กœ๊ทธ์ธ ์œ ์ €๊ฐ€ ๋กœ๊ทธ์•„์›ƒ ํด๋ฆญ ์‹œ ํ™•์ธ

    = ๋กœ๊ทธ์ธ์ด ๋˜์ง€ ์•Š์€ ์œ ์ €๊ธฐ์— else์— ๊ฑธ๋ ค flash ์‹คํ–‰ ๋ฐ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋กœ๊ทธ์ธ๊ณผ ๋น„๋กœ๊ทธ์ธ์„ ๊ณตํ†ต์ ์ธ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด ๋‘์—ˆ๋‹ค.

๋กœ๊ทธ์ธ ํ›„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ํŒ๋งค์ž(๊ด€๋ฆฌ์ž)์™€ ๊ตฌ๋งค์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด ๋ณด๊ฒ ๋‹ค.

profile
๐Ÿฑโ€๐Ÿ Front End Developer

0๊ฐœ์˜ ๋Œ“๊ธ€