3๋ฐ 4์ผ ๋ฏธ๋ํ๋ก์ ํธ, ๊ธฐํ๋ถํฐ ์์ฑ๊น์ง
1. ๊ธฐํํ๋ค
์ ๊ธ์ ๋ค์ด์ค๊ธฐ ์ , ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ๋ง์ด ๋์๋์ด์ผ๊ฒ ๋ค๋ ์์ผํ ๋ง์์ ๊ฐ์ก๋ ๋์ 0์ฃผ์ฐจ ํ๋ก์ ํธ ์ฃผ์ ๋ฅผ ์ ๋ ์๋ฒฝ์์ผ ๊ธํ ๊ณ ๋ฏผํ์๋ค. ๊ณต๊ณต๋ฐ์ดํฐํฌํธ์ ๋ค์ฌ๋ค๋ณด๋ฉฐ ์๊ฐ๋ณด๋ค ์ฌ๋ฌ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋ณด๊ณ , ์ด๋ฅผ ๋ฐ์์ ๋์ ์ ๊ณต์ฐ๋ฌธํ์ ๋ณด๋ฅผ ๋ชจ์๋ณด๊ณ ์ฆ๊ฒจ์ฐพ๊ธฐํ๊ณ , ๊ธฐํ์ด ๋๋ฉด ์๋ฆผ์ ๋ฐ์ ์ ์๋ ์๋น์ค๋ฅผ ๊ตฌํํด๋ณด์๋ ์์ด๋์ด๋ฅผ ๋ค๊ณ ๊ฐ๋๋ฐ, ์ด์ฐ์ ์ฐ ์กฐ์๋ถ๋ค๊ป ์ ์ดํ์ด ๋์ด(?) ์ด๊ฒ์ผ๋ก ์ฃผ์ ๋ฅผ ํ์ ํ๊ฒ ๋์๋ค. ์ฒ์์๋ ๋๋ฌด ์ค์ฝํ๊ฐ ์ข์ ์ฃผ์ ์ธ๊ฐ (๊ทธ๋ด ๋ฆฌ ์์๋ค) ๊ฑฑ์ ํ๋๋ฐ, ๋์๋ณด๋ ์งง์ ๊ธฐ๊ฐ ๊ฐ๋ฐํ๊ธฐ์ ์ ์ ํ๋ ๊ฒ ๊ฐ๋ค.
2. ๊ฐ๋ฐํ๋ค
์ฃผ์๊ธฐ๋ฅ | ์ธ๋ถ๊ตฌํ |
---|---|
ํ์๊ฐ์ | |
๋ก๊ทธ์ธ/๋ก๊ทธ์์ | JWT ์ธ์ฆ ๋ฐฉ์ ๊ตฌํ |
๊ณต์ฐ ์กฐํ | ์ธ๊ธฐ์, ์ด๋ฆ์, ์ข ๋ฃ์ผ ๋น ๋ฅธ์์ผ๋ก ์ ๋ ฌ ๊ธฐ๋ฅ ๊ตฌํ ์ฌ๋ฌ ํ์ด์ง๋ก ๋ถํ ํ๋ ํ์ด์ง ๊ตฌํ ๋ด๊ฐ ์ข์ํ ๊ณต์ฐ ๋ชจ์๋ณด๋ ๊ธฐ๋ฅ ๊ตฌํ |
๊ณต์ฐ ์ข์์/์ทจ์ |
์ด๋ ๊ฒ ๋ณด๋ ์ ์ด ๋ณด์ธ๋ค.. ํ์ง๋ง ์๋๋ค..
- 1์ผ์ฐจ(์): ์ฃผ์ ์ ์ , ์ฃผ์๊ธฐ๋ฅ ๊ตฌํ
- 2์ผ์ฐจ(ํ): ์ฃผ์๊ธฐ๋ฅ ๊ตฌํ, ํ ์คํธ ๋ฐฐํฌ
- 3์ผ์ฐจ(์): ์ธ๋ถ์ฌํญ ๊ตฌํ, https, ๋ฐ์ดํฐ ๋ฐ์์ค๋ ๋ก์ง ์์ , ๋ฐฐํฌ
- 4์ผ์ฐจ(๋ชฉ):
ํ๋ค๋ค
๋๋ต ์์ ๊ฐ์ ์ค์ผ์ค์ด์๋ค. ์ฃผ์๊ธฐ๋ฅ์ ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ์ข์์๋ก ๋๋์ด ์งํํ๊ณ , ๋นจ๋ฆฌ ๋งก์ ๋ฐ ์์ ์ ๋๋ด๊ณ ๋๋ฉด ๋ถ์กฑํ ๋ถ๋ถ ๊ฐ๋ฐ์ ๋ถ์ด์ ๋ค์ ์ผ์ ๋๋์ด ์งํํ๋ค. ๋๋ ์ข์์/์ทจ์ ๋ถ๋ถ ๊ตฌํ์ ๋งก์๋ค. ๊ณํ์ ์ธ์ธ ๋ ์ฒ์์๋ ๋ก๊ทธ์ธ์ด ํ์ํ ๊ธฐ๋ฅ์ด๋ผ ๋ก๊ทธ์ธ ๊ตฌํ์ด ๋๋๊ธธ ๊ธฐ๋ค๋ ค์ผ ํ๋? ์๊ฐ์ด 5์ด ์ ๋ ๋ค์์ผ๋ ๊ทธ๋์๋ ๊ธฐ๊ฐ ๋ด ์์ฑ์ด ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์๋ค.
๊ทธ๋์ ๋ก๊ทธ์ธ์ด ์๋ฃ๋ ์ํ๋ฅผ ๊ณ ๋ คํ๊ธฐ ์ํด JWT ์ธ์ฆ ๋ก๊ทธ์ธ ๋ฐฉ์์ ๊ณต๋ถํ๊ณ , ๋ก๊ทธ์ธ์ด ์๋ฃ๋ ๊ฒฝ์ฐ jwt token์ด ๋ธ๋ผ์ฐ์ ์ฟ ํค์ ๋จ์ ์๊ฒ ๋๋ค๋ ์ ์ ์๊ฒ ๋์๋ค. ๊ทธ๋์ cookie๋ฅผ ์์๋ก ์ถ๊ฐํ๊ณ ์ญ์ ํ๋ ์ฝ๋๋ฅผ ๋ง๋ค์ด ๋ก๊ทธ์ธ ์ํฉ/๋ก๊ทธ์์ ์ํฉ์์์ ์ข์์ ํด๋ฆญ ๋ก์ง์ ๊ตฌํํ ์ ์์๋ค.
IF cookie.get(token) not exist
alert('๋ก๊ทธ์ธ์ด ํ์ํ ๊ธฐ๋ฅ์
๋๋ค!')
ELSE:
redirect to /fav/<params...>
๊ฒ์ผ๋ฅธ ๋๋ก์๋, ์ ํ ๊ธฐ๊ฐ์ด 3๋ฐ 4์ผ์ด ์๋๋ผ ์ผ์ฃผ์ผ๋ง ์ฃผ์ด์ก์ด๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๊ฐ์ ๊ฐ๋ฐํ๊ณ ์ฝ๋๋ฅผ ํฉ์น๋ฉด ๋๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์ง ์์์ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ๋จ 3.5์ผ์ด๋ผ๋ ๋ฌด์์ด ๋ง๊ฐ๊ธฐํ์ ๋นจ๋ฆฌ ๊ธฐ๋ฅ๋ถํฐ ๋์๊ฐ๊ฒ ํด๋๊ณ ํ ์คํธํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ ํ๊ฒ ๋ง๋ค์๊ณ , ๋คํํ 2์ผ์ฐจ์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๊ฒ ๊ฐ๋ค.
3. ๋ถ๋ช์น๋ค
์ํํ ์ ๋ง๋ฌด๋ฆฌํ๊ณ ์๋ค๊ณ ์๊ฐํ 3์ผ์ฐจ ์คํ, ์ฝ์น๋๊ป์ ๋์ ธ์ฃผ์ ํผ๋๋ฐฑ์ผ๋ก ์ธํด ๊ฒฐ๊ตญ ๋ฐค์์ฝ๋ฉ์ด ์์๋์๋ค.
๊ณผ์ | ๋ด์ฉ |
---|---|
๋ฐ๋จ | ๋ก๊ทธ์ธ ํ๋ฉด์์์ ๋์(๋ก๊ทธ์ธ์ด ์คํจํ์ ๊ฒฝ์ฐ ๋ฉ์์ง๋ฅผ ๋์ฐ๋ ๊ฒ๋ ํฌํจํ์ฌ) ์ ๋ชจ๋ Jinja2 ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๋ฐฉ์์ผ๋ก ๊ตฌํํ๊ณ ์์๋๋ฐ, ๋ก๊ทธ์ธ ์คํจ ์ ๋ฐ๋ก /login์ผ๋ก ๋ฆฌ๋๋ ์ ํ๋ ๋ฐ๋์ input์ด ๋ชจ๋ ๋น์์ง๋ ๊ฒ์ด ๋ณ๋ก ๋ง์์ ๋ค์ง ์์๋ค. |
์ ๊ฐ | ๊ฒฐ๊ตญ login ์์ฒญ์ ajax๋ฅผ ํ์ฉํด json์ผ๋ก ์ฃผ๊ณ ๋ฐ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ , ์ฝ๋๋ฅผ ์์ ํ๋ค. ์ ๋ ฅ๊ฐ์ ๋ํ ๊ฒ์ฆ๋ ํด๋ผ์ด์ธํธ์์ ์ํํ๋ ์ชฝ์ผ๋ก ๋ณ๊ฒฝํ๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉ์ ์ ๋ ฅ๊ฐ(์์ด๋, ํจ์ค์๋)์ ์ด๋ป๊ฒ ์ํธํํ ์ง์ ๋ํ ๊ณ ๋ฏผ์ด ์๊ฒผ๋ค. |
์๊ธฐ | ์ฝ์น๋์ด ๋ค์ด์ค์
์ ํผ๋๋ฐฑ์ ๋์ง์
จ๋ค. 1. ์ ๋ ฅ๊ฐ์ ํด๋ผ์ด์ธํธ์์๋ง ๊ฒ์ฆํ๋ฉด ์๋ฒ๋ก ๋ค์ด์ค๋ ๊ฐ์ ๊ฒ์ฆ์ด ์๋๋ค. 2. ํด๋ผ์ด์ธํธ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํด์ ์๋ฒ๋ก ์ ๋ฌํ๋ค๊ณ ํ๋ค, ์์ ํ๊ฐ? 3. ๊ณต๊ณต๋ฐ์ดํฐ๊ฐ ์ค๊ฐ์ ์์ ๋๊ฑฐ๋, ๋ฐ์์จ ๋ฐ์ดํฐ์ ๊ฐ์ ๊ณต์ฐ์ด ์ค์๋ก ๋ ๋ฒ ๋ค์ด๊ฐ ์์ผ๋ฉด ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ? |
์ ์ | 1. ์
๋ ฅ๊ฐ ๊ฒ์ฆ ๋ก์ง์ ์๋ฒ ์ชฝ์ ๋ค์ ์์ฑํ๋ค. 2. https ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. 3. ๋ฐ์ดํฐ์ ์ผ๋ จ๋ฒํธ์ ๋ด์ฉ์ ๊ธฐ์ค์ผ๋ก ์ค๋ณต์ฌ๋ถ๋ฅผ ํ๋จํ ์ ์๋๋ก ๋ก์ง์ ๊ตฌํํ๋ค. |
๊ฒฐ๋ง | ๋ฐค์์ ์ฝ๋ฉ ํ ์ด์ฐ์ ์ฐ ์์ฑ ๐ฅฒ |
4. ๊ฒฐ๊ณผ๋ฅผ ๋งบ๋ค
์ ๋์๊ฐ๋ ํ์ด์ง๋ฅผ ๊ตฌํํ๋ ๋ฐ๋ ์ฑ๊ณตํ๊ณ , ๋ฐํ๋ ๋ฌด์ฌํ ๋ง์ณค๋ค. ์ด๋ค๋ธ ๊ฒฐ๊ณผ์ ๋์ ์ญ๋์ด ์กฐ๊ธ์ด๋๋ง ๋ค์ด๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๋ง์์ด๋ค. ์ข์ ํ์๋ถ๋ค์ ๋ง๋ ๋์ ๊ฒฐ๊ณผ๋ ์ข์์ง๋ง, ๊ทธ๋งํผ ์์ผ๋ก ์ด๋๊น์ง ๋ ๋ฐ์ ํด์ผ ํ๋์ง ๋ค์งํ๊ฒ ๋ ์๊ฐ์ด์๋ค. ๊ฒฝํ์ ์ผ๋ก, ๊ธฐ์ ์ ์ผ๋ก ์์ ์๋ ํ์๋ถ์ ๋ณด๋ฉฐ ์ค์ค๋ก ๋ฐ์ ํ๊ณ ์ ํ๋ ๋ชฉํ์น๋ฅผ ์ก๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
๋ฌด์์ ๋ฐฐ์ ๋
๋ด๊ฐ ์๊ฒ ๋ ์ฌ์ค์ ํ ์ค ๋ช ์ ๋ก ์ ๋ฆฌํ๋ค
- JWT์ธ์ฆ ๋ฐฉ์์ ์ฌ์ฉํด ์ฟ ํค&์ธ์ ๋ฐฉ์์ ๋์ ์ ๋ณด์ํ ์ ์๋ค.
- ์ฌ์ฉ์์ ๋ฏผ๊ฐํ ์ ๋ณด๋ ๋ฐ๋์ DB์ ์ํธํํ์ฌ ์ ์ฅํด์ผ ํ๋ค.
- ์ฌ์ฉ์์ input์ ๋ํ validation์ ์๋ฒ์์ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค.
- ์ธ๋ถ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ DB์ ์ ์ฅํ๋ ๊ฒฝ์ฐ, ๋ฐ์์ค๋ ๋ฐ์ดํฐ๊ฐ ์์ /์ญ์ ๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ๋ค.
- ํด๋ผ์ด์ธํธ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํ์ฌ ์๋ฒ๋ก ๋ณด๋ด๋ ๊ฒ์ ์ํธํ๋ ํจํท์ ํ์ทจํ๋ ๊ณต๊ฒฉ์ ๊ฒฝ์ฐ์ ๋๋นํ์ง ๋ชปํ๋ค.
- ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ์์ ํ ํต์ ์ ์ํด์๋ SSL ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ HTTPS ๋ฐฉ์์ ์ฌ์ฉํด์ผ ํ๋ค.
๋ฌด์์ ๋๊ผ๋
์ธ๋ถ ๋ฐ์ดํฐ์ ์ค๋ฅ๊ฐ๋ฅ์ฑ์ ์ ํ ์๊ฐํ์ง ๋ชปํ๋ ๊ฒ์ ์๋์์ง๋ง, ์์งํ '๊ฑฐ๊ธฐ๊น์ง ์ฐ๋ฆฌ๊ฐ ๊ณ ๋ คํด์ผ ํ๋?' ๋ผ๋ ๋ง์์ด ๋ค์๋ ๊ฒ๋ ์ฌ์ค์ด๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์ค์ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ ๊ณผ์ ์ด๋ผ๋ฉด ๊ณผ์ฐ ๊ทธ๋ ๊ฒ ํํํ๊ฒ ์๊ฐํ ์ ์์๊น? ์ธ๋ถ ๋ฐ์ดํฐ์ ๋ํ ์์กด์ฑ์ ์ต์ํ์ผ๋ก ๋ฎ์ถฐ์, ๊ทธ์ชฝ์์ ์ค๋ฅ๊ฐ ๋๋๋ผ๋ ์ฐ๋ฆฌ ์๋น์ค๋ ์์ ํ ์ ์๊ฒ ํด์ผ ํ๋ค๋ ๊ฐ๋ฐ์๋ก์์ ๋ง์ธ๋์ ์ด ๋ถ์กฑํ๋ ๊ฒ ๊ฐ๋ค. ์์ผํด์ง์ง ๋ง์. ์ฐจ๋ผ๋ฆฌ ๊ณผํ ์ ๋๋ก ๊ผผ๊ผผํด์ง์.
์ ๋ ฅ๊ฐ ๊ฒ์ฆ ์ฝ๋ ์์ฑ๊ณผ ๋ฐ์ดํฐ ๊ฒ์ฆ ๋ก์ง ๊ตฌ์ฑ ๊ณผ์ ์๋ ์ฐธ์ฌํ์ง๋ง, https๋ ํจ๊ปํ ๋ง๋ ํ์๋ถ์ด ๋๋งก์ ํด๊ฒฐํด์ฃผ์ จ๋ค. ๋ฐฐํฌ๋ ์๋ฒ์ https ์ธ์ฆ์ ์ ํํ ์ด๋ป๊ฒ ๋ฐ๋ ๊ฒ์ธ์ง(?) ์ดํดํ์ง ๋ชปํ ์ฑ ์ธํฐ๋ท์ ๋ ๋๋ ๋งค๋ด์ผ๋๋ก ํด ๋ณด๋ ค๊ณ ๋ ธ๋ ฅํ์ผ๋ ์คํจํ๋ค. ์ค๋ช ํด์ฃผ์ ๋ฐฉ๋ฒ๋๋ก ์ค์ค๋ก ๋ค์ ํ ๋ฒ ํด ๋ณด๊ณ ๊ณผ์ ์ ์ ๋ฆฌํด๋ณด๊ณ ์ถ๋ค.
์ฝ์ง ์์ 0์ฃผ์ฐจ์ง๋ง ์ด์ ๋๋ฉด ์ด์๋จ์ ๊ฒ ๊ฐ๋ค. (๋ง๊ฒ ์ง..)
๋จ์ ์ฃผ๋ ํ์ดํ ํ์. ์๊ณ ๋ฆฌ์ฆ ๐
'SWJungle ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWJungle] ๋๋ง์ ๋ฌด๊ธฐ ๋ง๋ค๊ธฐ ๊ฐ์ธ ํ๊ณ (1) | 2023.12.17 |
---|---|
[SWJUGLE WEEK00] Before Jungle (0) | 2023.08.12 |