[F-Lab 모각코 챌린지 1일차] TIL

JeongheeKim·2023년 6월 1일

TIL

목록 보기
1/66

학습계획


  • 인터프리터 방식과 컴파일 방식 특징 정리
  • 자바 언어 특징 정리
  • JAVA의 동작방식

Today I Learned


인터프리터 방식과 컴파일 방식의 차이점

  • 컴파일과 인터프리터 방식은 프로그래밍 언어나 스크립트 언어를 기계어로 바꾸는 컴퓨터 프로그램

    컴파일

    • 프로그래머가 직접 작성한 코드를 기계어(바이너리 코드)로 변경되며 바로 실행도 가능하다.
      - 컴파일 언어
      - 기계어로 바로 컴파일되는 언어
      - 기계어를 바로 해석하기때문에 인터프리터 언어보다 빠르다 느낄 수 있다.
      - 예) C, C#,C++등

      인터프리터

    • 기계어로 변환 없이 직접 작성한 프로그래밍 언어를 실행한다.

      • 실행 전략
        1. 소스코드를 파싱 하고 동작을 직접 수행
        2. 소스코드를 중간 매개체의 언어로 변환 후 실행
        3. 컴파일러에 의해 생성된 바이트 코드를 인터프리터인 가상 머신으로 실행한다.
      • 인터프리터 언어
        • 기계명령어로 바로 컴파일 되지않고 어떠한 프로그램에 의해 읽고 행되는 언어
        • 예) Python, PHP, Ruby

JAVA 언어의 특징

  • 객체지향언어
    • 객체지향의 특징으로 객체들을 조립하듯 프로그래밍 하여 요구사항 변경과 확장에 용이하다.
  • 멀티쓰레딩을 지원한여 분산작업에 용이하다.
  • OS에 독립적인 언어
  • C , C++ 언어에 비해 배우기 쉽고 코드양이 적다.
  • 인터프리터 언어와 컴파일 언어로 여겨진다.

JAVA의 동작방식

  1. 프로그래머가 자바 .java파일 을 작성한다.

  2. javac compiler에 의해 .java.class 파일로 컴파일 된다. .class파일은 JVM이 이해할 수 있는 바이트 코드로 구성되어있다. 바이트 코드로만은 실행이 불가하다.

  3. JVM에서 인터프리터에 의해 머신코드(기계가 이해할 수 있는 언어)로 해석된다.

  4. 컴퓨터에서 코드가 실행 될 수 있도록 JVM이 바이트 코드를 실행한다.

  5. 컴파일 된 다음 자바 launcher가 .class파일을 실행 시킨다.

    .class파일 JVM에서 실행되므로 OS에 구속되지 않고 어느 운영체제에서 실행 가능하다.

Java Platform

Java Platform은 소프트웨어로만 구성되어있다.

  • Java API
    • API는 이미 유용한 기능을 모아놓은 기능이다.
  • JVM

직접해봅시다

  1. Caculator 클래스를 만들어봅시다

    public Class Caculator {
    }
  2. 빼기, 곱하기, 나누기를 하고 그 값을 리턴하는 메소드를 만들어봅시다.

    public Class Caculator {
    	private static int num1 = 5;
    	private static int num2 = 3;
    
    	public static void main(String[] args) {
    		System.out.println("subtract = " + subtract(num1, num2));
    		System.out.println("multiply = " + multiply(num1, num2));
    		System.out.println("divide = " + divide(num1, num2));
    	}
    
    	public static int subtract(int num1, int num2) {
    		return num1 - num2;
    	}
    
    	public static int multiply(int num1, int num2) {
    		return num1 * num2;
    	}
    
    	public static int divide(int num1, int num2) {
    		return num1 / num2;
    	}
    }
  • 클래스가 뭔가요? 클래스란 자바 구성요소 중 가장 작은 단위이며, 클래스는 객체를 뜻한다.
  • 메소드가 뭔가요? 메소드는 클래스를 구성하는 요소로서, 입력값에 대한 어떠한 행위가 정의되어 입력값이 행위에의해 처리된 결과가 전달되는 기능을 담당한다.
  • 메소드의 매개변수는 어디에 적어주나요? 메소드의 매개변수는 메소드명 오른쪽 괄호안에 매개변수의 타입과 매개변수명을 같이 적어줍니다. 매개변수의 개수는 정해진것이 없지만 가독성을 위해 최대 3개 정도가 좋다고생각합니다.
  • 메소드 이름 앞에 꼭 적어 줘야 하는 건 뭐죠? 메소드 앞에는 메소드의 결과값의 타입을 정해줘야합니다.
  • 클래스가 갖고 있어야 한다고 한 두 가지가 뭐죠? 메소드(행위), 변수(상태값)을 갖고 있어야 합니다.
  • 메소드에서 결과를 돌려주려면 어떤 예약어를 사용해야 하나요? return 예약어(자바언어에서 특정역할에 사용하는 단어이므로 다른 용도로 사용 불가)를 지정하여 명시해야합니다.

[참고]

About the Java Technology (The Java™ Tutorials >
Getting Started > The Java Technology Phenomenon)

Interpreted vs Compiled Programming Languages: What's the Difference?

Difference between Compiled and Interpreted Language - GeeksforGeeks

Interpreter (computing)

0개의 댓글