๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
๋ฆฌ์กํธ to do list ์ฑ
๋ฆฌ์กํธ๋ฅผ ์ฒ์ ์ ํ์ ๋ค๋ฉด, ๊ฐ๋จํ ํ๋ก์ ํธ๋ฅผ ํตํด ๊ธฐ์ด ๊ฐ๋ ์ ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ "To-Do ๋ฆฌ์คํธ" ์ฑ์ ๋จ๊ณ๋ณ๋ก ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ฅผ ํตํด ๋ฆฌ์กํธ์ ์ปดํฌ๋ํธ, ์ํ ๊ด๋ฆฌ, ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฑ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.1. ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ (ํ๋ก์ ํธ ์์ฑ)๋จผ์ , ๋ฆฌ์กํธ ๊ฐ๋ฐ์ ์ํ ํ๊ฒฝ์ ๊ตฌ์ฑํ๊ฒ ์ต๋๋ค. ์๋์ ๋ช ๋ น์ด๋ก ์๋ก์ด ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.1-1. Node.js ์ค์นNode.js๊ฐ ์ค์น๋์ด ์์ง ์๋ค๋ฉด Node.js ๊ณต์ ์น์ฌ์ดํธ์์ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํฉ๋๋ค.1-2. ์๋ก์ด ๋ฆฌ์กํธ ํ๋ก์ ํธ ์์ฑํฐ๋ฏธ๋ ๋๋ ๋ช ๋ น ํ๋กฌํํธ๋ฅผ ์ด๊ณ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์์ฑํฉ๋๋ค.bash์ฝ๋ ๋ณต์ฌnpx create-react-app todo-app์..
๋ ธ๋ฒ ์ด์ค ์ํ์์ ๊ฐ๋ฐ ํ๋ก์ ํธ ๋ง๋๋ ๋ฒ
๋ ธ๋ฒ ์ด์ค ์ํ์์ ๊ฐ๋ฐ ํ๋ก์ ํธ ๋ง๋๋ ๋ฒ ์์ฝํ๋ก์ ํธ ์ถ์ฒ ์ฃผ์ ์์ด๋ณด ๋ธ๋ก๊ทธ/์ผ๊ธฐ/๋ฉ๋ชจ์ฅ -ํ ์คํธ๋ฅผ CRUDํ๋ ํ๋ก๊ทธ๋จ -๊ฐ๋ฐ์์ ๊ฐ์ฅ ๋ง์ด ํ๋ ์์ ์ผ๋ก ์ฐ์ตํ๊ธฐ ์ข์ -์๋ฃ๊ฐ ๋ง๊ณ ์์ํ๊ธฐ ์ข์ -๊ฐ๋ฐ๊ธฐ๊ฐ ํ๋ฌ ์ด๋ณด ๊ฒ์ํ/์ปค๋ฎค๋ํฐ (์ฌ๋ฌ๋ช ์ด ์ธ ์ ์๋ ๋ธ๋ก๊ทธ/์ผ๊ธฐ/๋ฉ๋ชจ์ฅ) ํ์๊ฐ์ /๋ก๊ทธ์ธ (์ธ์ฆ) ์ด ๊ฒฐํฉ๋จ -๊ฐ๋ฐ๊ธฐ๊ฐ ์๋ฌ ์ ํธ๋ฆฌํฐ์ฑ ์ฑ/์น ์ค๋ฌธ์กฐ์ฌ, ๋์นํ์ด, ์๋, ์๊ณ ๊ธฐํ ๋ฑ๋ฑ ์ฝ์ ํธ๋ ๋ ์ฐฝ์ ์ด์ง๋ง, ์๋์ ์ผ๋ก ์คํ์ ์ค์ธ ํ๋ก๊ทธ๋จ (ํ๋ฉด 4ํ์ด์ง) -๊ฐ๋จํ๊ณ , ์ฐฝ์์ ์ด๊ณ , ์ฌ๋ฏธ์๊ณ , ์ค๊ณ ์ฐ์ต ๊ฐ๋ฅ ๊ฐ๋ฐ ๋์ด๋๋ฅผ ์ฌ๋ฆฌ๋ ์ฃผ์ -์ฒซํธ๊ฐ ํ๋๋ชจ๋์ผ ํ์๋ ์์ -๋์ด๋๊ฐ ๋๊ณ , ์์ ๋์ด ๋ง์ ํ์๊ฐ์ /๋ก๊ทธ์ธ ์์น๊ธฐ๋ฐ ์์ ๋ก๊ทธ์ธ ํธ์ ์๋ฆผ ์น,์ฑ ๋์๊ฐ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์ ์ ๋ก๋ ๋์์ ์ฌ..
ใ ใ
function copyTableToClipboard() { const table = document.querySelector('table'); let textToCopy = ''; for (let row of table.rows) { let rowData = []; for (let cell of row.cells) { // HTML์ ํ ์คํธ๋ก ๋ณํํ๊ณ ์ค๋ฐ๊ฟ ํ๊ทธ๋ฅผ ์ค๋ฐ๊ฟ ๋ฌธ์๋ก ๋ณํ let cellText = cell.innerHTML .replace(//gi, '\n') // ํ๊ทธ๋ฅผ \n์ผ๋ก ๋์ฒด .replace(/]+>/gi, '') // HTML ํ๊ทธ๋ฅผ ์ ๊ฑฐ .trim(); // ์ฌ๋ฐฑ ์ ๊ฑฐ rowData.push(cellText); } textToCopy += rowData.join('\t') ..
ใ ใ
import java.util.ArrayList; import java.util.List; public class CustomParser { public static void main(String[] args) { String inputData = "๊ฐ\r\n" + "\"๋\r\n" + "๋ค\"\r\n" + "๋ผ\r\n"; List parsedValues = parseInputData(inputData); // ํ์ฑ๋ ๊ฐ๋ค์ ์ถ๋ ฅํ์ฌ ํ์ธ for (String value : parsedValues) { System.out.println(value); } } public static List parseInputData(String inputData) { List result = new ArrayList()..
ํ ์ด๋ธ ํด๋ฆฝ๋ณด๋ ๋ณต์ฌ
function copyRowToClipboard(rowIndex) { // ํ ์ด๋ธ ์์ ๊ฐ์ ธ์ค๊ธฐ const table = document.getElementById("data-table"); // ์ธ๋ฑ์ค๊ฐ 1๋ถํฐ ์์ํ๋ฉด ํค๋๋ฅผ ์ ์ธํ ์ฒซ ๋ฒ์งธ ํ์ด๋ฏ๋ก, ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. const row = table.rows[rowIndex]; if (!row) { alert("Row not found"); return; } // ๊ฐ ์ ์ ๊ฐ์ ํญ์ผ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด๋ก ์์ฑ let rowData = []; for (let cell of row.cells) { // ์ ์ ์ ๋ ฅ ๊ฐ ๋๋ ์ ํ๋ ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค. let value; if (cell.querySelector('input')) { value = cell.q..
์์ ๋ณต์ฌ ๊ฐ ํ์ฑ, Selenium WebDriver๋ฅผ ํตํด ๋ธ๋ผ์ฐ์ ์๋ํ
๊ด๋ฆฌ์ ์ฝ์ SP๋ช : SP์ค๋ช : IRP์ฝ๋: ์ ์ฅ โpackage com.example.demo;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.chrome.ChromeDriver;import io.github.bonigarcia.wdm.WebDriverManager;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.a..
๋น์ฃผ์ผ ์คํ๋์ค ๋๋ฒ๊น ๋จ์ถํค ์ค๋จ์
F5 : ๋๋ฒ ๋ชจ๋ ์คํ F5 : ๋ค์ ์ค๋จ์ ๊น์ง F9: ์ค๋จ์ ์ง์ (์ฝ๋์ ์ปค์ ์ฌ๋ ค๋๊ณ ) Ctrl Shift F9 : ๋ชจ๋ ์ค๋จ์ ์ญ์ F10 : ์คํ ์ค๋ฒ, ๋ค์ ์ค๋ก F11 : ์คํ ์ธํฌ, ํจ์ ๋ด๋ถ๋ก ์ง์
์ ํ ํฌ ํ์ด์ฌ 05 ํ์ด์ฌ ๋ ๊ฐ ๋ฌ๊ธฐ ๋์๊น ๋ฌธ์
#1. Calculator ํจ์๋ฅผ ์์ํ๋ UpgradeCalculator๋ฅผ ๋ง๋ค๊ณ , ๊ฐ์ ๋บ ์ ์๋ minus ๋ฉ์๋ ์ถ๊ฐํ๊ธฐ class Calculator: def __init__(self): self.value = 0 def add(self, val): self.value +=val class UpgradeCalculator(Calculator): def minus(self, val): self.value -= val cal = UpgradeCalculator() cal.add(10) cal.minus(7) print("1๋ฒ ",cal.value) #2. ๊ฐ์ฒด๋ณ์ value๊ฐ 100์ด์์ ๊ฐ์ ๊ฐ์ง ์ ์๋๋ก ์ ํํ๋ MaxLimitCalculator ํด๋์ค ๋ง๋ค๊ธฐ (Calculator ํด๋์ค ์..