ALOHA CLASS
/
Front-End
/
Javascript
Search
Duplicate
Share
Javascript
์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด
Javascript ๊ธฐ์ด
JavaScript ์๊ฐ
์น ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ๋ง๋ค๊ณ ์ฌ์ฉ์์ ์ํธ ์์ฉํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
Node ๋ฐํ์ ํ๊ฒฝ์์ ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ๋ ๋ฐ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์ฃผ์ ํน์ง
๊ธฐ๋ณธ ์ฉ์ด
JavaScript ์๊ฐ ๋ฐ ๊ธฐ์ด
๋ณ์
๊ฐ์
โข
๋ณ์
โข
๋ณ์ ์ ์ธ
โข
let vs var
โข
์์
๋ณ์
์๋ฃํ
์๋ฃํ ๋ถ๋ฅ
โข
๋ฌธ์์ด ์๋ฃํ
โข
์ซ์ ์๋ฃํ
โข
๋ถ ์๋ฃํ
โข
undefined
์๋ฃํ
์ฐ์ฐ์
์ฐ์ฐ์ ๋ถ๋ฅ
โข
์ฐ์ ์ฐ์ฐ์
โข
๋์ ์ฐ์ฐ์
โข
๋น๊ต ์ฐ์ฐ์
โข
๋ ผ๋ฆฌ ์ฐ์ฐ์
โข
๋ฌธ์์ด ์ฐ์ฐ์
์ฐ์ฐ์
์ ์ด๋ฌธ
์ ์ด๋ฌธ ๋ถ๋ฅ
์ ์ด๋ฌธ
๋ฐฐ์ด
JavaScript ์์๋ ๋ฐฐ์ด ์์์ ์ฌ๋ฌ ์๋ฃํ์ ํผํฉํ์ฌ ์ ์ฅ ๊ฐ๋ฅ
JavaScript ์์๋ ๋ฐฐ์ด ์์๋ฅผ ์ถ๊ฐ/์ญ์ ๊ฐ๋ฅ
๋ฐฐ์ด
ํจ์
ํ์ต ์์
ํจ์
๊ฐ์ฒด
๊ฐ์ฒด
ํ๋กํ ํ์
DOM (Document Object Model)
โJavaScript ๋ก HTML ์ ์กฐ์ํ ์ ์๊ฒ ํด์ฃผ๋ ์ฐ๊ฒฐ ๋๊ตฌโ
์น ํ์ด์ง ๋ก๋ โ ๋ธ๋ผ์ฐ์ ๊ฐ DOM ์์ฑ
์์์ ๋ชฉ์ ๊ณผ ํน์ง์ ์ ์ํ๊ณ , ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณต
DOM์ HTML ๋ฌธ์์ ๊ณ์ธต์ ๊ตฌ์กฐ์ ์ ๋ณด๋ฅผ ํํํ๋ฉฐ, ์ด๋ฅผ ์ ์ดํ ์ ์๋ ํ๋กํผํฐ์ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.
DOM ์ ์ด์ฉํ ์์
โข
HTML ์์ ๋ฐ
์์ฑ
์ ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ ๊ฑฐ
โข
HTML ์์์ CSS
์คํ์ผ
์ถ๊ฐ, ๋ณ๊ฒฝ, ์ ๊ฑฐ
DOM
BOM (Browser Object Model)
โข
Window
โข
Screen
โข
Location
โข
History
Window
์ฐฝ(ํ์ ์ฐฝ) ์ด๊ธฐ, ๋ซ๊ธฐ, ์ด๋, ํฌ๊ธฐ ํ์ธ ๋ฐ ์กฐ์ ๋ฑ์ ํ ์ ์๋ค.
BOM
ECMAScript
ECMAScript
ECMAScript๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ธ JavaScript์ ํ์ค ๊ท๊ฒฉ์ ์ ์ํ๋ ๊ท๊ฒฉ์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฒ์ ์ ๋ํ๋ด๋ ์ด๋ฆ์ด๋ผ๊ณ ์๊ฐํด๋ ์ข์ต๋๋ค. ์ค์ ๋ก, ECMAScript๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ์ ์ธ ๋์, ๋ฐ์ดํฐ ํ์ , ๊ฐ์ฒด, ๋ฌธ๋ฒ ๋ฑ์ ์ ์ํฉ๋๋ค.
์ฌ๋ฌ ๋ธ๋ผ์ฐ์ ์ JavaScript ์์ง์ ECMAScript ํ์ค์ ๋ฐ๋ฅด๋ฉฐ, ์๋ก์ด ECMAScript ๋ฒ์ ์ด ๋์ฌ ๋๋ง๋ค ์ด๋ฅผ ๊ตฌํํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๋ฐํ์ ํ๊ฒฝ์์ ๊ฐ๋ฐ์๊ฐ ์ต์ ์ ์ธ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
ECMAScript ํตํด JavaSscript ์ธ์ด์ ํ์ค์ ์ ์ํ๊ณ , ๋ธ๋ผ์ฐ์ (chrome, edge, firefox ๋ฑ) ๋ฐ JavaScript ์์ง์ด ์ด์ ๋ง์ถฐ ๊ฐ๊ฐ ๋ธ๋ผ์ฐ์ ์ ๋ฐํ์ ํ๊ฒฝ์์ ECMAScript ๋ผ๋ ํ์ค์ผ๋ก ๋์ํ ์ ์๋๋ก ๊ธฐ์ค์ ์ ์ํฉ๋๋ค. ์ด์ ๋ฐ๋ผ ๊ฐ๋ฐ์๋ค์ ๋ธ๋ผ์ฐ์ ๋ฐ ๋ฐํ์ ํ๊ฒฝ์ ํตํด, ECMAScript ํ์ค์ ๋ฐ๋ฅธ JavaScript ์ธ์ด์ ์ต์ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐํ์ ํ๊ฒฝ?
: ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์์ ์ปดํจํฐ ํ๊ฒฝ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ์ด๋ค ํ๋ก๊ทธ๋จ์ด๋ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋ ๋, ํด๋น ํ๋ก๊ทธ๋จ์ด ํ์๋ก ํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฆฌ์์ค์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ๊ฒฝ์ ๋งํฉ๋๋ค.
ECMAScript
AJAX(Asynchronous JavaScript and XML)
๋น๋๊ธฐ ์์ฒญ
๋๊ธฐ์
์์ฒญ ํ, ์๋ต์ด ์ฌ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.
๋น๋๊ธฐ์
์์ฒญ ํ, ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ์์ฒญ์ ๋ ํ๋ค.
๋น๋๊ธฐ ์์ฒญ
XMLHttpRequest
XMLHttpRequest
๋ ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ๊ฐ์ฒด๋ก, ๋น๋๊ธฐ์ ์ผ๋ก ์๋ฒ์ ํต์ ํ ์ ์๋๋ก ๋์์ค๋๋ค. ์ด๊ธฐ์ ์ฃผ๋ก ์ฌ์ฉ๋์์ผ๋, ์ฝ๋ฐฑ ์งํฅ์ ์ด๊ณ ๋ณต์กํ API ๊ตฌ์กฐ๋ก ์ธํด ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ๋จ์ ์ด ์์ต๋๋ค.
์ฃผ์ ์์ฑ ๋ฐ ๋ฉ์๋
XMLHttpRequest
fetch
JavaScript์์ ์ ๊ณตํ๋ API ์ค ํ๋๋ก, ๋คํธ์ํฌ ์์ฒญ์ ๋ง๋ค๊ณ ์๋ต์ ๋ค๋ฃฐ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
fetch
API๋ Promise๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, ๋น๋๊ธฐ์ ์ผ๋ก ๋คํธ์ํฌ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
fetch() ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ธ๋ผ์ฐ์ ๋ด์ฅ ํจ์๋ก, ๋คํธ์ํฌ์์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๋ ๋์์ ๊ฐ๊ฒฐํ๊ฒ ํํํฉ๋๋ค.ย fetch() ํจ์๋:
โข
์ฒซ ๋ฒ์งธ ์ธ์๋ก URL์ ๋ฐ์ต๋๋ค.
โข
๋ ๋ฒ์งธ ์ธ์๋ก ์ต์ ๊ฐ์ฒด๋ฅผ ๋ฐ์ต๋๋ค.
โข
Promise ํ์ ์ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
๋ฐํ๋ ๊ฐ์ฒด๋:
โข
API ํธ์ถ์ด ์ฑ๊ณตํ์ ๊ฒฝ์ฐ์๋ ์๋ต(response) ๊ฐ์ฒด๋ฅผ resolveํฉ๋๋ค.
โข
์คํจํ์ ๊ฒฝ์ฐ์๋ ์์ธ(error) ๊ฐ์ฒด๋ฅผ rejectํฉ๋๋ค.
fetch
jQuery AJAX
โข
jQuery ajax ๊ฐ๋ฐ๋ฌธ์
jQuery.ajax()
Data to be sent to the server. If the HTTP method is one that cannot have an entity body, such as GET, the data is appended to the URL.
AJAX๋?
โข
AJAX (Asynchronous JavaScript and XML)
ํต์ฌ ํฌ์ธํธ
์์ฒญ โ ์๋ต์ด ์ค๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ ํ๋ฉด์ ๊ณ์ ๋์ํ๋ค (๋น๋๊ธฐ)
$.ajax
axios
axios
๋ JavaScript์ HTTP ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๋ธ๋ผ์ฐ์ ์ Node.js ํ๊ฒฝ์์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
axios
๋ Promise๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๊ณผ ๋ค์ํ ์ค์ ์ต์ ์ ์ ๊ณตํ์ฌ ๋คํธ์ํฌ ์์ฒญ์ ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ๋์์ค๋๋ค.
Axios ๊ธฐ๋ณธ ๊ตฌ์กฐ
Axios์ ์ฃผ์ ๋ฉ์๋
axios
๊ฐ์
โข
Promise
โข
Promise ์ํ
โข
์ฃผ์ ๋ฉ์๋
โข
๊ธฐ๋ณธ ์์ ์ฝ๋
โข
API ํธ์ถ ์์ ์ฝ๋
Promise
๋น๋๊ธฐ ์์ ์ ์ฑ๊ณต ๋๋ ์คํจ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด
Promise
async & await
JavaScript์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐํธํ๊ฒ ๋ง๋๋ ํค์๋์ ๋๋ค.
โข
Promise
โข
async
โข
await
async
async
: "๋น๋๊ธฐ" ๋๋ "๋น๋๊ธฐ์"์ด๋ผ๋ ์๋ฏธ๋ก ํด์๋ฉ๋๋ค. ์์ด ๋จ์ด
asynchronous
์ ์ค์๋ง๋ก, ๋์์ ์ผ์ด๋์ง ์๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
await
await
: "๊ธฐ๋ค๋ฆฌ๋ค" ๋๋ "๋๊ธฐํ๋ค"๋ผ๋ ์๋ฏธ๋ก ํด์๋ฉ๋๋ค. ์์ด ๋์ฌ
await
์์ ์ ๋ํ ๊ฒ์ผ๋ก, ์ด๋ค ์ผ์ด ์๋ฃ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
async & await
์ด๋ฏธ์ง ์ฌ๋ผ์ด๋
slick
jQuery ๊ธฐ๋ฐ ์ด๋ฏธ์ง ์ฌ๋ผ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
slick - the last carousel you'll ever need
slick is a responsive carousel jQuery plugin that supports multiple breakpoints, CSS3 transitions, touch events/swiping & much more!
1.
slick ํ๋ฌ๊ทธ์ธ ๊ฐ์ ธ์ค๊ธฐ
2.
jQuery ๊ฐ์ ธ์ค๊ธฐ
3.
๋ด๊ฐ ๋ง๋ css / script ๊ฐ์ ธ์ค๊ธฐ
4.
์์ ๋ด์ฉ์ ํ ๋ฒ ํฌํจํ๊ธฐ
5.
์ด๋ฏธ์ง ์ฌ๋ผ์ด๋ HTML ์ฝ๋ ์์ฑ
6.
๊ธฐ๋ณธ ์คํ์ผ ์ง์ ํ๊ธฐ
7.
์ฌ๋ผ์ด๋ ์์ญ ๋ฐ์ํ ์ ์ฉํ๊ธฐ
8.
slick ์ฌ๋ผ์ด๋ ์์ํ๊ธฐ!
9.
๋ค์ํ ์ต์ ์ ์ฉํ๊ธฐ
slick
swiper ๋ผ์ด๋ธ๋ฌ๋ฆฌ
Swiper - The Most Modern Mobile Touch Slider
The Most Modern Mobile Touch Slider
1. swiper ํ๋ฌ๊ทธ์ธ ๊ฐ์ ธ์ค๊ธฐ
index.html
2. swiper HTML ๋ ์ด์์ ์ฝ๋
swiper
1. bx-slider ํ๋ฌ๊ทธ์ธ ๊ฐ์ ธ์ค๊ธฐ
2. bxslider HTML ๋ ์ด์์ ์ฝ๋
3. ๊ธฐ๋ณธ ์คํ์ผ ์ ์ฉํ๊ธฐ
bx-slider