열심히 끝까지

1강 자바의 시작 본문

멘토씨리즈 JAVA

1강 자바의 시작

노유림 2022. 4. 20. 02:53

프로그래밍 언어를 배운다는 것 = 컴퓨터와의 대화를 하기 위해서 배우는 것
'자바'라는 프로그래밍 언어를 사용해 컴퓨터와 막힘없이 대화하는 것

1. 프로그램
- 프로그램이란?

          나열된 명령들의 집합 
                    : 컴퓨터에게 지시한 명령들을 묶어놓은 것
                    : 마구잡이로 묶은 것이 아닌 실행 순서대로 묶어놓은 것

프로그래밍이란?
          : 명령을 내리면 그 명령에 맞게 실행
          : 이 명령들을 모아놓은 것을 프로그램
          : 그 프로그램들을 만들어서 컴퓨터에게 명령을 내리면 
            그 명령들로 묶여진 프로그램을 컴퓨터가 실행하는 이 모든 과정을 프로그램+ing => 프로그래밍

2. 프로그래밍
프로그래밍 언어란?
          사람이 컴퓨터에게 명령을 내릴 때 사용하는 언어
          : 사람 친화적 언어

- 프로그래밍 언어의 종류?
          : 사람과 대화하는 언어에도 여러가지 종류가 있는 것처럼 컴퓨터에게도 여러 언어가 존재
          : C언어, C++, Python, Java 등.... 
          : 그 중에서 Java라는 언어를 사용해서 컴퓨터에게 명령

- 일반 프로그램 실행 과정
     * C언어
          : 컴퓨터가 프로그래밍 언어를 바로 이해할 수 없음 => "기계"이기 때문
          : 기계가 이해할 수 있는 언어 
          => 기계어(0과 1, 이진수로 이루어진 언어(전류가 통함 : 1, 전류가 통하지 않는다 0)
          : 확장자(. 뒤에 있는 것) 파일 생성(.exe)되어야 컴퓨터가 이해 가능
          1. 코드 작성(.c 파일 생성 => .exe 파일이 아님)
          2. 컴파일(프로그래밍 언어를 기계어로 번역하는 과정)
                   => .obj 파일 생성
          3. 라이브러리(많은 기능들을 미리 만들어놓고 저장한 곳)를 이용해 링크
                   => .exe 파일 생성 => '실행 가능'
          4. 디버깅(debug(벌레를 꺼내다) + ing) : 프로그램의 오류를 잡음
          5. 실행

     * JAVA
          1. 자바 프로그래밍 언어를 사용하여 코드 작성 
                    => .java 파일 생성
          2. 컴파일 시 .class 파일 생성
                    => 실행
          : .exe 없이도 실행 가능한 이유 = JVM


JVM? (Java Virtual Machine)
java의 중간 코드를 실행할 수 있는 주체(가상 기계)로, JAVA 프로그램과 OS 사이의 중재자 역할
  JVM을 통해 OS(운영체제)에 종속되지 않고 사용하게 도와줌 
          : JAVA source 작성 
          -> Java Compiler 통해 컴퓨터가 이해할 수 있는 기계어로 번역(Java byte code=.class)
          -> JVM에서 실행

- JVM 구성 : Garbage Collector, Class Loader, Executionn Engine, Runtime Data Areas
          Class Loader : 모든 클래스(코드)는 참조 순간에 동적으로 JVM에 연결되며 메모리에 로딩
          Execution Engine : JVM은 Method Area의 Byte Code를 Execution Engine에 제공하여
                                    Class에 정의된 내용대로 실행
          Runtime Data Areas : 프로그램을 수행하기 위한 OS에서 할당받은 메모리 공간(JVM에서 사용)
                       : Class, Stack, Heap 영역으로 구성
                       : Class 영역 - 사용하는 클래스 파일의 바이트 코드가 로드되는 곳
                                        static 변수, 전역 변수 등의 정보가 저장, JVM이 종료될 때까지 유지
                       : Stack 영역 - 지역변수, 매개변수 등 함수의 호출부터 종료까지 유지
                       : Heap 영역 - 참조형 변수(주소저장)들이 저장되는 영역(new)

3. JAVA의 정의와 특징
JAVA 란?
          : 미국의 Sun Microsystem사에서 개발한 객체지향 프로그래밍 언어

JAVA의 특징?
          1. 객체 지향 언어이다.
          2. 배우기 쉽다.
          3. 어느 운영체제(OS)에 상관없이 실행된다. ** 중요 **
          4. 메모리 관리를 개발자가 하지 않는다.
          5. 동적이며 스레드를 지원한다.( 멀티테스킹 가능 )
          6. 네트워크 프로그래밍과 분산처리를 지원한다.

4. 개발 환경 준비
- 설치해야 할 항목?
          1. JDK(JRE, JVM 포함)
          2. 이클립스

          JDK : Java Development Kit
                    - JAVA 실행 시 필요한 라이브러리 파일 존재
          JRE : Java Runtime Envirment
                    - JVM을 생성하는 부분
          JVM : Java Virtual Machine
                    - JAVA 프로그램을 실행시켜 주기 위한 목적

'멘토씨리즈 JAVA' 카테고리의 다른 글

6강 연산자3  (0) 2022.04.21
5강 연산자2  (0) 2022.04.21
4강 연산자1  (0) 2022.04.20
3강 변수와 상수  (0) 2022.04.20
2강 출력 메서드와 입력 메서드  (0) 2022.04.20