ํ๋ก์ ํธ ์ดํดํ๊ธฐ๊ตฌํ์ด ์ด๋ ต๊ฑฐ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ธฐ๋ฅValidation์ ๋ํ์ฌ๋ฌธ์์ด๊ธฐํ๋ณด์์ ์ํํ UX > ID๊ฐ ํ๋ ธ๋ค/ ๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ๋ค์์ฌ๊ฒฐ์ ์ ์์น์์
๊ด๋ฆฌ์์ธ์ฒ๋ฆฌ
[Velog ์ฐธ๊ณ ]
ํ๋ก์ ํธ ์ดํดํ๊ธฐ
- ๋ด๊ฐ ํ๋ก์ ํธ๋ฅผ ์ ๋๋ก ์ดํดํด์ผ ๋ด๊ฐ ์ฌ๋ฏธ๊ฐ ์๊ณ ,
- ๊ธฐํ์๋ฅผ ๋์์ค ์๊ฐ ์์
๊ตฌํ์ด ์ด๋ ต๊ฑฐ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ธฐ๋ฅ
- ๊ธฐํ์์ ๋ ผ์ํ์ฌ ๊ธฐ๋ฅ์ ๊ฐ์ฑ๋น๋ฅผ ๋์ฌ์ผ ํจ(์ค์๋๋ ๋๊ณ ์ผ์ ์ ์ ๊ฒ ๊ฑธ๋ฆฌ๋ ์์ผ๋ก)
- ๋ฑ ๋ดค์ ๋, ์ค๋๊ฑธ๋ฆฌ๋ ์์ ์ธ๋ฐ ์ค์์ฑ์ด ๋จ์ด์ง๋ฉด ๊ธฐํ์์๊ฒ ์ด์ผ๊ธฐํ๊ธฐ
Validation์ ๋ํ์ฌ
๋ฌธ์์ด
- ์ต์/์ต๋ ๊ธธ์ด
- ํฌ๋งท(e.g ์ด๋ฉ์ผ ํฌ๋งท..)
- Enum(๊ฐ์ ์ ๋ ฅํ๋ ๊ฒ ์๋๋ผ, ์ ํํ๊ฒ ๋ง๋ค๊ธฐ)
- ์ฌ์ฉ๊ฐ๋ฅํ ๋ฌธ์ ๋ฒ์ ์ ํ
- ์ด๋ฉ์ผ username ๋ค์ +๋ฌธ์ ๋ถ์ฌ์ aliasing ํ ์ ์์
๊ธฐํ
- ๋ฉํฐ๋ฏธ๋์ด ์ฉ๋, ๊ฐ์ ์ ํ ๊ฑธ์ด๋๋๊ฒ ์ข์
- ์๊ฐ์ด ์ง๋๋ฉด ์๋ฏธ์๋ ๋ฐ์ดํฐ(๋์ด. ์๊ฐ์ง๋๋ฉด ๋ฐ๋์ด์ผํ๋๋ฐ? ๊ทธ๋์ ์๋ ์์ผ ๋ฐ๋๊ฒ ๋์)
๋ณด์์ ์ํํ UX > ID๊ฐ ํ๋ ธ๋ค/ ๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ๋ค
- ID ๋๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ฌ๋ฐ๋ฅด์ง ์๋ค ๋ผ๊ณ ์คํจ์์ธ detailํ๊ฒ ์๋ ค์ฃผ์ง ์๋๊ฒ
- ๋น๋ฐ๋ฒํธ ๊ฐ๋ ๊ฒ์ฌ ํ์ง ์๋ ๊ฒฝ์ฐ. zxcvbn์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๋ ค์ฃผ๊ณ level์ ์ ํ๊ฒ ๋ง๋ค์(๊ธฐํ์์๊ฒ)
- ๋ก๊ทธ์ธ์ ๋ฌดํ์ ์๋ํ ์ ์๋ ๊ฒฝ์ฐ โ brute forcing์ด ๊ฐ๋ฅํ๋, ์๋ํ์ ์ ํ ๊ฑธ๊ธฐ
์์ฌ๊ฒฐ์ ์ ์์น
- ํ์ ์ต์ํ๊ฑฐ๋ ์๋ จ๋๊ฐ ์๋์ง
- ํ์ ์๊ตฌ์ฌํญ์ ์ถฉ์กฑํ๋์ง
- ๋น์ฉ ๋ถ๋ด์ ๊ฐ๋นํ ์ ์๋์ง
- ๋ณดํธ์ ์ธ ๊ธฐ์ ์ธ์ง
- ๋์ค์ ์ฌ๋ ๋ฝ์๋๋ ๊ตฌ๊ธ๋งํ ๋ ์ํฅ์ด ์์ ์ ์์
- ํ๋ก๋ํธ์ ์ด์ธ๋ฆฌ๋ ๊ธฐ์ ์ธ์ง
- ์ค๋ฒ์์ง๋์ด๋ง์ด ์๋์ง
์์ ๊ด๋ฆฌ
์ด์ ํธ๋์ปค
- Trello
- Monday
- JIRA
- ๊ด๋ฆฌ์ ๊ณ์ธต์ด ํ์คํ ์กฐ์ง์ด๊ฑฐ๋ ๊ฐ๋ฐ์ ์ธ์ ์ฌ๋๋ค์๊ฒ ์์ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค๋ฉด ์ฌ์ฉ
- GitHub Projects + Issues
- ๊ฐ๋ฐ์ ์์ฃผ์ ์กฐ์ง์์ ์ฃผ๋ก ์
YouTrack๋ ๊ด์ฐฎ๋ค๊ณ ํจ
ํ : ๋์์ ์ฐพ๋ ๊ฒฝ์ฐ
์๋ ๊ฒ vs
ํค์๋๋ก ์ฐ๊ด๊ฒ์์ด ์ฐพ์ผ๋ฉด ์ข์( JIRA vs
)์์ธ์ฒ๋ฆฌ
1. ์์ธ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ๋ถํ๊ณ ์ ์ํ ๊ฒ์ธ๊ฐ?
2. ์ด๋์, ์ด๋ค ๋ ๋ฒจ์์ ํธ๋ค๋งํ ๊ฒ์ธ๊ฐ?
๐ ํด์ผ ํ ์ผ
- ๋ก์ง ๋ด๋ถ์์ try/except๋ฅผ ๋๋ฌด ๋จ๋ฐํ๋ฉด ๋ณต์กํด์ง โ
- ํต์ฌ ๋ก์ง์์๋ ์์ธ๋ฅผ ๊ทธ๋๋ก raiseํ๊ณ , API handler๋ middleware ๋ ๋ฒจ์์ ์ฒ๋ฆฌํ๋ ๊ฒ ์ข์ต๋๋ค.
- FastAPI์์๋
@app.exception_handler(...)
๋๋ middleware์์ ์ ์ฒด ํธ๋ค๋ง ๊ฐ๋ฅ