์ „์ฒด ๊ธ€ 60

๋””๋ฒ„๊ฑฐ

๋””๋ฒ„๊ฑฐ๋ž€๋””๋ฒ„๊ฑฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰ ๊ณผ์ •์„ ์ถ”์ ํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋„๊ตฌ์ด๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋ณ€์ˆ˜์˜ ๊ฐ’, ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ, ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„ ๋“ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜๋‚˜ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.  ์ฃผ์š” ๊ธฐ๋Šฅ์ค‘๋‹จ์ (Breakpoint) ์„ค์ • : ํŠน์ • ์ฝ”๋“œ ๋ผ์ธ์—์„œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์ผ์‹œ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.๋‹จ๊ณ„ ์‹คํ–‰(Step) : ํ•œ ์ค„์”ฉ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.๋ณ€์ˆ˜ ๊ฐ์‹œ : ๋ณ€์ˆ˜์˜ ๊ฐ’๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค.์ฝœ ์Šคํƒ ์ถ”์  : ํ•จ์ˆ˜ ํ˜ธ์ถœ ์Šคํƒ์„ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰ ํ๋ฆ„์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

Web 2024.06.10

์šฐ๋ถ„ํˆฌ๋ž€ ?

์ตœ๊ทผ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด๋ฅผ ํ†ตํ•œ ํ™ˆ์„œ๋ฒ„ ๊ตฌ์ถ•์ด๋ผ๋Š” ์œ ํŠœ๋ธŒ ์˜์ƒ์„ ๋ณด๊ณ  ๊ด€์‹ฌ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ ์ „์— ์šฐ๋ถ„ํˆฌ๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ๊ทธ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.  ์šฐ๋ถ„ํˆฌ๋ฆฌ๋ˆ…์Šค ๋ฐฐํฌํŒ ์ค‘ ํ•˜๋‚˜, ๋ฐ๋น„์•ˆ GNU/๋ฆฌ๋ˆ…์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ฆฌ๋ˆ…์Šค ์šด์˜์ฒด์ œ. ๋ฆฌ๋ˆ…์Šค ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋ฉฐ ์˜คํ”ˆ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋ฐฐํฌํŒ์œผ๋กœ, ๊ทธ๋†ˆ ๋ฐ์Šคํฌํ†ฑ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ์œˆ๋„์šฐ ์‚ฌ์šฉ์ž๋“ค๋„ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 6๊ฐœ์›”๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฒ„์ „์ด ์ถœ์‹œ๋˜๋ฉฐ, ๋ฐ์Šคํฌํ†ฑ, ์„œ๋ฒ„, ํด๋ผ์šฐ๋“œ, IoT๋“ฑ ๋‹ค์–‘ํ•œ ๋ฒ„์ „์ด ์žˆ๋‹ค. ์ผ€๋…ธ๋‹ˆ์ปฌ์ด๋ผ๋Š” ๊ธฐ์—…์—์„œ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ฃผ๋„ํ•œ๋‹ค. ์˜คํ”ˆ์†Œ์Šค ์ฒ ํ•™์„ ์ง€ํ–ฅํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ž์œ ๋กœ์šด ์‚ฌ์šฉ, ์ˆ˜์ •, ๋ฐฐํฌ๋ฅผ ๊ถŒ์žฅํ•˜๊ณ  ํ˜‘๋ ฅ๊ณผ ๊ณต์œ ์˜ ๊ฐ€์น˜๋ฅผ ์ค‘์‹œํ•œ๋‹ค.

Web 2024.06.09

SQL injection

SQL injection์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜์—ฌ ์•…์˜์ ์ธ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ „์†กํ•˜๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ค‘์š” ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.SQL Injection์˜ ์›๋ฆฌ๊ณต๊ฒฉ์ž๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ถ€๋ถ„์— ์•…์˜์ ์ธ SQL ์ฟผ๋ฆฌ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. ์ด ์ฟผ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ „๋‹ฌ๋˜์–ด ์‹คํ–‰๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฟผ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด, SELECT * FROM users WHERE username='$username' AND password='$password'๊ณต๊ฒฉ์ž๊ฐ€ username์— 'OR 1=1'์„ ์ž…๋ ฅํ•˜๋ฉด ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€ํ˜•๋œ๋‹ค. SELECT * FROM users WHERE u..

Web 2024.06.08

Git Rebase, Merge

rebase์™€ merge ๋Š” ๋ชจ๋‘ ๋ธŒ๋žœ์น˜๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๊ฒฐ๊ณผ๋ฌผ์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค.Rebase ํ˜„์žฌ ๋ธŒ๋žœ์น˜์˜ ๋ฒ ์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์™€ ํ†ตํ•ฉํ•œ๋‹ค. ํ˜„์žฌ ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹๋“ค์„ ๋Œ€์ƒ ๋ธŒ๋žœ์น˜ ๋’ค์— ์ด๋™์‹œ์ผœ ์„ ํ˜•์˜ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค. ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๊น”๋”ํ•ด์ง€์ง€๋งŒ, ๊ธฐ์กด ์ปค๋ฐ‹๋“ค์ด ์ƒˆ๋กœ์šด ์ปค๋ฐ‹์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ๊ณผ๊ฑฐ ๊ธฐ๋ก์ด ์žฌ์ž‘์„ฑ๋œ๋‹ค. Merge ๋‘ ๋ธŒ๋žœ์น˜์˜ ์ตœ์‹  ์ปค๋ฐ‹๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ์ƒˆ๋กœ์šด ๋จธ์ง€ ์ปค๋ฐ‹์„ ์ƒ์„ฑํ•˜์—ฌ ํ†ตํ•ฉํ•œ๋‹ค. ๋‘ ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜์–ด ๊ณผ๊ฑฐ ๊ธฐ๋ก์„ ์ถ”์ ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค. ๋จธ์ง€ ์ปค๋ฐ‹์ด ์ƒ๊ธฐ๋ฉด์„œ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌ๋ฒ ์ด์Šค๋Š” ๊น”๋”ํ•œ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์›ํ•  ๋•Œ ์œ ์šฉํ•˜์ง€๋งŒ, ๊ณต์œ  ๋ธŒ๋žœ์น˜์—์„œ๋Š” ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค. ๋จธ์ง€๋Š” ์•ˆ์ „ํ•˜๊ณ  ์ถ”์ ์ด ์‰ฌ์šด ๋Œ€์‹  ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ..

Web 2024.06.05

CDN

CDN(Content Delifvery Network)์€ ์›น ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฌ์šฉ์ž์™€ ๊ฐ€๊นŒ์šด ๊ณณ์—์„œ ์ „์†กํ•จ์œผ๋กœ์จ์ „์†ก ์†๋„๋ฅผ ๋†’์ด๊ณ  ์›น์‚ฌ์ดํŠธ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋œ ์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ์ด๋‹ค.  CDN์˜ ์ž‘๋™ ์›๋ฆฌ CDN์€ ์ „ ์„ธ๊ณ„ ๊ฐ์ง€์— ์บ์‹œ ์„œ๋ฒ„(์—ฃ์ง€ ์„œ๋ฒ„)๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ์ž‘๋™ํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด CDN์€ ์‚ฌ์šฉ์ž์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์บ์‹œ ์„œ๋ฒ„์—์„œ ์›น ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์›๋ณธ ์„œ๋ฒ„์—์„œ ์ง์ ‘ ์ฝ˜ํ…์ธ ๋ฅผ ์ „์†กํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ค์–ด ์›น ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜๊ฒŒ ๋œ๋‹ค.  CDN์˜ ์ฃผ์š” ๊ธฐ๋Šฅ 1. ์ฝ˜ํ…์ธ  ์บ์‹ฑ : ์ž์ฃผ ์š”์ฒญ๋˜๋Š” ์ •์  ์ปจํ…์ธ ( ์ด๋ฏธ์ง€, ๋™์˜์ƒ, CSS ๋“ฑ)๋ฅผ ์—ฃ์ง€ ์„œ๋ฒ„์— ์บ์‹ฑํ•˜์—ฌ ์›๋ณธ ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ธ๋‹ค. 2. ๋ถ€ํ•˜ ๋ถ„์‚ฐ : ํŠธ๋ž˜ํ”ฝ์„ ์—ฌ๋Ÿฌ ์—ฃ์ง€ ์„œ๋ฒ„๋กœ ๋ถ„์‚ฐ์‹œ์ผœ ์›..

Web 2024.06.04

์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž

์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋Š” ES6์— ๋„์ž…๋œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์œผ๋กœ, ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ์š”์†Œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ํŽผ์ณ์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.  ๋ฐฐ์—ด ๋ณต์‚ฌ const arr = [1, 2, 3];const copy = [...arr]; // [1, 2, 3]๋ฐฐ์—ด ๋ณ‘ํ•ฉ const arr1 = [1, 2];const arr2 = [3, 4];const combined = [...arr1, ...arr2]; // [1, 2, 3, 4]๋ฐฐ์—ด const arr = [1, 2, 3];const beginning = [0, ...arr]; // [0, 1, 2, 3]const end = [...arr, 4]; // [1, 2, 3, 4] ๊ฐ์ฒด ๋ณต์‚ฌconst obj = { a: 1, b: 2 };const copy = { ...obj ..

Web 2024.06.03

AWS

AWS(Amazon Web Services)๋Š” ์•„๋งˆ์กด์—์„œ ์ œ๊ณตํ•˜๋Š” ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ํ”Œ๋žซํผ์ด๋‹ค. ๋‹ค์–‘ํ•œ ์›๊ฒฉ ์ปดํ“จํŒ… ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ธฐ์—…์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋น„์Šค๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•, ๋ฐฐํฌ, ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ํŠน์ง• ์ปดํ“จํŒ… ์„ฑ๋Šฅ, ์Šคํ† ๋ฆฌ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ถ„์„ฑ ๋“ฑ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค ์ œ๊ณต ์ „ ์„ธ๊ณ„ 25๊ฐœ ์ง€์—ญ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ์šด์˜๋˜๋ฉฐ ๋†’์€ ๊ฐ€์šฉ์„ฑ๊ณผ ๋‚ด๊ฒฐํ•จ์„ฑ ์ œ๊ณตํ•„์š”ํ•œ ๋งŒํผ๋งŒ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๋Š” ์ข…๋Ÿ‰์ œ ๊ณผ๊ธˆ ๋ชจ๋ธ ํ™•์žฅ์„ฑ๊ณผ ํƒ„๋ ฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜ ํŠธ๋ž˜ํ”ฝ ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ ๊ฐ€๋Šฅ ๋ณด์•ˆ, ์•ˆ์ •์„ฑ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌ ๋„๊ตฌ ์ œ๊ณต ์ฃผ์š” ์„œ๋น„์Šค EC2 : ๊ฐ€์ƒ ์ปดํ“จํŒ… ํ™˜๊ฒฝ ์ œ๊ณต S3 : ๊ฐ์ฒด ๊ธฐ๋ฐ˜ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค RDS : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋น„์Šค Lambda : ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์„œ๋น„์Šค CloudFro..

Web 2024.05.31

์ธ๋ฑ์Šค

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ํŠน์ • ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ์ •๋ ฌ๋˜์–ด ๋ณ„๋„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ์™€ ํ•จ๊ป˜ ์ €์žฅ๋œ๋‹ค.์žฅ์ ํ…Œ์ด๋ธ”์˜ ์กฐํšŒ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์ฃผ์†Œ๋ฅผ ๋จผ์ € ํ™•์ธํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ํ…Œ์ด๋ธ” ํ’€์Šค์บ”์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.๋ถ€๋“ฑํ˜ธ() ์—ฐ์‚ฐ์„ ํฌํ•จํ•œ ์กฐ๊ฑด ๊ฒ€์ƒ‰ ์ฟผ๋ฆฌ์˜ ํšจ์œจ์„ฑ์ด ๋†’์•„์ง„๋‹ค. ์ •๋ ฌ๋œ ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฒ”์œ„ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.์ •๋ ฌ ์ž‘์—…์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ธ๋ฑ์Šค์— ๋ฏธ๋ฆฌ ์ •๋ ฌ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์–ด ORDER BY ์ ˆ ์‚ฌ์šฉ ์‹œ ๋ณ„๋„ ์ •๋ ฌ์ด ํ•„์š” ์—†๋‹ค.์ „๋ฐ˜์ ์ธ ์‹œ์Šคํ…œ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.๋‹จ์ ์ธ๋ฑ์Šค ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„๊ณผ ์“ฐ๊ธฐ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ค.๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ(INSER..

Web 2024.05.30

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด๋ž€ ?๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์€ ์กฐ์ง์˜ ์ •๋ณด ์ˆ˜์ง‘๊ณผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์ •์˜ํ•˜๋Š” ์‹œ๊ฐ์  ํ‘œํ˜„ ํ˜น์€ ๊ทœ๊ฒฉ์„ ์ƒ์„ฑํ•˜๋Š” ๋‹จ๊ณ„์ด๋‹ค. ์ด ๋•Œ ๋งŒ๋“ค์–ด์ง„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ํ•œ ํ”„๋กœ์ ํŠธ์˜ ๋‹ค์–‘ํ•œ ์ดํ•ด๊ด€๊ณ„์ž๋“ค์ด ์กฐ์ง์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํ†ต์ผ๋œ ๊ฐœ๋…์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์€ ํ•ด๋‹น ๋น„์ฆˆ๋‹ˆ์Šค๊ฐ€ ์ˆ˜์ง‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ, ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์—ฐ๊ฐ„ ๊ด€๊ณ„, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„์„ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์„ ์„ค๋ช…ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด ์ค‘์š”ํ•œ ์ด์œ  ? ์˜ค๋Š˜๋‚  ์กฐ์ง์€ ๋‹ค์–‘ํ•œ ์†Œ์Šค์—์„œ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ˆ˜์ต์„ฑ ์žˆ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๊ฒฐ์ •์„ ์œ„ํ•ด์„œ๋Š”๋„์›€์ด ๋˜๋Š” ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•ด์•ผ ํ•œ๋‹ค. ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•ด์„œ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘, ์ €์žฅ, ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ด€๋ จํ•œ ๊ธฐ์ˆ ๊ณผ ..

Web 2024.05.29

Prisma

Prisma๋ž€? Prisma๋Š” Node.js, TypeScript, Rust, Go ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ORM(Object-Relational Mapping) ๋„๊ตฌ๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹จ์ˆœํ™”์‹œ์ผœ ๊ฐœ๋ฐœ์ž๊ฐ€ SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜์ง€ ์•Š๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋กํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ ‘๊ทผ์„ฑ๊ณผ ์ƒ์‚ฐ์„ฑ์„ ๋†’์—ฌ์ค€๋‹ค.ํŠนํžˆ Prisma๋Š” ORM ์ค‘์—์„œ๋„ ํ˜„๋Œ€์ ์ด๊ณ  ์„ ์–ธ์ ์ธ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— SQL ์ฟผ๋ฆฌ ๋ณต์žก์„ฑ์„ ์ค„์ด๊ณ , ์•ˆ์ „ํ•œ ์ฟผ๋ฆฌ ์ž‘์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.  Prisma์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†ŒPrisma Client: Node.js ๋ฐ TypeScript์šฉ ์ž๋™ ์ƒ์„ฑ๋œ ํƒ€์ž… ์•ˆ์ „ ์ฟผ๋ฆฌ ๋นŒ๋”์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ CRUD ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.Pr..

Web 2024.05.28