티스토리 뷰

본 게시물은 '명품 JAVA Programing' 교재를 보고 공부한 내용을 정리하여 작성한 것임을 미리 알려드립니다.


Java의 주요 특징은 붉은 색으로 처리하였습니다.



Java의 시작


초기의 Java는 '썬 마이크로시스템즈'에서 가전제품에 탑재할 프로그래밍 언어로 개발되었습니다.

당시의 프로그래밍 언어들은 플랫폼(Platform) 간의 호환성이 없었기 때문에 환경에 따라 소스를 다시 컴파일 하거나 재작성을 해야했는데 이런 불편함을 해소하고자 플랫폼에 독립적인 Java가 탄생하였다. 이 실행환경은 가전제품을 대상으로 적은 메모리 사용량을 가져야 했는데 이와 인터넷이 발전하면서 플랫폼 독립적, 적은 메모리 사용량이 Java가 급속도로 퍼지게 될 수 있는 계기가 될 수 있었다.

WORA(Write Once Run Anywhere) : 자바는 웹 브라우저, 분산 환경의 지원 등으로 네트워크에 연결된 어느 클라이언트에서도 실행이 가능하다. 자바 프로그램은 어디서든 한 번 작성하면 다시 컴파일하거나 수정하지 않고 어떤 운영체제에서도 실행시킬 수 있다. 이를 WORA라 한다.



프로그래밍 언어 // 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어


기계어 / 어셈블리어 / 고급언어 : 로우레벨 언어는 기계어, 어셈블리어 뿐이다. 저급언어는 수준이 낮다라고 생각하면 안되고 컴퓨터에 가까운 언어라고 생각하자. 이와 반대로 고급 언어는 인간에게 친숙한 언어이다. 어셈블리어는 기계어와 고급언어의 중간단계로 '중간언어'라고도 한다.


절차 지향 -> 객체 지향 : 프로그래밍 언어는 초기의 절차 지향 언어적 형태에서 객체 지향 언어로 진화해왔다.


프로그래밍은 소스(Source)파일을 작성하는 것으로 시작한다. 위의 설명대로 '고급 언어'로 작성된 소스파일은 컴퓨터가 알아들을 수 없기 때문에 기계어로 변환하는 과정이 필요하다. 이를 '컴파일'이라고 하며 이를 수행하는 소프트웨어를 '컴파일러'라고 한다. 각 언어별로 전용 컴파일러가 있으며 소스 프로그램인 *.java 파일을 *.class로 컴파일 한다. 


자바는 가상머신 기반의 실행환경을 가지고 있으며 위에서 컴파일 된 *.class 파일을 실행한다.



가상머신과 바이트 코드


자바의 플랫폼 독립성을 가능하게 하는 것은 가상머신바이트 코드에 있다.


가상머신 : 서로 다른 플랫폼에서 자바 프로그램이 실행될 수 있는 동일한 환경을 제공한다. 자바 가상머신은 플랫폼마다 다르므로 플랫폼 종속적이다. 하지만 이를 통해 자바 프로그램이 모든 플랫폼에서 사용될 수 있다.


바이트 코드 : 가상머신에서만 실행되는 기계어로 어떤 CPU와도 관계없는 바이너리코드(Binary code)이다. 자바 소스 프로그램을 컴파일 하면 바이트 코드로 된 클래스 파일이 생성된다. 이 클래스 파일은 CPU에 의해 직접 실행되지 않고 자바 가상머신이 인터프리터 방식으로 실행시킨다. 이 클래스 파일은 어떤 플랫폼에서든 가상머신만 있다면 바로 실행 가능하다. 오라클에서 배포하는 JDK(Java Development Kit)에는 자바 클래스 파일을 디어셈블(Disassemble)하여 바이트 코드를 볼 수 있는 도구를 제공한다.


컴파일러/인터프리터


컴파일러 : 고급언어로 쓰여진 프로그램을 컴퓨터가 실행하기 위해선 컴퓨터가 이해할 수 있는 언어로 바꿔주는 과정이 있어야 한다. 이를 해주는 것이 바로 컴파일러이다.

인터프리터 : 소스 프로그램을 한번에 기계어로 변환하는 컴파일러와 달리, 프로그램을 단계별로 기계어로 해석하여 실행하는 방식, 줄 단위로 번역 및 실행되기 때문에 시분할 시스템에 유용하며 프로그램이 직접 실행되기 때문에 중간 단계인 목적 파일을 생성하지 않습니다. 원시 프로그램의 변화에 대한 반응이 빠르지만 단계별로 진행하기 때문에 실행시간이 긴 것이 단점입니다. 대화형 언어에 적합합니다.

   컴파일러 인터프리터 
 번역 단위

 전체

 한줄씩 
 실행 속도  빠름   느림 
 번역 속도  느림  빠름 
 목적 프로그램  생성함   생성하지 않음 
 메모리 할당

 목적 프로그램 생성시 사용

 사용 안함



Java 그리고 JavaScript, JSP(Java Server Page)


위 세가지 언어는 완전히 다른 언어로 혼동하지 않길 바란다.


Java는 응용소프트웨어 개발을 위한 범용 언어이고 JavaScript는 브라우저의 동적인 움직임을 구현하는 언어(근래에는 좀 더 범용적으로 사용되고 있다)이며 JSP는 서버 사이드에서 실행되는 스크립트 언어이다. JSP 프로그램은 실행 전, 컴파일 되어 서블릿(Servlet)이라고 불리는 자바 코드로 변환되어 실행된다.





댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함