๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

javascript

(20)
javascript/์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ ์ผ๋‹จ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ž๋ฃŒํ˜•์„ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์›์‹œ ์ž๋ฃŒํ˜•Number, String, Boolean, null, undefined ๋“ฑ... ๊ฐ์ฒด๋„ ์•„๋‹ˆ๊ณ  method๋„ ๊ฐ€์ง€์ง€ ์•Š๋Š” ํƒ€์ž…๋ณ€์ˆ˜์— ์›์‹œ๊ฐ’์„ ์ €์žฅํ•˜๋ฉด ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์ €์žฅ๋˜๋ฉฐ, ํ• ๋‹นํ•œ ๋ณ€์ˆ˜๋ฅผ ์กฐ์ž‘ํ•˜๋ฉด ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์กฐ์ž‘๋œ๋‹ค. ์ฐธ์กฐ ์ž๋ฃŒํ˜•๋ฐฐ์—ด, ๊ฐ์ฒด, ํ•จ์ˆ˜ ๋“ฑ...๋ณ€์ˆ˜์— ์ฐธ์กฐ ์ž๋ฃŒํ˜•์„ ์ €์žฅํ•˜๋ฉด ๋ณ€์ˆ˜์— ๊ฐ’์ด ์•„๋‹Œ ์ฃผ์†Œ(๊ฐ์ฒด ์ฐธ์กฐ, ์œ„์น˜ ๊ฐ’)๋ฅผ ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„(heap)์— ์ €์žฅํ•˜๊ณ ,๊ทธ ๊ณต๊ฐ„์„ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ์†Œ๊ฐ’์„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์ฆ‰ ์ฐธ์กฐ ์ž๋ฃŒํ˜•์„ ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ํ•ด๋‹น ๊ฐ์ฒด์˜ ์ฐธ์กฐ๋ฅผ ์กฐ์ž‘ํ•จ=> ๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋“  ์†์„ฑ์ด ๋ณ€๊ฒฝ..
javascript/chart.js๋กœ ๊ทธ๋ž˜ํ”„ ๋งŒ๋“ค๊ธฐ chart.js๐Ÿ“Š: 8๊ฐœ์˜ ์ฐจํŠธ ์œ ํ˜•์„ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ https://www.chartjs.org/docs/latest/getting-started/ Getting Started | Chart.jsGetting Started Let's get started with Chart.js! Alternatively, see the example below or check samples. Create a Chart In this example, we create a bar chart for a single dataset and render it on an HTML page. Add this code snippet to your page: You shouldw..
250313 to-do ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ (2) https://hydeveloper.tistory.com/170 ์—์„œ ์•„์ง ํ•˜์ง€ ๋ชปํ•œ ์‹ฌํ™” ๊ณผ์ œ (3) : ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ์œผ๋กœ ์š”์†Œ์˜ ์œ„์น˜ ๋ฐ”๊พธ๊ธฐ (์ •๋ ฌํ•˜๊ธฐ) ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•œ๋‹ค.  ์ด์— ์•ž์„œ draggable ์†์„ฑ๊ณผ drag ์ด๋ฒคํŠธ๋ฅผ ์•Œ์•„๋‘ฌ์•ผ ํ•œ๋‹ค. draggable ์†์„ฑ draggable = "true"๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด ์–ด๋–ค ์š”์†Œ๋“  ๋“œ๋ž˜๊ทธ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.   drag ์ด๋ฒคํŠธ (mdn : https://developer.mozilla.org/ko/docs/Web/API/HTMLElement/drag_event) drag๋“œ๋ž˜๊ทธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋Œ€์ƒ์—์„œ ๋ฐœ์ƒdragstart๋“œ๋ž˜๊ทธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ๋ฐœ์ƒdragend๋“œ๋ž˜๊ทธ๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๋ฐœ์ƒdragover๋“œ๋ž˜๊ทธํ•˜๋ฉด์„œ ๋งˆ์šฐ์Šค๊ฐ€ ๋Œ€์ƒ ๊ฐ์ฒด ์œ„์— ์žˆ์„ ๋•Œ ๋ฐœ์ƒdr..
250313 to-do ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ (1) ์ฑŒ๋ฆฐ์ง€์—์„œ ์‹ฌํ™”๊ณผ์ œ (๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€, ์ฒดํฌ๋ฐ•์Šค)๋ฅผ  ์ถ”๊ฐ€ํ•œ ๊ธ€์ด๋‹ค.  ํ•„์ˆ˜ ์กฐ๊ฑดindex.html์— ์žˆ๋Š” input ์š”์†Œ์— ์ž…๋ ฅ๋œ ๊ฐ’(value)๊ณผ button ์š”์†Œ๋ฅผ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.์ƒˆ๋กœ์šด li ์š”์†Œ๋ฅผ ๋งŒ๋“ค๊ณ  input ์š”์†Œ์— ์ž…๋ ฅ๋œ ๊ฐ’์„ textContent๋กœ ๊ฐ–๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.li ์š”์†Œ๋Š” ํด๋ฆญํ•˜๋ฉด ํ•ด๋‹น li ์š”์†Œ๊ฐ€ ์ง€์›Œ์ง€๋Š” delete ๋ฒ„ํŠผ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž…๋ ฅ์ฐฝ์€ ์ดˆ๊ธฐํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.๋งŒ์•ฝ ์ž…๋ ฅ์ฐฝ์— ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ alert๋กœ ์œ ์ €์—๊ฒŒ ์ž…๋ ฅ์„ ์š”์ฒญํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.3.์˜ ์‚ญ์ œ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ ๐Ÿ”ฝconst deleteBtn = document.createElement('button'); deleteBtn.onclick = function () { this.parentElement.remov..
javascript/var๋ฅผ ๋”์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ  ์ฐธ๊ณ ๋ชจ๋˜์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Divehttps://velog.io/@wksh229/JavaScript-var-%EC%93%B0%EC%A7%80%EB%A7%88-%EC%A0%9C%EB%B0%9Chttps://batcave.tistory.com/39https://valueengine.tistory.com/15    var์˜ ํŠน์ง• var๋Š” variable(๋ณ€์ˆ˜)์˜ ์ค€๋ง๋กœ, Javascript ES5์—์„œ๋Š” var ํ‚ค์›Œ๋“œ๋งŒ์ด ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ES6๋ถ€ํ„ฐ๋Š” let, const ํ‚ค์›Œ๋“œ๋ฅผ ์ง€์›ํ•˜๋ฉด์„œ var์˜ ์‚ฌ์šฉ์„ ์ง€์–‘ํ•˜๊ณ ์žˆ๋‹ค.var์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ๋‹ค.function scope(ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์žˆ๋‹ค๋ฉด ์„ ์–ธ ์œ„์น˜์— ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉ์ด ๋จ)var ํ‚ค์›Œ๋“œ ์ƒ๋žต ํ—ˆ์šฉ์ค‘๋ณต ์„ ์–ธ ํ—ˆ์šฉ๋ณ€์ˆ˜ ํ˜ธ์ด์ŠคํŒ… ํ•˜..
250307 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ด๋ฒˆ ๊ณผ์ œ๋Š” ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ๊ณผ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ, ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต ๊ณผ์ œ๋ผ ์—ฌ๊ธฐ์— ์ •๋ฆฌํ•ด๋‘”๋‹ค.  1. ๋‘ ์ˆ˜์˜ ์ฐจ : https://school.programmers.co.kr/learn/courses/30/lessons/120803?language=javascriptfunction solution(num1, num2) { var answer = num1 - num2; return answer;} 2. ๋‚˜์ด ์ถœ๋ ฅ  : https://school.programmers.co.kr/learn/courses/30/lessons/120820?language=javascriptfunction solution(age) { var answer = 2023 - age; return answer;..
DAY 3 #2.0 ~ #2.3 #2.0 SocketIO vs WebSockets https://socket.io/ SocketIO : ์‹ค์‹œ๊ฐ„, ์–‘๋ฐฉํ–ฅ, event ๊ธฐ๋ฐ˜์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅ์ผ€ ํ•˜๋Š” framework https://socket.io/docs/v4/ WebSocket๊ณผ์˜ ์ฐจ์ด์ ์€, webSocket์ด socketIO๊ฐ€ ์œ„์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์— ๋ถˆ๊ณผํ•˜๋ฉฐ, ๋งŒ์•ฝ WebSocket์ด ์‚ฌ์šฉ๋ชปํ•˜๊ฒŒ ๋˜๋”๋ผ๋„ socketIO๋Š” http long-polling ๋“ฑ์„ ๋Œ€์ฒดํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฌธ์„œ์— ๋‚˜์™€์žˆ๋‹ค. ๋‹น์žฅ webSocket์€ protocol, socketIO๋Š” framework์ด๋ผ๋Š” ์ ์—์„œ ๋‹ค๋ฅด๋‹ค.. https://www.npmjs.com/package/socket.io #2.1 Installing Socke..
DAY 2 #1.3 ~ 1.9 #1.3 WebSocket Events https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket app.js // ์ด socket์„ ์ด์šฉํ•ด์„œ frontend์—์„œ backend๋กœ ๋ฉ”์„ธ์ง€ ์ „์†ก ๊ฐ€๋Šฅ // ์—ฌ๊ธฐ socket์€ ์„œ๋ฒ„๋กœ์˜ ์—ฐ๊ฒฐ๋กœ, window.location.host๋Š” pc๋ฟ๋งŒ ์•„๋‹Œ ๋ชจ๋ฐ”์ผ์—์„œ๋„ ์ ‘์†์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ํ•ด์คŒ // (http://localhost:3000์ด ์•„๋‹Œ, ์•„์˜ˆ ๊ธฐ๊ธฐ์˜ host์˜ location์œผ๋กœ ์ ‘์†) const socket = new WebSocket(`ws://${window.location.host}`); webSocket ์‚ฌ์šฉ - server : node.js ํ™˜๊ฒฝ์—์„œ ws์™€ ๊ฐ™์€ ๋ชจ๋“ˆ์„ ์ด์šฉํ•ด webSo..