JAVA 시작하기 - 프로그래밍과 자바

Big Jay·2023년 4월 25일
0

Java 시작하기

목록 보기
1/14
post-thumbnail

프로그래밍이란?

프로그래밍을 한다는 건 컴퓨터가 일을 하도록 컴퓨터 언어로 명령을 만들고 컴퓨터로 하여금 그 명령을 실행하게 하는 것을 말한다. 프로그램은 컴퓨터에게 일을 시키는 명령의 집합이라 할 수 있다.

컴퓨터에게 명령을 하기 위해서는 프로그래밍 언어를 사용하여 명령 집합을 만들고 이를 컴퓨터가 알아 들을 수 있는 언어로 번역을 한다. 이를 컴파일러(compiler)라 한다.

사람 언어 -> 프로그래밍 언어 -> 컴파일러 -> 실행

컴퓨터가 이해할 수 있는 언어란 무엇인가?
컴퓨터가 이해할 수 있는 언어는 기계어다. 기계어는 2진수로 0과 1로 이루어져 있는데, 컴퓨터가 0과 1의 조합만 이해할 수 있기 때문이다. 프로그래밍 언어는 사람이 이해하기 쉬울수록 고급 언어, 컴퓨터가 이해하지 쉬울수록 저급 언어로› JAVA의 경우 고급언어이고 저급 언어의 대표적인 것은 어셈블리어(Assembly language)가 있다.

JAVA를 쓰면 왜 좋을까?

1. 플랫폼에 영향을 받지 않으므로 다양한 환경에서 사용할 수 있다.

자바는 '한 번 작성하면, 어디서든 돌아간다(write once, run anywhere)'는 슬로건이 있다. 플랫폼에 종속 되지 않는 프로그램을 개발하여 여러 플랫폼에서 실행할 수 있다.

C언어로 개발한 프로그램은 각 OS환경에 맞춰 컴파일을 해야한다.
윈도우 운영체제에 맞춰 만들면 윈도우에서, 리눅스에서 실행하기 위해서는 리눅스 환경에 맞게 다시 컴파일하여 새로 만들어야 한다.

하지만 JAVA는 class파일로 컴파일하고 이를 자바 가상 머신이 실행 후 운영체제에 맞는 완벽한 실행 파일로 바꿔준다. 즉 .class파일을 만들어 두면 운영체제에 맞는 가상 머신을 이용하여 어느 환경에나 실행할 수 있다.

자바 가상 머신
JVM(Java Virtual Machine)은 자바 프로그램 실행 환경을 만들어주는 소프트웨어로 컴파일하여 만들어진 .class 바이트 코드는 JVM 환경에서 실행된다.

JIT
Just In Time 컴파일러는 실행 시점에 기계어 코드를 생성하고 같은 코드가 반복되면 매번 기계어 코드를 새로 생성하지 않고 이전에 만든 기계어를 재사용한다.
또한 JIT 컴파일러는 운영체제에 맞게 바이트 실행 코드로 한 번에 변환하여 실행하기 때문에 이전의 자바 해석기(Java interpreter)방식보다 성능이 10~20배 좋다.

2. 객체 지향 언어이기 때문에 유지보수가 쉽고 확장성이 좋다.

Java는 객체 지향 언어이다.
객체 지향 프로그래밍이란 순서대로 프로그래밍하는 것이 아닌 객체를 기반으로 각 객체의 상호 관계를 이용하여 프로그래밍하는 것으로 공통으로 사용하는 부분을 수정하지 않고도 프로그램에 새 기능을 쉽게 추가할 수 있다. 따라서 유지보수가 쉽고 확장성이 좋다.

3. 프로그램이 안정적이다.

C나 C++처럼 메모리를 직접 제어할 수 없어 이로 발생하는 위험성이 없으므로 훨씬 안정된 코드를 만들 수 있으며, 동적 메모리 수거를 프로그래머가 아닌 가비지 콜렉터(Garbage Collector; GC)를 이용하므로 메모리를 효율적으로 관리 할 수 있다.

가비지 콜렉터(Garbage Collector)
더 이상 사용하지 않는 메모리를 의미하며 자바는 가비지 콜렉터가 사용하지 않는 동적 메모리를 주기적으로 수거한다.

4. 풍부한 기능을 제공하는 오픈 소스이다.

Java에는 기본 기능을 제공하는 클래스뿐 아니라 자료 구조, 네트워크, 입출력, 예외 처리 등에 최적화된 알고리즘 라이브러리를 제공하는 자바 개발 키트(Java Development Kit; JDK)가 있어 프로그램을 빠르게 완성할 수 있다.

자바로 만들 수 있는 프로그램들은?

1. 웹 서버

웹 서버는 사용자가 웹 사이트에서 요청하는 내용을 전달 받아 그에 대한 요청 결과를 응답해줍니다.

2. 안드로이드 앱

안드로이드 앱을 만들 수 있는 프로그래밍 언어 중 Java가 있다.

3. 게임

어린 학생들이 많이 하는 게임 중 하나인 '마인크래프트'는 Java로 구현되어 있다.

profile
안녕하세요.

0개의 댓글