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

    ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ + ๋ฆฌ๋•์Šค

    https://devlog-h.tistory.com/33 Typescript์—์„œ Redux๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž ์•ˆ๋…•ํ•˜์„ธ์š” ํœด๋ชฌ๋žฉ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž ์ฐจ์•”์ƒˆ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Typescript ํ™˜๊ฒฝ์—์„œ Redux๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Redux๋Š” React ์ƒ์—์„œ state๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ค ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. โ€ป devlog-h.tistory.com

    [์†Œ์ŠคํŠธ๋ฆฌ] ์†Œ์ŠคํŠธ๋ฆฌ ๊ธฐ๋ณธ

    https://devlog-h.tistory.com/9 ์†Œ์ŠคํŠธ๋ฆฌ ์™„๋ฒฝ๋ถ„ํ•ด ๊ฐ€์ด๋“œ (2) Revision - Discard, Reset, Revert ์•ˆ๋…•ํ•˜์„ธ์š”. ํœด๋ชฌ๋žฉ ์ดˆ๋ณด ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์ž(Ho Park)๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ์ดˆ๋ณด ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž ๊ธฐ์ค€์œผ๋กœ ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ๊ณผ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ devlog-h.tistory.com https://devlog-h.tistory.com/7?category=1094461 ์†Œ์ŠคํŠธ๋ฆฌ ์™„๋ฒฝ๋ถ„ํ•ด ๊ฐ€์ด๋“œ (1) ์•ˆ๋…•ํ•˜์„ธ์š”. ํœด๋ชฌ๋žฉ ์ดˆ๋ณด ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์ž(Ho Park)๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ์ดˆ๋ณด ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๊ธ€ ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์€ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž ๊ธฐ์ค€์œผ๋กœ ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ๊ณผ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ devlog-h.t..

    python -m SimpleHTTPServer 8000 ์˜ค๋ฅ˜

    python -m SimpleHTTPServer 8000 ๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ณค์„ ๋•Œ No module named SimpleHTTPServer ๋ผ๋Š” ์—๋Ÿฌ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ์ด์Šˆ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์€ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ ํŒŒ์ด์ฌ(python)์„ ์ด์šฉํ•œ ๊ฐ„๋‹จํ•œ ํŒŒ์ผ ์„œ๋ฒ„ ๋ช…๋ น (daum.net) ํŒŒ์ด์ฌ(python)์„ ์ด์šฉํ•œ ๊ฐ„๋‹จํ•œ ํŒŒ์ผ ์„œ๋ฒ„ ๋ช…๋ น ํŒŒ์ด์ฌ(python)์„ ์ด์šฉํ•œ ๊ฐ„๋‹จํ•œ ํŒŒ์ผ ์„œ๋ฒ„ ๋ช…๋ น ๊ธ€. ์˜ค์ƒ๋ฌธ (sualchi@daum.net) ํŒŒ์ด์ฌ์ด ์„ค์น˜๋˜์–ด ์žˆ๊ณ  PATH๊นŒ์ง€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ ํ•œ ์ค„๋งŒ ์ž…๋ ฅํ•˜๋ฉด ํŒŒ์ผ ์„œ๋ฒ„๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ blog.daum.net ํŒŒ์ด์ฌ์ด ์„ค์น˜๋˜์–ด ์žˆ๊ณ  PATH๊นŒ์ง€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ ํ•œ ์ค„๋งŒ ์ž…๋ ฅํ•˜๋ฉด ํŒŒ์ผ ์„œ๋ฒ„๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. [ํŒŒ์ผ ์„œ๋ฒ„ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•] ํŒŒ์ด์ฌ..

    WebGL์ด๋ž€, three.js๋ž€, pixi.js๋ž€

    WebGL์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€(+ HTML Canvas, WebGL ๊ธฐ์ดˆ) (tistory.com) WebGL์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€(+ HTML Canvas, WebGL ๊ธฐ์ดˆ) ์ด ๊ธ€์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ, ํ˜น์‹œ ํ™”๋ คํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜๋งŒ ๋ณด๊ณ  ํฅ๋ฏธ๋ฅผ ๊ฐ€์กŒ๋‹ค๋ฉด, ํ•œ ๊ฐ€์ง€๋ฅผ ๋” ์ƒ๊ฐํ•˜๋ฉด ์ข‹์„ ๊ฑฐ ๊ฐ™๋‹ค. ์˜ˆ์ƒํ–ˆ๊ฒ ์ง€๋งŒ ์ˆ˜ํ•™์ด๋‹ค. ๊ฒฐ๊ตญ 3D ๊ทธ๋ž˜ํ”ฝ์€ ์„ธ ๊ฐœ์˜ ์ขŒํ‘œ๋ฅผ ์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ์ž… code-masterjung.tistory.com WEB GL์€ ์›น์ƒ์—์„œ ๊ทธ๋ž˜ํ”ฝ์„ ํ‘œํ˜„ํ•  ๋•Œ ์“ฐ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ ์“ฐ์ด๋ฉฐ 2D์™€ 3D ๊ทธ๋ž˜ํ”ฝ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. WEB GL์€ GPU๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ๋ฉด์—์„œ ์œ ๋ฆฌํ•จ์ด ์žˆ๋‹ค. ํŠนํžˆ ์›น์ƒ์—์„œ 3D๋กœ ๊ทธ๋ ค์ง€๋Š” ๊ฒƒ๋“ค์€ WEB GL๋กœ ๊ทธ๋ ค์กŒ๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•œ๋ฐ, WEB GL API๋“ค..

    [Html,Css] ๋ฐ˜์‘ํ˜• ํ—ค๋” ๋”ฐ๋ผ๋งŒ๋“ค๊ธฐ

    [Html,Css] ๋ฐ˜์‘ํ˜• ํ—ค๋” ๋”ฐ๋ผ๋งŒ๋“ค๊ธฐ

    https://youtu.be/X91jsJyZofw *์œ„ ์—˜๋ฆฌ๋‹˜ ์˜์ƒ์„ ๋ณด๊ณ  ํ•™์Šตํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. html Two Angel Home Gallery Sale FAQ Blog css body { margin: 0; font-family: Poppins Source Sans Pro; } a { text-decoration: none; color: #fff; } .navbar { display: flex; justify-content: space-between; align-items: center; background-color: #263343; padding: 8px 12px; } .navbar__logo { font-size: 24px; color: white; } .navbar__logo i { colo..

    [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] for๋ฌธ๊ณผ foreach ์‹ค์ „ ์˜ˆ์ œ ๋น„๊ต

    for๋ฌธ let tabs = document.querySelectorAll(".task-tabs div"); for (let i = 1; i menu.addEventListener("click", (event) => getNewsByTopic(event)) ); const getNewsByTopic = (event) => { console.log("ํด๋ฆผ๋จ", event.targe..

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ํŒฉํ† ๋ฆฌ ํŒจํ„ด

    1๋ฒˆ ๋ฐฉ์‹ interface Shoe { purpose: string; } class BalletFlat implements Shoe { purpose = "dancing"; } class Boot implements Shoe { purpose = "woodcutting"; } class Sneaker implements Shoe { purpose = "walking"; } class ShoeFactory { static create(Type: "balletFlat" | "boot" | "sneaker"): Shoe { switch (Type) { case "balletFlat": return new BalletFlat(); break; case "boot": return new Boot(); break..

    [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] Array.from( {length} ๊ตฌ๋ฌธ์—์„œ {length}์€ ์œ ์‚ฌ๋ฐฐ์—ด?

    https://velog.io/@teihong93/Array.from%EC%9D%84-%ED%86%B5%ED%95%9C-%EB%B0%B0%EC%97%B4%EC%9D%98-%EC%B4%88%EA%B8%B0%ED%99%94

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ์—ฐ์Šต์šฉ์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์„ธํŒ…

    ์„ค์น˜์™€ ๋ณ€ํ™˜ ํ•œ์ค„ ์š”์•ฝ node.js ์„ค์น˜ → npm i -g typescript → tsconfig.json ์ƒ์„ฑ → tsc -w ts๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ node์—์„œ๋„ ์ฝํžˆ์ง€ ์•Š๋Š”๋‹ค. ts๋Š” js ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. index.ts๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด tsc index.ts ๋ž€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ main.js๋ž€ ํŒŒ์ผ์ด ์ƒˆ๋กœ ์ƒ์„ฑ๋œ๋‹ค. ์ด ๋ณ€ํ™˜๋œ js๋Š” ์ด์ œ ๋ธŒ๋ผ์šฐ์ €๋‚˜ node์—์„œ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ts๋ฅผ js๋กœ ๋งค๋ฒˆ ์ˆ˜๋™ ๋ณ€ํ™˜ tsc ํŒŒ์ผ๋ช….ts ๋…ธ๋“œ์—์„œ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‹คํ–‰ ts-node ์„ค์น˜ ๋ช…๋ น์–ด: ๋‚ด๋ถ€์ ์œผ๋กœ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋…ธ๋“œ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ํ•œ๋ฒˆ์— ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํˆด npm install -g ts-node ์„ค์น˜ ํ›„ ๊ฐ€๋ น index.ts๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ts-no..

    [ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ] ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ(Typescript Compiler, TSC)

    ์ปดํŒŒ์ผ๋Ÿฌ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ(Typescript Compiler, TSC) ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋‚˜ ์ž๋ฐ” ๊ฐ™์€ ์ฃผ์š” ์–ธ์–ด์™€๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ ํ”„๋กœ๊ทธ๋žจ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ๋‹ค์ˆ˜์˜ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ํ…์ŠคํŠธ๋ฅผ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํŒŒ์‹ฑํ•˜์—ฌ ์ถ”์ƒ ๋ฌธ๋ฒ• ํŠธ๋ฆฌ(abstract syntax tree, AST)๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ AST๋ฅผ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ ๋Ÿฐํƒ€์ž„ ํ”„๋กœ๊ทธ๋žจ์— 2์—์„œ ๋ณ€ํ™˜๋œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ, ํ‰๊ฐ€ ํ›„ ๊ฒฐ๊ณผ์–ป์Œ. ์ฆ‰, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์ด๋ž€, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํŒŒ์‹ฑํ•ด AST๋กœ ๋งŒ๋“ค๊ณ , ๋‹ค์‹œ AST๋ฅผ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ์„ ๋Ÿฐํƒ€์ž„์ด ํ‰๊ฐ€ํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ๊ฒƒ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค(๋ฐ”์ดํŠธ์ฝ”๋“œX). ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ์ฝ”๋“œ๋Š” ์–ธ์ œ ์•ˆ์ „ํ•ด์ง€๋Š”๊ฐ€. ํƒ€์ž…์Šคํฌ๋ฆฝ..