![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPWcte%2FbtrHnR9nS02%2Fzub2HqDm3Iy5uF0n5JK1UK%2Fimg.png)
๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ์ง์์ด 1mm ๋ด๋ฆฐ ๋น์ฒ๋ผ ์์๋ ๋ง๋ ํ๋ ์์ .. this์ ๋ํ ์ค๋ช ๊ธ๋ค์ ๋ด๋ ๋๋ฌด์ง ์ดํดํ๊ธฐ๊ฐ ์ด๋ ค์ ๋ค. ์ด๊ฒ ๋ญ๊ฐ์ ๋ฐ๋ผ์ ๋ฌ๋ผ์ง๋๊ฑด ์๊ฒ ๋๋ฐ ๊ทธ๋์... ์ด๋ป๊ฒ ๋๋ค๋ ? ?.. ์งง๊ฒ ์๊ธฐํ์๋ฉด this๋ ๋๊ฐ ํธ์ถํ๋๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค. ์ด๋ ต๊ฒ๋ง ๋๊ปด์ก๋ this์ ๋ํด ์ ๋ฆฌํด ๋ณด์. ๊ทธ๋์ this๋?? ์ผ๋จ this์ ์ฌ์ ์ ์๋ฏธ๋ '์ด๊ฒ'์ด๊ธด ํ๋ฐ.. ๋ญ ๊ฐ๋ฆฌํค๋๋. ๋ฐ๋ก ์์ ์ด ์ํ ๊ฐ์ฒด๋ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์๋ค. C++์ด๋ JAVA์ ๊ฐ์ ํด๋์ค ๊ธฐ๋ฐ์ ์ธ์ด์์์ this๋ ํด๋์ค๊ฐ ์์ฑํ ์ธ์คํด์ค๋ค. ์ด๋ฏธ this๋ฅผ ์ ์ธํ๋ฉด์ ์์ฑ๋ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํจ๋ค๊ณ ๊ฒฐ์ ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ์ this๋ ์ข ํน์ดํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์์ th..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7m8zT%2FbtrFsX9Sye3%2FGTQanUHUt5fVKKH4PSYOAK%2Fimg.png)
์ ํ ์์ ์ธ์ ํ์ ์์ ํด๋์ค ๋ชจ๋ ์ง์ฐ๊ธฐ ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ํ๋ค๊ฐ ํ์ ์์๊ฐ ๋ง์ ์ํ์์ ํน์ ์์๋ฅผ ์ ํํ์ ๋๋ง is-active ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ณ , ๋๋จธ์ง ์์๋ค์ is-active ํด๋์ค๋ฅผ ์ด๋ป๊ฒ ์ง์ธ ๊ฒ์ธ๊ฐ...๋ฅผ ๊ณ ๋ฏผํ๋ค๊ฐ ์คํ ์ค๋ฒํ๋ก์ฐ์์ ๋ณด๊ณ ์ฐธ๊ณ ํ๊ฒ ๋์๋ค. ์์ ์ ์ ์ด์ฟผ๋ฆฌ๋ก๋ ํ์ค๋ก ์ฝ๊ฒ ํ๋ ๊ฒ ๊ฐ์๋ฐ ๋ฐ๋๋ผ JS๋ก๋ง ํ๋ ค๋๊น ์์ง ์ ์ฝ์ง ์์ ๊ฒ!!... ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ํ์ฌ play-button ์ด๋ผ๋ ๋์ผํ ํด๋์ค๋ฅผ ๊ฐ์ง ๋ฒํผ์ด 3๊ฐ ์๊ณ , ํด๋ฆญํ ์์์๋ง is-active๋ฅผ ์ถ๊ฐ, ๋๋จธ์ง๋ ์์๋๋ผ๋ ์์ ์ฃผ๋ ๊ฒ์ ์ํ๋ค. ํด๊ฒฐ function handlePlayerImage(e) { e.preventDefault(); const buttonGroup = this.pa..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcg91ti%2FbtrEvMakTsU%2Fto8ZIebN3rlcLXPKRyOIlk%2Fimg.png)
console. ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํ ๋, ์ฝ์์ ํตํด์ ๊ฐ์ ํ์ธํ๋ ์ผ์ด ๋ง๋ค. ์๋ง ์ฝ์์์ ์ ์ผ ๋ง์ด ์ฌ์ฉํ๋ ๋ฉ์๋๋ console.log ์ผ ๊ฒ์ด๋ค! ๊ทธ ์ธ ํ์ฌ ์์ฃผ ์ฌ์ฉํ๋ ๋ฉ์๋๊ฐ ์๋ค๋ฉด ๊ฐ๋ ๊ฐ์ฒด ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ console.dir ์ ๋ก๊ทธ๋ฅผ ๋ค ์ง์๋ฒ๋ฆฌ๋ console.clear() ์ ๋?.. ๋ด๊ฐ ์๊ฒ ์๊ณ ์์๋ console ๊ฐ์ฒด์ ๋ช๋ช ๋ฉ์๋๋ค ์ด์ธ์๋ ๋ค์ํ ๋ฉ์๋๋ค์ด ์๋ค๋ ๊ฒ์ ์ด๋ฒ ์ฑ๋ฆฐ์ง๋ฅผ ํตํด ์๊ฒ๋์ด ํ๋ฒ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. console.log ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋, ๋ก๊ทธ๋ฅผ ์ฐ๋ ๋ฉ์๋๋ค. ์ฌ๋ฌ ๊ฐ๋ฅผ ์ถ๋ ฅํ ์๋ ์๊ณ , C์ธ์ด์ printf์ฒ๋ผ ์ ๋ ฅํ ๋ฌธ์๋ฅผ ์นํํ์ฌ ์ฌ์ฉํ ์๋ ์๋ค! ํ์ง๋ง ์ฐ๋ฆฌ์๊ฒ ๋ ์ต์ํ ํ ํ๋ฆฟ ์คํธ๋ง ${..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FedFsre%2FbtrDWi2JQ9z%2FogQag4LWRHFIpHqmhayID0%2Fimg.png)
classList DOM์ ์กฐ์ํ์ฌ ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋, class ๋ช ์ ๋ฐ๊ฟ ๋ ๋ฑ ๋ค์ํ ์ํฉ์ ์ฌ์ฉํ ์ ์๋ classList ํ๋กํผํฐ. ์ฑ๋ฆฐ์ง๋ฅผ ์งํํ๋ค classList ํ๋กํผํฐ ์ค ๊ทนํ ์ผ๋ถ์ ๋ฉ์๋๋ง ์ฌ์ฉํ๊ณ ์์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. ์ํฉ์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ๋ ๊น๋ํ๊ฒ ์งค ์ ์๋ ๋ฉ์๋๋ ์๊ณ ํด์, ์ ์ฒด์ ์ผ๋ก ์ด๋ค ๋ฉ์๋๊ฐ ์๋์ง ํ๋ฒ ํ์ด๋ณด๋ ค ํ๋ค. add, remove ํ์ ์ฌ์ฉํ๋ ์ผ๋ถ์ ๋ฉ์๋.. ๊ฐ์ฅ ๊ฐํธํด์ ๊ทธ๋ฐ์ง ๊ธฐ์ต์ ์ค๋ ๋จ์์๋ ๊ฒ์ธ๊ฐ ์ถ๊ธฐ๋ ํ๋ค. ๐ค ์๋์ ๊ฐ์ด ๊ฐ๋จํ ์์๋ฅผ ๋ค ์ ์๋ค. ๋ฉ์๋ ์ด๋ฆ๋๋ก, ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ๋ ๋ฉ์๋๋ค. ์ฌ๋ฌ ๊ฐ๋ฅผ ๋์ดํ ์๋ ์๋ค. let li = document.createElement('li'); li.class..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsLbcV%2FbtrDd18klHv%2FHM40LCgt2gtBQ8ZwCZY2V1%2Fimg.png)
์๋ฐ์คํฌ๋ฆฝํธ ๋ง์ผ๋ก ์๋ ๋ก๊ทธ ์๊ณ ๋ง๋ค์ด๋ณด๊ธฐ๋ฅผ ์งํํ๋ค. ๋จผ์ ์๋ ๋ก๊ทธ ์๊ณ๋ฅผ ๋ง๋ ๋ค ๋ฐ๋ก ๋์งํธ ์๊ณ๋ ์ถ๊ฐํด์คฌ๋ค. ์๊ฒ ๋ ์ CSS์ ์์ฑ ์ค transform-origin ์ผ๋ก transform์ ๊ธฐ์ค์ ์ ์ก์ ์ ์๋ค. ์นจ์ ์กฐ์ ํ๋ ๊ฐ๋๋ฅผ ์ง์ ํ๋ ๋ฐฉ์์ ์ฌ๋ฌ๊ฐ์ง. ์ฒซ ๋ฒ์งธ ์ด์ ์ฒ์์ 12์ ๋ฐฉํฅ์ผ๋ก ๋ชจ๋ ์นจ์ ๊ณ ์ ์ํค๊ธฐ ์ํด rotate๋ฅผ 90๋๋ก ์ค์ ํด์ฃผ์๋๋, 12์ ๋ฐฉํฅ์ ๋์ฐฉํ ๋ ๋ง๋ค transform์ด ์๋ํ๊ฒ ์์ง์๋ค๊ฐ ๋ค์ ๋์์ค๋ ๊ฒ์ ๋ณผ ์ ์์๋ค. (๋๋ฌด ๋นจ๋ผ์ ์บก์ณ ๋ถ๊ฐ๋ฅ..) ์ด๊ฑด ์๋ง 444๋ ๊น์ง ๋์ด๋ฌ๋ค๊ฐ ๊ธ๊ฒฉํ๊ฒ 90๋๋ก ๋ณ๊ฒฝ๋๋ฉฐ ์๊ธฐ๋ ๋ฌธ์ ๊ฐ์๋ค. ๊ทธ๋์ ์๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ์นจ์ด 12์ ๋ฐฉํฅ์ ๋๋ฌํ์ ๋ transition ์๋๋ฅผ ์ ์ ์กฐ์ ํด์ฃผ๋ ๊ฒ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbecnzx%2FbtrAIOxrm85%2Fkzx7x5UufREffpubjjnQEK%2Fimg.png)
์ด๋ฒคํธ ๊ฐ์ฒด ์ฐ๋ฆฌ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋์ ์ธ ๊ธฐ๋ฅ์ ์ํด ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๊ณ ์ ํ ๋๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง, ํํ๋ค addEventListener()๊ณผ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณค ํ๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋์ ๊ฐ์ ์ด๋ฒคํธ ๊ฐ์ฒด event object๋ฅผ ๋ง๋ ๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฒคํธ๋ฅผ ์ด๋ป๊ฒ ๊ฐ์งํด์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ผ ์ ์๋ ๊ฒ์ผ๊น? ์ด๋ฐ ๊ถ๊ธ์ฆ์ ํด๊ฒฐํด์ฃผ๋ ์ด๋ฒคํธ๋ฅผ ๊ฐ์ง ํ๋ ํน์ฑ์ด ์๋ค. ๋ฐ๋ก ์ด๋ฒคํธ ๋ฒ๋ธ๋ง๊ณผ ์ด๋ฒคํธ ์บก์ณ๋ง, ๋ ๊ฐ์ง ๋ฐฉ์์ด๋ค. ์ด๋ฒคํธ ๋ฒ๋ธ๋ง Event Bubbling ์ด๋ฒคํธ ๋ฒ๋ธ๋ง์ ๋น๋๋ฐฉ์ธ์ด ์๋์์ ์ฌ๋ผ์ค๋ ๊ฒ๊ณผ ๋น์ทํ๊ฒ ์๊ฐํ๋ฉด ์ข ๋ ์์ํ ์ดํด๊ฐ ๊ฐ๋ฅํ๋ค. ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ํด๋น ์ด๋ฒคํธ๊ฐ ๋ ์์์ ์์๋ค๋ก ์ ๋ฌ๋๋ ํน์ฑ์ ๋งํ๋ค. Article๋ถํฐ Butt..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJfuWt%2FbtrADTS6ba3%2FiVSiiQbGb6P3YEIDyqap11%2Fimg.png)
๋ค์ด๊ฐ๋ฉฐ ์ฝ๋ฐฑ์ง์ฅ์ด๋ผ๋ ๊ฒ์ ๋ค์ด๋ณธ ์ ์ด ์๋์ง? ES6์ด ๋์ ๋๊ธฐ ์ด์ ์ ๋น๋๊ธฐ ์์ ์ ํ๊ธฐ ์ํด์๋ ์ฝ๋ฐฑํจ์๋ก ์ฒ๋ฆฌํ๋ค๊ณ ํ๋ค. ๋น๋๊ธฐ ์์ ์ผ๋ก ์ฒ๋ฆฌํด์ผํ๋ ์ผ์ด ๋ง์์ง์๋ก ํจ์๊ฐ ์ ์ ๋ ๊น์ด์ง๊ฒ ๋๋๋ฐ, ์ด๋ฅผ ํํ๋ค ์ฝ๋ฐฑ์ง์ฅ, ์ฝ๋ฐฑ ํฌ callback hell ์ด๋ผ๊ณ ๋ค ๋ถ๋ฅธ๋ค. ์์ ์งค๋ง ๋ณด์๋ ์ผ๋ง๋ ๊ฐ๋ ์ฑ์ด ์ข์ง ์์์ง...๐ ์ฐ๊ฒฐ์ ํ์ ํ๊ธฐ๊ฐ ์ฝ์ง ์๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ์ด๋ฐ ์ฝ๋ฐฑ ์ง์ฅ์ ํผํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ช๊ฐ์ง ์๋๋ฐ, ์ด ๊ธ์์๋ ํ๋ก๋ฏธ์ค Promise์ ๋ํด ์จ๋ณด๊ณ ์ ํ๋ค. ํ๋ก๋ฏธ์ค ํ๋ก๋ฏธ์ค๋ ES6์์ ๋์ ๋ ๊ฐ์ฒด๋ก, ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ํ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ฐ์ฒด์ด๋ค. ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ์ ๋ ์์ ์ด ์ฑ๊ณต์ด๋ , ์คํจ์ด๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํด์ค๋ค. ์๋์ ๊ฐ์ ํํ๋ก new ์ฐ์ฐ์๋ฅผ ํตํด..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdK2hvD%2FbtrAxNybSJp%2FbW6axXKXJqJtknn8FHvWfK%2Fimg.png)
Fetch API๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ ์ฐ์ต! JSONPlaceholder ์์๋ก jsonplaceholder ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ ค ํ๋ค. ์๋ฒ๊ฐ ์์ ๋ ๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ์ ์ ์ฉํ ์ฌ์ดํธ๋ค. https://jsonplaceholder.typicode.com/ ์ฌ์ฉํ ์ ์๋ ๋ฐ์ดํฐ ์์ค๋ค์ ์๋์ ๊ฐ๋ค. ์ด ์ค์์ users๋ฅผ ์ด์ฉํด๋ณด๋ ค ํ๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ HTTP ๋ฉ์๋๋ค์ ๋ค์๊ณผ ๊ฐ๋ค. REST API๋ฅผ ์ฐ์ตํด๋ณผ ๋๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค. Fetch API๋ก ๋ฐ์ดํฐ ๋ฐ์์ค๊ธฐ Fetch API Fetch API๋ XMLHttpRequest ๊ฐ์ฒด์์ ์ข ๋ ๋ณด์๋ API๋ก, ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ผ๋ฉด ๋๋ถ๋ถ ๋ด์ฅ๋์ด์๋ค. ๋น๋๊ธฐ ํต์ ์ ๋ง์ด ์ฌ์ฉ๋๋ ajax๋ฅผ ๋์ฒดํ์ฌ ํ์ด์ง์ ์..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclY0Zb%2FbtrAeOZNDI9%2FegG8WimGrK3Gthpxd8WCEk%2Fimg.png)
๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์ ์ ์ธ ๋ฐฉ๋ฒ์๋ var์ let, const๊ฐ ์๋ค๋ ์ฌ์ค์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์กฐ๊ธ ๊ณต๋ถํ๊ธฐ ์์ํ๋ฉด ๊ธ๋ฐฉ ์๊ฒ๋๋ ์ฌ์ค์ด๋ค. ๊ทธ๋ฆฌ๊ณ var ํค์๋๋ฅผ ์ง์ํด์ผํ๋ค๋ ๊ฒ์ ๋๋ต์ ์ผ๋ก ์ต๋ํ๊ฒ ๋๋ค. ์กฐ๊ธ ๋ ๊ฒ์์ ํด๋ดค๋ค๋ฉด const ํค์๋๋ ์ฌํ ๋น์ด ๋ถ๊ฐ๋ฅํ๋ ๋๋๋ก const ํค์๋๋ฅผ ์งํฅํ๊ณ , ์ฌํ ๋น์ด ํ์ํ ๊ฒฝ์ฐ์๋ง let ํค์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๋ ์ฌ์ค๊น์ง ์ ์ ์๋ค. ์ฌ๊ธฐ๊น์ง ์ข๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ค ์ด์ ๋๋ฌธ์ผ๊น? ๋ด ๋จธ๋ฆฟ์์ ์ ๋ฆฌํ๊ธฐ ์ํด์ ๋ช๊ฐ์ง ๊ฐ๋ ๊ณผ ํจ๊ป ์ด๋ฅผ ์์๋ณด๊ณ ์ ํ๋ค. ๊ทธ๋์ var ํค์๋๋ ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น? ๋ณ์ ์ค๋ณต ์ ์ธ์ด ๊ฐ๋ฅ ๋จผ์ let๊ณผ const ํค์๋๋ก ๋ณ์๋ฅผ ์ค๋ณต ์ ์ธํ ๊ฒฝ์ฐ์๋ ์ด๋ฏธ ์ ์ธ๋์๋ค๋ ์๋ฌ๊ฐ ๋จ์ง๋ง, var ํค์๋๋ก ์ ์ธํ ๋ณ์..
Comment