๐ฆ ๋ด์ผ๋ฐฐ์์บ ํ/TIL(Today I Learned)
TIL_220524_ํ ํ๋ก์ ํธ
- -
ํ ํ๋ก์ ํธ์ ๊ฒฐ๊ณผ๋ฌผ์ ์ ์ถํ๋ ๋
๋์ ๋ฐ์๊ตญ์ ๋์๋ณด๋ ์๊ฐ
๊ฐ๋ฐ์๋ค์ ๋ฐ์๊ตญ
GITHUB
๊น ๊ฐ์๋ก ๋น๋์ ๋ ๋์ ๊น ๋ฅ๋ ฅ์ ์ต๋ํ์ผ๋ก ์ฌ์ฉํ๋ ํ๋ก์ ํธ๊ฐ ๋์๋ค.
๋ฅ์ํ์ง ๋ชปํ๋๋ผ๋ ๋ธ๋์น๋ฅผ ๋๋์ด ์์ ํ๋ ์ต๊ด
์ธ๋ฐํ ์์ ์๋ ์ปค๋ฐ ๊ธฐ๋ก์ ๋จ๊ธฐ๋ ์ต๊ด
์ด์ ๋ฑ๋ก๊ณผ ์ด์ ํ๊ทธ๋ฅผ ํตํด ์์ ๋ด์ญ์ ๊ธฐ๋กํ๋ ์ต๊ด ๋ฑ
์์ผ๋ก ํ์ ํ ํ์ฅ์์ ํฌ์ ๋๊ธฐ ์ํ ๋ฐ๊ฑฐ๋ฆ์ ๋ค์ ธ๊ฐ๋ ์ค!!
๐ ํ์ ๊ธฐ๋ฅ
- ์ฌ๋ฌผ์ธ์ ๊ธฐ๋ฅ
- ์ ๋ก๋ ์ด๋ฏธ์ง ํด๋น ์นดํ ๊ณ ๋ฆฌ ์ถ๋ ฅ ์๋น์ค ((ex. ๋จ์ฑ, ์ฌ์ฑ ์ฑ๋ณ ๊ตฌ๋ถ ๋ฑ)
- ์ด๋ฏธ์ง๋ง๋ค ์ธ์ํ ์ฌ๋ฌผ์ ์ ๋ณด๋ฅผ ๋ก๊ทธ์ ์ ์ฅํด์ฃผ์ธ์ (DB ์ ์ฅ)
๐ ์ถ๊ฐ ๊ธฐ๋ฅ
์ปค์คํ ๋ฐ์ดํฐ์ ์ ๋ง๋ค์ด์ ํ์ต๋ธ๋ผ์ฐ์ ์ ์น์บ ๊ธฐ๋ฅ ์ฌ์ฉ์ผ๋ก ์ดฌ์ ํน์ ์ค์๊ฐ์ผ๋ก ์ฌ๋ฌผ์ธ์๊ฒฐ๊ณผ ๊ณต์ ๊ธฐ๋ฅ- ํ์๊ธฐ๋ฅ
- ์์ ๋ก๊ทธ์ธ(๊ตฌ๊ธ, ์นด์นด์ค) ๊ธฐ๋ฅ
๐ ๋์ ๊ณผ์
- GIT์ Pull Request๋ฅผ ์์ฒญ์ ํ์ ์ค ํ ๋ช ์ด์์ด ์ฝ๋๋ฅผ ๊ฒํ ํ ์ฝ๋ฉํธ๋ฅผ ๋ฌ์์ฃผ์ธ์. ๋ฆฌ๋ทฐ๊ฐ ๋๋๋ฉด Merge๋ฅผ ์งํํด์ฃผ์ธ์.
- ํ๋ก ํธ์๋์ ๋ฐฑ์๋๋ฅผ ๋ณ๋์ ๋ ํฌ์งํ ๋ฆฌ๋ก ๋ถ๋ฆฌํด์ ์ฌ์ฉํด์ฃผ์ธ์. (flask์์๋ render_template ์ ์ฌ์ฉํ์ง ์๊ณ json ๋ฐ์ดํฐ๋ง ๋ณด๋ด์ฃผ๋ ๋ฐฉ์)
- ๋ฐฑ์๋ ๊ฐ๋ฐ์ Postman์ ์ ๊ทน ํ์ฉํด์ฃผ์ธ์
- jQuery๋์ javascript๋ฅผ ์ด์ฉํด์ ํ๋ก ํธ์๋๋ฅผ ์์ฑํด์ฃผ์ธ์.
- Flask ๋ธ๋ฃจํ๋ฆฐํธ๋ฅผ ์ฌ์ฉํด์ API ๋ชจ๋ํ
๋ง์ง๋ง ๋ ์ ์๋๊ณ ๊ณ ๊ตฐ๋ถํฌ ํด์ค ์ฐ๋ฆฌ ํ์๋ค๊ณผ ํจ๊ป ์ด๋งํผ์ด๋ ์ด๋ค๋๋ค.
์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๋ถ ์ถฉ์กฑํ ์ ์์์ง๋ง, ์๋ก์ ์ฝ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฆฌ๋ทฐํ๋ฉฐ ๋ฐฐ์ฐ๊ณ , ๊ฒฝํํ๋ ๊ทํ ์๊ฐ์ด ๋์๋ค.
flask - blueprint
์ฒ์ ์ ์ฉํด๋ณด๋ ๋ธ๋ฃจํ๋ฆฐํธ๋ ์ฒ์ ๊ตฌ์ฑ์ ์ธํ ํ๋ ๋ฒ๋ถํฐ ์๋นํ ๊ธด์ฅ๊ฐ์ ์ฃผ์๋ค.
ํ์ง๋ง ํ ๋ฒ ๊ตฌ์ฑํ๊ณ ํ๋ฆ์ ์ดํดํ๋ ํ์คํ ํ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ํ์๊ฐ์ ์ถฉ๋์ ํ์คํ๊ฒ ์ค์ผ ์ ์์๋ค.
๋๋ฌด ์ข์ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๋ค์ ํ๋ก์ ํธ์์๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ๋ธ๋ฃจํ๋ฆฐํธ๋ก ์ฌ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค.
code : ๊ธฐ๋ฅ ํํธ (๋ก๊ทธ์ธ, ํ์๊ฐ์ , ๋ณํฉ ์ด๊ด)
ํ์๊ฐ์ ์ค๋ณต ๊ฒ์ฌ์ฒ๋ฆฌ ๋ฐ ๊ณต๋ฐฑ ์ฒ๋ฆฌ
backend
# ์
๋ ฅ ์ ๋ณด์ ๋ํ ์๋ฌ
try:
if not user_id_receive or not email_receive:
sign_error = 770
return jsonify({'message': 'fail', 'sign_error': sign_error})
elif '@' not in email_receive or '.' not in email_receive:
sign_error = 771
return jsonify({'message': 'fail', 'sign_error': sign_error})
elif not password_receive or not password_check_receive:
sign_error = 772
return jsonify({'message': 'fail', 'sign_error': sign_error})
elif password_receive != password_check_receive:
sign_error = 773
return jsonify({'message': 'fail', 'sign_error': sign_error})
elif not user_age_receive:
sign_error = 774
return jsonify({'message': 'fail', 'sign_error': sign_error})
# ์ค๋ณต ์ฒ๋ฆฌ
elif db.member.find_one({'user_id': user_id_receive}):
sign_error = 775
return jsonify({'message': 'fail', 'sign_error': sign_error})
elif db.member.find_one({'email': email_receive}):
sign_error = 776
return jsonify({'message': 'fail', 'sign_error': sign_error})
except:
status = 200
return jsonify({'message': 'success', 'status': status})
frontend
if (response_json.sign_error == 770) {
alert("์์ด๋ ํน์ ์ด๋ฉ์ผ์ ์
๋ ฅํ์ธ์.")
return
} else if (response_json.sign_error == 771) {
alert("์ด๋ฉ์ผ ํ์์ด ์๋๋๋ค.")
return
} else if (response_json.sign_error == 772) {
alert("๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํ์ธ์.")
return
} else if (response_json.sign_error == 773) {
alert("๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํด์ฃผ์ธ์.")
return
} else if (response_json.sign_error == 774) {
alert("๋์ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.")
return
} else if (response_json.sign_error == 775) {
alert("์ค๋ณต๋ ์์ด๋์
๋๋ค.")
return
} else if (response_json.sign_error == 776) {
alert("์ค๋ณต๋ ์ด๋ฉ์ผ์
๋๋ค.")
return
} else {
alert("๊ฐ์
์๋ฃ!")
window.location.replace(`${frontend_base_url}/templates/login.html`);
}
์ข ๋ฅ๋ณ ์๋ฌ ๊ฒ์ถ์ ๋ํ ์ ์์ ๋ํ ๋ด์ฉ์ด๋ค.
์ฒ์์ ์ด๋ ๊ฒ ํ๋ ๊ฒ์ด ๋ง๋์ง ์ ๋ชฐ๋๋ค.(์ฌ์ค ์ ๋ต์ ์๋ค.)
ํ์ง๋ง ์ฝ๋ฉํ๋ฉด์ ํํฐ๋๊ป ๋ฃ๊ธฐ๋ก ์ด๋ฐ ์์ผ๋ก ๋๋์ด ์ค๋ฅ๋ฅผ ๊ฒ์ถํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ๋ฉํ๋ ๊ฒ์ด ํ์ ์์๋ ์ค์ํ ๋ถ๋ถ์ด๋ผ๊ณ ํ์ จ๋ค.
ํ์ ์ ํ ๊ฑธ์ ๋์๊ฐ๋ค.
fetch() ํจ์
async function getName() {
const response = await fetch(`${backend_base_url}/getuserinfo`, {
headers: {
'Authorization': localStorage.getItem("token")
}
})
// status 200 ํ์ธ ์กฐ๊ฑด๋ฌธ
if (response.status == 200) {
response_json = await response.json()
return response_json.email
} else {
return null
}
}
function ํจ์๋ช () ์ผ๋ก ์คํ ์ backend ์ ํต์ ํ๊ธฐ ์ํ await fetch(backend ๊ฒฝ๋ก) ์ ์ ํ๊ณ
backend ๋ก ๋ณด๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ , response๋ฅผ _json ํ ํ์ฌ return ์ผ๋ก ๋ณด๋
๋๊ฐ ์ด๋ฐ ๋ก์ง
๋๋ฌด ์์ํ ๋๋จธ์ง ์ดํดํ๋๋ฐ ๊ฝค ์ ๋จน์์ง๋ง, ์๊ฐ๋ณด๋ค ์ฌ๋ฐ๋ค.
'๐ฆ ๋ด์ผ๋ฐฐ์์บ ํ > TIL(Today I Learned)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL_220526_Django ๊ธฐ์ด (0) | 2023.01.01 |
---|---|
TIL_ํ ํ๋ก์ ํธ_KPT (0) | 2023.01.01 |
TIL_220520_ํ ํ๋ก์ ํธ flask_blueprint (0) | 2023.01.01 |
TIL_220519_git ์๋ฌ (0) | 2023.01.01 |
TIL_220518_ํ ํ๋ก์ ํธ_๋จธ์ ๋ฌ๋ (0) | 2023.01.01 |
Contents
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค