λͺ©λ‘ν”„λ‘œμ νŠΈ/[Web] μ„œν‰ μž‘μ„± μ‚¬μ΄νŠΈ (10)

Study Anything 🧐

ν”„λ‘ νŠΈμ™€ μ—°κ²°ν•˜κΈ° (3) - 이미지 λ‘œλ“œ μ‹œ 404 μ—λŸ¬ ν•΄κ²°

ν”„λ‘ νŠΈμ—”λ“œμΈ λ¦¬μ•‘νŠΈμ™€ λ°±μ—”λ“œμΈ μž₯κ³ λ₯Ό 연동할 λ•Œ λ¦¬μ•‘νŠΈμ˜ build 배포 νŒŒμΌλ“€μ„ μ΄μš©ν•΄λ³΄λ €κ³  ν”„λ‘œμ νŠΈ μ΄ˆκΈ°λΆ€ν„° μ—¬λŸ¬ λ¬Έμ„œλ“€μ„ 찾아보며 κ³ κ΅°λΆ„νˆ¬ ν–ˆμ—ˆλ‹€. κ·Έλž¬λ‹€κ°€ κ²°κ΅­ κ·Έ 방법을 μ‚¬μš©ν•˜λŠ” 것은 λ©ˆμΆ°λ‘κ³  κΈ°λŠ₯듀을 λ¨Όμ € κ΅¬ν˜„ν•˜λ‹€κ°€ μ–Όλ§ˆ 전에 ν”„λ‘œμ νŠΈλ₯Ό λͺ¨λ‘ 끝내고 μ„œλ²„μ— λ“±λ‘ν•˜λ €κ³  λ‹€μ‹œ μ‹œλ„ν•΄λ³΄λ˜ μƒν™©μ΄μ—ˆλ‹€. ( μžμ„Έν•œ 과정은 이전 κΈ€ μ°Έκ³  > https://edorrr.tistory.com/18 ) ν”„λ‘œμ νŠΈ μ™„μ„± λ‹Ήμ‹œμ— 배포 λ²„μ „μ—μ„œ λ°œμƒν•˜λ˜ 였λ₯˜λŠ” 크게 두 κ°€μ§€μ˜€λ‹€. [1] κΈ€μ“°κΈ°λ₯Ό 마친 ν›„ λ„μš°λŠ” μ„œν‰ 확인 νŽ˜μ΄μ§€μ™€ μ„œν‰ λͺ©λ‘μ„ λ³Ό 수 μžˆλŠ” μ„œν‰ 곡간 νŽ˜μ΄μ§€κ°€ 흰 창으둜 λœ¨λŠ” 였λ₯˜ [2] μ›ΉνŽ˜μ΄μ§€μ—μ„œ μ‚¬μš©ν•˜λŠ” 이미지 νŒŒμΌλ“€μ˜ 404 not found 였λ₯˜ λ¨Όμ € 첫 번째 였λ₯˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ λ‹΄λ‹Ή νŒ€μ›μ΄ ν•΄..

μ„œν‰ μž‘μ„± κΈ°λŠ₯을 마치며

μ˜€λŠ˜λ‘œμ„œ '고양이와 책을' ν”„λ‘œμ νŠΈμ˜ μ„œν‰ μž‘μ„± κ΄€λ ¨ κΈ°λŠ₯을 λͺ¨λ‘ λ§ˆμ³€λ‹€! 둜그인, νšŒμ› 정보, 검색, μ„œν‰ μž‘μ„± 의 κΈ°λŠ₯듀을 가진 ν”„λ‘œμ νŠΈμ˜€λŠ”λ° κ·Έ 쀑 λ‚˜λŠ” μ„œν‰ μž‘μ„± κΈ°λŠ₯을 λ§‘μ•˜κ³  μ„œν‰μ˜ CRUD, 즉 μž‘μ„±ν•˜κ³ (Create) 뢈러였고(Read) μˆ˜μ •ν•˜κ³ (Update) μ‚­μ œν•˜λŠ”(Delete) κΈ°λŠ₯을 λͺ¨λ‘ κ΅¬ν˜„ν–ˆλ‹€. μž₯κ³  ν”„λ ˆμž„μ›Œν¬λ₯Ό 처음 μ‚¬μš©ν•΄λ³΄λŠ”κ±°λΌ 잘 ν•  수 μžˆμ„κΉŒ ν•˜λŠ” λ§ˆμŒλ„ λ“€μ—ˆμ§€λ§Œ λͺ¨λ₯΄λŠ”λ§ŒνΌ μ—΄μ‹¬νžˆ κ³΅λΆ€ν•˜λ©° ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜κ³  λ‚˜λ‹ˆ 끝내고 λ‚˜μ„œλŠ” λΏŒλ“―ν•œ 마음이 λ‚¨λŠ”λ‹€. ν•œ 달 반의 κΈΈλ‹€λ©΄ κΈΈκ³ , 짧닀면 짧은 μ‹œκ°„λ™μ•ˆ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ (글은 μ„±κ³΅ν•œ 경우만 μž‘μ„±ν•˜λ‹€λ³΄λ‹ˆ λ‚΄μš©μ΄ λ§Žμ§€λŠ” μ•Šμ§€λ§Œ) 각쒅 μ‹œν–‰μ°©μ˜€μ™€ 였λ₯˜λ“€μ„ κ²ͺμœΌλ©΄μ„œ μž₯고와 λ¦¬μ•‘νŠΈμ— κ΄€ν•΄ ν•œ 발짝 λ‚˜μ•„κ°ˆ 수 μžˆμ—ˆλ‹€. ν”„λ‘ νŠΈμ—”λ“œ 툴인 ..

μ„œν‰ μž‘μ„± (4) - μ„œν‰μ„ DB에 μ €μž₯ν•˜κ³  뢈러였기 (POST, GET)

μ§€λ‚œ ν¬μŠ€νŠΈκΉŒμ§€ κ΅¬ν˜„ν–ˆλ˜ μ„œν‰ μž‘μ„± κΈ°λŠ₯듀은 μž₯κ³  κΈ°λ³Έ κΈ°λŠ₯을 μ΄μš©ν•΄μ„œ κ΅¬ν˜„ν–ˆλ‹€. κ·ΈλŸ¬λ‚˜ 우리 ν”„λ‘œμ νŠΈκ°€ ν”„λ‘ νŠΈμ™€ λ°±μ—”λ“œκ°€ λ‚˜λˆ μ ΈμžˆκΈ° λ•Œλ¬Έμ— ν”„λ‘ νŠΈμ™€ λ°±μ—”λ“œλ₯Ό μ—°κ²°ν•˜λŠ” 방법을 μ—¬λŸ¬ 방면으둜 λͺ¨μƒ‰ν–ˆλ‹€. κ·ΈλŸ¬λ©΄μ„œ μ΅œμ’…μ μœΌλ‘œ μž₯κ³  레슀트 ν”„λ ˆμž„μ›Œν¬ (DRF: Django REST Framework) 라이브러리λ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘ νŠΈμΈ λ¦¬μ•‘νŠΈμ™€ λ°±μ—”λ“œμΈ μž₯κ³ λ₯Ό μ—°κ²°ν•˜κ³ μž ν•˜μ˜€λ‹€. 그러던 쀑 였늘 λ“œλ””μ–΄!! ν”„λ‘ νŠΈμΈ λ¦¬μ•‘νŠΈ νŽ˜μ΄μ§€μ—μ„œ μž‘μ„±ν•œ μ„œν‰μ˜ λ‚΄μš©μ„ λ°±μ—”λ“œμΈ μž₯κ³  λͺ¨λΈμ— μ €μž₯ν•˜κ³  λΆˆλŸ¬μ˜€λŠ” 것을 μ™„μ„±ν•΄μ„œ κ·Έ 과정을 κ°„λ‹¨ν•˜κ²Œ ν¬μŠ€νŒ…ν•΄λ³΄λ €κ³  ν•œλ‹€. (1) μž₯κ³  : review/urls.py urls.py νŒŒμΌμ—μ„œλŠ” μž₯κ³  μ„œλ²„μ˜ url 듀을 views.py 의 ν•¨μˆ˜λ“€κ³Ό μ—°κ²°ν•˜λŠ” λ‚΄μš©μ„ λ‹΄κ³  μžˆλ‹€. path('', vie..

ν”„λ‘ νŠΈμ™€ μ—°κ²°ν•˜κΈ° (2) - Axios ν™œμš©

이전 ν¬μŠ€νŠΈμ—μ„œ λ¦¬μ•‘νŠΈμ™€ μž₯κ³ λ₯Ό μ—°κ²°ν•˜λŠ” 방법 쀑에 REST APIλ₯Ό μ΄μš©ν•΄ json 객체λ₯Ό μ–»κ³ , 그것을 λ¦¬μ•‘νŠΈμ—μ„œ μ‚¬μš©ν•˜λ„λ‘ ν•˜λŠ” 방법이 μžˆλ‹€κ³  μ–ΈκΈ‰ν–ˆλ‹€. ν•˜μ§€λ§Œ 이후에 계속 회의λ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ 이 방법과 μ μš©ν•  수 μžˆλŠ” 방법을 μ°Ύμ•„λƒˆλ‹€. λ°”λ‘œ Axiosλ₯Ό ν™œμš©ν•œ 방법인데 Axiosλž€ λΈŒλΌμš°μ €, Node.jsλ₯Ό μœ„ν•œ HTTP 비동기 톡신 λΌμ΄λΈŒλŸ¬λ¦¬μ΄λ‹€. Promise APIλ₯Ό μ‚¬μš©ν•˜λ©° μš”μ²­(Request)κ³Ό 응닡(Response)을 json ν˜•νƒœλ‘œ λ³€κ²½ν•΄μ€€λ‹€. 이 λ•Œ 비동기 λ°©μ‹μ΄λž€ νŽ˜μ΄μ§€μ— μš”μ²­(Request)을 보내고 응닡(Response)을 λ°›λŠ” ν–‰μœ„κ°€ 1:1 κ΄€κ³„λ‘œ μ΄λ€„μ§€λŠ” 것이 μ•„λ‹Œ, νŽ˜μ΄μ§€λ₯Ό λ¦¬λ‘œλ“œ(Reload)ν•˜μ§€ μ•Šμ•„λ„ μ„œλ²„μ— κ³„μ†ν•΄μ„œ μš”μ²­μ„ λ³΄λ‚΄λŠ” 방식이닀. Requestλ₯Ό 보내기 λ•Œλ¬Έ..

ν”„λ‘ νŠΈμ™€ μ—°κ²°ν•˜κΈ° (1) - μž₯κ³ /λ¦¬μ•‘νŠΈ 연동

우리 ν”„λ‘œμ νŠΈλŠ” λ°±μ—”λ“œλ‘œ μž₯κ³ (Django)λ₯Ό μ‚¬μš©ν•˜κ³  ν”„λ‘ νŠΈμ—”λ“œλ‘œ λ¦¬μ•‘νŠΈ(React)λ₯Ό μ‚¬μš©ν•œλ‹€. λ•Œλ¬Έμ— λ‘˜μ„ μ—°λ™ν•˜λŠ” 과정이 ν•„μš”ν•œλ°, 이번 μ£Όμ œμ—μ„œλŠ” 이 과정을 닀뀄보렀고 ν•œλ‹€. λ¨Όμ € 우리 ν”„λ‘œμ νŠΈμ˜ 상황을 μ„€λͺ…ν•΄μ•Ό ν•˜κ² λ‹€. 우리 ν”„λ‘œμ νŠΈλŠ” ν”„λ‘ νŠΈμ—”λ“œλ₯Ό λ‹΄λ‹Ήν•˜λŠ” νŒ€μ›κ³Ό λ°±μ—”λ“œλ₯Ό λ‹΄λ‹Ήν•˜λŠ” νŒ€μ›μ΄ λ‚˜λˆ μ Έμžˆλ‹€. 즉, ν•œ κ°œλ°œν™˜κ²½μ—μ„œ λ¦¬μ•‘νŠΈμ™€ μž₯κ³ λ₯Ό λ™μ‹œμ— μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€. λ•Œλ¬Έμ— λ¦¬μ•‘νŠΈμ™€ μž₯κ³ λ₯Ό 연동할 수 μžˆλŠ” 방법을 λ¨Όμ € μ‚΄νŽ΄λ³΄μž. (1) μž₯κ³  -> λ¦¬μ•‘νŠΈ : json 객체둜 데이터 보내기 이 방법은 μž₯고와 λ¦¬μ•‘νŠΈ 연동을 μ•Œμ•„λ³Ό λ•Œ κ°€μž₯ 많이 λ‚˜μ™”λ˜ λ‚΄μš©μ΄λ‹€. μž₯고의 Django REST Framework(DRF) λ₯Ό μ΄μš©ν•΄ μž₯고의 λͺ¨λΈμ„ json 객체둜 얻을 수 μžˆλ‹€. 이 과정을 μ™„λ£Œν•˜λ©΄ μ›ΉνŽ˜μ΄μ§€μ—μ„œ..

μ„œν‰ μž‘μ„± (1) - μ„œν‰ DB λ§Œλ“€κ³  λͺ©λ‘ μ‘°νšŒν•˜κΈ°

ν”„λ‘œμ νŠΈ λ‚΄μš©λ“€ 쀑에 μ„œν‰ μž‘μ„± 파트λ₯Ό μ‹œμž‘ν–ˆλ‹€. μ„œν‰ μž‘μ„± μ•ˆμ—λ„ μ—¬λŸ¬κ°€μ§€ κΈ°λŠ₯듀이 μžˆλŠ”λ°, μ΄λ²ˆμ—λŠ” μ„œν‰μ˜ 전체 λͺ©λ‘μ„ μ‘°νšŒν•˜λŠ” κΈ°λŠ₯을 μˆ˜ν–‰ν–ˆλ‹€. μ„œν‰μ„ μ €μž₯ν•  DBλ₯Ό λ§Œλ“€κ³  더미 데이터λ₯Ό 넣은 λ‹€μŒ, κ·Έ λ‚΄μš©λ“€μ„ μƒˆλ‘œμš΄ νŽ˜μ΄μ§€μ—μ„œ μ‘°νšŒν•˜λŠ” κ³Όμ •μœΌλ‘œ μ§„ν–‰ν–ˆλ‹€. DBλ₯Ό λ§Œλ“€κΈ° μœ„ν•΄μ„œ μž₯고의 κΈ°λ³Έ κΈ°λŠ₯인 λͺ¨λΈμ„ μ΄μš©ν–ˆκ³  λͺ¨λΈ 쑰회 κΈ°λŠ₯을 μ΄μš©ν•΄ κ°„λ‹¨ν•˜κ²Œ μ„œν‰ λͺ©λ‘μ„ μ‘°νšŒν•˜λ„λ‘ ν–ˆλ‹€. λ‹€λ§Œ 아직 ν”„λ‘ νŠΈμ™€ μ—°κ²°ν•˜λŠ” 방법을 μ°Ύμ§€λŠ” λͺ»ν•΄μ„œ ui μ•ˆμ—μ„œ λͺ©λ‘μ΄ λ³΄μ΄λŠ” 것이 μ•„λ‹ˆλΌ UIλ₯Ό μ μš©ν•˜μ§€ μ•Šμ€ HTML κΈ°λ³Έ UI에 λ‚΄μš©λ§Œ 보이고, ν•΄λ‹Ή λ‚΄μš©μ„ ν΄λ¦­ν•˜λ©΄ μƒˆλ‘œμš΄ νŽ˜μ΄μ§€(μΆ”ν›„ μ„œν‰ μƒμ„ΈνŽ˜μ΄μ§€)둜 μ΄λ™ν•˜λŠ” κ²ƒκΉŒμ§€ μ™„μ„±ν–ˆλ‹€. 아직 λΆ€μ‘±ν•œ 점이 μžˆμ–΄μ„œ μ½”λ“œλ₯Ό ν”„λ‘œμ νŠΈ μž‘μ—…λ‹¨μ— λ°”λ‘œ μ˜¬λ¦¬μ§€ μ•Šκ³  ν…ŒμŠ€νŠΈ 폴더와 git ..

ν”„λ‘œμ νŠΈ μ°Έμ—¬ μ‹œμž‘

μ§€λ‚œ 주에 처음 μ–˜κΈ°κ°€ λ‚˜μ˜¨ 이후 μ˜€λŠ˜λΆ€ν„° '고양이와 책을' ν”„λ‘œμ νŠΈμ— μ°Έμ—¬ν•˜κ²Œ λ˜μ—ˆλ‹€. λŒ€λž΅μ μΈ ν”„λ‘œμ νŠΈ κ°œμš”λŠ” μ±…μ˜ μ„œν‰ μž‘μ„±μ„ μ œκ³΅ν•˜λŠ” μ›Ήμ‚¬μ΄νŠΈ μ œμž‘μœΌλ‘œ, 이 ν”„λ‘œμ νŠΈμ—μ„œ λ°±μ—”λ“œ 개발자둜 μ°Έμ—¬ν•˜κ²Œ λ˜μ—ˆλ‹€. μ–Έμ–΄λŠ” μž₯κ³ (Django)λ₯Ό μ‚¬μš©ν•  μ˜ˆμ •. μž₯κ³ λ‘œλŠ” 처음 κ°œλ°œμ„ ν•΄λ³΄λŠ” 것이라 μ•žμœΌλ‘œ λ§Žμ€ 곡뢀가 ν•„μš”ν•  것 κ°™λ‹€. 쀑간뢀터 μ°Έμ—¬ν•˜κ²Œ 된 것이라 일단 며칠간은 곡뢀와 ν”„λ‘œμ νŠΈ νŒŒμ•…μ— νž˜μ“°κ³  κ·Έ λ‹€μŒμœΌλ‘œλŠ” μ„œν‰ μž‘μ„± κΈ°λŠ₯λΆ€ν„° κ°œλ°œμ„ μ‹œμž‘ν•  μ˜ˆμ •μ΄λ‹€. μ˜€λŠ˜μ€ νšŒμ˜μ— 처음 μ°Έμ„ν•˜κ³  κ°„λ‹¨ν•œ 인사와 μ•žμœΌλ‘œμ˜ 일정을 κ³΅μœ ν–ˆλ‹€. ν”„λ‘œμ νŠΈ μΉ΄ν…Œκ³ λ¦¬μ—λŠ” ν”„λ‘œμ νŠΈ μΌμ§€μ²˜λŸΌ 남기고 λ¦¬λ·°ν• λ§Œ ν•œ κΈ°λŠ₯듀은 λ”°λ‘œ 글을 μž‘μ„±ν•œ 후에 λ§ν¬ν•˜λŠ” μ‹μœΌλ‘œ 이을 μ˜ˆμ •μ΄λ‹€.