inspeep

When the "Submit Comment" Button Stops Working: Handling Fetch Errors and Preventing Duplicate Submissions

Views 8
Likes 0
Comments 0
🌐
Notice: This content is displayed in its original language to preserve layout and media formatting.
Please use your browser's built-in translation feature (e.g., Google Chrome Translate) for the best reading experience.

1. μš”μ²­μ΄ 끝났닀고 μž‘μ—…μ΄ μ„±κ³΅ν•œ 것은 μ•„λ‹™λ‹ˆλ‹€

λŒ“κΈ€ 전솑 λ²„νŠΌμ„ λˆŒλ €λŠ”λ° 아무 λ°˜μ‘μ΄ μ—†κ±°λ‚˜ λ²„νŠΌμ΄ 계속 λΉ„ν™œμ„±ν™”λ  수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ²„κ°€ 였λ₯˜λ₯Ό λ³΄λƒˆλŠ”λ° μ½”λ“œκ°€ 성곡 μ‘λ‹΅μ²˜λŸΌ μ²˜λ¦¬ν–ˆμ„ μˆ˜λ„ 있고 JSON이 μ•„λ‹Œ HTML을 νŒŒμ‹±ν•˜λ €λ‹€ μ‹€νŒ¨ν–ˆμ„ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μš”μ²­ 도쀑 연결이 끊긴 상황도 λ”°λ‘œ 확인해야 ν•©λ‹ˆλ‹€.

이 글은 μ‹€μ œ λŒ“κΈ€ μ„œλ²„λ₯Ό ν˜ΈμΆœν•˜μ§€ μ•ŠλŠ” μž¬ν˜„ 예제λ₯Ό μ€‘μ‹¬μœΌλ‘œ 였λ₯˜ 처리의 ꡬ쑰λ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. μž„μ˜μ˜ 응닡 객체둜 정상 JSON, HTTP 였λ₯˜, 잘λͺ»λœ λ³Έλ¬Έ, μ—°κ²° μ‹€νŒ¨λ₯Ό λΉ„κ΅ν•©λ‹ˆλ‹€. 예제λ₯Ό μ‚¬μ΄νŠΈμ— 뢙이기 전에 κΈ°μ‘΄ API의 응닡 ν˜•μ‹κ³Ό 인증 방식을 확인해야 ν•©λ‹ˆλ‹€.

2. fetchλŠ” HTTP 였λ₯˜λ₯Ό λ³„λ„λ‘œ 확인해야 ν•©λ‹ˆλ‹€

fetch둜 응닡을 λ°›μ•˜λ‹€κ³  200λ²ˆλŒ€λΌλŠ” λœ»μ€ μ•„λ‹™λ‹ˆλ‹€. 404λ‚˜ 500 응닡도 HTTP 응닡 객체둜 받을 수 μžˆμœΌλ―€λ‘œ response.ok λ˜λŠ” statusλ₯Ό ν™•μΈν•©λ‹ˆλ‹€. λ„€νŠΈμ›Œν¬ 문제둜 응닡 자체λ₯Ό λ°›μ§€ λͺ»ν•œ 상황과 ꡬ뢄해야 μ‚¬μš©μžμ—κ²Œ λ‹€μŒ 행동을 μ•ˆλ‚΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλ‹€μŒ λ³Έλ¬Έ ν˜•μ‹μ„ ν™•μΈν•©λ‹ˆλ‹€. APIκ°€ JSON을 κΈ°λŒ€ν•˜μ§€λ§Œ ν”„λ‘μ‹œ 였λ₯˜ νŽ˜μ΄μ§€κ°€ HTML둜 였면 response.jsonμ—μ„œ μ˜ˆμ™Έκ°€ 생길 수 μžˆμŠ΅λ‹ˆλ‹€. μ„œλ²„ μ—λŸ¬ μ›λ¬Έμ΄λ‚˜ 전체 HTML을 μ‚¬μš©μžμ—κ²Œ κ·ΈλŒ€λ‘œ λ…ΈμΆœν•˜μ§€ 말고, ν™”λ©΄μ—λŠ” ν•„μš”ν•œ μ•ˆλ‚΄λ₯Ό μ œκ³΅ν•˜κ³  진단 κΈ°λ‘μ—λŠ” μƒνƒœμ™€ μš”μ²­ μ‹λ³„μžλ₯Ό λ‚¨κΉλ‹ˆλ‹€.

3. μΌκ΄€λœ μ„œλ²„ 응닡 계약이 λ¨Όμ €μž…λ‹ˆλ‹€

정상 μ‘λ‹΅μ—λŠ” success 같은 νŒμ • 값을 λͺ…μ‹œν•˜κ³  였λ₯˜ 응닡은 μ μ ˆν•œ μƒνƒœ μ½”λ“œμ™€ 예츑 κ°€λŠ₯ν•œ ν˜•μ‹μ„ μ‚¬μš©ν•˜λ„λ‘ μ„€κ³„ν•©λ‹ˆλ‹€. 이미 μ‚¬μš© 쀑인 API라면 ν΄λΌμ΄μ–ΈνŠΈκ°€ μ–΄λ–€ ν˜•νƒœλ₯Ό κΈ°λŒ€ν•˜λŠ”μ§€ ν™•μΈν•˜μ„Έμš”. μ„œλ²„μ™€ λΈŒλΌμš°μ €λ₯Ό λ‹€λ₯Έ μ‹œμ μ— λ°°ν¬ν•˜λ©΄ 과도기적인 ν˜•μ‹ 차이도 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ•„λž˜ μ˜ˆμ œλŠ” JSON Content-Typeκ³Ό successκ°€ true인 경우λ₯Ό μ„±κ³΅μœΌλ‘œ λ΄…λ‹ˆλ‹€. 이 κ·œμΉ™μ€ 이 κΈ€μ˜ ν•™μŠ΅μš© κ³„μ•½μž…λ‹ˆλ‹€. λͺ¨λ“  API에 μ μš©λ˜λŠ” ν‘œμ€€ 응닡 κ΅¬μ‘°λŠ” μ•„λ‹™λ‹ˆλ‹€. 본인의 μ„œλ²„κ°€ λ‹€λ₯Έ 이름과 μžλ£Œν˜•μ„ μ‚¬μš©ν•œλ‹€λ©΄ κ·Έ 계약에 맞좰 검사λ₯Ό μ‘°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

4. λ²„νŠΌ λΉ„ν™œμ„±ν™”λŠ” finallyμ—μ„œ λ³΅κ΅¬ν•©λ‹ˆλ‹€

전솑 쀑 λ²„νŠΌμ„ λΉ„ν™œμ„±ν™”ν•˜κ³  μ²˜λ¦¬κ°€ λλ‚˜λ©΄ finallyμ—μ„œ λ³΅κ΅¬ν•˜λŠ” νŒ¨ν„΄μ„ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 였λ₯˜κ°€ λ‚˜λ„ 이 κ²½λ‘œκ°€ μ‹€ν–‰λ˜λ―€λ‘œ λ²„νŠΌμ΄ 영ꡬ적으둜 λ©ˆμΆ”λŠ” 상황을 μ€„μž…λ‹ˆλ‹€. λ™μ‹œμ— μ§„ν–‰ 쀑인 μš”μ²­μ„ ν‘œμ‹œν•˜λŠ” ν”Œλž˜κ·Έλ₯Ό 두면 연속 클릭으둜 같은 μž‘μ—…μ΄ 두 번 μ‹œμž‘λ˜λŠ” 것을 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€.

λΈŒλΌμš°μ € λ²„νŠΌ μ œμ–΄λ§ŒμœΌλ‘œ μ„œλ²„μ˜ 쀑볡 μ €μž₯을 μ™„μ „νžˆ λ§‰λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. νƒ­ 두 개, μž¬μ „μ†‘, λ„€νŠΈμ›Œν¬ 쀑간 μ‹€νŒ¨ 같은 상황은 μ„œλ²„μ—μ„œλ„ κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. λŒ“κΈ€Β·κ²°μ œΒ·ν¬μΈνŠΈμ²˜λŸΌ μƒνƒœκ°€ λ°”λ€ŒλŠ” μž‘μ—…μ—μ„œλŠ” 식별 ν‚€λ‚˜ 쀑볡 검사 λ“± μ„œλ²„ 정책을 λ³„λ„λ‘œ μ„€κ³„ν•©λ‹ˆλ‹€. μ•„λž˜ μ˜ˆμ œλŠ” μ„œλ²„ 멱등성을 κ΅¬ν˜„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

5. μž‘μ€ 예제둜 μ‹€νŒ¨ μœ ν˜•μ„ λΆ„λ¦¬ν•©λ‹ˆλ‹€

readApiResult ν•¨μˆ˜λŠ” 응닡을 κ²€ν† ν•˜λŠ” μˆœμˆ˜ν•œ λΆ€λΆ„μž…λ‹ˆλ‹€. 이 뢀뢄을 λ¨Όμ € κ²€μ‚¬ν•˜λ©΄ ν™”λ©΄ μ΄λ²€νŠΈμ™€ μ„œλ²„ μƒνƒœκ°€ μ„žμ΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ΄μ–΄μ„œ λ²„νŠΌ μƒνƒœλ₯Ό κ΄€λ¦¬ν•˜λŠ” ν•¨μˆ˜μ—μ„œ κΈ°μ‘΄ 폼 전솑을 μ—°κ²°ν•©λ‹ˆλ‹€. μš”μ²­ μ£Όμ†Œμ™€ μž…λ ₯ 값은 ν”„λ‘œκ·Έλž¨ λ°–μ—μ„œ λͺ…μ‹œμ μœΌλ‘œ μ „λ‹¬ν•˜κ²Œ ν•˜λ©΄ 잘λͺ»λœ κΈ°λ³Έ μ£Όμ†Œλ‘œ μ „μ†‘ν•˜λŠ” μ‹€μˆ˜λ₯Ό 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€.

둜그인 쿠킀와 CSRF 토큰을 μ“°λŠ” μ„œλΉ„μŠ€μ—μ„œλŠ” ν•΄λ‹Ή 계약도 μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ˜ˆμ œμ— 인증 값을 직접 적지 λ§ˆμ„Έμš”. cross-origin μš”μ²­μ„ μ“°λŠ” μ„œλΉ„μŠ€λΌλ©΄ μΏ ν‚€, CORS, origin 관계λ₯Ό λ³„λ„λ‘œ μ κ²€ν•©λ‹ˆλ‹€. 였λ₯˜λ₯Ό μ—†μ• κΈ° μœ„ν•΄ no-corsλ₯Ό λΆ™μ΄λŠ” 방법은 응닡을 읽을 수 μ—†κ²Œ λ§Œλ“€μ–΄ 진단 λͺ©μ κ³Ό λ§žμ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

6. μ‹€νŒ¨ ν›„ μ‚¬μš©μžμ—κ²Œ 보여 쀄 λ‚΄μš©

전솑 μ‹€νŒ¨λ₯Ό 쑰용히 μ‚Όν‚€λ©΄ μ‚¬μš©μžλŠ” μ—¬λŸ¬ 번 λˆ„λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μž…λ ₯ λ‚΄μš©μ„ λ³΄μ‘΄ν•˜κ³  성곡이 확인됐을 λ•Œλ§Œ μ΄ˆκΈ°ν™”ν•˜λŠ” 편이 μ’‹μŠ΅λ‹ˆλ‹€. μ‹€νŒ¨ μ•ˆλ‚΄μ—λŠ” μž¬μ‹œλ„ κ°€λŠ₯ μ—¬λΆ€λ₯Ό 적고, μš”μ²­ μ œν•œμΈ 경우 μ„œλΉ„μŠ€μ˜ λŒ€κΈ° 정책을 λ°˜μ˜ν•©λ‹ˆλ‹€. λͺ¨λ“  μ‹€νŒ¨μ—μ„œ μ¦‰μ‹œ μžλ™ μž¬μ‹œλ„ν•˜λŠ” μ„€κ³„λŠ” ν”Όν•˜μ„Έμš”.

응닡을 λ°›μ§€ λͺ»ν–ˆλ”라도 μ„œλ²„μ—λŠ” μ €μž₯됐을 수 μžˆμŠ΅λ‹ˆλ‹€. μ„±κ³΅Β·μ‹€νŒ¨λ₯Ό λͺ¨λ₯΄λŠ” μƒνƒœλ₯Ό λ‹¨μˆœ μ‹€νŒ¨μ™€ ꡬ뢄할 ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ€‘μš”ν•œ μž‘μ—…μ—μ„œλŠ” 쑰회둜 κ²°κ³Όλ₯Ό ν™•μΈν•˜κ±°λ‚˜ μ„œλ²„ μ‹λ³„μžλ₯Ό μ‚¬μš©ν•˜λŠ” 방법을 κ²€ν† ν•©λ‹ˆλ‹€. 개발자 λ„κ΅¬μ˜ μš”μ²­κ³Ό μ„œλ²„ 기둝을 λŒ€μ‘°ν•˜κ³  UI만 μ •μƒμœΌλ‘œ λ³΄μ΄λŠ”μ§€ ν™•μΈν•˜μ§€ λ§ˆμ„Έμš”.

7. μ˜ˆμƒν•˜μ§€ λͺ»ν•œ 응닡을 μœ„ν•œ ν…ŒμŠ€νŠΈ λͺ©λ‘

정상 응닡 ν•˜λ‚˜λ§Œ ν™•μΈν•˜μ§€ 말고 μ‹€νŒ¨ μœ ν˜•μ„ λ‚˜λˆ„μ–΄ μ‹œν—˜ν•©λ‹ˆλ‹€. HTTP 였λ₯˜, 정상 μ½”λ“œμ§€λ§Œ 잘λͺ»λœ λ³Έλ¬Έ, successκ°€ false인 데이터와 μ—°κ²° κ±°μ ˆμ„ λ”°λ‘œ μ€€λΉ„ν•˜μ„Έμš”. 각 κ²½μš°μ— λ²„νŠΌμ΄ λ³΅κ΅¬λ˜λŠ”μ§€, μž‘μ„± λ‚΄μš©μ΄ μœ μ§€λ˜λŠ”μ§€, μ‚¬μš©μž μ•ˆλ‚΄κ°€ ν•œ 번만 ν‘œμ‹œλ˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. ν™”λ©΄ 이벀트 μžμ²΄λŠ” μ‹€μ œ λΈŒλΌμš°μ €μ—μ„œλ„ λ³„λ„λ‘œ 검사해야 ν•©λ‹ˆλ‹€.

전솑 쀑 두 번 ν΄λ¦­ν•˜λŠ” κ²½μš°μ™€ λ‹€λ₯Έ λ²„νŠΌμ„ λˆ„λ₯΄λŠ” 경우λ₯Ό κ΅¬λΆ„ν•©λ‹ˆλ‹€. 예제의 sending ν”Œλž˜κ·ΈλŠ” ν•΄λ‹Ή κΈ°λŠ₯의 μš”μ²­μ„ ν•˜λ‚˜λ‘œ μ œν•œν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. μ—¬λŸ¬ 독립 폼을 λ™μ‹œμ— μ‚¬μš©ν•  화면이라면 ν•˜λ‚˜μ˜ μ „μ—­ ν”Œλž˜κ·Έκ°€ λ‹€λ₯Έ κΈ°λŠ₯κΉŒμ§€ 막을 수 μžˆμœΌλ―€λ‘œ 폼 λ‹¨μœ„ μƒνƒœλ₯Ό μ„€κ³„ν•˜μ„Έμš”. 예제의 λ²”μœ„λ₯Ό μ΄ν•΄ν•œ λ’€ ν™•μž₯ν•˜λŠ” 편이 μ’‹μŠ΅λ‹ˆλ‹€.

μ„œλ²„κ°€ 였래 μ‘λ‹΅ν•˜μ§€ μ•ŠλŠ” μƒν™©μ—λŠ” κΈ°λ‹€λ¦¬λŠ” μ•ˆλ‚΄μ™€ μ·¨μ†Œ 정책이 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μžκ°€ 화면을 λ– λ‚  λ•Œ μš”μ²­μ„ μ·¨μ†Œν• μ§€, κ²°κ³Ό 확인을 μ΄μ–΄κ°ˆμ§€ κ²°μ •ν•˜μ„Έμš”. μš”μ²­μ„ μ·¨μ†Œν–ˆλ‹€κ³  μ„œλ²„ μž‘μ—…κΉŒμ§€ μ·¨μ†Œλλ‹€κ³  단정할 μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€. 특히 μƒνƒœλ₯Ό λ°”κΎΈλŠ” μž‘μ—…μ—μ„œλŠ” 후속 μ‘°νšŒμ™€ μž‘μ—… μ‹λ³„μž 섀계λ₯Ό ν•¨κ»˜ κ²€ν† ν•©λ‹ˆλ‹€.

μ—λŸ¬ 기둝은 μ‚¬μš©μž ν™”λ©΄κ³Ό 개발자 둜그λ₯Ό κ΅¬λΆ„ν•©λ‹ˆλ‹€. ν™”λ©΄μ—λŠ” μ•ŒκΈ° μ‰¬μš΄ μ•ˆλ‚΄λ₯Ό μ œκ³΅ν•˜κ³  λ‘œκ·Έμ—λŠ” μƒνƒœ μ½”λ“œμ™€ μ‹€νŒ¨ 단계 λ“± μž¬ν˜„μ— ν•„μš”ν•œ 정보λ₯Ό λ‚¨κΉλ‹ˆλ‹€. μ„œλ²„κ°€ 보낸 μŠ€νƒ μΆ”μ μ΄λ‚˜ 인증 값을 κ·ΈλŒ€λ‘œ ν‘œμ‹œν•˜μ§€ λ§ˆμ„Έμš”. 곡톡 였λ₯˜ ν˜•μ‹μ„ μ‚¬μš©ν•˜λŠ” API라면 ν΄λΌμ΄μ–ΈνŠΈλ„ κ·Έ ꡬ쑰λ₯Ό λ”°λ₯΄λ„둝 맞μΆ₯λ‹ˆλ‹€.

배포 ν›„μ—λŠ” μƒˆ JavaScriptκ°€ μ‹€μ œ λ‘œλ“œλλŠ”μ§€λ„ ν™•μΈν•©λ‹ˆλ‹€. λΈŒλΌμš°μ € μΊμ‹œμ— 이전 파일이 λ‚¨μœΌλ©΄ μ½”λ“œλ₯Ό κ³ μ³€λŠ”λ° 같은 증상이 보일 수 μžˆμŠ΅λ‹ˆλ‹€. 파일 버전과 μš”μ²­ 경둜λ₯Ό λŒ€μ‘°ν•˜κ³  μ •μƒΒ·μ‹€νŒ¨ ν…ŒμŠ€νŠΈλ₯Ό ν•œ λ²ˆμ”© λ°˜λ³΅ν•˜μ„Έμš”. ν…ŒμŠ€νŠΈκ°€ ν†΅κ³Όν•œ λ²”μœ„λ§Œ κΈ°λ‘ν•˜λ©΄ HTML ν™”λ©΄, λ„€νŠΈμ›Œν¬ μ •μ±…κ³Ό μ„œλ²„ μ €μž₯ λ™μž‘μ˜ 미확인 μ˜μ—­μ„ λΆ„λͺ…νžˆ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

8. 따라 ν•˜λŠ” 예제

λͺ…λ Ήκ³Ό μ½”λ“œλŠ” ν•™μŠ΅μš©μž…λ‹ˆλ‹€. μ„€λͺ…에 ν‘œμ‹œλœ μ‹€ν–‰ ν™˜κ²½μ„ κ΅¬λΆ„ν•˜κ³  μƒˆ μ‹œν—˜ 폴더 λ˜λŠ” λͺ¨μ˜ μž…λ ₯으둜 μ‹œμž‘ν•˜μ„Έμš”.

예제 μ½”λ“œ

async function readApiResult(response) {
  if (!response.ok) throw new Error(`HTTP ${response.status}`);
  const type = response.headers.get('content-type') || '';
  if (!type.toLowerCase().includes('application/json')) {
    throw new Error('JSON 응닡이 μ•„λ‹™λ‹ˆλ‹€');
  }
  const data = await response.json();
  if (!data || data.success !== true) {
    throw new Error('μž‘μ—… 성곡을 ν™•μΈν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€');
  }
  return data;
}

let sending = false;
async function submitWithState(button, requestFactory) {
  if (sending) return;
  sending = true;
  button.disabled = true;
  try {
    return await readApiResult(await requestFactory());
  } finally {
    sending = false;
    button.disabled = false;
  }
}
// 호좜 예: κΈ°μ‘΄ submit 처리 μ•ˆμ—μ„œ catch둜 μ‚¬μš©μž μ•ˆλ‚΄λ₯Ό ν‘œμ‹œν•˜μ„Έμš”.
// await submitWithState(button, () => fetch(url, existingRequestOptions));

9. 검증 결과와 해석

확인 ν•­λͺ©κ²°κ³Ό λ˜λŠ” 검증 λ²”μœ„
200 + μ˜¬λ°”λ₯Έ JSON성곡 데이터 λ°˜ν™˜
500 응닡HTTP 였λ₯˜λ‘œ ꡬ뢄
200 + HTMLJSON ν˜•μ‹ 였λ₯˜λ‘œ ꡬ뢄
200 + 잘λͺ»λœ JSONνŒŒμ‹± μ‹€νŒ¨
μ—°κ²° μ‹€νŒ¨μ˜ˆμ™Έ 전달 Β· λ²„νŠΌ 볡ꡬ
λ™μ‹œ 두 ν˜ΈμΆœμ „μ†‘ ν•¨μˆ˜ ν•œ 번 호좜

Node.js의 Response 객체와 λͺ¨μ˜ μš”μ²­μœΌλ‘œ λΆ„κΈ°Β·λ²„νŠΌ 볡ꡬ·쀑볡 ν˜ΈμΆœμ„ κ²€μ¦ν–ˆμŠ΅λ‹ˆλ‹€. μ‹€μ œ λΈŒλΌμš°μ € DOM, CORS와 운영 λŒ“κΈ€ APIλŠ” κ²€μ¦ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

10. 자주 λ¬»λŠ” 질문

catch만 있으면 500을 μž‘λ‚˜μš”?

fetch 자체의 거절과 HTTP 였λ₯˜λŠ” λ‹€λ¦…λ‹ˆλ‹€. 응닡 μƒνƒœλ₯Ό ν™•μΈν•˜κ³  ν•„μš”ν•˜λ©΄ 직접 였λ₯˜λ₯Ό λ°œμƒμ‹œμΌœμ•Ό ν•©λ‹ˆλ‹€.

λ²„νŠΌμ„ λ§‰μœΌλ©΄ 쀑볡 λŒ“κΈ€μ΄ μ™„μ „νžˆ μ‚¬λΌμ§€λ‚˜μš”?

μ•„λ‹™λ‹ˆλ‹€. λ‹€λ₯Έ νƒ­κ³Ό μž¬μ‹œλ„λŠ” μ„œλ²„μ—μ„œλ„ μ²˜λ¦¬ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ²„νŠΌμ€ UI μˆ˜μ€€μ˜ μ œμ–΄μž…λ‹ˆλ‹€.

성곡 전에 μž…λ ₯을 λΉ„μ›Œλ„ λ˜λ‚˜μš”?

μ‹€νŒ¨ μ‹œ μž‘μ„± λ‚΄μš©μ„ μžƒμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 성곡 확인 이후 μ΄ˆκΈ°ν™”ν•˜κ³  였λ₯˜κ°€ λ‚˜λ©΄ μž…λ ₯을 μœ μ§€ν•˜λŠ” λ°©ν–₯을 κ²€ν† ν•˜μ„Έμš”.

11. 곡식 μ°Έκ³  자료

λ™μž‘ μ •μ˜μ™€ μ˜΅μ…˜μ€ μ•„λž˜ μ œμž‘μž λ¬Έμ„œμ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 본문의 사둀와 μ˜ˆμ œλŠ” ν•™μŠ΅μ„ μœ„ν•΄ λ…λ¦½μ μœΌλ‘œ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

예제 μž…λ ₯은 ν•™μŠ΅μš© λͺ¨μ˜ μžλ£Œμž…λ‹ˆλ‹€. μ‹€μ œ ν™˜κ²½μ— μ μš©ν•  λ•ŒλŠ” 본문에 μ•ˆλ‚΄ν•œ 검증 λ²”μœ„μ™€ 쑰건을 ν™•μΈν•˜μ„Έμš”.

πŸ’¬ 0 Comments

IT Board

Notice
Notice
Notice Inspeep Community Usage and Post Management Guidelines
πŸ‘€ κ΄€λ¦¬μž πŸ“… 2026.04.15 πŸ‘€ Views 57 πŸ‘ Likes 0
BEST
Thumbnail
BEST 1. Creating a website without knowing anything and teaching yourself coding: the swamp of domains and hosting
πŸ‘€ κ΄€λ¦¬μž πŸ“… 2026.03.05 πŸ‘€ Views 140 πŸ‘ Likes 0
BEST
Thumbnail
BEST 2. Conquering WordPress for a Coding Illiterate: The Attack of VS Code and FTP
πŸ‘€ κ΄€λ¦¬μž πŸ“… 2026.03.05 πŸ‘€ Views 135 πŸ‘ Likes 0
BEST
Thumbnail
BEST 3. Unable to connect!A novice developer's tearful server recovery success story
πŸ‘€ κ΄€λ¦¬μž πŸ“… 2026.03.05 πŸ‘€ Views 128 πŸ‘ Likes 0
BEST
Thumbnail
BEST 10. Overcoming the limitations of a corner server: From render backup to web development bulletin board development
πŸ‘€ κ΄€λ¦¬μž πŸ“… 2026.03.05 πŸ‘€ Views 120 πŸ‘ Likes 0
Random Pick
Thumbnail
Random Pick 아이폰 ν‚€λ³΄λ“œ μ˜€νƒ€ μž˜λ‚˜λŠ” 이유..jpg
πŸ‘€ 루루웨도 πŸ“… 2026.09.27 πŸ‘€ Views 1 πŸ‘ Likes 0
Random Pick
Thumbnail
Random Pick μ‹±κΈ€λ²™κΈ€ 2025~27λ…„ κ²Œμž„ κ°œλ°œλΉ„ μˆœμœ„
πŸ‘€ 야리타 πŸ“… 2026.09.26 πŸ‘€ Views 0 πŸ‘ Likes 0
Random Pick
Thumbnail
Random Pick 컴퓨터 μœ νŠœλ²„κ°€ λ§ν•΄μ£ΌλŠ” 졜근 μš©μ‚° 썰
πŸ‘€ 루루웨도 πŸ“… 2026.09.26 πŸ‘€ Views 1 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
The Smiling iPhone Duo... Defects Are Popping Up Left and Right...JPG
πŸ‘€ K_Shit πŸ“… 2026.10.24 πŸ‘€ Views 0 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
When the 'iPhone Duo' is unfolded, half of some app screens appear as 'black space'
πŸ‘€ PPAOE πŸ“… 2026.10.23 πŸ‘€ Views 0 πŸ‘ Likes 0
개발
Thumbnail
A MAGA developer had something to say after seeing BioWare go under lol
πŸ‘€ 바루데여 πŸ“… 2026.10.23 πŸ‘€ Views 0 πŸ‘ Likes 0
개발
Thumbnail
A List of Upcoming Large-Scale Development Projects in Seoul
πŸ‘€ Maodun πŸ“… 2026.10.23 πŸ‘€ Views 0 πŸ‘ Likes 0
팁/정보
No Image
Airplane Mode, but I Can Still Use the Internet? Misconceptions About Smartphones Caused by Their Names
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.23 πŸ‘€ Views 3 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
개발
Thumbnail
Why AI Novels Can't Succeed, According to a Cheerful Developer
πŸ‘€ λ‘œλ£¨λ””λ‹€ πŸ“… 2026.10.22 πŸ‘€ Views 1 πŸ‘ Likes 0
자유
No Image
When a Domain Isn't Connecting: Steps to Troubleshoot DNS, HTTPS, and the Web Server Separately
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.21 πŸ‘€ Views 1 πŸ‘ Likes 0
개발
Thumbnail
The Shocking Development Process That's Still Being Talked About Because of a Few Trolls.JPG
πŸ‘€ PPAOE πŸ“… 2026.10.20 πŸ‘€ Views 1 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
Final Leak of the Standard iPhone 18
πŸ‘€ Maodun πŸ“… 2026.10.20 πŸ‘€ Views 2 πŸ‘ Likes 0
팁/정보
No Image
When the "Submit Comment" Button Stops Working: Handling Fetch Errors and Preventing Duplicate Submissions
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.19 πŸ‘€ Views 8 πŸ‘ Likes 0
개발
Thumbnail
Where do indie game developers get their funding?
πŸ‘€ K_Shit πŸ“… 2026.10.18 πŸ‘€ Views 0 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
The iPhone Duo: Why the Hype Over Nano-Textures Is Absurd
πŸ‘€ Maodun πŸ“… 2026.10.16 πŸ‘€ Views 0 πŸ‘ Likes 0
자유
No Image
When You Are Logged Out After Logging In: Steps to Check the Domain, Path, and Secure Attributes of Cookies
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.16 πŸ‘€ Views 6 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
The mystery of the dozens of smartphones found in a Daegu motel room.....jpg
πŸ‘€ 야리타 πŸ“… 2026.10.15 πŸ‘€ Views 0 πŸ‘ Likes 0
자유
No Image
EXIF to Check Before Uploading Photos: Check for Missing Shooting Information and Rotation Issues
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.12 πŸ‘€ Views 4 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
A Roundup of the "Panel" Rumors That Have Been Settled on iPhoneGall
πŸ‘€ K_Shit πŸ“… 2026.10.12 πŸ‘€ Views 1 πŸ‘ Likes 0
팁/정보
No Image
When There Is a 9-Hour Difference in Server Log Times: How to Accurately Synchronize UTC and Korean Time
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.11 πŸ‘€ Views 9 πŸ‘ Likes 0
개발
No Image
Development Log #9 - Improved Pixel Shaders and the Navy
πŸ‘€ 루루웨도 πŸ“… 2026.10.11 πŸ‘€ Views 3 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
iPhone 18 Pro: Overheating and Battery Issues Resolved, But… The 1.99 Million Won Hurdle
πŸ‘€ Maodun πŸ“… 2026.10.11 πŸ‘€ Views 2 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
Fake Buldak: It's Immediately Exposed When You See It on a Smartphone
πŸ‘€ 루루웨도 πŸ“… 2026.10.10 πŸ‘€ Views 1 πŸ‘ Likes 0
팁/정보
No Image
When Forum Page Loads Are Slow: Checking Index Effectiveness Using SQLite Execution Plans
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.10 πŸ‘€ Views 11 πŸ‘ Likes 0
팁/정보
No Image
When pip says a module is missing after installation: Checking the Python virtual environment and execution path
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.09 πŸ‘€ Views 5 πŸ‘ Likes 0
팁/정보
No Image
When files keep getting pushed even though you've added them to .gitignore: Steps to check Git tracking status
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.08 πŸ‘€ Views 6 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
Samsung... Cuts Smartphone Productionβ€”Wow... News
πŸ‘€ PPAOE πŸ“… 2026.10.08 πŸ‘€ Views 1 πŸ‘ Likes 0
팁/정보
No Image
Verifying That Downloaded Files Are Identical: SHA-256 Integrity Checks and Their Limitations
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.07 πŸ‘€ Views 12 πŸ‘ Likes 0
팁/정보
No Image
When Korean Text in CSV Files Appears Garbled: How to Check Encoding, Commas, and Leading Zeros Separately
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.06 πŸ‘€ Views 8 πŸ‘ Likes 0
개발
Thumbnail
Fun development anecdotes posted in the "Development Anecdotes" thread
πŸ‘€ 바루데여 πŸ“… 2026.10.06 πŸ‘€ Views 0 πŸ‘ Likes 0
개발
No Image
When a Website Won't Load: A Practical Guide to Distinguishing Between HTTP 403, 404, 429, 500, and 503 Errors
πŸ‘€ μΈμŠ€ν”Ό πŸ“… 2026.10.05 πŸ‘€ Views 7 πŸ‘ Likes 0
λ‰΄μŠ€
Thumbnail
The Truth Behind "Why Is There Toilet Paper in Front of the Computer?"
πŸ‘€ Maodun πŸ“… 2026.10.05 πŸ‘€ Views 2 πŸ‘ Likes 0
1 2 3 4 5 6 7 Next › Last »
✏️ Write