๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ด๐Ÿ’ป/๐‰๐š๐ฏ๐š (16)

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[REVIEW] JVM ๋ฐ‘๋ฐ”๋‹ฅ๊นŒ์ง€ ํŒŒํ—ค์น˜๊ธฐ - 3.1 ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์™€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์ „๋žต

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

[REVIEW] JVM ๋ฐ‘๋ฐ”๋‹ฅ๊นŒ์ง€ ํŒŒํ—ค์น˜๊ธฐ - 2. ์ž๋ฐ” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฒ„ํ”Œ๋กœ

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

[REVIEW] JVM ๋ฐ‘๋ฐ”๋‹ฅ๊นŒ์ง€ ํŒŒํ—ค์น˜๊ธฐ - 1. ์ž๋ฐ” ๊ธฐ์ˆ  ์‹œ์Šคํ…œ

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

[JAVA] JVM, JVM ๋ฉ”๋ชจ๋ฆฌ, ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค, ์˜ค๋ฒ„๋ผ์ด๋”ฉ, ์˜ค๋ฒ„๋กœ๋”ฉ, ์ถ”์ƒํ™”

์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (Java Virtual Machine, JVM)์€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ™˜๊ฒฝ์ด๋‹ค. ์ž๋ฐ” ์ฝ”๋“œ๋Š” ๋ฐ”๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฐ”์ดํŠธ์ฝ”๋“œ(.class ํŒŒ์ผ)๋กœ ๋ณ€ํ™˜๋˜๊ณ , ์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒŒ JVM์ด๋‹ค.  JVM์˜ ์ฃผ์š” ์—ญํ• ๋ฐ”์ดํŠธ์ฝ”๋“œ ์‹คํ–‰: ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ณ€ํ™˜ํ•œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ ์ œ๊ณต: ํ•œ ๋ฒˆ ์ปดํŒŒ์ผ๋œ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ ์šด์˜ ์ฒด์ œ์™€ ์ƒ๊ด€์—†์ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. ("Write Once, Run Anywhere")๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ: ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ(GC)๋ฅผ ํ†ตํ•ด ๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์ •๋ฆฌํ•œ๋‹ค.๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ ์ œ๊ณต: ์Šคํƒ, ํž™, ๋ฉ”์„œ๋“œ ์˜์—ญ ๋“ฑ์„ ๊ด€๋ฆฌํ•˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ๋•๋Š”๋‹ค.  JVM ์‹คํ–‰ ๊ณผ์ •์†Œ์Šค ์ฝ”๋“œ(.java) ์ž‘์„ฑ์ปดํŒŒ์ผ(javac) → ๋ฐ”..

[Java] Action Tag

โญAction Tag ์•ก์…˜ ํƒœ๊ทธ ์„œ๋ฒ„๋‚˜ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์–ด๋–ค ํ–‰๋™์„ ํ•˜๋„๋ก ๋ช…๋ นํ•˜๋Š” ํƒœ๊ทธ ๊ธฐ๋Šฅ JSP ํŽ˜์ด์ง€์—์„œ ํŽ˜์ด์ง€์™€ ํŽ˜์ด์ง€ ์‚ฌ์ด๋ฅผ ์ œ์–ด ๋‹ค๋ฅธ ํŽ˜์ด์ง€์˜ ์‹คํ–‰๊ฒฐ๊ณผ ๋‚ด์šฉ์„ ํ˜„์žฌ ํŽ˜์ด์ง€์— ํฌํ•จ ์ž๋ฐ” ๋นˆ์ฆˆ (JavaBeans) (์ž๋ฐ”๊ฐ์ฒด) ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ์ œ๊ณต ์ข…๋ฅ˜ Include ์—ฌ๋Ÿฌ jsp ํŽ˜์ด์ง€์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ํฌํ•จ ๋‚ด์šฉ(ex. header, footer)์ด ์žˆ์œผ๋ฉด ๋ณ„๋„ ํŒŒ์ผ ์ €์žฅํ•˜๊ณ  ํฌํ•จ ์†Œ์Šค์ฝ”๋“œ ์ž์ฒด๊ฐ€ ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜ ์ค‘๋ณต ์„ ์–ธ ๋ถˆ๊ฐ€ํ•จ. ์•„๋‹˜ ์—๋Ÿฌ๋ฐœ์ƒํ•จ. ๐Ÿ†š action tag๋ฅผ ํ†ตํ•ด ๋ณ„๋„ ํŒŒ์ผ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ์Œ ์ฝ”๋“œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋งŒ ํฌํ•จ๋จ ํ•ด์„ํ•œ ๊ฒฐ๊ณผ๋งŒ ์ •์  ํ…์ŠคํŠธ๋กœ ์ „๋‹ฌํ•จ include์—๋Š” 2๊ฐ€์ง€ ๋ฐฉ์‹์ด ์กด์žฌ include directive(์ง€์‹œ์–ด) ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ํฌํ•จ์‹œํ‚จ ํ›„์— ์ปดํŒŒ์ผ์„ ํ•œ..

[Java] JSP, Directive

JSP JSP(Java Server Page)๋Š” Servlet์˜ ํ™•์žฅ๋œ ๊ธฐ์ˆ ๋กœ ๋ธŒ๋ผ์šฐ์ €์— ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ HTML์ฝ”๋“œ์— JAVA ์ฝ”๋“œ๋ฅผ ํ˜ผ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์ด๋กœ์จ ๋””์ž์ธ๊ณผ ๋กœ์ง ๊ฐœ๋ฐœ์„ ๋ถ„์—…ํ™”์‹œ์ผœ ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์ƒ์‚ฐํ•ด ๋‚ผ ์ˆ˜ ์žˆ๊ฒŒํ•œ๋‹ค. JSP ๊ธฐ๋ณธ๋ฌธ๋ฒ• ๋ฐ ์šฉ์–ด -> ์ „์—ญ๋ณ€์ˆ˜, ํ•จ์ˆ˜ -> ์ฝ”๋”ฉ, ์ง€์—ญ๋ณ€์ˆ˜ ->๋ฌธ์ž์—ด, ๋ณ€์ˆ˜๊ฐ’, ํ•จ์ˆ˜๋ฆฌํ„ด๊ฐ’ ์ถœ๋ ฅ ๋Š” ํ•ด๋‹น jspํŽ˜์ด์ง€์—์„œ ์–ด๋–ค ๋ฌธ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š”์ง€, ์–ด๋–ค ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€, ์„ธ์…˜์— ์ฐธ์—ฌํ•˜๋Š”์ง€, ์ถœ๋ ฅ ๋ฒ„ํผ์˜ ์กด์žฌ์—ฌ๋ถ€๋“ฑ jspํŽ˜์ด์ง€๋ฅผ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค€๋‹ค. (ex) = exception์„ ํ•ธ๋“ค๋งํ•˜๊ธฐ์œ„ํ•ด ๋งŒ๋“  ์—๋ŸฌํŽ˜์ด์ง€์ด๋‹ค ๋ผ๊ณ  ์„ ์–ธ๋ฌธ. ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์—๋ŸฌํŽ˜์ด์ง€๋ผ๊ณ  ์„ ์–ธํ•˜๊ฒŒ ๋˜๋ฉด์€ exception๊ฐ์ฒด๊ฐ€ ์‚ด๊ณ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ exception...