์ด๋ฃธ์ฝ๋ฉ ErumCoding
ํจ๊ป ๊ฟ์ ์ฝ๋ฉํด์! ๐
ํํ์ด์ง : erumcoding.com
์ ํ๋ธ : @erumcoding
๊ฐ์ฌ ์๊ฐ : dohaelee.github.io
Courses
Reviews
- JavaScript ES6+ Basic Core Grammar
- ITQ Korean language certification to be completed over the weekend
- JavaScript ES6+ Basic Core Grammar
- HTML5 & CSS3 Basic Grammar All-in-One
- After studying grammar, JavaScript Project 101
Posts
Q&A
์์ ์ฌ์์๋
์๋ ํ์ธ์ ๊ฒฝ๋ฏธ๋.์์คํ ์ด์ฉ์ ๊ด๋ จ๋ ๋ฌธ์๋ ์ ๊ฐ ๋ต๋ณ ๋๋ฆฌ๊ธฐ ์ด๋ ต์ต๋๋ค.๊ทธ๋์ ํด๋น ๋ด์ฉ ์ธํ๋ฐ ์ธก์ 1:1 ๋ฌธ์ ๋จ๊ฒจ ๋์๋๋ฐ์.12์ 25์ผ๋ถํฐ 1์ 1์ผ๊น์ง ์ธํ๋ฐ ํด๋ฌด๋ผ๊ณ ํฉ๋๋ค.์ดํ ์ฐ๋ฝ ๋ถํํ๋ค๊ณ ๋จ๊ฒจ๋์์ต๋๋ค~
- 0
- 2
- 35
Q&A
๋ชจ๋ํํธ ์ด๋ฐ ์งํ์ค ์ค๋ฅ
์คํฌ๋ ์๋ ํ์ธ์.์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ด ๋ถ๋ฌ์ ์ง์ง ์๋ ์ํฉ์ด ์๋ ๋ค์ํด์์์ฑํ์ ์ ์ฒด ์ฝ๋์ ์คํ ํ๊ฒฝ ์๋ ค์ฃผ์๋ฉด ๋ ์ ํํ ๋ต๋ณ์ด ๊ฐ๋ฅ ํ ๊ฒ ๊ฐ์ต๋๋ค!๋๊ธ๋ก ์ถ๊ฐํด์ฃผ์ธ์!
- 0
- 1
- 93
Q&A
์ค ์๋ฌ๊ฐ ๊ณ์ ๋์ใ ใ
์๋ ํ์ธ์ ๋ชจ์ง๋ฅดํธ๋.๋ณด๋๊น ๋ฐ์ดํฐ๋ products.json ์ด๊ณ ๋ถ๋ฌ์ค๋ ค๋ ๊ฒ์ product.json (s๊ฐ ๋น ์ง)์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ํ asssert ๋์ with ๋ฅผ ๋ฃ์ด ์๋ ์ฝ๋ ํ ์คํธ๋ก ์ฌ์ฉํ์๊ธธ ๋ฐ๋๋๋ค~ with ์ ๋ํ ๋ด์ฉ์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์ฉimport products from '../products.json' with { type: 'json' }; console.log(products.data);
- 0
- 2
- 111
Q&A
bmi ๊ณ์ฐ๊ธฐ ์ง๋ฌธ์์ต๋๋ค.
์๋ ํ์ธ์.display ํจ์ ์์์ ์ group ๋ณ์๋ฅผ ์ด๊ธฐํ ํ์ง ์๊ณ ๋ณ์๋ง ์ ์ธํ ์ด์ ๋ (๋ฌผ๋ก ์์ ํ๊ฒ ๊ณต๋ฐฑ ๋ฑ์ผ๋ก ์ด๊ธฐํ๋ฅผ ํด์ค๋ ์ข์ง๋ง) ๋ณ์์ ๋ค์ด๊ฐ ๊ฐ์ด ๋ฐ๋ก ์๋์์ ๊ฒฐ์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.์ค๋ช ์ ์๋ ์ฃผ์์ ์ฐธ๊ณ ํด์ฃผ์ธ์! const display = (bmi) => { const result = document.querySelector('.result'); // ์ฌ๊ธฐ์ ์ ์ธ๋ result๋ const ์์์ด๋ฏ๋ก ๋ฐ๋์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ค๋ ๊ฐ์ฒด๋ก ์ด๊ธฐํ๊ฐ ๋์ด์ผ ํฉ๋๋ค. const ์์๋ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๊ณ , ๊ฐ์ด ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. // ํน๋ณํ ์ด์ = ๊ฐ์ด ์ค๊ฐ์ ๋ณ๊ฒฝ ๋๊ฑฐ๋ ํ์คํ์ง ์์ ์ด์ฉ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋, ์๋ฐ์คํฌ๋ฆฝํธ๋ const๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ์๋ ๊ฒ์ด ์ข์ต๋๋ค. let group; // ์ฌ๊ธฐ์ group ๋ณ์๋ ์ ์ธ๋ง ๋๊ณ ์ด๊ธฐํ ๋์ง ์์์ต๋๋ค. // ๋ฐ๋ก ์๋ if ์์ ๊ฑธ๋ฆฌ๋ ๊ตฌ๊ฐ์์ ๊ฐ์ด ํ ๋น๋ฉ๋๋ค. // ์ if ์์์ ์ ์ธํ๋ฉด ์๋๋๋? = ๊ฐ๊ฐ์ ๋ณ์๊ฐ ์๋ ํ๋์ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ฐ์์ ์ ์ธํ ๊ฒ์ ๋๋ค. // ์ ์ ์ด์ ์์์ ์ด๊ธฐํ ํ์ง ์๋๋? = ์ฌ๊ธฐ ์ ๊ฐ์ ๊ฒฐ์ ํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ํด๋น ์์ ๊ฐ ๊ฐ๋จํ ์์ ๋ผ์ ์ด๋ ๊ฒ ํ ๋ฐ๋ฅ์ ๋ค ๋ณด์ด๊ฒ๋ ์์ฑ์ ํ๋๋ฐ์. ๊ผญ ์ด๋ ๊ฒ๋ง ํด์ผ ํ๋ค๋ ๋ฒ์น ๊ฐ์ ๊ฒ์ ์์ผ๋ฉฐ, ๋ง์ฝ ์ด ๊ตฌ์กฐ๊ฐ ์ซ๋ค๋ฉด ๊ฐ์ ๊ฒฐ์ ํ๋ ๊ตฌ๊ฐ์ ์ ํํ๊ฒ๋ ๋ก์ง์ ๋ณ๊ฒฝํ์๋ฉด ๋ฉ๋๋ค! (์ : ํ ์คํธ๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์, display ํจ์์์๋ ์ ๋ฐ์ดํธ๋ง ํด์ค๋ค) if (bmi >= 30.0) { group = '์ค๋ฑ๋๋น๋ง'; } else if (bmi >= 25.0) { group = '๊ฒฝ๋๋น๋ง'; } else if (bmi >= 23.0) { group = '๊ณผ์ฒด์ค'; } else if (bmi >= 18.5) { group = '์ ์'; } else { group = '์ ์ฒด์ค'; } result.innerText = `${bmi} โ ${group} ์ ๋๋ค.`; }; ๋ค์ ๋งํฌ๋ฅผ ํจ๊ป ์ฐธ๊ณ ํด๋ณด์๋ฉด ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/const
- 0
- 2
- 61
Q&A
flexbox์ grid
๋ ์ด์์์ ์ง๋๋ฐ ์ ๋ต์ ์์ต๋๋ค! ๊ทธ๋ฆฌ๋๋ ํ๋ ์ค๋ ์ ์ด์ ์ด๋ค ๊ตฌ์ฑ์ ๊ธฐํํ์ จ๋์ง๊ฐ ์ ์ผ ์ค์ํด์. ๊ทธ ๋ชจ์์ผ๋ก ๋ง๋ค ์ ์๋ค๋ฉด ๊ทธ๋ฆฌ๋๋ฅผ ์ผ๋ค๊ณ ํ๋ฆฐ ๊ฒ์ ์๋๋๋ค. ๋ํ ๋ชจ๋ฐ์ผ์ ๋ํ ๋ฐ์ํ ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ ์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ์์ ๊ฐ์ ๋์์ธ์ ์ ๋ถ ํ๋ ์ค๋ก ์ก์๋ ์ถฉ๋ถํ ๊ฒ ๊ฐ์ต๋๋ค ^^ํ ๋ง๋๋ก ๊ทธ๋ฆฌ๋๋ ํ๋ ์ค๋ 2๊ฐ ๋ค ๋ฐ๋์ ์ ์๊ณ ๊ณ์ ์ผ ํ๊ณ , ์ด๋ค ๊ฑธ ์ฐ๋๋ผ๋ ๋ณธ์ธ์ด ์๊ฐํ ๋ ์ด์์์ ์ก์ ์ ์์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ด๋ค ์์ผ๋ก ๋ ์ด์์์ ์ก์์ผ ํ๋์ง ๋ค์ํ ์ต์ ์ ๋ํ ์ดํด๊ฐ ๊ธฐ๋ณธ ๋์ด์ผ ํฉ๋๋ค. ๋ค๋ง ์ถ์ฒ์ ๋๋ฆฌ์๋ฉด, ๊ทธ๋ฅ ๊ฐ๋ก๋ ์ธ๋ก๋ ์์ฌ ์๊ธฐ๋ง ํ๋ฉด ๋๋ค๋ฉด ํ๋ ์ค๋ฅผ, ์กฐ๊ธ ๋ ํนํ ๊ตฌ์กฐ์ ๋ ์ด์์์ ๊ตฌ์ฑํด์ผ ํ๊ฑฐ๋, ์์ ํ ํ์์ ๊ท์น์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋๋ ๊ทธ๋ฆฌ๋๋ฅผ ์ฌ์ฉํ์๋ฉด ๋ ์ข์ต๋๋ค.
- 0
- 2
- 360
Q&A
#21 ๊ทธ๋ฆฌ๋ ๊ฐ์ ์ ๋ ฌ ๊ด๋ จ ์์ฑ
์์ฑํ์ ์ฝ๋์ ์์ ๊ด๊ณ๋ฅผ ์ ํํ ๋ณด์ฌ์ฃผ์๋ฉด ๋ ์ ํํ ๋ต๋ณ ๋๋ฆด ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค~
- 0
- 2
- 249
Q&A
์ฌ๋ฐ๊ฒ ์ ๋ฃ๊ณ ์์ด์~
safeArea๋ ์๋ ํ์ธ์.๋ค ํ์ต ์์๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ง ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ฐ๋ฐ ๊ฒฝํ์ด ๋ง์ง ์์ผ์๋ค๋ฉด, ๋ฅ๋ค์ด๋ธ ๊ฐ์๊ฐ ์กฐ๊ธ ์ด๋ ค์ธ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค๋ง, ์๋ ์ข์ ๊ฐ์์ด๋ ๋ฅ๋ค์ด๋ธ ์ฑ ๊ณผ ๊ฐ์๋ ๊ต์์ฒ๋ผ ๊ฐ๋ฐํ์๋ฉด์ ๊ณต๋ถํ์ ๋ ์ข์ ๊ฒ ๊ฐ์์~ ์ต์ข ์ ์ผ๋ก ๋ฆฌ์กํธ๋ก ํฌํด์ ๋ง๋ค๊ณ ์ถ์ผ์ ๊ฑฐ๋ผ๋ฉด, ์ด ๊ฐ์ ๋ค์ผ์๊ณ ๋ ๋ค์ ๋ฆฌ์กํธ ๊ฐ์๋ฅผ ๊ธฐ์ด๋ถํฐ ๋ค์ํ๊ฒ ๋ค์ด๋ณด์๋ฉด ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ^^๊ทธ๋ฆฌ๊ณ ES๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ค ๊ท๊ฒฉ์ด๊ณ , ํฌ๋กฌ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฑฑ์ ํ์ง ์์ผ์ ๋ ๋ฉ๋๋ค~https://www.w3schools.com/js/js_versions.asphttps://caniuse.com/
- 0
- 1
- 220
Q&A
bmi ๊ณ์ฐ๊ธฐ css๊ฐ ์ ์ฉ์ด ์๋ฉ๋๋ค
์๋ ํ์ธ์ ์ง๋ง๋.ํด๋น ์ค๋ฅ๋ ๊ฒฝ๋ก๊ฐ ์๋ชป ๋์์ ๊ฒฝ์ฐ ๋ฐ์ํฉ๋๋ค. ์์ ์ค์ธ ํด๋ /common/reset.css ๊ฒฝ๋ก์ ํด๋น ํ์ผ์ด ์กด์ฌํ๋์ง ํ์ธํด๋ณด์๊ณ , ๋ง์ฝ ๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ๋ ํ์ผ์ ์ถ๊ฐํ์ง ์์ผ์ จ๋ค๋ฉด ์ถ๊ฐํด์ฃผ์๋ฉด ๋ฉ๋๋ค.https://github.com/erumcoding/js-project-101/tree/main/common
- 0
- 1
- 301
Q&A
trello-app์์ ์ง๋ฌธ ์์ต๋๋ค
duswlskfk42๋ ์๋ ํ์ธ์. ๋จผ์ , dragOver์์ ๋งํ๋ ํ๊ฒ์ด๋, ๋๋๊ทธ-์ค๋ฒ ๋๊ณ ์๋ ๋์์ ์๋ฏธํ๋๋ฐ์. ์ด ์ด๋ฒคํธ๋ ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ๋ฌ๋ ค์๋ ๋ธ๋ก์์ ๋๋๊ทธ๊ฐ ์ด๋ฃจ์ด์ง๋ฉด ๋ฐ์ํฉ๋๋ค. (ํ์ฌ ๊ฐ๊ฐ todo, doing, done ๋ฆฌ์คํธ ๋ธ๋ก)๋ํ listIds๋ ์ ์ด ๋ฆฌ์คํธ์ ์ด๋ฆ (์์ด๋)๋ฅผ ๋ฝ์๋ด๊ธฐ ์ํด Object.keys๋ฅผ ์ฌ์ฉํด ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ฏ๋ก, todo, doing, done๋ง ๋์ค๋ ๊ฒ์ด ๋ง์ต๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก, ํ ์ผ์ ๋๋๊ทธ ํด์, listIds ๊ฐ ์ค ํ๋์ ๋์ผํ ์์ด๋๋ฅผ ๊ฐ์ง ๋ธ๋ก ์๋ก ๋๋๊ทธ ํ๋ค๋ฉด, to์ ํด๋น ๋ฆฌ์คํธ์ ์์ด๋ ๊ฐ์ ๋์ ํด ๋์ฐฉ์ง๋ฅผ ๊ทธ๊ณณ์ผ๋ก ์ค์ ํ๊ฒ ๋๊ณ , ๋๋๊ทธ๊ฐ ๋๋ ์์ ์ ์ถ๋ฐ์ง์ ๋์ฐฉ์ง๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ง dragEnd ํจ์์ ๋์์ ํตํด ์์๊ฐ ์ด๋ (์ค์ ๋ก๋ ์ถ๋ฐ์ง์์ ์ญ์ ํ ๋์ฐฉ์ง์์ ์๋กญ๊ฒ ์์ฑ)ํ๊ฒ ๋ฉ๋๋ค.์ฆ, ์ฌ๋ฐ๋ฅด๊ฒ ๋ธ๋ก ๋จ์๋ก ๋๋๊ทธ ๋์ด ํ๊ฒ ์์ด๋๊ฐ ๋ฆฌ์คํธ ๋ธ๋ก์ ์์ด๋ ์ค ํ๋๋ฅผ ๊ฐ์ง ์๋๋ค๋ฉด, uuid๋ ๋น์ฐํ listIds์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ํ์ง ์์ต๋๋ค. ๊ทธ๋์ ๋ฐ๋์ ๋ค๋ฅธ ๋ธ๋ก (์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ๋ฌ๋ ค ์๋ ๋ฆฌ์คํธ ๋ธ๋ก) ์์ ๋์์ผ๋ง ์ด๋ํ๋ ๊ฒ์ผ๋ก ๊ตฌํ์ด ๋ฉ๋๋ค. ๋ค์ ์ฝ๋๋ฅผ ํ ์คํธ ํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.const dragOver = (event) => { event.preventDefault(); const { id: targetId } = event.target; const listIds = Object.keys(lists); console.log(event.currentTarget.id); if (listIds.includes(targetId)) { to = targetId; } }; ๋ง์ฝ ์ ๋ด๋ถ ํ ์ผ ํญ๋ชฉ์์๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋์ง ์ด ๋ถ๋ถ์ ๋ ์์ธํ ์๊ณ ์ถ์ผ์๋ค๋ฉด, ์๋ฐ์คํฌ๋ฆฝํธ์ ์ด๋ฒคํธ ์ ํ ๋ฐฉ์ ๋ถ๋ถ, Event Target๊ณผ Current Target์ ์ฐจ์ด์ ๋ฑ์ ํจ๊ป ๊ณต๋ถํ์๋ฉด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
- 0
- 1
- 298
Q&A
๊นํ๋ธ ์๋ฃ์ bmi ๊ณ์ฐ๊ธฐ ๋ฌธ์
์๋ ํ์ธ์ ๊ทธ๋ ์ด๋ฃฉ์ผ๋!ํ์ผ ์ ์์์ ํ์ธํ์ต๋๋ค. index.html ํ์ผ ์๋จ์ ๋ค์๊ณผ ๊ฐ์ด 2๊ฐ์ ์คํ์ผ์ํธ ๊ด๋ จ ์ฝ๋๊ฐ ์์ต๋๋ค. ์ฐธ๊ณ ๋ก common ํ์ผ์ ๊ณตํต์ผ๋ก ์ฐ๋ ๋ถ๋ถ์ ๋๋ค!ํ์ธ ๊ฒฐ๊ณผ(์ฌ์ง)๋งํฌhttps://github.com/erumcoding/js-project-101/tree/main/commonhttps://github.com/erumcoding/js-project-101/blob/main/01-exercise/03-bmi-cal/style.css
- 0
- 1
- 282