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

๐Ÿ’ป DEV54

[Webstorm] SSH Key Passphrase ์ธ์ฆ (ํ—ค๋งค์ธ ์Šคํ† ๋ฆฌ) ์ ‘๊ทผ (์š”์•ฝ)๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋˜ (IDE) IntelliJ Ultimate version ๋ง๊ณ ๋„ Webstorm์ด ๋ฌด์ƒ์ œ๊ณต๋จ(๋น„์˜๋ฆฌ)์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.๋”ฐ๋ผ์„œ JavaScript & TypeSript ์ „์šฉ ์›น ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ์„ ํ•ด๋ณด๋ ค๋‹ค๊ฐ€, ์„ค์ •์—์„œ ํ—ค๋งค์ธ(?) ์Šคํ† ๋ฆฌ๋ฅผ ๋‹ด์Šต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค JetBrains์‚ฌ์—์„œ ๋‹ค๋ฃจ๋Š” IDE์ด๋‹ค ๋ณด๋‹ˆ ํ•œ ์ชฝ์˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ์˜ settings ๊ฐ’๋“ค์„ ๋‹ค๋ฅธ ํ•œ ์ชฝ์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ชจ๋‘ import ๋ฅผ ํ•ด์˜ฌ ์ˆ˜ ์žˆ์—ˆ๊ณ , ๊ทธ๋ ‡๊ฒŒ ์ „ ๋ฌด์‹ฌ์ฝ” settings ๊ฐ’๋“ค์„ import ๋ฅผ ํ•ด์˜ค๋ฉด์„œ ๋ชจ๋“  ๋ฌธ์ œ์˜ ์‹œ์ž‘์ด ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. WebStorm ๋‚ด VCS์— Github ๊ณ„์ •์ด token์œผ๋กœ ๋กœ๊ทธ์ธ์ด ๋˜์–ด์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ,ํ”„๋กœ์ ํŠธ clone์„ ์œ„ํ•ด rsa(SSH key)๋ฅผ ๋ช…ํ™•.. 2024. 11. 22.
[WebGL - regl] (์ „๋žต) WebGL ์ขŒํ‘œ๊ณ„๋ฅผ ํ”ฝ์…€ ์ขŒํ‘œ๊ณ„๋กœ ๋ณ€ํ™˜ WebGL์˜ ๊ธฐ๋ณธ ์ขŒํ‘œ๊ณ„์™ผ์ชฝ ์œ„: (-1, 1)์˜ค๋ฅธ์ชฝ ์•„๋ž˜: (1, -1)SVG์˜ ๊ธฐ๋ณธ ์ขŒํ‘œ๊ณ„SVG์˜ ๊ธฐ๋ณธ ์ขŒํ‘œ๊ณ„๋Š” ํ”ฝ์…€ ์ขŒํ‘œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:์™ผ์ชฝ ์œ„: (0, 0)์˜ค๋ฅธ์ชฝ ์•„๋ž˜: (width, height)1๋‹จ๊ณ„. WebGL ์ขŒํ‘œ๊ณ„ -> ํ”ฝ์…€ ์ขŒํ‘œ๊ณ„ ๋ณ€ํ™˜:WebGL์˜ (-1, 1) -> SVG์˜ (0, 0)์œผ๋กœ ๋งคํ•‘๋˜๊ณ , (1, -1) -> SVG์˜ (width, height)์œผ๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.function webglToPixel(x, y, canvas) { const width = canvas.width; const height = canvas.height; return { x: (x + 1) * 0.5 * width, y: (1 - y) * 0.5 * height };} 2๋‹จ๊ณ„. rel.. 2024. 8. 8.
[WebGL - regl] (2) regl ์˜ˆ์ œ ์† GLSL ์ฝ”๋“œ ํ•ด์„ โ—ผ๏ธŽ ์…ฐ์ด๋” ์ฝ”๋“œ & GLSL ๊ธฐ๋ณธ ์ฝ”๋“œํ•ด์„* ์…ฐ์ด๋” ์ฝ”๋“œ:- Graphics Programming์—์„œ GPU๊ฐ€ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•  ๊ทธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ- ๊ทธ๋ž˜ํ”ฝ์Šค ์นด๋“œ์˜ GPU์—์„œ ์ง์ ‘ ์‹คํ–‰์ด ๋œ๋‹ค. → ๋ฒ„ํ…์Šค ์…ฐ์ด๋” (Vertex Shader): ๊ฐ ์ •์ ์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ •์ ์˜ ์†์„ฑ(์ƒ‰์ƒ, ์ขŒํ‘œ) ์ฒ˜๋ฆฌ- ์ž…๋ ฅ : ์ •์  ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋ฐ›์Œ- ์ถœ๋ ฅ : ๋ฐ˜ํ™˜๋œ ์ •์  ์œ„์น˜์™€ ๊ด€๋ จ ์ •๋ณด ์ถœ๋ ฅ → ํ”„๋ž˜๊ทธ๋จผํŠธ ์…ฐ์ด๋” (Fragment Shader): ํ™”๋ฉด์˜ ๊ฐ ํ”ฝ์…€์— ์ƒ‰์ƒ ๊ฐ’์„ ๊ณ„์‚ฐ- ์ž…๋ ฅ : ๊ฐ ํ”ฝ์…€์˜ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋ฐ›์Œ- ์ถœ๋ ฅ : ์ตœ์ข… ์ƒ‰์ƒ ๊ฐ’์„ ํ™”๋ฉด์— ์ถœ๋ ฅ* GLSL: GPU์—์„œ ์‹คํ–‰๋˜๋Š” ์…ฐ์ด๋” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ์–ธ์–ด โ—ผ๏ธŽ vec2 : 2์ฐจ์› ๋ฒกํ„ฐ - 2๊ฐœ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ(2D .. 2024. 8. 8.
[WebGL - regl] (1) regl ์ด๋ž€? โ—ผ๏ธŽ regl (npm) ์ด๋ž€?→ WebGL์˜ ์ถ”์ƒํ™” ๋ ˆ์ด์–ด, WebGL์„ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : ๊ฐ„๋‹จํ•œ ๋ช…๋ น→ WebGL์˜ ๋ณต์žกํ•œ API๋ฅผ ๋‹จ์ˆœํ™”→ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ ์ง€์› : ๊ณ ์„ฑ๋Šฅ ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง์„ ๋ณด๋‹ค ์ง๊ด€์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ โ—ผ๏ธŽ regl ํŠน์ง•→ ๊ฐ„๋‹จํ•œ API : ๋ณต์žกํ•œ WebGL ์„ค์ •์„ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์œผ๋กœ ๋Œ€์ฒด→ ์„ฑ๋Šฅ ์ตœ์ ํ™” : ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ช…๋ น ํ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์„ฑ๋Šฅ ๊ทน๋Œ€ํ™”→ ๋ชจ๋“ˆํ™” : ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ Œ๋”๋ง ๋ช…๋ น์„ ๋ชจ๋“ˆํ™”ํ•ด์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ โ—ผ๏ธŽ regl ์„ค์น˜npm install (--save) reql# (์ค„์—ฌ์„œ) npm i -S reql# ์ตœ์‹  npm์—๋Š” --save ์˜ต์…˜์ด ๊ธฐ๋ณธ ๋™์ž‘์œผ๋กœ ํฌํ•จ๋ผ ์žˆ๊ธฐ์— ์ƒ๋žตํ•ด๋„ ๋จ โ—ผ๏ธŽ regl ๊ธฐ๋ณธ ์˜ˆ์‹œimpor.. 2024. 8. 8.
[Github - git flow]Git Flow ์ „๋žต - squash merge Git Flow Strategy ๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ์ ํŠธ ํ˜‘์—… · ํ˜•์ƒ๊ด€๋ฆฌ๋ฅผ ์ด์–ด๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.์ƒ์„ฑํ•œ feature ๋ธŒ๋žœ์น˜๋ฅผ develop ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ(merge)ํ•  ๋•Œ์— ํ๋ฆ„๊ณผ ๋ฐฉ๋ฒ•์„ ๋ฉ”๋ชจํ•˜๊ณ ์ž ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.ํŠนํžˆ ์ปค๋ฐ‹-ํ‘ธ์‹œ ์ด๋ ฅ์„ ๊ฐ„๊ฒฐ·์ •๋ˆ๋˜๊ฒŒ ํ•ด์ฃผ๋Š” squash merge๋ฅผ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์š”์•ฝ  1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (Owner or Admin)   2. ๋กœ์ปฌ์—์„œ Clone ํ›„ git flow init   3. develop ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ   4. feature ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ   5. push ๋ฐ PR (Pull Request)   6. PR close & squash merge ์ƒ์„ธ   1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ (Owner or Admin)     2. ๋กœ์ปฌ์—์„œ Clone ํ›„ git flow ini.. 2024. 8. 6.
[Github] Git ํ‘ธ์‹œ ํ•ด์ฃผ๋Š” ๊ณ„์ • ๋ฐ”๊ฟ”์ฃผ๊ธฐ(username, useremail) ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐœ์ธ๊ณผ ํšŒ์‚ฌ์˜ 2๊ฐœ Github ๊ณ„์ •์— ๋Œ€ํ•œ version control์„ ์ง„ํ–‰ํ•˜๋ฉฐ ํ”„๋กœ์ ํŠธ์˜ ํด๋ก  ๋“ฑ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ก  ์ดํ›„, ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์ปค๋ฐ‹-ํ‘ธ์‹œ ์ž‘์—…์ด ์ด์–ด์ง€๋˜ ๊ณผ์ • ํšŒ์‚ฌ์˜ ํ”„๋กœ์ ํŠธ์— ๊ฐœ์ธ์˜ ๊ณ„์ •์œผ๋กœ ํ‘ธ์‹œ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์ด๋ ฅ์ด ๋‚จ๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜๊ณ ๋Š” ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค Git push๋ฅผ ํ•ด์ฃผ๋Š” ๊ณ„์ •์„ ๋ณ€๊ฒฝ-์ง€์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์š”์•ฝ  1. ํ˜„์žฌ ์—ฐ๊ฒฐ๋œ ๊ณ„์ • ์•Œ์•„๋ณด๊ธฐ   2. ํฌ๋งํ•˜๋Š” ๊ณ„์ •์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ์ƒ์„ธ  1. ํ˜„์žฌ ์—ฐ๊ฒฐ๋œ ๊ณ„์ • ์•Œ์•„๋ณด๊ธฐ# ํ˜„์žฌ ๊ณ„์ •์˜ ๋‹‰๋„ค์ž„(์ด๋ฆ„) ์•Œ์•„๋ณด๊ธฐgit config user.name# ํ˜„์žฌ ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์•Œ์•„๋ณด๊ธฐgit config user.email  2. ํฌ๋งํ•˜๋Š” ๊ณ„์ •์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ# ํฌ๋งํ•˜๋Š” ๊ณ„์ •์˜ ๋‹‰๋„ค์ž„(์ด๋ฆ„)์œผ๋กœ ๋ณ€.. 2024. 8. 2.
[Github] main branch๋ฅผ master ๋กœ ๋ฐ”๊พธ๊ณ  default ๊ฐ’ ๋ณ€๊ฒฝํ•˜๊ธฐ Git Flow strategy์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ ํ˜‘์—…-ํ˜•์ƒ๊ด€๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Git์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ์‹œ, main(default) ๋ธŒ๋žœ์น˜๊ฐ€ ์ƒ์„ฑ์ด ๋ฉ๋‹ˆ๋‹ค.master, develop, release ๋ธŒ๋žœ์น˜ ๋“ฑ์ด ํ•„์š”ํ•œ ๊ฐ€์šด๋ฐ, main ๋ธŒ๋žœ์น˜๋ฅผ master ๋ธŒ๋žœ์น˜๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์š”์•ฝ  1. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ• (web์ƒ์—์„œ ๋ณ€๊ฒฝ)   2. ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ• (command๋กœ ๋ณ€๊ฒฝ)์ƒ์„ธ  1. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ• (web์ƒ์—์„œ ๋ณ€๊ฒฝ) ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ Github(web)์—์„œ ๋ณ€๊ฒฝ์ž…๋‹ˆ๋‹ค.โ—ผ๏ธŽ 1) ๋ธŒ๋žœ์น˜๋ช…์„ ๋ฐ”๊พธ๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋กœ ์ง„์ž…์„ ํ•ฉ๋‹ˆ๋‹ค.โ—ผ๏ธŽ 2) settings > General ์— ์ง„์ž…ํ•ฉ๋‹ˆ๋‹ค.โ—ผ๏ธŽ 3) 'Default branch' ์„น์…˜์—์„œ main ๋ธŒ๋žœ์น˜๋กœ ์„ค์ •๋ผ ์žˆ์Œ.. 2024. 8. 2.
[NEXT.js] 5. Link ์ปดํฌ๋„ŒํŠธ ์‚ฌ์šฉ ์ด์Šˆ ( new- link ) 1. ์ •์˜ & ํŠน์„ฑ   2. Nextjs 13 ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ ํ›„ ์‚ฌ์šฉ๋ฒ•์ƒ์„ธ  1. ์ •์˜ & ํŠน์„ฑ๊ธฐ์กด์˜ ํƒœ๊ทธ๋Š” ํ•˜์œ„์— ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•ด์„œ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿฌ๋‚˜, Nextjs 13 ๋ฒ„์ „์œผ๋กœ์˜ ์—…๋ฐ์ดํŠธ ์ดํ›„ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝ ๋์Šต๋‹ˆ๋‹ค. next/link : ํƒœ๊ทธ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ # ๊ธฐ์กด๋ฐฉ์‹ Home # --------------------------# ๋ณ€ํ™”๋œ ๋ฐฉ์‹ Home.    2. Nextjs 13 ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ ํ›„ ์‚ฌ์šฉ๋ฒ• npx @next/codemod new-link . - codemod ๋ฅผ ์‹คํ–‰ํ•ด new-link๋ฅผ ์„ค์น˜ํ•˜๊ณ , ์—…๋ฐ์ดํŠธ ๋œ. ๋ฒ„์ „์˜ nextjs13 Link ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. next/link 2024. 6. 19.
[NEXT.js 14] 5. Layout(feat. { children }: { children: ReactNode }) props Layout  1. ์ •์˜ & ํŠน์„ฑ   2. ์ฝ”๋“œ ์˜ˆ์‹œ   3. ๊ด€๋ จ ์—๋Ÿฌ์ƒ์„ธ  1. ์ •์˜ & ํŠน์„ฑNext.js ์—๋Š” Layout ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์กด์žฌํ•˜๊ณ  ์ด๋Š” ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๊ฐ„์— ๊ณต์œ ๋˜๋Š” UI์ž…๋‹ˆ๋‹ค. Layout ์ปดํฌ๋„ŒํŠธ๋Š”- ํŒŒ์ผ์—์„œ React ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋‚ด๋ณด๋‚ด๋„๋ก ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ณ ,- ๋ Œ๋”๋ง ์ค‘์— ํ•˜์œ„์— ๋ ˆ์ด์•„์›ƒ(page UI)๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ, ํ•˜์œ„ ์š”์†Œ๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•œ children props๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.  ใ„ด ์ด๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, { children }: { children: ReactNode } ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ์ด๋ค„์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. { children }: { children: ReactNode } ์ด ๊ตฌ๋ฌธ์€ TypeScript์˜ ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด์™€ ํƒ€์ž… ์ •์˜๋ฅผ ๊ฒฐํ•ฉํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.(๋”ฐ๋ผ์„œ, ๊ฐ์ฒด์˜ ํŠน์ • .. 2024. 6. 18.