1. �바� 특징
- Scalability
- Universality
- Modularity
- C 언어ì�˜ í�¬ì�¸í„°ì²˜ëŸ¼ 메모리를 ì§�ì ‘ accessí• ìˆ˜ 없다.
- Object Oriented Language (�체지향언어)
- Interpreted Environment ì œê³µ
-- 기존ì�˜ compile/link/loadë°©ì‹�ì�˜ 언어ì—� 비해 source를 compileë§Œ 하면 최종 수행코드가 ìƒ�성ë�¨ìœ¼ë¡œ 개발시간ì�„ ë‹¨ì¶•í• ìˆ˜ 있다.
- Java Virtual Machine (JVM)
-- class파ì�¼ì�€ ê·¸ ìž�ì²´ê°€ 실행파ì�¼ì�´ 아니다. ë”°ë�¼ì„œ 그냥 수행ë� 수 없으며, ì�´ class파ì�¼ì�„ ì�½ì–´ì„œ í•´ì„�한 후, 실행해 줄 무언가가 필요한ë�°, 그것ì�´ 바로 JVMì�´ë‹¤.
- Thread를 완벽하게 지�한다.
- JVM� 알아서 � �� 사용�지 않는 메모리를 check해서 system� 반납해 준다.
- ê³µê³ í•œ security
(출처 : �바누리)
- VMì�´ëž€? : ìž�ë°” 언어 ë°� ê·¸ 실행 환경ì�˜ 개발ìž�ì�¸ ì�¬ 마ì�´í�¬ë¡œì‹œìŠ¤í…œì¦ˆì—� ì�˜í•´ 사용ë�œ 용어ì�´ë©°, 컴파ì�¼ë�œ ìž�ë°” ë°”ì�´ë„ˆë¦¬ 코드와, ì‹¤ì œë¡œ 프로그램ì�˜ ëª…ë ¹ì–´ë¥¼ 실행하는 마ì�´í�¬ë¡œ 프로세서(ë˜�는 하드웨어 플랫í�¼) ê°„ì—� ì�¸í„°íŽ˜ì�´ìФ ì—í• ì�„ 담당하는 소프트웨어를 가리킨다.
- 장ì � : ê°€ìƒ�ë¨¸ì‹ ì�´ 한 플랫í�¼ì—�서 ì œê³µë�˜ë©´, ì–´ë– í•œ ìž�ë°” 프로그램ë�„ ê·¸ 플랫í�¼ì—�서 실행ë� 수 있다.
- 하드웨어 환경� 따른 구분 : JSEE(Enterprise Edition), J2SE(Standard Edition), M2ME(Micro Edition)
- 1. ì• í”Œë¦¬ì¼€ì�´ì…˜ê³¼ ì• í”Œë¦¿
ì• í”Œë¦¿ì�€ 브ë�¼ìš°ì €ì—� 플러그ì�¸ 형ì‹�으로 실행ë� 수 있는 ìž�ë°” 프로그램ì�„ ë§�í•˜ê³ ì• í”Œë¦¬ì¼€ì�´ì…˜ì�€ 브ë�¼ìš°ì €ê°€ 아닌 순수 ìž�ë°” 프로그램들ì�„ ë§�합니다. êµ³ì�´ ë”°ì§€ìž�ë©´ 서블릿, 빈즈, JSP 모ë‘� ì• í”Œë¦¬ì¼€ì�´ì…˜ì—� í•´ë‹¹í•˜ê² ì£ .
- 2. 서블릿ì�´ë‚˜ JSP 는 J2EEì�˜ 구성ì›�들로서 서버사ì�´ë“œ 스í�¬ë¦½íЏë�¼ê³ 합니다. JSPê°€ 만들어진 ì�´ìœ ê°€ ë�ëƒ�하면, 서블릿ì�˜ ë¬¸ì œì �ì�„ 해결하기 위해서ë�¼ê³ 나 í• ê¹Œ... 웹 프로그래ë°�ì�´ëž€ê²Œ 본질ì �으로 웹디ìž�ì�´ë„ˆì™€ì�˜ í˜‘ë ¥ì�´ 불가피한ë�° 서블릿ì�˜ 경우ì—�는 DISPLAY 부분ì�„ ìˆ˜ì •í•˜ê¸° 위해서 웹디ìž�ì�´ë„ˆê°€ ì ‘ê·¼í•˜ê¸° ì–´ë µë‹¤ëŠ” 단ì �ì�´ ìžˆì£ .. ì�´ë•Œë¬¸ì—� JSPê°€ ë§Œë“¤ì–´ì¡Œë‹¤ê³ ì•Œê³ ìžˆìŠµë‹ˆë‹¤. JSPë�¼ëŠ” 파ì�¼ì�€ 웹 ë””ìž�ì�´ë„ˆê°€ 페ì�´ì§€ë¥¼ ìˆ˜ì •í•˜ê¸° 편하게 ë�˜ì–´ìžˆë‹¤ëŠ”ê²Œ 장ì �ì�´ì£ . JSPê°€ 컴파ì�¼ë�˜ë©´ 서블릿ì�´ ë�©ë‹ˆë‹¤.(ì�´ê²Œ ì „ë¶€ìž„...) ê·¸ë¦¬ê³ ì„œë¸”ë¦¿ì�´ 실행ë�˜ë©´ ì‹¤ì œ HTML 페ì�´ì§€ê°€ í�´ë�¼ì�´ì–¸íЏì—�게 ì „ì†¡ë�˜ëŠ” 것입니다.
빈즈ì—� 대해서 ì�´ì•¼ê¸° 하ìž�ë©´ 웹 서비스ë�¼ëŠ” í�° í…Œë‘�리 ë‚´ì—�서 ì�´ì•¼ê¸°ë¥¼ 해야 하는ë�°, 간단하게 ë§�하ìž�ë©´ 빈즈ë�¼ëŠ” 것ì�´ 만들어진 ì�´ìœ 는 프로그램ì�˜ DISPLAY 부분과 LOGIC 부분ì�„ 분리해서 좀 ë�” í™•ìž¥ì„±ìžˆê³ ìœ ì—°í•œ 시스템ì�„ ê°œë°œí•˜ê³ ìž� 하는 취지ì—�서 탄ìƒ�한 것입니다.(언뜻 ì�´í•´ê°€ 안ë� 수ë�„ 있ì�Œ...)
"ì¶”ìƒ�í™”" ë�¼ëŠ” 것과 ë°€ì ‘í•œ ê´€ë ¨ì�´ 있습니다. 우리가 윈ë�„ìš° ìš´ì˜�ì²´ì œë¥¼ 쓸때 C 드ë�¼ì�´ë¸Œ D 드ë�¼ì�´ë¸Œë¥¼ í�´ë¦ë§Œ 하면 ê·¸ 안ì�˜ 파ì�¼ë“¤ì�´ 다 ë³´ì�´ì£ . 하지만 ì‹¤ì œ 컴퓨터 안ì—�서 ë�ê°€ 어떻게 ë�Œì•„가는지는 알 필요가 없습니다. ê·¸ì € ì•„ì�´ì½˜ì�´ ë³´ì�´ë©´ í�´ë¦í•´ì„œ ê·¸ 안ì�˜ 파ì�¼ë“¤ì�„ ë³´ê³ ì—´ê³ ì‚ì œí•˜ê±°ë‚˜ ìˆ˜ì •í•˜ë©´ ë�˜ëŠ”ê±°ì£ .
빈즈가 그런 개�입니다.
프로그래ë°�ì�„ í• ë•Œ ë�°ì�´í„°ë² ì�´ìФì—� 대한 ì ‘ê·¼ì�´ë�¼ë“ ê°€ ë˜�는 다른 시스템ì—� 대한 참조를 í• ë•Œ êµ³ì�´ ê·¸ 시스템ì—� 대해서 세세하게 알필요 ì—†ì�´ ê·¸ì € 외부ì—� 주어진 ì�¸í„°íŽ˜ì�´ìŠ¤ë§Œì�„ ì�´ìš©í•´ì„œ ì ‘ê·¼í•˜ë©´ ë�©ë‹ˆë‹¤. (예를 들ìž�ë©´ ì–´ë–¤ 기능ì�„ ì�´ìš©í• 때는 ì�´ëŸ° 메소드를 호출하면 ë�œë‹¤. ì–´ë–¤ ê°’ì�„ ì €ìž¥í•˜ê¸° 위해서는 ì�´ëŸ° 메소드로 ì ‘ê·¼í•˜ë©´ ë�œë‹¤ ì •ë�„). 빈즈ì—� 대한 ë‚´ìš©ì�€
ì‹¤ì œë¡œ J2EE 프로그래ë°�ì�„ 해야지만ì�´ 알 수 있ì�„듯 합니다.
(출처 : 네�버 지��)
- ë²„ì „ê³¼ ë°œì „ê³¼ì •ì—� ëŒ€í•´ì„ ì¡°ì‚¬í• ìˆ˜ 없었습니다..
~cpp
public class HelloWorldApp {
public static void main (String args[]) {
System.out.println("Hello World!");
}
}
추가 ê³¼ì œ ¶
- ì�´ 내용들ì�„ 대충ì�´ë�¼ë�„ ì�´í•´í–ˆìœ¼ë©´ ë� 꺼 같군요. ì—시 마찬가지로 ì‹¤ì œë¡œ 프로그램ì�„ ë�Œê²Œë�” 만들지를 못한거 같군요. 한번 í•´ 보세요.
- �바가 왜 요새 �광� 받는 언어가 �었�까요?
- ìž�바가 가지는 단ì �ì�´ 하나ë�„ 없군요..;; 단ì �ë�„ ê°™ì�´ 조사해 주세요. 언어가 가지는 특징ì�´ ê¼ ìž¥ì �ë§Œ 가지ë�¼ëŠ” 법ì�€ 없구요 ê·¸ 단ì �ì�„ 알아서 그것ì�„ 극복하여 프로그래ë°� 하는 것ë�„ 필요하답니다.
추가 ê³¼ì œ 조사 ¶
- 집�서 �바가 �아가지 않습니다.
eclipse 나 Editplusì�˜ 사용법ì�„ ì œëŒ€ë¡œ ì•Œê³ ë‹¤ì‹œ 코드를 ìž‘ì„±í•´ë³´ê² ìŠµë‹ˆë‹¤.
- ìž�바가 ê°�광받는 언어가 ë�œ ì�´ìœ
- Java란 프로그램언어는 enterprise 급 기업ì�˜ web시스템ì—�서부터 ìž‘ì�€ 핸드í�°ì—� ì�´ë¥´ê¸°ê¹Œì§€ì–´ë””ë“ ì§€ ì‚¬ìš©í• ìˆ˜ 있다. 다시 ë§�í•´ Java를 í• ì¤„ 알면 ì–´ëŠ� ê³³ì—�나 ì �ìš© 가능한 프로그램ì�„ 개발 í• ìˆ˜ 있다는 ë§�ì�´ë‹¤. ê·¸ ë¿�ë§Œ 아니ë�¼, Java로 개발ë�œ 시스템ì�€ 다른 언어로 개발ë�œ 시스템보다ë�„ 훨씬 쉽게 확장ì�´ 가능하다.
예를 들어 Java로 ì�¸ì‚¬ì‹œìŠ¤í…œì�„ 개발하여 ìš´ì˜�í•˜ê³ ìžˆë‹¤ê°€, 새로운 급여 시스템ì�„ ê°œë°œí•˜ê³ ìž� í•œë‹¤ê³ ê°€ì •í•˜ìž�. ì�´ë•Œ Java는 다른 언어ì—� 비해 기존 시스템과 쉽게 ì—°ë�™ê°€ëŠ¥í•˜ë©°, 혹 기존 시스템ì�´ Javaê°€ 아니ë�”ë�¼ë�„ ê·¸ ì�¼ì�€ 가능하다.
- Java는 ë³´ì•ˆëŠ¥ë ¥ì�´ 뛰어나다. 예를 들어 네트워í�¬ë¥¼ 통해 ë‚´ PC로 downloadë�œ Java로 개발ë�œ 프로그램ì�€ ì�¼ë°˜ì �으로 ê·¸ ëŠ¥ë ¥ì�´ ì œí•œë�œë‹¤. 다시 ë§�í•´ ë°”ì�´ëŸ¬ìŠ¤ì²˜ëŸ¼ ìž‘ìš©í• ìˆ˜ 없다는 ë§�ì�´ë‹¤ (ì�´ì �ì�€ MicroSoftì�˜ Active X와 비êµ�ë�œë‹¤).
예를 들어 모 siteì—� ì ‘ì†�하였ë�”니, appletì�´ ë‚´ PC로 ë‚´ë ¤ì™€ 수행ë�˜ì—ˆë‹¤. 만약 ì�´ appletì�´ ë‚´ PCì�˜ 중요한 ì •ë³´ë¥¼ ê°€ì ¸ê°€ê±°ë‚˜ 지워버릴 수 있ì�„까? ì�¼ë°˜ì �으로 불가능하다(ë¬¼ë¡ ê°€ëŠ¥í•˜ê²Œ 하는 방법ë�„ 있다. 하지만 ì�¼ë°˜ì �으로는 불가능하다).
- MicroSoft windowsì—�서 ì‹ ë‚˜ê²Œ 실행ë�˜ëŠ” 게임ì�´ Linuxì—�서ë�„ 잘 ë�Œê¹Œ? 아마ë�„ 답ì�€ '아니다' ì�¼ 것ì�´ë‹¤. 그러나 만약 ê·¸ 게임ì�´ Java로 ì œìž‘ë�˜ì—ˆë‹¤ë©´ 답ì�€ '예' ì�´ë‹¤. 다시 ë§�í•´ Java로 개발ë�œ 프로그램ì�€ PC, Macintosh, Linux등 machineì�´ë‚˜ O/Sì—� 종ì†�ë�˜ì§€ 않는다.
기존ì—� Sun OSì—�서 Java로 개발한 ì�¸ì‚¬ì‹œìŠ¤í…œì�„ Windows NT로 ì�´ê´€í•˜ê³ 싶다. ì�´ë•Œ 프로그램 ìˆ˜ì •ì—†ì�´ ê°€ëŠ¥í• ê¹Œ? Windows NT를 ì§€ì›�하는 JDKê°€ 있다면 가능하다. ê·¸ëŸ¬ê³ Windows NT를 ì§€ì›�하는 JDK는 있다.
- Java를 ì�´ìš©í•´ 재사용 가능한 object를 만들 수 있다. ì�´ object는 향후 다른 프로그램내ì—�서 그냥 재사용 가능하다. ê°•ë ¥í•œ Javaì�˜ 재사용성ì�€ Javaê°€ ê°€ì§€ê³ ìžˆëŠ” 장ì � 중ì—�서ë�„ 가장í�° 장ì �ì�´ë�¼ê³ ë§�í• ìˆ˜ 있다.
예를 들어 Aë�¼ëŠ” 회사ì—�서 ì�¸ì‚¬ 시스템ì�„ Java로 개발하여 ì‚¬ìš©í•˜ê³ ìžˆë‹¤ê³ ê°€ì •í•˜ìž�. 다른 Bë�¼ëŠ” 회사ì—�서ë�„ ê°™ì�€ ì�¸ì‚¬ 시스템ì�„ ê°œë°œí•˜ê³ ìž� 한다면, B회사는 A회사ì�˜ ì�¸ì‚¬ 시스템 중 승진과 ê´€ë ¨ë�œ ì�¼ë¶€ë¶„ì�„ ê°€ì ¸ì™€ 그대로 ì‚¬ìš©í• ìˆ˜ 있다.
(출처 : ìž�바누리) - Java란 프로그램언어는 enterprise 급 기업ì�˜ web시스템ì—�서부터 ìž‘ì�€ 핸드í�°ì—� ì�´ë¥´ê¸°ê¹Œì§€ì–´ë””ë“ ì§€ ì‚¬ìš©í• ìˆ˜ 있다. 다시 ë§�í•´ Java를 í• ì¤„ 알면 ì–´ëŠ� ê³³ì—�나 ì �ìš© 가능한 프로그램ì�„ 개발 í• ìˆ˜ 있다는 ë§�ì�´ë‹¤. ê·¸ ë¿�ë§Œ 아니ë�¼, Java로 개발ë�œ 시스템ì�€ 다른 언어로 개발ë�œ 시스템보다ë�„ 훨씬 쉽게 확장ì�´ 가능하다.
- ìž�ë°”ì�˜ 단ì �
- ìž�바는 기계어 코드를 ì§�ì ‘ 실행시키는 것ì�´ ì•„ë‹ˆê³ , 플랫í�¼ ë�…립ì �ì�¸ 중간 코드 형태ì�¸ ë°”ì�´íŠ¸ì½”ë“œë¥¼ ìž�ë°” ê°€ìƒ�ë¨¸ì‹ ì�´ í•´ì„�하여 실행시키는 ì�¸í„°í”„리터 ë°©ì‹�ì�„ ì·¨í•˜ê³ ìžˆìœ¼ë¯€ë¡œ ëŠ�린 수행 시간ì�„ 갖습니다. ì�¼ë°˜ì �으로 C보다 í�‰ê· 8ë°° ì •ë�„ ëŠ�ë¦¬ê³ , 최대 20배까지 ëŠ�립니다.
- ìž�ë°” ì• í”Œë¦¿ì�„ 웹 서버로부터 웹 í�´ë�¼ì�´ì–¸íŠ¸ê°€ 다운로드하여 실행시켜 주게 ë�˜ëŠ”ë�°, ì�´ 때 네트워í�¬ ì†�ë�„ê°€ ëŠ�리다는 ë¬¸ì œê°€ 있습니다.
- 모호한 언어ì � 특성, ë¹„ê²°ì •ì � ìž�ë°” ê°€ìƒ�ë¨¸ì‹ , 표준화ë�œ 실시간 APIê°€ 없는 ë¬¸ì œ 때문ì—� 실시간 ì�‘ìš©ì�´ ì–´ë µìŠµë‹ˆë‹¤.
- ìž�바는 기계어 코드를 ì§�ì ‘ 실행시키는 것ì�´ ì•„ë‹ˆê³ , 플랫í�¼ ë�…립ì �ì�¸ 중간 코드 형태ì�¸ ë°”ì�´íŠ¸ì½”ë“œë¥¼ ìž�ë°” ê°€ìƒ�ë¨¸ì‹ ì�´ í•´ì„�하여 실행시키는 ì�¸í„°í”„리터 ë°©ì‹�ì�„ ì·¨í•˜ê³ ìžˆìœ¼ë¯€ë¡œ ëŠ�린 수행 시간ì�„ 갖습니다. ì�¼ë°˜ì �으로 C보다 í�‰ê· 8ë°° ì •ë�„ ëŠ�ë¦¬ê³ , 최대 20배까지 ëŠ�립니다.
-- ìž�ë°”ì�˜ 장ì �ì—� í�¬í•¨ë�œ 특징들ì�´ 다른 언어ì—� 비해 ë�…ìž�ì �ì�´ê³ ë‘�드러지기 때문ì�¸ 것 같습니다.










