κ°œλ°œμΌμ§€πŸ“_10

ᴢᴬᴱᡞᴼᴼᴺ·2021λ…„ 6μ›” 2일
0
post-thumbnail

πŸ’‘ 이번 μ£Όμ—λŠ” λΌμ΄λΈŒλŸ¬λ¦¬μ™€ API에 λŒ€ν•΄ λ°°μ› μœΌλ©° 이와 κ΄€λ ¨λœ μ‹€μŠ΅λ„ ν•΄λ³΄μ•˜λ‹€.

μƒˆλ‘œ 배운 λ‚΄μš©πŸŒΌ

βœ” 라이브러리
: μž¬μ‚¬μš©ν•  수 μžˆλŠ” μ½”λ“œ kit
: μ›Ή/μ•±μ—μ„œ 많이 μ‚¬μš©λ˜λŠ” κΈ°λŠ₯듀을 μž¬μ‚¬μš©ν•  수 μžˆλŠ” μ½”λ“œλ‘œ κ΅¬ν˜„ν•΄ 놓은 것
πŸ‘‰λΌμ΄λΈŒλŸ¬λ¦¬λ₯Ό 많이 μ‚¬μš©ν•˜λ©΄ λžœλ”© νŽ˜μ΄μ§€μ˜ λ‘œλ”© 속도 λ“± μ›ΉνŽ˜μ΄μ§€ μ„±λŠ₯에 λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€λŠ” 점 μœ μ˜ν•΄μ•Ό 함

πŸ”—μƒν™©λ³„ JS 라이브러리

β–ͺ 데이터 μ‹œκ°ν™” (지도, λ„€νŠΈμ›Œν¬, 차트 그리기)
D3.js
Chart.js
leaflet.js

β–ͺ DOM μ‘°μž‘
jQuery

β–ͺ μ• λ‹ˆλ©”μ΄μ…˜ 효과
GSAP
Anime.js

β–ͺ μˆ˜μ‹, λ‚ μ§œ 처리
Date.js

β–ͺ UI μ»΄ν¬λ„ŒνŠΈ
React.js

πŸ‘€ 라이브러리 μ‚¬μš©λ°©λ²•
: 개발 쀑인 μ•±μ—μ„œ μ‚¬μš©ν•˜κ³  싢은 λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžˆλ‹€λ©΄, ν”„λ‘œμ νŠΈ 폴더에 직접 라이브러리λ₯Ό μ„€μΉ˜ν•˜κ±°λ‚˜, CDNμœΌλ‘œλΆ€ν„° importν•΄μ˜¬ 수 있음

  1. ν”„λ‘œμ νŠΈ 폴더에 직접 라이브러리λ₯Ό μ„€μΉ˜ν•˜λŠ” κ²½μš°μ—λŠ” npm, yarn λ“±μ˜ νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €λ‘œ κ°„λ‹¨ν•œ λͺ…령을 μ‹€ν–‰ν•˜λ©΄ 됨
    ex) swiper 라이브러리λ₯Ό μ„€μΉ˜ν•˜κ³  싢을 경우, 터미널을 μ—΄κ³  ν”„λ‘œμ νŠΈ ν΄λ”μ˜ 루트 λ””λ ‰ν† λ¦¬μ—μ„œ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜λ©΄ 됨
    πŸ‘‰$npm install swiper
  2. CDNμœΌλ‘œλΆ€ν„° ν•„μš”ν•œ 라이브러리λ₯Ό importν•˜λŠ” κ²½μš°μ—λŠ” html λ¬Έμ„œμ˜ 뢀뢄에 <script src="라이브러리 경둜"></script> λ₯Ό 볡사+λΆ™μ—¬λ„£κΈ°ν•˜κ²Œ 됨

βœ” Ajax
: λΈŒλΌμš°μ €μ—μ„œ μ„œλ²„λ‘œ 데이터에 λŒ€ν•œ μš”μ²­μ„ 보내고, μ„œλ²„κ°€ μ‘λ‹΅ν•œ 데이터λ₯Ό μ΄μš©ν•˜μ—¬ μ›ΉνŽ˜μ΄μ§€λ₯Ό λ™μ μœΌλ‘œ μ—…λ°μ΄νŠΈν•˜λŠ” 비동기 ν”„λ‘œκ·Έλž˜λ° 방식
πŸ‘‰λΉ„λ™κΈ°λ‘œ 처리 : μ—¬λŸ¬ μž‘μ—…μ΄ λ™μ‹œμ— μ΄λ£¨μ–΄μ§ˆ 수 μžˆμŒμ„ μ˜λ―Έν•¨

β–ͺ Ajax κ°€ λ“±μž₯ν•˜λ©΄μ„œ μ›ΉνŽ˜μ΄μ§€μ˜ 변경에 ν•„μš”ν•œ λ°μ΄ν„°λ§Œ 비동기 λ°©μ‹μœΌλ‘œ 전솑받아 μ›ΉνŽ˜μ΄μ§€λ₯Ό λ³€κ²½ν•  ν•„μš”κ°€ μ—†λŠ” 뢀뢄은 λ‹€μ‹œ λ Œλ”λ§ν•˜μ§€ μ•Šκ³ , λ³€κ²½ν•  ν•„μš”κ°€ μžˆλŠ” λΆ€λΆ„λ§Œ ν•œμ •μ μœΌλ‘œ λ Œλ”λ§ν•˜λŠ” 방식이 κ°€λŠ₯해짐! μ„±λŠ₯도 κ°œμ„ λ˜κ³  λΆ€λ“œλŸ¬μš΄ ν™”λ©΄μ „ν™˜λ„ κ°€λŠ₯ν•΄μ§€κ²Œ 됨

βœ” XMLHttpRequest
: λΈŒλΌμš°μ €μ—μ„œ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•˜μ—¬ HTTP μš”μ²­μ„ 전솑할 λ•Œ XMLHttpRequest 객체λ₯Ό μ‚¬μš©ν•¨. AjaxλŠ” XMLHttpRequestλ₯Ό 기반으둜 λ™μž‘ν•¨. XMLHttpRequest κ°μ²΄μ—λŠ” HTTP μš”μ²­ 전솑 및 HTTP 응닡 μˆ˜μ‹ μ„ μœ„ν•œ λ‹€μ–‘ν•œ λ©”μ„œλ“œμ™€ ν”„λ‘œνΌν‹°κ°€ 있음.

// XMLHttpRequest 객체의 생성
const xhr = new XMLHttpRequest();

βœ” Json
: JavaScript Object Notation의 μ€€λ§λ‘œ, ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„ κ°„μ˜ HTTP 톡신을 μœ„ν•œ ν…μŠ€νŠΈ 데이터 포맷

β–ͺ ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œ 객체λ₯Ό μ „μ†‘ν•˜λ €λ©΄ 객체λ₯Ό λ¬Έμžμ—΄ν™”(직렬화 serializing)ν•΄μ•Ό 함.
πŸ‘‰ JSON.stringify λ©”μ„œλ“œλŠ” 객체λ₯Ό JSON 포맷의 λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•¨.

const dog = {
	name: 'λŒ•λŒ•μ΄'
	age: 5,
	sound: '멍멍'
}

// 객체λ₯Ό JSON 포맷의 λ¬Έμžμ—΄λ‘œ λ³€ν™˜
const json = JSON.stringify(obj);

console.log(typeof json, json)
// string {"name": "λŒ•λŒ•μ΄", "age": 5, "sound": "멍멍"}

β–ͺ μ„œλ²„λ‘œλΆ€ν„° ν΄λΌμ΄μ–ΈνŠΈμ— μ „μ†‘λœ JSON λ°μ΄ν„°λŠ” λ¬Έμžμ—΄μž„. λ¬Έμžμ—΄μ„ 객체둜 μ‚¬μš©ν•˜λ €λ©΄ JSON 포맷의 λ¬Έμžμ—΄μ„ 객체화(역직렬화 deserializing)ν•΄μ•Ό 함.
πŸ‘‰JSON.parse λ©”μ„œλ“œλŠ” JSON 포맷의 λ¬Έμžμ—΄μ„ 객체둜 λ³€ν™˜ν•¨.

  const dog = {
	name: 'λŒ•λŒ•μ΄'
	age: 5,
	sound: '멍멍'
}

// 객체λ₯Ό JSON 포맷의 λ¬Έμžμ—΄λ‘œ λ³€ν™˜
const json = JSON.stringify(obj);

// JSON 포맷의 λ¬Έμžμ—΄μ„ 객체둜 λ³€ν™˜
const parsed = JSON.parse(json);
console.log(typeof parsed, parsed);
/* object {
	name: 'λŒ•λŒ•μ΄'
	age: 5,
	sound: '멍멍'
} */

πŸ“Œν”„λ‘œμ νŠΈ 진행상황


: 쀑간고사 ν”„λ‘œμ νŠΈμ—μ„œ CSS둜 κ΅¬ν˜„ν•œ μŠ¬λΌμ΄λ” 뢀뢄듀을 JSλ₯Ό μ΄μš©ν•˜μ—¬ ν™”μ‚΄ν‘œ λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ ν•œ λΈ”λŸ­λ§ŒνΌλ§Œ μŠ¬λΌμ΄λ”κ°€ λ„˜μ–΄κ°€λ„λ‘ ν•΄λ³΄μ•˜λ‹€. κΈ°μ‘΄ μ‚¬μ΄νŠΈμ—μ„œλŠ” 마우슀λ₯Ό κ°–λ‹€λŒ”μ„λ•Œ ν™”μ‚΄ν‘œ λ²„νŠΌμ΄ λ³΄μ΄λŠ” ν˜•νƒœλΌμ„œ κ·Έ 뢀뢄에 λŒ€ν•΄μ„œ μˆ˜μ •μ΄ 더 ν•„μš”ν•  κ±° κ°™λ‹€. μ €λ²ˆλΆ€ν„° κ³„νšμ€ ν•΄λ†¨λŠ”λ° λ―Έλ€„μ™”μ—ˆλ˜ 슀마트폰, νƒœλΈ”λ¦Ώpc, pc에 ν•΄λ‹Ήν•˜λŠ” 각각의 미디어쿼리λ₯Ό μ™„μ„±ν•˜λŠ” 것도 λ‚¨μ€κΈ°κ°„λ™μ•ˆ ν•΄λ‚Ό 수 μžˆμ—ˆμœΌλ©΄ μ’‹κ² λ‹€.

λŠλ‚€μ 

이번 주에 μƒˆλ‘œ 배운 λ‚΄μš© 쀑 '라이브러리'에 λŒ€ν•œ λ‚΄μš©μ„ λ°°μ› λŠ”λ° λˆ„κ΅°κ°€κ°€ 미리 λ§Œλ“€μ–΄λ†“μ€ μ½”λ“œλ₯Ό κ°€μ Έλ‹€κ°€ 맀뉴얼에 따라 μ‚¬μš©ν•˜κ±°λ‚˜ μ»€μŠ€ν„°λ§ˆμ΄μ¦ˆν•˜μ—¬ μ›Ή νŽ˜μ΄μ§€λ₯Ό κ΅¬ν˜„ν•΄λ‚Ό 수 μžˆλ‹€λŠ” 점이 ν₯λ―Έλ‘œμ› λ‹€. μƒν™©λ³„λ‘œ λ‹€μ–‘ν•œ JS λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ΄ μžˆλ‹€λŠ” 것에 μ‹ κΈ°ν•˜κΈ°λ„ ν–ˆλ‹€. μ½”λ‘œλ‚˜ λ‰΄μŠ€ API둜 수직 μŠ¬λΌμ΄λ” λ§Œλ“€κΈ° μ‹€μŠ΅μ—μ„œλŠ” 곡곡데이터 API ν™œμš© 신청을 μ–΄λ–»κ²Œ ν•˜λŠ”κ²ƒμΈμ§€, 그리고 API κΈ°μˆ λ¬Έμ„œμ—μ„œ API μ„œλΉ„μŠ€λ₯Ό ν™œμš©ν•  λ•Œ ν•„μš”ν•œ 뢀뢄듀은 뭔지 μ•Œμ•„κ°ˆ 수 μžˆμ—ˆλ‹€. 사싀 API κ΄€λ ¨ λ‚΄μš©μ„ 듀을 λ•Œ μ΄ν•΄ν•˜μ§€ λͺ»ν•œ 뢀뢄듀이 μžˆμ–΄μ„œ λ…Έμ…˜μ˜ κ°•μ˜μžλ£Œλ₯Ό 보며 λ³΅μŠ΅μ„ ν•˜κ³  μ‹€μŠ΅λ„ 해봐야 κ² λ‹€λŠ” 생각을 ν–ˆλ‹€. 기말고사가 μ–Όλ§ˆλ‚¨μ§€ μ•Šμ•„ κ·Έλ•ŒκΉŒμ§€λŠ” ν”„λ‘œμ νŠΈμ— 집쀑을 ν•΄μ•Όκ² μ§€λ§Œ λ°©ν•™ λ•ŒλΌλ„ λ”°λ‘œ 곡뢀λ₯Ό ν•΄μ•Όν•  것 κ°™λ‹€.

μ›Ή ν”„λ‘œκ·Έλž˜λ° 기초 μˆ˜μ—…μ„ 톡해 HTML, CSS, JS κ΄€λ ¨ 이둠적인 λ‚΄μš©λ“€μ„ 배우고 직접 μ‹€μŠ΅λ„ 해보며 μ›Ή νŽ˜μ΄μ§€μ˜ λ‹€μ–‘ν•œ μš”μ†Œμ™€ κΈ°λŠ₯듀을 μ•Œμ•„κ°ˆ 수 μžˆμ—ˆλ‹€. ν”„λ‘œμ νŠΈλ‘œ 클둠코딩을 ν•΄λ³΄λ©΄μ„œ μ›Ή νŽ˜μ΄μ§€λ₯Ό κ΅¬ν˜„ν•΄λ‚΄κΈ° μœ„ν•΄ κ³ λ €λ˜μ–΄μ•Ό ν•  것듀이 많으며 그것듀 ν•˜λ‚˜ν•˜λ‚˜λ₯Ό λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ HTML, CSS, JS μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€λŠ” 것이 쉽지 μ•Šλ‹€λŠ” 것을 κ²½ν—˜ν•  수 μžˆμ—ˆλ‹€. 이 μˆ˜μ—…μ„ 톡해 μ§€κΈˆκΉŒμ§€ λ°°μ›Œλ³΄μ§€ λͺ»ν•œ μƒˆλ‘œμš΄ λ‚΄μš©λ“€μ„ μ•Œμ•„κ°ˆ 수 μžˆμ–΄μ„œ μ’‹μ•˜κ³  μ›Ή ν”„λ‘œκ·Έλž˜λ° 뢄야에 관심을 κ°–κ²Œ λ˜λŠ” 계기가 λ˜μ—ˆλ‹€. μ•žμœΌλ‘œ 남은 2μ£Όλ™μ•ˆ λ”μš± νž˜μ„ λ‚΄μ„œ ν”„λ‘œμ νŠΈλ₯Ό 잘 λ§ˆλ¬΄λ¦¬ν•  수 μžˆμ—ˆμœΌλ©΄ μ’‹κ² λ‹€. ν•œ ν•™κΈ°λ™μ•ˆ 맀주 μ‹€μ‹œκ°„ μˆ˜μ—…μœΌλ‘œ ν•˜λ‚˜λΌλ„ 더 μš°λ¦¬μ—κ²Œ 도움이 λ λ§Œν•œ λ‚΄μš©λ“€μ„ κ°€λ₯΄μ³μ£Όλ €κ³  ν•˜μ…¨λ˜ κ΅μˆ˜λ‹˜κ»˜ κ°μ‚¬ν•˜λ‹€κ³  μ „ν•˜κ³  μ‹Άλ‹€πŸ˜Šλ³΅μŠ΅ν•  λ•Œ 이해가 잘 λ˜λ„λ‘ λ…Έμ…˜μ— μˆ˜μ—…μ—μ„œ 닀룬 λ‚΄μš©λ“€κ³Ό 그에 λŒ€ν•œ μ˜ˆμ‹œλ“€μ„ ν¬ν•¨ν•˜μ—¬ μž‘μ„±ν•΄μ£Όμ‹  κ°•μ˜μžλ£Œλ“€λ„ κ°λ™μ΄μ—ˆλ‹€βœ¨

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보