
ìë°íë¡ê·žëš - ìë°ì êž°ìŽì§ì
â
ìë íìžì. ììíì ëë€.

ìë°ë?
ìë°(Java)ë CìžìŽì ê°ì²Ž ì§í¥ì êž°ë¥ì ì¶ê°íì¬ ë§ë C++곌 ë¬ëЬ, ì²ìë¶í° ê°ì²Ž ì§í¥ ìžìŽë¡ ê°ë°ë íë¡ê·žëë° ìžìŽì ëë€. ìë°ë ê°ìëšžì (JVM, Hava Virtual Machine)ì ì¬ì©íì¬ ìŽì첎ì ìë ë 늜ì ìŒë¡ ëìí ì ììµëë€.
â
ë°ëŒì, ìë°ë ìŽë ìŽì첎ì ììë ê°ì ííë¡ ì€íë ì ììµëë€. ë°ë¡ ìŽë¬í ì ìŽ ìë§ì ê°ë°ìë¡ íì¬êž ìë°ë¥Œ ì¬ì©íê² íë ìëë ¥ìŽ ëê³ ììµëë€. íì¬ ìë°ë ì ìžê³ìì ê°ì¥ ë§ìŽ ì¬ì©íë íë¡ê·žëë° ìžìŽ ì€ íëì ëë€.

ìë°ì ìì¬
ì²ìì ìë°ë ê°ì ì í ëŽìì ëìíë ìë² ëë íë¡ê·žëšì ìí ìžìŽë¡ ì¬ ë§ìŽí¬ë¡ìì€í ìŠ(Sun Microsystems)ì¬ì ì ìì€ ê³ ì¬ë§(James Gosling) íì ìíŽ ê°ë°ëììµëë€.
â
1991ë ì ì€í¬(Oak)ëŒë ìŽëŠìŒë¡ ììíì¬ 1996ë ì ë°íë 1.0.2ë²ì ë¶í° ìë°(Java)ëŒë ìŽëŠì ì¬ì©íê² ë©ëë€. 1998ë ì ë°íë J2SE 1.2ììë ì¹ììë ìë°ë¥Œ ë늎 ì ìê² íŽì£Œë ìë° ì í늿(Java Applet)ìŽ ì¶ê°ëë©°, ìë°ì ìžêž°ë êžìì¹íê² ë©ëë€.
â
ê·ž í ë²ì ìŽ ì ë°ìŽíž ë ëë§ë€ ë€ìí êž°ë¥ìŽ ì§ìëë©° ìë°ë ꟞ì€í ìžêž°ë¥Œ ëëŠ¬ê² ë©ëë€. ìŽí 2009ë ì ì¬ ë§ìŽí¬ë¡ìì€í ìŠì¬ê° ì€ëŒíŽê³Œ ìžì í©ë³ëšì ë°ëŒ ìë° ëí ì€ëŒíŽë¡ ìì ê¶ìŽ ëìŽê°ëë€.

ìë°ì í¹ì§
ìë° ìžìŽê° ê°ì§ë ì¥ì
â
- ìë°ë ìŽì첎ì ìë ë 늜ì ìŒë¡ ì€íí ì ììµëë€.
- ìë°ë ë¶íìí êž°ë¥ì 곌ê°í ì ê±°íì¬ ë€ë¥ž ìžìŽì ë¹íŽ ë°°ì°êž°ê° ìœìµëë€.
- ìë°ë ìë ë©ëªšëЬ êŽëЬ ë±ì ì§ìíì¬ ë€ë¥ž ìžìŽì ë¹íŽ ìì ì±ìŽ ëìµëë€.
- ìë°ë ì°ì°ì ì€ë²ë¡ë©ì êžì§íê³ ì ë€ëŠì ëì íšìŒë¡ìš ìœëì ê°ë ì±ì ëììµëë€.
- ìë°ì êŽí ìë§ì ì°žê³ ìë£ë¥Œ ì°Ÿì ì ììµëë€.
â
ìë° ìžìŽê° ê°ì§ë ëšì
â
- ìë°ë ì€íì ìíŽ ìë° ê°ì ëšžì ì ê±°ì³ìŒíë¯ë¡ ë€ë¥ž ìžìŽì ë¹íŽ ì€í ìëê° ë늜ëë€.
- ìë°ë ììž ì²ëŠ¬ê° ì ëìŽìì§ë§ ê°ë°ìê° ìŒìŒìŽ ì²ëŠ¬ë¥Œ ì§ì íŽì€ìŒ íë€ë ë¶ížíšìŽ ììµëë€.
- ìë°ë ë€ë¥ž ìžìŽì ë¹íŽ ìì±íŽìŒíë ìœëì êžžìŽê° ꞎ ížì ëë€.

ìë°íë¡ê·žëšì ì€í곌ì


ìë° ì»ŽíìŒë¬(Java Compiler)
ìë° ì»ŽíìŒë¬ë ìë°ë¥Œ ê°ì§ê³ ìì±í ìë° ìì€ìœë륌 ìë° ê°ì ëšžì ìŽ ìŽíŽí ì ìë ìë° ë°ìŽížìœëë¡ ë³íí©ëë€. ìë° ì»ŽíìŒë¬ë ìë°ë¥Œ ì€ì¹í멎 javac.exeëŒë ì€í íìŒ ííë¡ ì€ì¹ë©ëë€.

ìë° ë°ìŽížìœë(Java bytecode)
ìë° ë°ìŽížìœë(Java bytecode)ë ìë° ê°ì ëšžì ìŽ ìŽíŽí ì ìë ìžìŽë¡ ë³íë ìë° ìì€ìœë륌 ì믞í©ëë€. ìë° ì»ŽíìŒë¬ì ìíŽ ë³íëë ìœëì ëª ë ¹ìŽ í¬êž°ê° 1ë°ìŽížëŒì ìë° ë°ìŽížìœëëŒê³ ë¶ëŠ¬ê³ ììµëë€.
â
ìŽë¬í ìë° ë°ìŽížìœëì íì¥ìë .classì ëë€.
â
ìë° ë°ìŽížìœëë ìë° ê°ì ëšžì ë§ ì€ì¹ëìŽ ììŒë©Ž ìŽë€ ìŽì첎ì ììëŒë ì€íë ì ììµëë€.

ìë° ê°ì ëšžì (JVM)
ìë° ê°ì ëšžì (JVM, Java Virtual Machine)ìŽë ìë° ë°ìŽížìœë륌 ì€íìí€êž° ìí ê°ìì êž°ê³ëŒê³ í ì ììµëë€. ìë°ë¡ ìì±ë 몚ë íë¡ê·žëšì ìë° ê°ì ëšžì ììë§ ì€íë ì ììŒë¯ë¡ ìë° íë¡ê·žëšì ì€ííêž° ìíŽìë ë°ëì ìë° ê°ì ëšžì ìŽ ì€ì¹ëìŽ ììŽìŒ í©ëë€.
â
ë°ëŒì ì€ëŒíŽì ëë¶ë¶ì 죌ì ìŽì첎ì ë¿ë§ ìëëŒ ì¹ ëžëŒì°ì , ì€ë§íží°, ê°ì êž°êž° ë±ììë ìë° ê°ì ëšžì ì ììœê² ì€ì¹í ì ìëë¡ ì§ìíê³ ììµëë€.
â
ê·žëì ê°ë°ìë í ë²ë§ íë¡ê·žëšì ìì±í멎, 몚ë ìŽì첎ì ìì ê°ìŽ ì¬ì©í ì ìë ì¥ì ìŽ ììµëë€. ëš, ìë°íë¡ê·žëšê³Œë ë¬ëЬ ìë° ê°ì ëšžì ì ìŽì첎ì ì ì¢ ìëë¯ë¡ ê° ìŽì첎ì ì ë§ë ìë° ê°ì ëšžì ì ì€ì¹íŽìŒí©ëë€.
â
ëí, ìë°íë¡ê·žëšì ìŒë°íë¡ê·žëšë³Žë€ ìë° ê°ì ëšžì ìŽëŒë í ëšê³ë¥Œ ë ê±°ì³ìŒíë¯ë¡ ìëì ìŒë¡ ì€íìëê° ë늬ë€ë ëšì ì ê°ì§ê³ ììµëë€.

ìë° ê°ì ëšžì ì 구ì±
ìë° ê°ì ëšžì ì ë€ì곌 ê°ìŽ êµ¬ì±ë©ëë€.
â
- ìë° ìží°í늬í°(interpreter)
- íŽëì€ ë¡ë(class loader)
- JIT 컎íìŒë¬(Just-In-Time compiler)
- ê°ë¹ì§ 컬ë í°(garbage collector)
â
ìë° ì»ŽíìŒë¬ì ìíŽ ë³íë ìë° ë°ìŽížìœë륌 ìœê³ íŽìíë ìí ì íë ê²ìŽ ìë° ìží°í늬í°ì ëë€.
â
ìë°ë ëì ìŒë¡ íŽëì€ë¥Œ ìœìŽì€ë¯ë¡ íë¡ê·žëšìŽ ì€í ì€ìž ë°íììììŒ ëªšë ìœëê° ìë° ê°ì ëšžì 곌 ì°ê²°ë©ëë€. ìŽë ê² ëì ìŒë¡ íŽëì€ë¥Œ ë¡ë©íŽì£Œë ìí ì íë ê²ìŽ ë°ë¡ íŽëì€ ë¡ëì ëë€.
â
JIT 컎íìŒë¬ë íë¡ê·žëšìŽ ì€í ì€ìž ë°íìì ì€ì êž°ê³ìŽë¡ ë³ííŽì£Œë 컎íìŒë¬ë¥Œ ì믞í©ëë€. ëì ë²ì(dynamic translation)ìŽëŒê³ ë ë¶ëЬë ìŽ êž°ë²ì íë¡ê·žëšì ì€í ìë륌 í¥ììí€êž° ìíŽ ê°ë°ëììµëë€. ìŠ, JIT 컎íìŒë¬ë ìë° ì»ŽíìŒë¬ê° ìì±í ìë° ë°ìŽížìœë륌 ë°íìì ë°ë¡ êž°ê³ìŽë¡ ë³ííë ë° ì¬ì©í©ëë€.
â
ìë° ê°ì ëšžì ì ê°ë¹ì§ 컬ë í°ë¥Œ ìŽì©íì¬ ëë ì¬ì©íì§ìë ë©ëªšëŠ¬ë¥Œ ìëìŒë¡ íìíŽì€ëë€. ë°ëŒì ê°ë°ìê° ë°ë¡ ë©ëªšëŠ¬ë¥Œ êŽëЬíì§ììë ëë¯ë¡ ëì± ììœê² íë¡ê·žëë°ì í ì ìëë¡ ëìì€ëë€.

ê°ëší ìë°íë¡ê·žëš
ìë°íë¡ê·žëšì í ê° ìŽìì íŽëì€(class)ë¡ êµ¬ì±ë©ëë€. ìŽë¬í íŽëì€ë í ê° ìŽìì íë(field)ë ë©ìë(method)ë¡ êµ¬ì±ë©ëë€.
â
ê°ëší ìë°íë¡ê·žëšì Ʞ볞 구조ë ë€ì곌 ê°ìµëë€.
class íŽëì€ ìŽëŠ {
íëì ì ìž
íëì ì ìž
...
ë©ìëì ì ìž
ë©ìëì ì ìž
...
}
class Test {
int field1;
String field2;
public void method1() {
Systme.out.println("ìë° íë¡ê·žëë°!!");
}
}
ì€í결곌
ìë° íë¡ê·žëë°!!

main() ë©ìë
ìë°íë¡ê·žëšìŽ ì€íë멎 ë§š 뚌ì main() ë©ìë륌 ì°Ÿì ê·ž ìì 몚ë ëª ë ¹ë¬žì ì°šë¡ëë¡ ì€íí©ëë€. ë°ëŒì íëì ìë°íë¡ê·žëšìë main() ë©ìë륌 ê°ì§ë íŽëì€ê° ë°ëì íëë 졎ì¬íŽìŒí©ëë€.
â
ìë°ìì main() ë©ìëë ë€ì곌 ê°ìŽ ì ìží©ëë€.
public static void main(String[] args) {
...
}
ìììì²ëŒ main() ë©ìëë ë°ëì public static voidë¡ ì ìžëìŽìŒ í©ëë€.

ëª ë ¹ë¬ž(statement)
ìë°íë¡ê·žëšì ëìì ëª ìíê³ , ìŽë¬í ëìì 컎íší°ì ìë €ì£Œë ë° ì¬ì©ëë 묞ì¥ì ëª ë ¹ë¬žìŽëŒê³ í©ëë€. ìë°ì 몚ë ëª ë ¹ë¬žì ë°ëì ìžë¯žìœë¡ (;)ìŒë¡ ëëìŒ í©ëë€.

죌ì(comment)
죌ììŽë ìœëì ëí ìŽíŽë¥Œ ëë ì€ëª ì ì ê±°ë ëë²ê¹ ì ìíŽ ìì±íë ìŒì¢ ì ë©ëªšì ëë€. ìë° ì»ŽíìŒë¬ë 죌ìì 묎ìíê³ ì»ŽíìŒíë¯ë¡ ì€ì ì€í결곌ìë ìë¬Žë° ìí¥ì 죌ì§ììµëë€.
â
ìë°ìì 죌ìì ìì±íë 묞ë²ì ë€ì곌 ê°ìŽ ëê°ì§ ë°©ë²ìŽ ììŒë©°, ê·ž ì°šìŽë ì í ììµëë€.
â
ìë°ì í ì€ ì£Œìì ìììì¹ì //ì ì¬ì©íê³ ì¬ë¬ ì€ ì£Œìì /*ë¡ ììíŽì ë°ëì */ë¡ ëëìŒí©ëë€.
1. //í ì€ ì£Œì
2. /*ì¬ë¬
ì€
죌ì */
ë€ì ìì ë ìë°ìì ì¬ë¬ ì€ ì£Œì ìì ë ë€ë¥ž í ì€ ì£Œìì ì€ì²©íŽì ìœì íë ìì ì ëë€.
/* ì¬ë¬ ì€
//ìŽë ê² ë 죌 죌ì ìì ë ë€ë¥ž í ì€ ì£Œìì ìœì
í ì ììµëë€.
죌ìì
ëë€. */
ìì ìì ì²ëŒ ìë°ììë ì¬ë¬ ì€ ì£Œì ìì ë ë€ë¥ž í ì€ ì£Œìì ìœì í ì ììµëë€. íì§ë§ ë€ì ìì ì²ëŒ ì¬ë¬ ì€ ì£Œììì ë ë€ë¥ž ì¬ë¬ ì€ ì£Œìì ì€ì²©íŽì ìœì í ìë ììµëë€.
[1] /* ì¬ë¬ ì€
[2] /* ë ë€ë¥ž ì¬ë¬ ì€ ì£Œìì
ëë€. */
[3] 죌ìì
ëë€. */
ìì ìì ì²ëŒ ì¬ë¬ ì€ ì£Œì ìì ë ë€ë¥ž ì¬ë¬ ì€ ì£Œìì ìœì í멎 [2]ë² ëŒìžìì ìœì í 죌ìì ì¢ ë£ êž°íž(*/)륌 [1]ë² ëŒìžìì ììí 첫 ë²ì§ž 죌ììŽ ìì ì ì¢ ë£ êž°íž(*/)ë¡ ì못 ìžìíê² ë©ëë€.
â
ë°ëŒì ì ìì ì [3]ë² ëŒìžì 죌ììŒë¡ ìžìëì§ ëª»íê³ , 컎íìŒ ì ì€ë¥ê° ë°ìíê² ëë¯ë¡ ìë°ìì ì¬ë¬ ì€ ì£Œìì ì ëë¡ ì€ì²©íŽì ì¬ì©íŽìë ìë©ëë€.

ì€ë í¬ì€í ììë ìë°íë¡ê·žëšì êž°ìŽì§ìì ëí ëŽì©ì ë€ë€ìµëë€. ìë°íë¡ê·žëšì System.out.println()ì ë€ì í¬ì€í ìì ììží ë€ë€ë³Žëë¡ íê³ , JAVA8ì ë³ê²œì¬í ëí ë€ë€ë³Žê² ìµëë€.
â
ìë°íë¡ê·žëšì ì¬ì©íì¬ ì ê³µëë¹, ì·šì , ì§í ë±ì 목ì 곌 ëë¶ìŽ ë€ìí íë¡ê·žëë° ìžìŽë¡ ì ê³µëë¹, ì·šì , ìê²©ìŠ ì·šë, ì§í ë±ì 목ì ì ê°ì§ê³ ê³ì ë¶ìŽëŒë©Ž ìëì ë€ìŽë² íŒì íµíŽ ê°ëšíê²ëŒë ëšê²šì£Œì멎 ì ê° ì§ì ë¹ ë¥Žê³ ì íí ëµë³ì íŽëëŠ¬ê² ìµëë€.
â
ê°ì¬í©ëë€ :)
â
⌠ìë°íë¡ê·žëšì ëí ê¶êží ì ëšêž°êž° âŒ
http://it-kgedu1.kr/support/edu_consult.php
ITíì - KGììŽí°ë± í¬ ííìŽì§
ITíì KGììŽí°ë± í¬ (ì¢ ë¡, ê°ëš, ë žëì§, ë¶ì°) íµí© ííìŽì§, íìë¹ ë° ìê°ë£ ì¡°í. 방묞ìëŽììœ, êµì¡ê³Œì , ìëŽìëŽ
it-kgedu1.kr