[DB] ํŠธ๋žœ์žญ์…˜ ACID ์†์„ฑ๊ณผ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€
ยท
๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
์ฃผ์ œํŠธ๋žœ์žญ์…˜์˜ ACID ์†์„ฑ ์ค‘ ๊ฒฉ๋ฆฌ์„ฑ(Isolation)์ด ๋ณด์žฅ๋˜์ง€ ์•Š์„ ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ๋“ค์„ ์„ค๋ช…ํ•˜๊ณ ,์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.ํŠธ๋žœ์žญ์…˜์ด๋ž€?ํŠธ๋žœ์žญ์…˜์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ์ž‘์—… ๋‹จ์œ„์ด๋‹ค.ACIDACID๋Š” ํŠธ๋žœ์žญ์…˜์„ ์ •์˜ํ•˜๋Š” 4๊ฐ€์ง€ ์†์„ฑ์„ ๋งํ•œ๋‹ค.์›์ž์„ฑ A: AtomicityํŠธ๋žœ์žญ์…˜์€ ์›์ž์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์—ฐ์‚ฐ๋“ค์˜ ๋ฌถ์€ ํ•˜๋‚˜์˜ ๋‹จ์œ„์ด๋‹ค.์›์ž์ ์ด๋ž€, ์ž‘์—… ์ˆ˜ํ–‰ ์‹œ ์ด ๋ชจ๋“  ์—ฐ์‚ฐ๋“ค์ด ๋ชจ๋‘ ์„ฑ๊ณตํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ๋ชจ๋‘ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ๋ถ€๋ถ„์ ์œผ๋กœ ์„ฑ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๋„๋ก๋ชจ๋‘ ์„ฑ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ปค๋ฐ‹ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ์„ฑ๊ณตํ•œ ๊ฒฝ์šฐ๋Š” ๋กค๋ฐฑํ•˜์—ฌ ์•„๋ฌด๊ฒƒ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์—ฌ์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ..
[Spring] JPA N+1 ๋ฌธ์ œ ๋ฐœ์ƒ ์›์ธ๊ณผ ํ•ด๊ฒฐ๋ฒ•์— ๋Œ€ํ•œ ๋ถ„์„๊ณผ ๊ณ ์ฐฐ feat. @OneToOne๊ณผ ์‚ฝ์งˆ
ยท
๐ŸŒฟSpring
๋“ค์–ด๊ฐ€๋ฉด์„œ ์ตœ๊ทผ์— Spring Data JPA๋ฅผ ๋ฐฐ์šฐ๊ณ  ์ ์šฉํ•ด๋ณด์•˜๋Š”๋ฐN+1 ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ตฌ๊ธ€๋ง์„ ํ•ด๋„ ๋ญ”๊ฐ€ ๋ฌ˜ํ•˜๊ฒŒ ๋น„์Šทํ•œ ๋“ฏ ๋‹ค๋ฅธ ์„ค๋ช…์ธ ๊ฒƒ ๊ฐ™๊ณ ..๊ถ๊ธˆ์ ์ด ํ’€๋ฆฌ์ง€ ์•Š์€ ๋ถ€๋ถ„์ด ์žˆ์–ด ๊ฐœ์ธ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋Œ๋ ค๊ฐ€๋ฉด์„œ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋‹ต์„ ์–ป์–ด๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค.์—ฌ๋Ÿฌ ๊ธ€๋“ค์„ ์ฝ์€ ๋ฐ”ํƒ•์œผ๋กœ ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋‚ด์šฉ์„ ๋ง๋ถ™์—ฌ ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(ํŠนํžˆ "๊ณ ์ฐฐ"์ด๋ผ๊ณ  ์ ์€ ๋ถ€๋ถ„)์ผ๋ฐ˜์ ์ธ ์‰ฌ์šด ์˜ˆ์‹œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ œ๊ฐ€ ์ง€๊ธˆ ๊ฒช๋Š” ๋ฌธ์ œ๋ฅผ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…ํ•œ๊ฑฐ๋ผ ๋‚ด์šฉ์ด ๋ณต์žกํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.ํ‹€๋ฆฐ ๋‚ด์šฉ์€ ๋Œ“๊ธ€ ๋‹ฌ์•„์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š๐Ÿ“Œ N+1 ๋ฌธ์ œ๋ž€?Spring Data JPA ์ด์šฉ ์‹œ์—”ํ‹ฐํ‹ฐ ๊ฐ„ ์—ฐ๊ด€ ๊ด€๊ณ„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋กœ1๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š”๋ฐ ์ถ”๊ฐ€๋กœ ์กฐํšŒ๋œ ์—”ํ‹ฐํ‹ฐ์˜ ๊ฐœ์ˆ˜ N๋ฒˆ ๋งŒํผ ์ฟผ๋ฆฌ๊ฐ€ ์ถ”๊ฐ€..
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ™”์™€ ์—ญ์ •๊ทœํ™”: 1NF, 2NF, 3NF, BCNF
ยท
๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ™”์ •๊ทœํ™”(Normalization)๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)์˜ ์„ค๊ณ„์—์„œโœ… ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ , โœ… ์ด์ƒ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ , โœ… ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์ •๊ทœํ˜•์— ๋งž๋„๋ก ๊ตฌ์กฐํ™”ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋‹ค. ์ •๊ทœํ™” ๊ณผ์ •์€ ๊ฐ ๊ด€๊ณ„(relation)๊ฐ€ ์ •๊ทœํ˜• ๊ธฐ์ค€์„ ๋งŒ์กฑํ•˜๋Š”์ง€ ํ‰๊ฐ€ํ•˜๊ณ ,๊ธฐ์ค€์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•˜๋ฉด ํ•„์š”์— ๋”ฐ๋ผ ๊ด€๊ณ„๋ฅผ ๋ถ„ํ•ดํ•œ๋‹ค. ์ œ1์ •๊ทœํ˜•(1NF)์—์„œ ์ œ4์ •๊ทœํ˜•(4NF)๋กœ ๊ฐˆ์ˆ˜๋ก ์ •๊ทœํ™”๊ฐ€ ๋” ๋งŽ์ด ๋œ๋‹ค. ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ์ œ1์ •๊ทœํ˜•,์ œ2์ •๊ทœํ˜•, ์ œ3์ •๊ทœํ˜•, BCNF์˜ ๊ฐ ํŠน์ง•์„ ์•Œ์•„๋ณด๊ณ ,๋ฐ˜๋Œ€ ๊ฐœ๋… ์—ญ์ •๊ทœํ™”์— ๋Œ€ํ•ด ์‚ดํŽด๋ณธ๋‹ค.๐Ÿ“Œ 1NF์ œ1์ •๊ทœํ˜•์€ First Normal Form์œผ๋กœ ์ฃผ๋กœ 1NF๋กœ ๋ถ€๋ฅธ๋‹ค.1NF์—์„œโœ… ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์†์„ฑ์˜ ๊ฐ’์€ ์›์ž์ ์ด์–ด์•ผ ํ•œ๋‹ค.'์›์ž์ ์ธ ๊ฐ’'์€ ๋” ์ด์ƒ..
[DB] SQL ๋ช…๋ น์–ด ์ •๋ฆฌ: DDL, DML, DQL, DCL, TCL
ยท
๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๐Ÿ“Œ SQLStructured Query Language(๊ตฌ์กฐ์  ์ฟผ๋ฆฌ ์–ธ์–ด)์˜ ์ค„์ž„๋ง๋กœ,๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด๋กœ, ๋ฐ์ดํ„ฐ ์ €์žฅ์ด๋‚˜ ์กฐํšŒ, ์‚ญ์ œ, ์ˆ˜์ •, ๊ถŒํ•œ ์„ค์ • ๋“ฑ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.SQL ๋ช…๋ น์–ด์—๋Š” DDL, DML, DCL, DQL, TCL์ด ์žˆ๊ณ  ์ด ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ฐ ๋ช…๋ น์–ด๋ฅผ ์‚ดํŽด๋ณธ๋‹ค.โœ… DDLDDL์€ Data Definition Language๋กœ ๋ฐ์ดํ„ฐ ์ •์˜์–ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, ์Šคํ‚ค๋งˆ์™€ ๊ฐ™์€ "๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ"๋ฅผ ์ •์˜, ๋ณ€๊ฒฝ, ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์ด ํฌํ•จ๋œ๋‹ค.CREATE์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์“ด๋‹ค.์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ด€๊ณ„(ํ…Œ์ด๋ธ”), ๋ทฐ(๊ฐ€์ƒ ํ…Œ์ด๋ธ”), ์ธ๋ฑ์Šค..
Spring BOOT์˜ @RestController: HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต ์ฒ˜๋ฆฌ ๊ณผ์ •
ยท
๐ŸŒฟSpring
๐ŸŽฏ ์ฃผ์ œSpring Boot์—์„œ @RestController๋กœ ๋“ค์–ด์˜จ HTTP ์š”์ฒญ์ด ์ฒ˜๋ฆฌ๋˜์–ด ์‘๋‹ต์œผ๋กœ ๋ณ€ํ™˜๋˜๋Š” ์ „์ฒด ๊ณผ์ • + HTTP ๋ฉ”์‹œ์ง€ ์ปจ๋ฒ„ํ„ฐ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ์‹œ์ ๊ณผ ์—ญํ• ๐Ÿ“Œ @RestControllerController-Service-Repository ํŒจํ„ด์—์„œ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์‚ฌ์šฉ์ž ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ ์ ˆํ•œ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.์ปจํŠธ๋กค๋Ÿฌ๋Š” HTTP ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๊ณ , ์„œ๋น„์Šค ๊ณ„์ธต์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ˆ˜ํ–‰์„ ์š”์ฒญํ•œ ํ›„,ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ ์ ˆํ•œ ๋ทฐ(View) ๋˜๋Š” ๋ฐ์ดํ„ฐ(JSON ๋“ฑ) ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.์ด๋Ÿฌํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด, ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค๋Š” @Controller ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.@Controller ์–ด๋…ธํ…Œ์ด์…˜์€ ์ฃผ๋กœ View๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.๋ฐ˜ํ™˜๋œ ๊ฐ’์€ ๋ทฐ์˜ ์ด๋ฆ„์œผ๋กœ ํ•ด์„..
์›น API: SOAP API, SOAP๊ณผ REST์˜ ์ฐจ์ด
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐ŸŽฏ ์ฃผ์ œ์›น API์˜ ๋ฐœ์ „ ๊ณผ์ •์—์„œ SOAP์—์„œ REST๋กœ์˜ ์ „ํ™˜์ด ์ผ์–ด๋‚œ ์ด์œ ์™€ ๊ทธ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์›น API๋จผ์ € ๊ฐ„๋‹จํ•˜๊ฒŒ API์™€ ์›น API์˜ ๊ฐœ๋…์„ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž. API?API(Application Programming Interface)์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์†Œํ”„ํŠธ์›จ์–ด)์ด ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.์ธํ„ฐํŽ˜์ด์Šค์ด๋ฏ€๋กœ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ์ „๋ถ€ ์•Œ ํ•„์š” ์—†์ด, ์ •ํ•ด์ง„ ๋ฐฉ๋ฒ•(๋ฉ”์„œ๋“œ, ์—”๋“œํฌ์ธํŠธ ๋“ฑ)๋งŒ ๋”ฐ๋ฅด๋ฉด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.์‹๋‹น์—์„œ ์Œ์‹์„ ์ฃผ๋ฌธํ•  ๋•Œ๋ฅผ ๋– ์˜ฌ๋ ค๋ณด์ž. ๋ฉ”๋‰ดํŒ(API ๋ฌธ์„œ): ์†๋‹˜(์‚ฌ์šฉ์ž)์€ ๋ฉ”๋‰ดํŒ์„ ๋ณด๊ณ  ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์Œ์‹ ๋ชฉ๋ก์„ ํ™•์ธํ•œ๋‹ค.(๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ)์ฃผ๋ฌธ ์š”์ฒญ(์š”์ฒญ Request): ์†๋‹˜์€ ์›จ์ดํ„ฐ(API)๋ฅผ ํ†ตํ•ด "์Šคํ…Œ์ดํฌ ํ•˜๋‚˜ ์ฃผ์„ธ์š”!"๋ผ๊ณ  ์ฃผ๋ฌธํ•œ๋‹ค.์ฃผ๋ฐฉ ์ฒ˜๋ฆฌ(..
[Spring] SpringBoot์—์„œ์˜ Bean ๊ฐœ๋… & ๋“ฑ๋ก ๋ฐฉ๋ฒ• ์ •๋ฆฌ
ยท
๐ŸŒฟSpring
๐Ÿ€ ๋“ค์–ด๊ฐ€๋ฉด์„œ๋จผ์ € ์ฝ์œผ๋ฉด ์ข‹์€ ๊ธ€.์ด ๊ธ€์—์„œ ์–ธ๊ธ‰ํ•  ์ œ์–ด์˜ ์—ญ์ „(IoC), ์˜์กด์„ฑ ์ฃผ์ž…(DI) ๋“ฑ์— ๋Œ€ํ•œ ์„ค๋ช…์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.tistorySpring์„ ์“ฐ๋Š” ์ด์œ : Spring์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๊ณผ ํŠน์ง•velogSpring์„ ์“ฐ๋Š” ์ด์œ : Spring์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ๊ณผ ํŠน์ง•๐Ÿ”Ž ์ฃผ์ œSpring Boot์—์„œ ์–ด๋–ป๊ฒŒ Bean์„ ๋“ฑ๋กํ•˜๊ณ  ์‚ฌ์šฉํ• ๊นŒ?โœ… Bean์˜ ๊ฐœ๋…Bean์ด๋ž€?์Šคํ”„๋ง IoC ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” ๊ฐ์ฒด์Šคํ”„๋ง์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ IoC ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ์˜์กด ๊ด€๊ณ„๊ฐ€ ๊ด€๋ฆฌ๋˜๊ณ , ํ•„์š” ์—†๋Š” ๊ฐ์ฒด๊ฐ€ ์†Œ๋ฉธ๋œ๋‹ค.๐Ÿซ› Bean์˜ ํŠน์ง•POJO(Plain Old Java Object)ํŠน๋ณ„ํ•œ ๊ทœ์•ฝ์— ์–ฝ๋งค์ด์ง€ ์•Š์€ ์ˆœ์ˆ˜ ์ž๋ฐ” ๊ฐ์ฒด.์Šคํ”„๋ง Bean์€ ๋Œ€๊ฐœ POJO ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜์—ฌ, ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์— ์ข…์†๋˜..
์›น ์„œ๋ฒ„(Web Server) vs WAS(Web Application Server) ๊ฐœ๋… ์ดํ•ด์™€ ์ฐจ์ด ๋น„๊ต feat. Tomcat
ยท
โš™๏ธ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ
๐Ÿ”Ž ์ฃผ์ œ์›น ์„œ๋ฒ„(Web Server)์™€ WAS(Web Application Server)๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฑธ๊นŒ?์›น ์„œ๋ฒ„(Web Server)์›น ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„ ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ์ „์†กํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.์ž‘๋™ ๋ฐฉ์‹ํด๋ผ์ด์–ธํŠธ URL์„ ์ž…๋ ฅํ•˜์—ฌ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ์ด URL์ด ์›น ์„œ๋ฒ„์˜ ์ฃผ์†Œ ์‹๋ณ„์ž์ด๋‹ค.ํด๋ผ์ด์–ธํŠธ์™€ ์›น ์„œ๋ฒ„์˜ ํ†ต์‹  ๋ฐฉ์‹ํด๋ผ์ด์–ธํŠธ๋Š” URL์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ฐพ์Œ.ํด๋ผ์ด์–ธํŠธ๋Š” ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์œ„ํ•œ HTTP ์š”์ฒญ์„ ๋ณด๋ƒ„.์›น ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜์—ฌ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์Œ.์›น ์„œ๋ฒ„๋Š” HTML ํŽ˜์ด์ง€, ์ด๋ฏธ์ง€, ํŒŒ์ผ ๋“ฑ๊ณผ ๊ฐ™์€ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ HTTP ํ˜•ํƒœ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ˜ํ™˜ํ•จ.์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•จ...