๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    ๋ฆฌ์•กํŠธ 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 ํด๋ž˜์Šค ์ƒ..