JS ํฌ๋๋ฆฌ์คํธ ์คํ 1
์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ตฌํ ํ๋ ํฌ๋๋ฆฌ์คํธ
โ๏ธ ์ฝ๋๋ฆฌ๋ทฐ ๋ชจ์ - Black Coffee
'ํ๋ฅญํ ์์ฌ์ํต์ ๋ธ๋์ปคํผ์ฒ๋ผ ์๊ทน์ ์ด๋ฉฐ, ํ์ ์ ๋ค๊ธฐ๊ฐ ์ด๋ ต๋ค'.
A.M. ๋ฆฐ๋๋ฒ๊ทธ(๋ฏธ๊ตญ์ ์๊ฐ, ์ํ๊ฐ) -
๋ธ๋์ปคํผ์ฒ๋ผ ์๋ก๋ฅผ ์๊ทนํด์ฃผ๊ณ , ๋๊ธฐ๋ถ์ฌ ํด์ฃผ๋ฉฐ, ๊ทธ ์ฑ์ฅ๊ณผ์ ์ผ๋ก ์ธํด ์๋ฏธ์๋ ๊ฐ์น๋ฅผ ๋ง๋ค์ด๋ด๊ณ ์ ํ๋
ํ๋ก ํธ์๋ ์ฝ๋๋ฆฌ๋ทฐ ๋ชจ์ โ๏ธ Black Coffee์
๋๋ค.
๐ฅ Projects!
๐ฏ ์๊ตฌ์ฌํญ
- todo list์ todoItem์ ํค๋ณด๋๋ก ์ ๋ ฅํ์ฌ ์ถ๊ฐํ๊ธฐ
- todo list์ ์ฒดํฌ๋ฐ์ค๋ฅผ ํด๋ฆญํ์ฌ complete ์ํ๋ก ๋ณ๊ฒฝ (li tag ์ completed class ์ถ๊ฐ, input ํ๊ทธ์ checked ์์ฑ ์ถ๊ฐ)
- todo list์ x๋ฒํผ์ ์ด์ฉํด์ ํด๋น ์๋ฆฌ๋จผํธ๋ฅผ ์ญ์
- todo list๋ฅผ ๋๋ธํด๋ฆญํ์ ๋ input ๋ชจ๋๋ก ๋ณ๊ฒฝ (li tag ์ editing class ์ถ๊ฐ) ๋จ ์ด๋ ์์ ์ ์๋ฃํ์ง ์์ ์ํ์์ escํค๋ฅผ ๋๋ฅด๋ฉด ์์ ๋์ง ์์ ์ฑ๋ก ๋ค์ view ๋ชจ๋๋ก ๋ณต๊ท
- todo list์ item๊ฐฏ์๋ฅผ countํ ๊ฐฏ์๋ฅผ ๋ฆฌ์คํธ์ ํ๋จ์ ๋ณด์ฌ์ฃผ๊ธฐ
- todo list์ ์ํ๊ฐ์ ํ์ธํ์ฌ, ํด์ผํ ์ผ๊ณผ, ์๋ฃํ ์ผ์ ํด๋ฆญํ๋ฉด ํด๋น ์ํ์ ์์ดํ ๋ง ๋ณด์ฌ์ฃผ๊ธฐ
๐ฏ๐ฏ ์ฌํ ์๊ตฌ์ฌํญ
- localStorage์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ, TodoItem์ CRUD๋ฅผ ๋ฐ์ํ๊ธฐ. ๋ฐ๋ผ์ ์๋ก๊ณ ์นจํ์ฌ๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์ด์ผ ํจ
๐ ์ฐธ๊ณ ์ฌํญ
TodoItem
์ ์ถ๊ฐํ ์ ์๋ ํ
ํ๋ฆฟ์ ํ์ฉํ๋ฉด ๋ฉ๋๋ค.
<ul id="todo-list" class="todo-list">
<li>
<div class="view">
<input class="toggle" type="checkbox"/>
<label class="label">์๋ก์ด ํ์ดํ</label>
<button class="destroy"></button>
</div>
<input class="edit" value="์๋ก์ด ํ์ดํ" />
</li>
<li class="editing">
<div class="view">
<input class="toggle" type="checkbox" />
<label class="label">์๋ฃ๋ ํ์ดํ</label>
<button class="destroy"></button>
</div>
<input class="edit" value="์๋ฃ๋ ํ์ดํ" />
</li>
<li class="completed">
<div class="view">
<input class="toggle" type="checkbox" checked/>
<label class="label">์๋ฃ๋ ํ์ดํ</label>
<button class="destroy"></button>
</div>
<input class="edit" value="์๋ฃ๋ ํ์ดํ" />
</li>
</ul>
โ๏ธ Before Started
๋ก์ปฌ์์ ์๋ฒ ๋์์ ์์ฝ๊ฒ static resources ๋ณ๊ฒฝ ๋ฐ ํ์ธํ๋ ๋ฐฉ๋ฒ
๋ก์ปฌ์์ ์น์๋ฒ๋ฅผ ๋์ html, css, js ๋ฑ์ ์ค์๊ฐ์ผ๋ก ์์ฝ๊ฒ ํ
์คํธํด ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด์๋ ์ฐ์ npm์ด ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. ๊ตฌ๊ธ์ npm install
์ด๋ ํค์๋๋ก ๊ฐ์์ ์ด์์ฒด์ ์ ๋ง๊ฒ๋ npm์ ์ค์นํด์ฃผ์ธ์. ์ดํ ์๋์ ๋ช
๋ น์ด๋ฅผ ํตํด ์ค์๊ฐ์ผ๋ก ์นํ์ด์ง๋ฅผ ํ
์คํธํด๋ณผ ์ ์์ต๋๋ค.
npm install -g live-server
์คํ์ ์๋์ ์ปค๋งจ๋๋ก ํ ์ ์์ต๋๋ค.
live-server ํด๋๋ช
๐ป Code Review
์๋ ๋งํฌ๋ค์ ์๋ ๋ฆฌ๋ทฐ ๊ฐ์ด๋๋ฅผ ๋ณด๊ณ , ์ข์ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ๋ฅผ ๋ง๋ค์ด ๋๊ฐ๋ ค๊ณ ํฉ๋๋ค.
๐ฌ 1์ฃผ์ฐจ ๋ฏธ์ ํ๊ธฐ ๋ธ๋ก๊ทธ
์๋ ๋งํฌ๋ 1์ฃผ์ฐจ ๋ฏธ์ ์ ์งํํ๋ฉด์ ๋ธ๋ก๊ทธ๋ฅผ ์์ฑํด์ฃผ์ ๋ถ๋ค์ ๊ธ์ ๋๋ค. ๋ฏธ์ ์ ์งํํ๋ฉด์, ๋ค๋ฅธ ๋ถ๋ค์ ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ์ด ๊ถ๊ธํ๋ค๋ฉด ์ฐธ๊ณ ํด์ฃผ์ธ์ ๐
- 1์ฃผ์ฐจ ๋ฏธ์ ํ๊ธฐ
- ๋ธ๋์ปคํผ ํ๋ก ํธ์๋ ์คํฐ๋ ๋ ๋ฒจ1 ํ๊ธฐ
- ๋ธ๋์ปคํผ ํ๋ก ํธ์๋ ์คํฐ๋ ํ๊ณ
- ๋ธ๋์ปคํผ ์คํฐ๋ ๋ ๋ฒจ1 ๋ฆฌ๋ทฐ
๐๐ผ Contributing
๋ง์ฝ ๋ฏธ์ ์ํ ์ค์ ๊ฐ์ ์ฌํญ์ด ํ์ํ๋ค๋ฉด, ์ธ์ ๋ ์์ ๋กญ๊ฒ PR์ ๋ณด๋ด์ฃผ์ธ์.
๐ Bug Report
๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ๋ค๋ฉด, Issues์ ๋ฑ๋กํด์ฃผ์ธ์.
๐ License
This project is MIT licensed.