์ฝ”ํ‹€๋ฆฐ(Kotlin)์˜ ํ•ต์‹ฌ ๋ฌธ๋ฒ•๊ณผ ์˜ˆ์ œ (2/2)
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
๋“ค์–ด๊ฐ€๋ฉด์„œ https://giken.tistory.com/entry/Kotlin-%EC%BD%94%ED%8B%80%EB%A6%B0-%EB%AC%B8%EB%B2%95-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC-feat%EC%9E%90%EB%B0%94 ์ฝ”ํ‹€๋ฆฐ(Kotlin)์˜ ํ•ต์‹ฌ ๋ฌธ๋ฒ•๊ณผ ์˜ˆ์ œ (1/2)๋“ค์–ด๊ฐ€๋ฉด์„œ์ฝ”๋”ฉํ…Œ์ŠคํŠธ, ์Šคํ”„๋ง ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ์ž๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์™”๋‹ค.์ตœ๊ทผ ์ฑ„์šฉ ๊ณต๊ณ ๋ฅผ ๋ณด๋ฉด `์Šคํ”„๋ง + ์ฝ”ํ‹€๋ฆฐ (์ฝ”ํ”„๋ง)`์ด ์‹ฌ์‹ฌ์น˜ ์•Š๊ฒŒ ๋ณด์ธ๋‹ค. ์ž๋ฐ”์—์„œ ํ˜„๋Œ€์ ์ธ ์–ธ์–ด๋กœ ์—…๊ทธ๋ ˆ์ด๋“œgiken.tistory.com `๋ณ€์ˆ˜, ํƒ€์ž…, ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, List ๋“ฑ๋“ฑ`์ด๋Ÿฌํ•œ ๊ธฐ์ดˆ ๋ฌธ๋ฒ•์„ 1ํŽธ์—์„œ ์ตํžˆ๊ณ  ์™”๋‹ค.  2ํŽธ์—์„œ๋Š” ์›น๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋ฌธ๋ฒ•๋“ค ์œ„์ฃผ๋กœ ๋” ์„ค๋ช…ํ•œ๋‹ค.     ํ•จ์ˆ˜fun mai..
[GitHub] ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ ๋ณ‘ํ•ฉ ๋ฌธ์ œ ํ•ด๊ฒฐ : non-fast-forward
ยท
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ
๋ฌธ์ œ ์ƒํ™ฉGitHub์—์„œ ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•œ ํ›„, ์ €์žฅ์†Œ ์ฃผ์†Œ๋ฅผ ์›๊ฒฉ(remote)์— ์ถ”๊ฐ€(git remote add origin https://github…..)ํ•˜๊ณ , ๋กœ์ปฌ์—์„œ๋„ ์ •์ƒ์ ์œผ๋กœ ์ดˆ๊ธฐํ™”(git init)ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ git pull ๋˜๋Š” git merge ๋ช…๋ น์–ด๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์•˜๊ณ , git push origin master ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.[rejected] master -> master (non-fast-forward)error: ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ 'git@github.com:'์— ํ‘ธ์‹œํ•˜๋Š”๋ฐ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹คํžŒํŠธ: ํ˜„์žฌ ๋ธŒ๋žœ์น˜์˜ ๋์ด ๋ฆฌ๋ชจํŠธ ๋ธŒ๋žœ์น˜๋ณด๋‹ค ๋’ค์— ์žˆ์œผ๋ฏ€๋กœ ์—…๋ฐ์ดํŠธ๊ฐ€ํžŒํŠธ: ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ‘ธ์‹œํ•˜๊ธฐ ์ „์— ('git pull ...' ๋“ฑ ๋ช…๋ น..
์ฝ”ํ‹€๋ฆฐ(Kotlin)์˜ ํ•ต์‹ฌ ๋ฌธ๋ฒ•๊ณผ ์˜ˆ์ œ (1/2)
ยท
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
๋“ค์–ด๊ฐ€๋ฉด์„œ์ฝ”๋”ฉํ…Œ์ŠคํŠธ, ์Šคํ”„๋ง ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์—์„œ ์ž๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์™”๋‹ค.์ตœ๊ทผ ์ฑ„์šฉ ๊ณต๊ณ ๋ฅผ ๋ณด๋ฉด `์Šคํ”„๋ง + ์ฝ”ํ‹€๋ฆฐ (์ฝ”ํ”„๋ง)`์ด ์‹ฌ์‹ฌ์น˜ ์•Š๊ฒŒ ๋ณด์ธ๋‹ค. ์ž๋ฐ”์—์„œ ํ˜„๋Œ€์ ์ธ ์–ธ์–ด๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ๋œ ์–ธ์–ด๊ฐ€ ์ฝ”ํ‹€๋ฆฐ์ด๋ผ๊ณ ํ•œ๋‹ค.๋”ฐ๋ผ์„œ ์ฝ”ํ‹€๋ฆฐ์˜ ๋ฌธ๋ฒ•์„ ๋ฐฐ์šฐ๊ณ  ๋” ๋‚˜์•„๊ฐ€ ๊ฐ„๋‹จํ•œ API๋ฅผ ์ฝ”ํ‹€๋ฆฐ์œผ๋กœ ๋งŒ๋“ค์–ด๋ณด๋Š” ์‹ค์Šต๊นŒ์ง€ ํ•  ๊ณ„ํš์ด๋‹ค.๋‹คํ–‰์ธ ์ ์€ ์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•ด์˜ค๋˜ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์ฝ”ํ‹€๋ฆฐ ์‚ฌ์šฉ์ด ๋” ์ˆ˜์›”ํ•  ๊ฒƒ์ด๋‹ค.    ์ฝ”ํ‹€๋ฆฐ ํŒŒ์ผ ์ƒ์„ฑ์ธํ…”๋ฆฌ์ œ์ด์—์„œ Kotlin ํŒŒ์ผ ๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Java ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๋‹ค.Kotlin์€ ํด๋ž˜์Šค๊ฐ€ ํ•„์ˆ˜์ ์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ˆœํžˆ ํŒŒ์ผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋Š” "Main"์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ Kotlin ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ๋‹ค.    ๋ณ€์ˆ˜fun main() { var i = 1..
์นดํ”„์นด(Kafka) ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด์ž
ยท
์„œ๋ฒ„
๋“ค์–ด๊ฐ€๋ฉด์„œ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ์ƒํ™ฉ์—์„œ๋„ ์•ˆ์ •์ ์ด๊ณ  ๋†’์€ TPS(์ดˆ๋‹น ํŠธ๋žœ์žญ์…˜ ์ˆ˜)๋ฅผ ์œ ์ง€ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ ๋งŽ์€ ์—”์ง€๋‹ˆ์–ด์˜ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. ์ € ์—ญ์‹œ ์œ„๋Œ€ํ•œ ์—”์ง€๋‹ˆ์–ด๋“ค์ด ๊ทธ๋Ÿฌํ–ˆ๋“ฏ, ํ˜„์žฌ์˜ ์ƒํƒœ์— ์•ˆ์ฃผํ•˜์ง€ ์•Š๊ณ  ๊ฐœ์„ ์„ ์ถ”๊ตฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.๊ธฐ์กด์— ๊ตฌ์ถ•ํ•œ Spring ๊ธฐ๋ฐ˜์˜ ๋‹จ์ผ ํ”„๋กœ์ ํŠธ๋ฅผ MSA(๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜)๋กœ ์ „ํ™˜ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, `MSA ์•„ํ‚คํ…์ฒ˜์—์„œ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ`๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Kafka ์„œ๋ฒ„๋ฅผ ๋„์ž…ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” `Kafka ์„œ๋ฒ„ ๊ตฌ์ถ• ๊ณผ์ •์„ ๋‹จ๊ณ„๋ณ„๋กœ` ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ๋ถ„๋„ ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์„ ์•ˆ์ •์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.    ์นดํ”„์นด(Kafka) ๋ž€? Apache Kafka๋Š” ๊ณ ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ..
ํšจ์œจ์ ์ธ Docker ๋นŒ๋“œ: ์บ์‹œ๋ฅผ ํ™œ์šฉํ•œ ์†๋„ ๊ฐœ์„ 
ยท
Web
๋“ค์–ด๊ฐ€๋ฉฐ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ์— Docker ๋ฅผ ์„ธํŒ…ํ–ˆ๋Š”๋ฐ, Docker ๋„ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ• ๊นŒ? ๋ผ๋Š” ์ƒ๊ฐ์— ๊ฒ€์ƒ‰ํ•˜๋˜ ์ค‘Docker Cache๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.  Docker๋ฅผ ์ด์šฉํ•œ ์Šคํ”„๋ง ์„œ๋ฒ„ ๋นŒ๋“œ ์†๋„ ์ตœ์ ํ™” ๊ณผ์ •์Šคํ”„๋ง ์„œ๋ฒ„ Docker๋กœ ์„ธํŒ…: ์Šคํ”„๋ง ์„œ๋ฒ„๋ฅผ Docker ์ปจํ…Œ์ด๋„ˆ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.Dockerfile ์ž‘์„ฑ: Dockerfile์„ ์ž‘์„ฑํ•˜๊ณ , ๊ฐ์ž์˜ ์š”๊ตฌ์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.์บ์‹œ ์‚ฌ์šฉ Dockerfile: Docker ์บ์‹œ๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก Dockerfile์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.์ตœ์ ํ™”๋œ Docker ๋นŒ๋“œ: ์ตœ์ ํ™”๋œ Dockerfile์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œ ๊ณผ์ •์„ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.    Docker LayerDocker Cache๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์ „์— ๋จผ์ € `Docker์˜ Layer`์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค...
[Spring] DB๋ฅผ ์‚ฌ์šฉํ•œ JWT ์ธ์ฆ์—์„œ ๋กœ๊ทธ์•„์›ƒ์„ ๊ตฌํ˜„ํ•ด๋ณด์ž
ยท
์„œ๋ฒ„/Spring
๋“ค์–ด๊ฐ€๋ฉฐSpring ํ”„๋กœ์ ํŠธ์—์„œ ๋กœ๊ทธ์ธ(์ธ์ฆ)์„ JWT๋กœ ๊ตฌํ˜„ํ•ด ๋ƒˆ๋‹ค.๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” Spring Security ์Šคํ”„๋ง `๊ธฐ๋ณธ JWT ๋ฐฉ์‹์ด ์•„๋‹Œ`, DB์— ์ธ์ฆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  User์˜ Id์™€ Refresh Token์„ ๊ฐ™์ด ์ €์žฅํ•œ ๋ฐฉ๋ฒ•์„ ์ผ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์•„๋ž˜์—์„œ ์–˜๊ธฐํ•ด ๋ณด์ž. ์ด์ œ ๋กœ๊ทธ์•„์›ƒ์„ ๋งŒ๋“ค๋ฉด์„œ ํ•˜๊ฒŒ ๋œ ๊ณ ๋ฏผ๊ณผ ๊ณผ์ •์„ ๋‚˜์—ดํ•ด ๋ณด๊ฒ ๋‹ค.(์ฒ˜์Œ์—” ๋ณ„์ƒ๊ฐ ์—†์ด Refresh Token์„ ํ…Œ์ด๋ธ”์—์„œ ์‚ญ์ œํ•˜๋Š” ์‚ฝ์งˆ์„..)   ๊ธฐ๋ณธ JWT ๋ฐฉ์‹์œผ๋กœ๋Š” ์•ˆ์ „ํ•œ ๋กœ๊ทธ์•„์›ƒ์„ ๊ตฌํ˜„์ด ์–ด๋ ค์šธ๊ฑธ?๊ธฐ๋ณธ JWT ๋ฐฉ์‹์—์„œ๋Š” ์„œ๋ฒ„๊ฐ€ ํ† ํฐ ์ƒํƒœ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์—†์–ด ์•ˆ์ „ํ•œ ๋กœ๊ทธ์•„์›ƒ ๊ตฌํ˜„์ด ์–ด๋ ต๋‹ค.๊ทธ ์ด์œ ๋Š” ํ† ํฐ ๋ฐœ๊ธ‰ ํ›„ ์„œ๋ฒ„๋Š” ํ† ํฐ ๊ด€๋ฆฌ ๊ถŒํ•œ์„ ์žƒ์–ด๋ฒ„๋ฆฌ๋Š”๋ฐ, ์ด๋Š” ์„œ๋ฒ„ ์–ด๋””์—๋„ `์‚ฌ์šฉ์ž ์ •๋ณด`์™€ `๋งŒ๋ฃŒ ..
Spring ํ”„๋กœ์ ํŠธ์— ๋กœ์ปฌ ์บ์‹œ๋ฅผ ๋„์ž…ํ•ด๋ณด์ž.
ยท
์„œ๋ฒ„/Spring
๋“ค์–ด๊ฐ€๋ฉฐ ์Šคํ”„๋ง์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ, ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ํ•ด๋ณด๊ณ ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™€์ค‘์— ๋– ์˜ค๋ฅธ๊ฒŒ ๋ฐ”๋กœ ์บ์‹œ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋…๋งŒ ์‚ด์ง ์•Œ๊ณ ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ ํฌ์ŠคํŒ…์„ ํ†ตํ•ด์„œ ๊ธ€๋กœ๋ฒŒ ์บ์‹œ๊ฐ€ ์•„๋‹Œ ๋กœ์ปฌ ์บ์‹œ๋ฅผ ์„ ํƒํ•œ ์ด์œ  ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์บ์‹œ์˜ ๊ฒ€์ฆ ์„ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ์บ์‹œ๋ฅผ ์„ ํƒํ•œ ์ด์œ  ์บ์‹œ ์ „๋žต์—๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค ๊ธ€๋กœ๋ฒŒ ์บ์‹œ: ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ๋ณ„๋„์˜ ์บ์‹œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์žฅ์ : ๋ถ„์‚ฐ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ๋‹จ์ : ์™ธ๋ถ€ ์บ์‹œ ์„œ๋ฒ„์™€์˜ ๋„คํŠธ์›Œํฌ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๋ฉฐ, ๋ณ„๋„์˜ ์บ์‹œ ์„œ๋ฒ„ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์บ์‹œ: ๊ฐ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค์˜ ์ž์›์„ ์‚ฌ์šฉํ•˜์—ฌ ์บ์‹œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์žฅ์ : ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๊ณ , ํ•˜๋‚˜์˜ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค์—์„œ ์šด์˜๋  ๋•Œ ๊ธ€๋กœ๋ฒŒ ..
[Database][Sql] ์ธ๋ฑ์Šค(index)๋ž€?
ยท
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
์ธ๋ฑ์Šค(Index)๋ž€? ์ธ๋ฑ์Šค๋ž€ ์ถ”๊ฐ€์ ์ธ ์“ฐ๊ธฐ ์ž‘์—…๊ณผ ์ €์žฅ ๊ณต๊ฐ„์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๋‹จ์–ด์˜ ๋œป ๊ทธ๋Œ€๋กœ ์ฑ…์˜ ์ƒ‰์ธ๊ณผ ๊ฐ™๋‹ค. ์šฐ๋ฆฌ๋Š” ์ฑ…์—์„œ ์›ํ•˜๋Š” ๋‚ด์šฉ์„ ์ฐพ๊ณ  ์‹ถ์„ ๋•Œ, ์ฑ…์˜ ์ €์ž๊ฐ€ ์ฑ…์˜ ๋งจ ์•ž ๋˜๋Š” ๋งจ ๋’ค์— ๋งŒ๋“ค์–ด๋†“์€ ์ƒ‰์ธ ํŽ˜์ด์ง€์—์„œ ์›ํ•˜๋Š” ๋‹จ์–ด๊ฐ€ ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด ๋‹จ์–ด๋“ค์€ ๊ฐ€๋‚˜๋‹ค ํ˜น์€ abc ์ˆœ์„œ๋กœ ์ •๋ ฌ๋˜์–ด์žˆ๊ธฐ์— ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์กฐํšŒํ•˜๋Š” SELECT ์ฟผ๋ฆฌ ์™ธ์—๋„ UPDATE ์™€ DELETE ์˜ ์„ฑ๋Šฅ๋„ ํ•จ๊ป˜ ํ–ฅ์ƒ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ˆ˜์ • & ์‚ญ์ œ๋ฅผ ํ•  Row ๋ฅผ ์ฐพ๋Š” ์กฐํšŒ ๊ณผ์ •์ด ์„ ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. DELETE FROM user WHERE name = 'giken'; ์ธ๋ฑ์Šค๋ฅผ ๋‹ค๋ฃจ๋Š” ์ฟผ๋ฆฌ ์ธ๋ฑ์Šค ์ƒ์„ฑ --๋ฌธ๋ฒ• ..