λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Javascript

[JS] Fetch API(1)

by codnjs779 2022. 6. 16.

🐳

μš”μ¦˜ λ¦¬μ•‘νŠΈ 쿼리 κ³΅μ‹λ¬Έμ„œλ₯Ό μ‘°κΈˆμ”© 읽어보고 μžˆλŠ”λ° fetch λΌλŠ” 단어가 λ‚˜μ˜¬ λ•Œλ§ˆλ‹€ μ•½κ°„ λͺ¨ν˜Έν•˜κ²Œ μ΄ν•΄λ˜μ–΄μ„œ mdnμ‚¬μ΄νŠΈμ—μ„œ 의미λ₯Ό μ°Ύμ•„λ³΄κ²Œ λ˜μ—ˆλ‹€. μ΄ν•΄ν•œ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ 정리해두렀고 글을 남긴닀. 

----

 

μ΅œμ‹  μ›Ήμ—μ„œ 전체 νŽ˜μ΄μ§€ λ‘œλ“œ 없이 μ›Ή νŽ˜μ΄μ§€ μ„Ήμ…˜μ„ μ—…λŽƒν•˜λŠ” 것이 μΌλ°˜μ μ΄λ‹€. 이걸 κ°€λŠ₯μΌ€ν•˜λŠ” 건 fetch api λ•Œλ¬Έμž„.
μ›Ήμ—μ„œ νŽ˜μ΄μ§€λ₯Ό λ‘œλ“œν•˜λŠ”λ°(λΈŒλΌμš°μ €κ°€ νŽ˜μ΄μ§€λ₯Ό 화면에 λ‚˜νƒ€λ‚΄λŠ”λ°) λŠ” ν•„μš”ν•œ νŒŒμΌμ— λŒ€ν•΄ μ„œλ²„μ— ν•˜λ‚˜ μ΄μƒμ˜ http μš”μ²­μ„ ν•˜κ³  μ„œλ²„κ°€ μš”μ²­λœ νŒŒμΌλ‘œ μ‘λ‹΅ν•˜κ²Œ λœλ‹€. 

μ‚¬μš©μžκ°€  λ‹€λ₯Έ νŽ˜μ΄μ§€λ₯Ό λ°©λ¬Έν•˜λ©΄ λΈŒλΌμš°μ €λŠ” μƒˆ νŒŒμΌμ„ μš”μ²­ν•˜κ³  μ„œλ²„λŠ” 이에 λŒ€ν•΄ μ‘λ‹΅ν•œλ‹€. 

μœ„ 그림의 μ˜λ―ΈλŠ” => 데이터 μš”μ²­μ„ ν•˜λ©΄, λͺ¨λ“  데이터λ₯Ό μ‘λ‹΅ν•œλ‹€λŠ” 뜻인거 κ°™μŒ 


이건 λ§Žμ€ μ‚¬μ΄νŠΈμ—μ„œ μ™„λ²½ν•˜κ²Œ λ™μž‘ν•˜μ§€λ§Œ μ›Ήμ‚¬μ΄νŠΈλŠ” λ°μ΄ν„° μ€‘μ‹¬μ μ΄λΌλŠ” κ²ƒμ„ κ³ λ €ν•΄μ•Όν•œλ‹€
예, Vancouver Public Library와 같은 λ„μ„œκ΄€ μ›Ήμ‚¬μ΄νŠΈ. 이건 λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•œ μ‚¬μš©μž *μΈν„°νŽ˜μ΄μŠ€λ‘œ 생각할 수 있음 
(= λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©μžκ°€ μ‰½κ²Œ μ‚¬μš©ν•  수 있게 λ§Œλ“€μ–΄ λ‘” μ‚¬μ΄νŠΈλΌκ³  생각할 수 μžˆλ‹€λŠ” 의미 )
* μ„œλ‘œ λ‹€λ₯Έ λ‘κ°œ μ‹œμŠ€ν…œ, μž₯치 μ‚¬μ΄μ— μ •λ³΄λ‚˜ μ‹ ν˜Έλ₯Ό μ£Όκ³ λ°›λŠ” κ²½μš°μ˜ μ ‘μ μ΄λ‚˜ κ²½κ³„λ©΄ 
μ‚¬μš©μžκ°€ κΈ°κΈ°λ₯Ό μ‰½κ²Œ λ™μž‘μ‹œν‚€λŠ”λ° λ„움을 μ£ΌλŠ” μ‹œμŠ€ν…œμ„ μ˜λ―Έ 

λ„μ„œκ΄€ μ›ΉνŽ˜μ΄μ§€μ—μ„œ μ›ν•˜λŠ” μ •보λ₯Ό μ–»κΈ°μœ„ν•΄μ„œ κ²€μƒ‰μ΄λ‚˜ ν•„μš”ν•œ λ™μž‘을 ν•  λ•Œ 
λ™μž‘μ΄ μ‹€ν–‰λ  λ•Œλ§ˆλ‹€ νŽ˜μ΄μ§€κ°€ μ—…λ°μ΄νŠΈ λ˜μ–΄μ•Ό ν•œλ‹€. ν•˜μ§€λ§Œ μ‚¬μ΄λ“œλ°”, ν—€λ”, ν‘Έν„° λ“±μ€
그럴 ν•„μš”κ°€ μ—†μŒ.항상 같은 정보λ₯Ό 좜λ ₯ν•˜κ³  있기 λ•Œλ¬Έμ— 


κ³Όκ±° λͺ¨λΈμ€ ν•œλΆ€λΆ„λ§Œ μ—…λ°μ΄νŠΈν•΄μ•Όν•˜λŠ” κ²½μš° μ „체 νŽ˜μ΄μ§€λ₯Ό λ‘œλ“œν•΄μ•Όν•œλ‹€λŠ” λΉ„νš¨μœ¨μ  λ°©λ²•을 
μ‚¬μš©ν•˜κ³  μžˆμ–΄μ„œ μ‚¬μš©μžμ—κ²Œ 쒋은 κ²½ν—˜μ„ 쀄 수 μ—†μ—ˆμŒ.


κ³Όκ±° λͺ¨λΈμ„ λŒ€μ‹ ν•΄μ„œ λ§Žμ€ μ›Ήμ‚¬μ΄νŠΈλ“€μ€ JavaScript APIλ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλ²„μ— 데이터λ₯Ό μš”μ²­ν•˜κ³  
νŽ˜μ΄μ§€ λ‘œλ“œ μ—†μ΄ νŽ˜μ΄μ§€ μ½˜ν…μΈ λ₯Ό μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.
μ‚¬μš©μžκ°€ μƒˆ ν•­λͺ©μ— λŒ€ν•΄ 검색할 λ•Œ λΈŒλΌμš°μ €λŠ” νŽ˜μ΄μ§€ μ—…λŽƒμ— ν•„μš”ν•œ μ •λ³΄λ§Œμ„ μš”μ²­ν•œλ‹€.

μœ„ 그림의 μ˜λ―ΈλŠ” => 데이터 μš”μ²­μ‹œ μš”μ²­ν•œ μ •λ³΄λ§Œμ„ μ‘λ‹΅ν•˜κ³  νŽ˜μ΄μ§€μ˜ ν•„μš”ν•œ 뢀뢄을 μ—…λŽƒν•œλ‹€. 


κ·Έ λ©”인 api λŠ” fetch api μ΄λ‹€. 
이λ₯Ό ν†΅ν•΄μ„œ νŽ˜μ΄μ§€μ—μ„œ μ‹€ν–‰λ˜λŠ” jsκ°€ νŠΉμ • λ¦¬μ†ŒμŠ€λ₯Ό κ²€μƒ‰ν•˜κΈ° μœ„ν•΄ μ„œλ²„에 http μš”청을 ν•  μˆ˜ μžˆμŒ
μ„œλ²„κ°€ μš”μ²­ μ •보λ₯Ό μ œκ³΅ν–ˆμ„ λ•Œ jsλŠ” νŽ˜μ΄μ§€ λ°μ΄ν„°λ₯Ό μ—…λŽƒ ν•  μˆ˜ μžˆλ‹€. 
일반적으둜 DOM mainpulation APIsλ₯Ό μ‚¬μš©ν• λ‹€. μš”μ²­λœ λ°μ΄ν„° λŒ€λΆ€λΆ„은 JSON이닀.
이건 κ΅¬μ‘°ν™”λœ 데이터λ₯Ό λ³΄λ‚΄λŠ”λ° 쒋은 ν¬λ§·μž„. HTML, λ°˜λ“œμ‹œ text둜만 κ°€λŠ₯함
데이터 κΈ°λ°˜ μ‚¬μ΄νŠΈλ₯Ό μœ„ν•œ ν”ν•œ νŒ¨ν„΄μž„.

νŽ˜μ΄μ§€λ₯Ό λΉ λ₯΄κ²Œ μ—…λŽƒ κ°€λŠ₯함. 그리고 νŽ˜μ΄μ§€ μ—…λ°μ΄νŠΈκ°€ 훨씬 빨라지고 νŽ˜μ΄μ§€κ°€ μƒˆλ‘œ 고쳐질 λ•ŒκΉŒμ§€ 기닀릴 ν•„μš”κ°€ μ—†μŒ.
μ—…λ°μ΄νŠΈ ν•  λ•Œλ§ˆλ‹€ λ‹€μš΄λ‘œλ“œ λ˜λŠ” 데이터가 μ€„μ–΄λ“€μ–΄μ„œ *λŒ€μ—­ν­ λ‚­λΉ„κ°€ 쀄어듦

*μΌμ •μ‹œκ°„ 내에 데이터 연결을 톡과할 수 μžˆλŠ” μ •λ³΄λŸ‰μ˜ 척도 


κ΄‘λŒ€μ—­ μ—°κ²°μ˜ λ°μŠ€ν¬νƒ‘μ—μ„œλŠ” ν° λ¬Έμ œκ°€ μ•„닐 μˆ˜ μžˆλŠ”λ° λͺ¨λ°”일 μž₯치 λ˜λŠ” μœ λΉ„μΏΌν„°μŠ€ κ³ μ† μΈν„°λ„· 
μ„œλΉ„μŠ€κ°€ μ—†λŠ” κ΅­κ°€μ—μ„œλŠ” μ€‘μš”ν•œ λ¬Έμ œμ΄λ‹€. 

μž‘μ—…μ†λ„λ₯Ό 높이기 μœ„ν•΄ 일뢀 μ‚¬μ΄νŠΈλŠ” λ¦¬μ†ŒμŠ€μ™€ 데이터가 처음 μš”μ²­λ  λ•Œ μ‚¬μš©μž 컴퓨터에 
μ €μž₯ν•˜κΈ°λ„ 함. 즉, 이후 λ°©λ¬Έμ‹œ νŽ˜μ΄μ§€κ°€ 처음 λ‘œλ“œ 될 λ•Œλ§ˆλ‹€ μƒˆ 볡사본을 λ‹€μš΄λ‘œλ“œ ν•˜λŠ” λŒ€μ‹ 
둜컬 λ²„전을 μ‚¬μš©ν•œλ‹€. μ½˜ν…μΈ κ°€ μ—…λŽƒ λ  μ‹œ μ„œλ²„μ—μ„œ λ‹€μ‹œ λ‘œλ“œ λ¨ 

 

좜처: https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Fetching_data#the_fetch_api

 

Fetching data from the server - Learn web development | MDN

This article shows how to start working with Fetch to fetch data from the server.

developer.mozilla.org