본문 바로가기

잡학/IT

비전공자의 자바공부 1탄

비전공자로 무작정 IT로 입문하였으나,

정말 기초적인 부분에 대한 이해도 없이 접근을 하니

선생님이 아무리 쉽게 설명을 해주어도 이해가 되지않는 부분들이 있어서,

되도록이면 비전공자들도 이해할수있는 언어들을 사용하려하오니,

생기초부터 시작하는 블로그로 저와 같은 많은 비전공자들에게 도움이 됐으면

합니다. Go!




프로그래밍 언어란?


-컴퓨터가 이해할수 있는 언어는 우리가 일상생활에서 사용하는 언어는 다른 기계어 이다.

사람이 사용하는 언어는 컴퓨터 입장에서는 이해하기 어려운 문자들이다.

그렇기에 사람과 컴퓨터가 대화하기 위해서는 사람의 언어와 기계어 사이의 다리역할을

하는 프로그래밍언어가 필요한 것이다.


프로그래밍 언어는 고급언어 저급언어로 나뉘는데,

일반적으로 프로그래밍언어 하면 고급언어를 말한다.

대표적인 프로그래밍 언어는 C , C++, JAVA가 있다.


이 언어들로 작성된 내용을 소스(source)라고 부르고, 이 소스는

컴파일러(compiler)라는 소프트웨어에 의해 기계어로 변환된 후

컴퓨터에서 실행할 수 있게 된다.

우리가 흔히 말하는 프로그램(program)이란 컴퓨터에서 특정 목적을

수행하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것을 말한다.



자바 시작하기


-자바 언어를 발표한 1995년부터 1999년까지는 윈도우 프로그램 개발이 주류였기 떄문에

C++언어에 비해 자바는 아주 열세였다.

메모리 및 CPU를 지나치게 많이 사용하기 떄문에 윈도우 프로그래밍 언어로는 부적합하다는 문제점이

있었다.하지만 1999년도부터 인터넷이 활성화되면서 웹 애플리케이션 구축용 언어로 자바가 급 부상

그 이유는 자바의 높은 이식성 때문이었다.


이식성

이식성이란 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할수 있는것을 말한다.

대부분 프로그램은 MS윈도우환경에 최적화 되어있기떄문에 유닉스나 리눅스에서 실행하려면

프로그램 소스 파일을 수정한 후 재컴파일 과정을 거쳐야 한다.

하지만 자바언어로 개발된 프로그램은 소스파일을 다시 수정하지않아도,

자바 실행 환경(JRE:Java Runtime Evironment)이 설치되어 있는 모든 운영체제에서

실행 가능하다.따라서 자바언어는 이식성이 높은 프로그래밍언어라 할수있습니다.

한번의 컴파일로 MS윈도우 리눅스 맥 호환가능.


자바 가상 기계 JVM


운영체제는 자바 프로그램을 바로 실행할 수 없다.

자바프로그램은 완전한 기계어가 아닌 중간단계의 바이트 코드이기떄문에

이것을 해석하고 실행할수 있는 가상의 운영체제가 필요하다

이것이 자바가상기계 JVM이다.

JVM이 실 운영체제를 대신하여 자바프로그램을 실행하는 가상의 운영체제역할을 한다.

이 JVM이 운영체제별로 자바 프로그램을 별도로 개발하는 것이 아닌

운영체제와 자바 프로그램을 중계하는 JVM을 두어 자바 프로그램이 여러 운영체제에서

동일한 실행 결과가 나오도록 설계한 것이다.

따라서 개발자는 운영체제와 상관없이 자바 프로그램을 개발할수 있게 되는 것이다.

자바 프로그램은 확장자가 .java인 파일을 작성하는 것 부터 시작한다

이것을 소스파일이라고 하는데, 이 소스 파일을 컴파일러로(javac.exe)로 컴파일 하면

확장자가 .class인 바이트 코드 파일이 생성된다

바이트 코드 파일은 JVM구동 명령어(java.exe)에 의해 JVM에서 해석

해당운영체제에 맞게 기계어로 번역된다.(이식성)

바이트코드는 하나지만,JVM에 의해서 번역되는 기계어는 운영체제에 따라 달라진다.

이러한 한번의 컴파일링으로 실행가능한 기계어가 만들어지지 않고 JVM에 의해 기계어로 번역되고

실행되기때문에,C와 C++의 컴파일 단계에서 만들어지는 완전한 기계어보다는

속도가 느리다는 단점을 가지고 있는 것이다.


자바 프로그램 개발 순서

(소스 작성에서부터 실행까지)


1단계 .java 소스 파일작성 

2단계 컴파일러(javac.exe)로 바이트 코드 파일(.class)생성

3단계 JVM 구동 명령(java.exe)로 실행


자바 프로그램 개발을 위해서는 우선 파일 확장명이 .java인 텍스트 파일을 생성

프로그램 소스를 생성한다.

이렇게 만들어진 파일을 자바소스파일이라 하며, 작성된 자바소스 파일은 컴파일러(javac.exe)를 통해 

컴파일을 해야한다.

컴파일이 성공하게 되면 확장명이 .class인 바이트 코드파일이 생성된다.

Hello.java 라는 소스파일을 컴파일 하게 되면 Hello.class 파일이 생성된다.

바이트 코드는 완전한 기계어는 아니므로 단독실행은 불가하고

JVM이 실행되어야 한다.

JVM을 구동시키는 명령어는 java.exe이다.

이때는 .class확장명을 제외한 이름을 입력해야 하는것에 유의 해야한다.

java.exe명령어가 실행되면 JVM은 바이트코드파일 Hello.class를 메모리로 로드하고

최적의 기계어로 번역을 한다.

그리고,main()메소드를 찾아 실행하게 되는 과정을 거치는 것이다.


클래스와 메소드

자바 실행 프로그램은 반드시 클래스(class)블록과 main()메소드(method)블록으로 구성되어야 한다.

메소드 블록은 단독으로 작성될 수 없고 항상 클래스 블록 내부에서 작성되어야 한다.

클래스를 메소드를 포함하는 블록으로 보면 되고,

메소드는 어떤일을 처리하기 위한 실행문들을 모아놓은 것이라고 보면된다.

java.exe로 JVM을 구동시키면 제일 먼저 main()메소드를 찾아서 실행시키게 된다.

그래서 main()메소드를 프로그램 실행 진입점이라고 한다.

만약 클래스내에 main()메소드가 없거나 잘못 작성하게되면 클래스는 실행을 할수없게된다.


저는 수업을 듣다보면 클래스내에~ 메소드를 찾아가세요~

이러는데...메소드는 뭐고 클래스는 도대체 뭘하는 애인데 찾아가라는 건지

의문점들이 발생하더라고요.저렇게 한마디씩만 선생님들이 더 해주어도

이해가 쉬울텐데... 세상은 그렇게 녹록치 않습니다.그렇게 친절하지 않습니다.




'잡학 > IT' 카테고리의 다른 글

비전공자의 자바공부 3탄  (0) 2017.10.22
비전공자의 자바공부 2탄  (0) 2017.10.06
IT입문자를 위한 기본개념들3  (0) 2017.09.14
IT입문자를 위한 기본개념들2  (0) 2017.08.29