πŸ”§κ°œλ°œμž λ„κ΅¬μ˜ κΈ°λŠ₯을 λœ―μ–΄λ³΄μž

LemonΒ·2022λ…„ 4μ›” 29일
2
post-thumbnail
post-custom-banner

πŸ”§κ°œλ°œμž 도ꡬ(DevTools)λž€?

λΈŒλΌμš°μ €μ—μ„œ μ œκ³΅ν•˜λŠ” ν•˜λ‚˜μ˜ λ„κ΅¬μž…λ‹ˆλ‹€.
μ›Ή μ‚¬μ΄νŠΈλ₯Ό μ¦‰κ°μ μœΌλ‘œ μˆ˜μ •ν•˜κ³  문제의 원인을 νŒŒμ•…ν•˜κΈ° μ’‹μŠ΅λ‹ˆλ‹€.
특히 ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμžλŠ” 개발자 λ„κ΅¬λŠ” 계속 μΌœλ†“κ³  μž‘μ—…ν•˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€.

πŸ”§κ°œλ°œμž 도ꡬ 단좕킀

window : f12
mac : alt + cmd + i

λΈŒλΌμš°μ €λŠ” 크둬(Chrome)을 κΈ°μ€€μœΌλ‘œ μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€
πŸ€”μ™œ chrome일까?
μ‚¬μš©μž 점유율이 κ°€μž₯ λ†’κΈ°λ•Œλ¬Έμž…λ‹ˆλ‹€!

자료의 좜처 :Β μŠ€νƒ―μΉ΄μš΄ν„°(StatCounter)


πŸ”§κ°œλ°œμž 도ꡬ νŒ¨λ„ (DevTools paner)

개발자 λ„κ΅¬μ—λŠ” μ—¬λŸ¬κ°œμ˜ tab이 μ‘΄μž¬ν•˜λŠ”λ°, 자주 μ‚¬μš©ν•˜λŠ” 4가지 tab을 μ‚΄νŽ΄λ΄…μ‹œλ‹€.

1. Elements panel

개발자 도ꡬ ν‚€λ©΄ κΈ°λ³Έ νƒ­μœΌλ‘œ Elements이 μ„ νƒλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
μ—¬κΈ°μ„œλŠ” μ›ΉνŽ˜μ΄μ§€μ˜ ꡬ성(DOM)κ³Ό CSSλ₯Ό μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.
HTMLμ½”λ“œλ₯Ό λΆ„μ„ν•˜κ³  μ‹€μ‹œκ°„μœΌλ‘œ μˆ˜μ •ν•  수 μžˆλŠ” νŒ¨λ„μž…λ‹ˆλ‹€. μ‹€μ‹œκ°„μœΌλ‘œ λ ˆμ΄μ•„μ›ƒκ³Ό λ””μžμΈμ„ λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

spanμ•ˆμ˜ κΈ€μžλ“€μ„ κ°œλ°œμžλ„κ΅¬μ˜ Elements > stylesμ—μ„œ 직접 νƒ€μ΄ν•‘ν•΄μ„œ color: red; 둜 속성을 λ°”κΏ”λ΄€μŠ΅λ‹ˆλ‹€.

κΈ€μžμ˜ 색상이 λΉ¨κ°•μœΌλ‘œ λ°”λ€ŒλŠ” 것을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€ (μ €μž₯ λ˜μ§„μ•ŠμŠ΅λ‹ˆλ‹€. μƒˆλ‘œκ³ μΉ¨ν•˜λ©΄ μ›λž˜λŒ€λ‘œ λŒμ•„κ°‘λ‹ˆλ‹€)


Styles λΆ€λΆ„μ˜ μˆœμ„œκ°€ μ˜λ―Έν•˜λŠ” 것

κ°€μž₯ 상단뢀터 css파일의 μš°μ„ μˆ˜μœ„μ— 따라 λ‚˜μ˜΅λ‹ˆλ‹€. μ œμΌλ¨Όμ € λœ¨λŠ” μŠ€νƒ€μΌμ΄ μš°μ„ μˆœμœ„κ°€ κ°€μž₯ λ†’μŠ΅λ‹ˆλ‹€.


user agent stylesheetλž€?

stylesλ₯Ό 보닀보면 user agent stylesheet λ₯Ό λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 이것은 λΈŒλΌμš°μ €μ˜ κΈ°λ³Έ μŠ€νƒ€μΌ 값을 μ˜λ―Έν•©λ‹ˆλ‹€.

λΈŒλΌμš°μ €λ§ˆλ‹€ μŠ€νƒ€μΌμ˜ 기본값은 λ‹€λ¦…λ‹ˆλ‹€. λ”°λΌμ„œ λΈŒλΌμš°μ €λ§ˆλ‹€ λ™μΌν•˜κ²Œ 화면에 좜λ ₯ν•˜κΈ° μœ„ν•΄μ„œ λΈŒλΌμš°μ €μ˜ κΈ°λ³Έ μŠ€νƒ€μΌμ„ μ—†μ• λŠ” reset.css ν˜Ήμ€ normalize.css 파일둜 css의 값을 μ΄ˆκΈ°ν™” μ‹œν‚€κ³  μž‘μ—…μ„ μ‹œμž‘ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.


ν™œμš© 방법

λ”°λΌν•˜κ³  싢은 레퍼런슀 νŽ˜μ΄μ§€λ“€μ˜ νŠΉμ„± μš”μ†Œμ˜ μŠ€νƒ€μΌ μžμ„Ένžˆ 보고 μ°Έκ³ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2. Console panel

μ»΄ν“¨ν„°μ˜ ν‚€λ³΄λ“œ&마우슀, 였락기의 μ‘°μ΄μŠ€ν‹±κ°™μ΄ λ™μž‘ν•˜κΈ° μœ„ν•œ νŒ¨λ„μž…λ‹ˆλ‹€.
λ”°λΌμ„œ λΈŒλΌμš°μ €κ°€ μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€ μ‘°μ ˆν•˜λŠ” νŒ¨λ„μž…λ‹ˆλ‹€.
μ—¬κΈ°μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό μ¦‰μ‹œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λΈŒλΌμš°μ € μ½˜μ†”μ°½μ— 둜그λ₯Ό μ°λŠ”λ‹€(console.log())κ³  ν‘œν˜„ν•©λ‹ˆλ‹€. ( μ΄μ œλŠ” λΈŒλΌμš°μ € 뿐 μ•„λ‹ˆλΌ λ°”λ‘œ ν™•μΈν•˜λ„λ‘ 개발된 νˆ΄λ“€μ΄ λ§Žλ‹€. )

ν™œμš© 방법

  • ν”„λ‘ νŠΈμ—”λ“œμ˜ 경우 디버깅에 자주 μ‚¬μš©λ©λ‹ˆλ‹€.
  • λ°±μ—”λ“œμ˜ 경우 respnse(μ—λŸ¬ 메세지, status μ½”λ“œ)도 console.logλ₯Ό ν™œμš©ν•΄ 확인 κ°€λŠ₯ν•©λ‹ˆλ‹€. κ·Έλ ‡κΈ° λ•Œλ¬Έμ— λ°±μ—”λ“œμ—μ„œλŠ” 상황을 μ•Œλ €μ£ΌλŠ” response 메세지와 μ μ ˆν•œ status codeλ₯Ό μ „λ‹¬ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

μ°Έκ³ ! λ‹€λ₯Έ νƒ­μ—μ„œ escλ₯Ό λˆ„λ₯΄λ©΄ μ„œλžμ²˜λŸΌ μ½˜μ†”μ„ λ³Ό 수 μžˆλ‹€.

class101 ν™ˆνŽ˜μ΄μ§€ μ½˜μ†”μ°½μ„ 보면 μž¬λ°ŒλŠ”κ±Έ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€!

κ°œλ°œμžλ“€μ„ μœ„ν•œ μ±„μš©κ³΅κ³  URL을 λ„μ›Œμ£Όμ…¨λ„€μš”!

이건 였늘의 집 μ½˜μ†”μ°½μž…λ‹ˆλ‹€. λ„ˆλ¬΄ κ·€μ—½μ§€μ•Šλ‚˜μš”!?!??!🀩


μ½˜μ†”μ°½ λ‚¨κΈ°λŠ” 방법

화면을 μƒˆλ‘œκ³ μΉ¨ν•΄λ„ μ§€μ›Œμ§€μ§€μ•Šκ³  λ‚¨κ²¨λ‘λŠ” 방법이 μžˆμŠ΅λ‹ˆλ‹€.

Preserve logλ₯Ό μ²΄ν¬ν•˜λ©΄ μƒˆλ‘œκ³ μΉ¨ν•΄λ„ μ§€μ›Œμ§€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


3. Network panel

🌟 맀우 μ€‘μš”ν•©λ‹ˆλ‹€. κ°œλ°œμžλ“€μ΄ ν”„λ‘œμ νŠΈν•  λ•Œ 무쑰건 λ΄μ•Όν•˜λŠ” κ³΅κ°„μž…λ‹ˆλ‹€.

  • μ›Ήμ‚¬μ΄νŠΈμ—μ„œ ν†΅μ‹ ν•˜κ³  μžˆλŠ” λͺ¨λ“  정보λ₯Ό λͺ©λ‘μœΌλ‘œ λ³΄μ—¬μ€λ‹ˆλ‹€.
  • λ¦¬μ†ŒμŠ€λ“€μ΄ μ˜ˆμƒλŒ€λ‘œ λ‹€μš΄λ‘œλ“œ 되고 μ—…λ°μ΄νŠΈ λ˜λŠ”μ§€ 확인할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • μ›ΉνŽ˜μ΄μ§€μ™€ μ„œλ²„ μ‚¬μ΄μ—μ„œ 데이터 흐름을 λΆ„μ„ν•˜κ³ , 문제 λ°œμƒ μ‹œ 해결책을 찾도둝 개발자λ₯Ό λ•λŠ” 역할을 ν•©λ‹ˆλ‹€.

Network νŒ¨λ„μ˜ νƒ­

Network νŒ¨λ„μ•ˆμ—λ„ λ‹€μ–‘ν•œ tab듀이 μ‘΄μž¬ν•©λ‹ˆλ‹€.

All : λͺ¨λ“  λͺ¨λ“  λ„€νŠΈμ›Œν¬ μš”μ²­μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€
Fetch/XHR : API 정보λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. (API의 request(호좜), response(κ²°κ³Ό)λ₯Ό 확인할 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.)

XHR

μ—¬κΈ°μ„œ μ€‘μš”ν•˜κ²Œ μ•Œμ•„μ•Όλ  것은 XHRμž…λ‹ˆλ‹€.

  1. Name : λ¦¬μ†ŒμŠ€μ˜ 이름과 URL ν‘œμ‹œ
  2. Status : μž‘λ™ μ—¬λΆ€ ν‘œμ‹œ ( 200: μ •μƒμž‘λ™ )
  3. Type : 파일의 ν˜•μ‹
  4. Initiator : μš”μ²­μ„ λ°œμƒμ‹œν‚¨ μ½”λ“œ ν‘œμ‹œ (ν΄λ¦­ν•˜λ©΄ μ½”λ“œλ‘œ 이동)
  5. Size : λ¦¬μ†ŒμŠ€λ“€μ˜ 파일 μ‚¬μ΄μ¦ˆ
  6. Time : μš”μ²­κ³Ό μ‘λ‹΅κΉŒμ§€ κ±Έλ¦° μ‹œκ°„ 확인
  7. Waterfall : νƒ€μž„λΌμΈ μ„ΈλΆ€ 정보

Network μ—μ„œ API 데이터 μ°Ύμ•„λ³΄λŠ” 방법

Market Kurlyν™ˆνŽ˜μ΄μ§€μ—μ„œ 카데고리 정보λ₯Ό κ°€μ Έμ˜€λŠ” APIλ₯Ό μ°Ύμ•„λ΄…μ‹œλ‹€.

XHRμ—μ„œ categoriesκ°€ ν¬ν•¨λœ 이름을 클릭해보면 Headerμ—μ„œ API의 μ£Όμ†Œλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

Previewμ•ˆμ—μ„œ μ–΄λ–€ api 정보λ₯Ό λ°›μ•„μ™”λŠ”μ§€ json ν˜•μ‹μœΌλ‘œ 확인 κ°€λŠ₯ν•©λ‹ˆλ‹€.

Responseμ—μ„œλ„ μ–΄λ–€ 데이터가 μ™”λŠ” 지 λ³Ό 수 μžˆμ§€λ§Œ μ•Œμ•„λ³΄κΈ° λΆˆνŽΈν•˜κΈ° ν•©λ‹ˆλ‹€.
Responseλ₯Ό μ’€ 더 보기 νŽΈν•˜κ²Œ 해둔것이 Previewμž…λ‹ˆλ‹€.

Network μ—μ„œ μ΄λ―Έμ§€λ‚˜ λ™μ˜μƒ URL 찾아보기

이미지 μ†ŒμŠ€λ‚˜ λ™μ˜μƒ μ†ŒμŠ€μ˜ URL을 μ°Ύκ³  싢을 λ•ŒλŠ” Networkμ—μ„œ img > Name > Headersμ—μ„œ 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν™œμš© 방법

λ°±μ—”λ“œ ν”„λ‘ νŠΈμ—”λ“œ μ†Œν†΅μ΄ 잘 μ•ˆλμ„ λ–„ 확인해야 ν•©λ‹ˆλ‹€.
λ°±μ—”λ“œμ™€ ν”„λ‘ νŠΈμ—”λ“œκ°€ apiλ₯Ό μ£Όκ³  받을 λ•Œ λ„€νŠΈμ›Œν¬κ°€ ν†΅μ‹ ν•˜λŠ”λ°, 톡신이 μ œλŒ€λ‘œ λλŠ”μ§€ μ•ˆλλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


4. Application panel

λΈŒλΌμš°μ € μ €μž₯μ†Œ μž…λ‹ˆλ‹€. μ €μž₯μ†Œμ— 뭐가 λ“€μ–΄μžˆλŠ”μ§€ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
3개의 λΈŒλΌμš°μ €μ˜ μ €μž₯μ†Œ(Storage)κ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • Local Storage β‡’ ν΄λΌμ΄μ–ΈνŠΈ 단
    μ‚¬μš©μžκ°€ μ§€μš°μ§€ μ•ŠλŠ” 이상 계속 λΈŒλΌμš°μ €μ— λ‚¨μ•„μžˆμŠ΅λ‹ˆλ‹€.
    μ§€μ†μ μœΌλ‘œ ν•„μš”ν•œ 데이터λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.
    예) μžλ™λ‘œκ·ΈμΈ κΈ°λŠ₯, λΉ„νšŒμ› μž₯λ°”κ΅¬λ‹ˆ (λ‚˜κ°”λ‹€κ°€ λ“€μ–΄μ™”λŠ”λ° μžˆλ‹€λ©΄)
  • Session Storage β‡’ ν΄λΌμ΄μ–ΈνŠΈ 단
    λΈŒλΌμš°μ € μ’…λ£Œ μ „κΉŒμ§€λ§Œ 보쑴가λŠ₯ν•©λ‹ˆλ‹€. β‡’ νƒ­ μ’…λ£Œ μ „κΉŒμ§€ λ‚¨μ•„μžˆμŠ΅λ‹ˆλ‹€.
    잠깐 λ™μ•ˆ ν•„μš”ν•œ 정보λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.
    예) λΉ„νšŒμ› μž₯λ°”κ΅¬λ‹ˆ (λ‚˜κ°”λ‹€κ°€ λ“€μ–΄μ™”λŠ”λ° μ—†λ‹€λ©΄)
  • Cookie β‡’ ν΄λΌμ΄μ–ΈνŠΈμ— μ €μž₯λ˜μ§€λ§Œ μ„œλ²„μ—μ„œλ„ 리슀폰슀λ₯Ό 보낼 수 μžˆμŠ΅λ‹ˆλ‹€.
    μ €μž₯ μš©λŸ‰μ΄ μž‘μŠ΅λ‹ˆλ‹€.
    μ‹œκ°„ μ œν•œ 섀정이 κ°€λŠ₯ν•©λ‹ˆλ‹€. ν”„λ‘ νŠΈμ—”λ“œμ™€ λ°±μ—”λ“œ 톡신과 κ΄€λ ¨μžˆμŠ΅λ‹ˆλ‹€.
    무쑰건 μš”μ²­ λ³΄λ‚Όλ•Œλ§ˆλ‹€ λ”Έλ €μ„œ κ°‘λ‹ˆλ‹€. β†’ λ•Œλ¬Έμ— λΈŒλΌμš°μ €κ°€ λŠ¦μ–΄μ§€λŠ” μ΄μœ κ°€ μΏ ν‚€κ°€ μ°¨μ„œ 그럴 수 μžˆμŠ΅λ‹ˆλ‹€.
    μ„œλΉ„μŠ€κ°€ 직접적이지 μ•Šμ€ 데이터에 μ‚¬μš©ν•©λ‹ˆλ‹€.
    예) 였늘만 ν•˜λŠ” 이벀트 νŒμ—…, μ„œλΉ„μŠ€ 약관에 λ™μ˜ν–ˆλŠ”μ§€ λ“±
    νŒμ—…μ°½ 1μΌλ™μ•ˆ λ³΄μ§€μ•ŠκΈ° λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ μ•ˆλ³΄κ² λ‹€λŠ” 것을 μ €μž₯, λ§Œλ£ŒκΈ°κ°„ μ„ΈνŒ… κ°€λŠ₯ β‡’ 1일짜리 μΏ ν‚€λ₯Ό λ§Œλ“€μ–΄λ†“μœΌλ©΄ λ©λ‹ˆλ‹€.

😱 주의! λ―Όκ°ν•œ μ •λ³΄λŠ” ν΄λΌμ΄μ–ΈνŠΈ 단에 μ ˆλŒ€ μ €μž₯ν•˜μ§€μ•ŠλŠ”λ‹€ λ”°λΌμ„œ user의 passwordλŠ” localμ΄λ‚˜ section에 μ €μž₯ν•˜μ§€μ•ŠμŠ΅λ‹ˆλ‹€. λΉ„λ°€λ²ˆν˜Έ 같은 μ •λ³΄λŠ” μŠ€ν† λ¦¬μ§€κ°€ μ•„λ‹Œ λ‹€λ₯Έκ³³μ— μ €μž₯ν•©λ‹ˆλ‹€.

profile
κ°œλ―ΈλŠ” 뚠뚠..μ˜€λŠ˜λ„ 뚠뚠🐜
post-custom-banner

0개의 λŒ“κΈ€