프로그래밍 언어와 컴파일러 (JAVA)

Agnes Park·2022년 1월 12일
1

JAVA

목록 보기
2/34

프로그래밍 언어와 컴파일에 대해 알아보자!

1. 프로그래밍 언어

1. 프로그래밍 언어 종류 & 세계 순위 확인

참조사이트 : https://www.tiobe.com/tiobe-index/ 

JAVA 언어란?
[특징]
- 썬 마이크로시스템즈 사에서 제임스 고슬링 (James Gosling) 에 의해 95년 개발 (96년 JAVA로 발표)
- 기존의 주요 객체지향 언어인 C++ 의 단점 극복 -> 순수 객체지향 언어 필요
- 플랫폼 독립적인 언어
	* 플랫폼 독립적 (Platform Independant) 이란?
    		+ 어느 플랫폼에서 개발했든 타 플랫폼에서도 동일하게 실행됨
            	+ 즉 플랫폼에 관계없이 실행가능하다는 의미 (플랫폼 독립)
                + 이것이 가능한 이유는 JVM (Java Virtual Machine) 덕분 (JDK 설치시 같이 실처되거나, 보통 OS에 거의 설치되어있음)
                * 엔터프라이즈 환경에서 JAVA가 많이 사용되게 된 이유 중 하나
                
           JAVA 소스코드 ----> 윈도우, 리눅스, 맥 ----> JAVA 실행파일 ----> 윈도우용 실행파일
           (클래스파일)         컴파일 (Compile)       (BYTE CODE)  ----> 리눅스용 실행파일
            (*.java)                                 (*.class)   ----> 맥용 실행파일

                
      ex) 기존 언어(C 언어 등의 문제점)
       - 컴파일 하여 빌드한 실행파일 해당 플랫폼 에서만 실행
       - 심지어 C/C++ 은 플랫폼은 고사하고, 소스 차원에서도 호환되지 않는 문제
       
       	   C 소스코드 ----> 윈도우에서 컴파일 ----> 윈도우용 실행파일
           C 소스코드 ----> 리눅스에서 컴파일 ----> 리눅스용 실행파일
           C 소스코드 ---->   맥에서 컴파일   ----> 맥용 실행파일
           
[장점]           
- 국내에서는 특히 정부및 산업 프레임워크 표준으로 채택되었기에 자바 기반의 비중이 매우 높음
- C, C++ 에 비해 프로그래밍 상의 안정성이 높고, 배우기도 상대적으로 쉽다.
  (ex: Garbage Collecting 등은 메모리 관리로 부터 프로그래머 해방)
- 읽기에 편하다. 인간의 언어에 유사.

[단점]
- 속도 문제
- 소스코드 가 타 언어에 비해 길~~~다 (타이핑이 많다..)

[종류]
1. Java SE(Java Standard Edition / J2SE)
 - 대부분의 사람들이 가장 많이 접하는 표준 에디션. Java의 핵심 API와 기능들을 제공한다. 
2. Jakarta EE, 구 Java EE(Java Enterprise Edition / J2EE)
 - 기업에서 운영하는 서버 페이지에 특화된 에디션이다.
 - JSP와 서블릿을 비롯한 웹 애플리케이션 서버에 관련된 기술들이 포함되어 있다.
3. Java ME(Java Micro Edition / J2ME)
 - PDA나 셋톱박스, 센서 등의 임베디드 시스템 환경에 특화된 에디션이다.
4. JavaFX데스크톱
 - 애플리케이션 개발 및 배포를 위한 에디션으로, 크로스플랫폼 이식과 GUI 라이브러리를 제공한다.

2. 프로그래밍 언어의 해석

  • 컴퓨터는 사람의 언어를 이해하지 못한다! -> 오직 0, 1으로 이루어진 언어 구사
  • 번역해주는 수단이 필요!
  • 각 언어마다 컴파일러(혹은 인터프리터) 가 있다.

사람이 이해하고 만들 수 있는 언어 -----------------------> 컴퓨터가 이해하고 실행할 수 있는 언어
Programming Language     Complier(or Interpreter)      binary code

3. 프로그래밍 언어를 다룬다는 의미

  • 인간이 이해하는 ‘문법’ 대로 프로그래밍을 작성하여(소스 코드) 컴파일러 등을 통하여 컴퓨터가 동작시킬수 있는 이진파일 (실행파일) 로 만드는 것
    소스코드 ----------> 실행파일

2. 컴파일러

1. 버전 확인

커맨드 라인에서   아래와 같이 확인 가능
- java  ← 자바 실행 파일 / *.class 파일을 실행
- javac ← 자바 컴파일러 / *.java 파일을 컴파일

2. 기본 개발 흐름

  클래스파일 					바이트코드(Byte Code)
(프로그램 소스)            ---------->	      JVM에서 실행가능한 결과물
  *.java		    컴파일		     *.class
  

3. java 와 javac 만으로도 개발 가능

  • 클래스파일(소스파일) 생성 : MyClass.java
  • 특별한 에러 없으면 화면과 같이 실행됨
  • 탐색기에서도 컴파일 결과인 MyClass.class 파일이 생성되었슴을 확인 가능
  • 문제점
    • 기본 JDK 로도 개발은 가능하지만, 편집 및 디버깅 불편함.
    • 여러개의 클래스와 다양한 플랫폼및 빌드 환경, 여러 개발환경에서의 결과물 함께 작업해야 하는 상황이라면 커맨드로 개발하기에는 번거로움 과 생산성이 떨어지는 문제 발생.
그래서 등장한것이 바로 ‘통합 개발 환경 IDE: Integrated Development Environment’

다음에는 JAVA 통합 개발 환경인 'Eclipse'에 대해 더 공부!

0개의 댓글