์ค๋์ 3์ผ์ฐจ ์ฑ๋ฆฐ์ง ์ค์ด๋ค.
๋ฏธ์
์ ๋ด๊ฐ ํ ์ผ์ ๊ธฐ๋กํ๊ณ ๋ฌ์ฑ ์ฌ๋ถ๋ฅผ ์ฒดํฌํ ์ ์๋
To-Do ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ !
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ์ฌ DOM ์กฐ์ ๋ฐฉ๋ฒ ๋ฐ CRUD๋ฅผ ์ตํ๋ ์๊ฐ์ด ๋ ๊ฒ !
์ฐ์ todo.html ์ ์์ฑํ๋ค.

๊ทธ๋ฆผํ์ผ๋ก ์ด๋ค ์์ผ๋ก ํ๋ฉด์ ๊ตฌ์ํ ์ง ํ ๊ทธ๋ ค๋ณด๊ธฐ !

์ปจํ ์ด๋ ์์ธ ์คํ์ผ์ ๋ด๊ฐ ์์ฃผ ์ฐ๋ ํผ์ ๊ธ์ด ์๋ค.
์ด๋ฒ ์ปจ์ ์์์ ๊ทธ๋ฆฐ์ผ๋ก ํด๋ณด์ ๐ต
body ํ๊ทธ ์์ ์ ๋ชฉ + div ํ๊ทธ ์ง์ ํ๊ธฐ


ํ ์ผ์ ์ ๋ ฅํ๋ ์ ๋ ฅํผ์ ์ถ๊ฐํด๋ณด์


ํ ์ผ์ ์ฐ์ ์์๋ฅผ ์ง์ ํ ์ ์๋ select ๋ฐ์ค ์์ฑ + addํ ๋ฒํผ ์ถ๊ฐ



document.getElementById("addBtn").addEventListener("click", function () {
addTask();
});
function addTask() {
// ์
๋ ฅ ํ๋์์ ํ ์ผ๊ณผ ์ฐ์ ์์๋ฅผ ๊ฐ์ ธ์ค๊ธฐ
var taskInput = document.getElementById("taskInput");
var priorityCheckbox = document.getElementById("priorityCheckbox");
var task = taskInput.value;
var priority = priorityCheckbox.value;
if (task.trim() === "") {
alert("ํ ์ผ์ ์
๋ ฅํ์ธ์!");
return;
}
// ์๋ก์ด ๋ฆฌ์คํธ ์์ดํ
์์ฑ
var listItem = document.createElement("li");
listItem.innerHTML = "<strong>" + priority + "</strong>: " + task;
// ํ ์ผ ๋ชฉ๋ก์ ์ถ๊ฐ
document.getElementById("todoList").appendChild(listItem);
// ์
๋ ฅ ํ๋ ์ด๊ธฐํ
taskInput.value = "";
}
++ ์ถ๊ฐ ์ค๋ช

์ฐ์ ์์๋ฅผ ๋น๊ตํ ๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์์ด๋ณด๋ค๋ ์ซ์ ๊ฐ์ด ๋ ์ ํฉ !
โ ์ฐ์ ์์ ๊ฐ์ ์ซ์๋ก ๋ณ๊ฒฝ

์ฐ์ ์์ ์ ๋ ฌ ๋ฒํผ ์ถ๊ฐ

document.getElementById("sortBtn").addEventListener("click", function () {
sortTasksByPriority();
});
function sortTasksByPriority() {
var todoList = document.getElementById("todoList");
var items = todoList.children;
// ๋ฐฐ์ด๋ก ๋ณํ
var itemsArray = Array.from(items);
// ์ฐ์ ์์์ ๋ฐ๋ผ ์ ๋ ฌ
itemsArray.sort(function (a, b) {
var priorityA = getPriorityValue(a.innerText);
var priorityB = getPriorityValue(b.innerText);
if (priorityA < priorityB) return 1;
if (priorityA > priorityB) return -1;
return 0;
});
// ์ ๋ ฌ๋ ๋ชฉ๋ก์ผ๋ก ๊ต์ฒด
todoList.innerHTML = "";
itemsArray.forEach(function (item) {
todoList.appendChild(item);
});
}
function getPriorityValue(text) {
var match = text.match(/\d+/);
return match ? parseInt(match[0]) : 0;
}
getPriorityValue ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ํญ๋ชฉ์ ์ฐ์ ์์ ๊ฐ์ ์ถ์ถํ๋ค.
Array.from(items)๋ฅผ ์ฌ์ฉํ์ฌ HTMLCollection์ ๋ฐฐ์ด๋ก ๋ณํ
sort ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์ ๋ ฌ
์ ๋ ฌ๋ ๋ฐฐ์ด์ ๋ค์ ๋ชฉ๋ก์ ์ถ๊ฐํ๋ค.
์ฐ์ ์์ ๊ฐ ์ถ์ถ ํจ์ (getPriorityValue):
์ฃผ์ด์ง ํ
์คํธ์์ ์ซ์ ๋ถ๋ถ์ ์ถ์ถํ๊ธฐ ์ํด ์ ๊ท ํํ์์ ์ฌ์ฉํ๊ณ
์ซ์๋ฅผ ์ฐพ์ผ๋ฉด ๊ทธ ์ซ์๋ฅผ ์ ์๋ก ๋ณํํ์ฌ ๋ฐํํ๊ณ ,
์ซ์๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด ๊ธฐ๋ณธ ๊ฐ์ผ๋ก 0์ ๋ฐํํ๋ค.
๐ฅ ํ
์คํธ
๋ฒํผ์ ๋๋ฅด๋ฉด ์ฐ์ ์์๊ฐ ๋์ ์์ผ๋ก ์ ๋ ฌ๋๋ค !

์ฌ๊ธฐ๊น์ง ํ๋ฉด option ๊ฐ์ ์ซ์๋ก ๋ณํํ๊ธฐ ๋๋ฌธ์ ๋ณด๊ธฐ์๋ ์ฐ์ ์์๋ฅผ
ํ๋ณํ๊ธฐ ์ด๋ ค์ฐ๋ฏ๋ก ๋ฐ๊ฟ๋ณด์ !!
style ํ๊ทธ ์์ ๊ฐ ์ฐ์ ์์์ ๋ํ ํด๋์ค์ ์์์ ์ถ๊ฐ

ํด๋น ํด๋์ค๋ฅผ listItem์ ์ถ๊ฐํ๊ธฐ
์์ ์
listItem.innerHTML = "<strong>" + priorityText + "</strong>: " + task;
์์ ํ
listItem.innerHTML = "<strong class='priority-" + priority + "'>" + priorityText + "</strong>: " + task;

๋๋ฌด ์ฐํ๊ฐ ?.. ๋ ์ฐํ ๋ฒ์

์ถํ ์์ด์ฝ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์ !
์ ์ฒด / ํด๊ฒฐ / ๋ฏธํด๊ฒฐ ๋ฒํผ ์ถ๊ฐ


++ ๋์ ์ค๋ช ์ถ๊ฐ

ui ์์ ํ์ !!
์ด?? ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ ๋๋ง๋ค ์์ํ๊ฒ ๋ค์ฅ ๋ ์ฅํ๋ค

์ด๋ฆฌ ์ ๋ฆฌ ๋ง์ง๋ค๊ฐ ๋ญ๊ฐ ์กํ๊ธด ํ๋๋ฐ ์ํ์ด ๋๊ธด ํ๋๋ฐ ์ !
์ด๋ฒ์ ์งง๊ฒ ๊ธ์ ์ฐ๋ฉด ํ ๋ผ์ธ์ 2๊ฐ์ ๊ธ์ด ๋ค์ด๊ฐ๊ธฐ๋ ํ๋ค ์ด๋ง์ด๊ฐ

์ด๋ฒ์ ํ ์ค์ ๊ธ ํ๋๋ง ๋์ค๊ฒ๋ ๋๋๋ฐ ์ผ์ชฝ ์ ๋ ฌํด๋ ์ด๋ ๊ฒ ์๋ํ๊ฒ ๋ํ๋๋ค.


align-items: flex-start; ์์ฑ์ด #todoList ๋ด์ ๊ฐ ์์ดํ ์ ์ผ์ชฝ์ผ๋ก ์ ๋ ฌํด์ค๋ค !!
์ด์ ํ ๋ผ์ธ์ ํ๋์ ๊ธ๋ง ๋์ค๊ณ ์ผ์ชฝ์ผ๋ก ์ ๋ ฌ๋์ด ๋ํ๋๊ณ ์๋ค.

๊ณ ์น๊ณ ์ถ์ ๋ถ๋ถ์
1. ์ฒดํฌ๋ฐ์ค๊ฐ ์ฐ์ ์์ ๊ฐ ์ผ์ชฝ์ ์์น ํ์ผ๋ฉด ์ข๊ฒ ๊ณ
2. ์์ ,์ญ์ ๋ฒํผ์ด ํ
์คํธ ๊ธธ์ด์ ์๊ด ์์ด ์ค๋ฅธ์ชฝ์ ๊ณ ์ ๋๋ฉด ์ด๋จ๊น์ถ์๋ฐ
ํด๋ณด์ !!
๐ก ์ฒดํฌ๋ฐ์ค ์ผ์ชฝ ๋ฐฐ์น
checkbox๋ฅผ listItem์ ์ถ๊ฐํ ๋ ์ฐ์ ์์์ ํ ์ผ ์์ ์ถ๊ฐํ์ฌ li ์์์ ๋งจ์ฒ์์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ค !

๐ก ํ ์คํธ ๊ธธ์ด ์๊ด ์์ด ๋ฒํผ ๊ณ ์
createListItem ํจ์์ ์ถ๊ฐ ์ฝ๋
์์ ๊ณผ ์ญ์ ๋ฒํผ์ ๊ฐ์ธ๋ div ์์๋ฅผ ์์ฑํ ํ ์ด๋ฅผ listItem์ ๋ด์ ๋ฐํ

css ์์ -> ์์ ๊ณผ ์ญ์ ๋ฒํผ์ด ํ
์คํธ์ ์๊ด ์์ด ๋ฐฐ์น๋๋ค.

๊ฒฐ๊ณผ

++ ์ด๋ ๊ฒ ํ๋ฉด ์ฒดํฌ๋ฐ์ค ์ฒดํฌํ์ ๋ ๋ฒํผ๊น์ง ๊ฐ์ด ์ ๊ทธ์ด๊ณ
๋ฏธ์๋ฃ/์๋ฃ์ ์ด์ํ๊ฒ ๊ตฌ๋ถ๋์ด ๋ค์ด๊ฐ๊ณ
๊ทธ๊ฑธ ๊ณ ์น๋ฉด ๋ ์ ๋ ฌ์ด ๋ฐ๋๊ณ ํ๋๋ฅผ ๊ณ ์น๋ฉด ๋ค๋ฅธ๊ฒ ๋ฐ๋๋ค...
๋ฌดํ ๊ตด๋ ํ๋ค๊ฐ ๋น ์ ธ ๋์ด !!
gpt์์ด๋๋ ๊ณ์ ๋ฌดํ๊ตด๋ ์ ๋น ์ ธ ์๋ค๊ฐ
๋จธ๋ฆฟ์์ ์ง๋๊ฐ ์์ฑ ํ๋ position : fixed !!!!
์์ ๋ฒํผ ๊ฐ์ธ๊ณ ํ๋ ์ฝ๋๋ค ์น ์ง์ฐ๊ณ ์
๋ ฅํผ์ ๊ธ์ ์ ์ ํ ๊ฑธ๊ณ
์์ ,์ญ์ ๊ฐ ๋ฒํผ์ fixed ๋ก ๊ณ ์ ๊ฐ์ ๋ฃ์ด์ ๊ณ ์ ํด์ฃผ์๋ค.
์ด๊ฒ๋ณด๋ค ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์์ง๋ ๋ชจ๋ฅด์ง๋ง
์ฐ์ ๊ณ์ ํค๋งค๋ค๊ฐ ์ข ๋ ๊น๋ํด์ง๊ณ ์ฒดํฌ ์ ๊ทธ์ด๋ ๊ฒ๋ ์ ๋๋ค !!


์์ ๊ตฌํ js


๋ชจ๋ฌ ์ฐฝ ์์ฑ

๊ฒฐ๊ณผ
![]() | ![]() |
|---|