본문 바로가기
Language/Java

5분 안에 자바(Java Programming Language)에 대해 알아보기

by 도뎡 2023. 6. 24.
반응형

1. 자바(Java)란?

자바는 썬 마이크로시스템즈에서 개발한 객체 지향 프로그래밍(Object-Oriented Programming) 언어로, 흔히 OOP 언어라고 이야기합니다. OOP의 개념은 추후에 코딩 과정에서 자세히 다루게 되니 여기서는 생략하겠습니다.

자바의 가장 큰 포인트는 운영체제(OS)에 독립적이라는 것인데요. 이에 따라 자바로 개발된 프로그램은 운영체제 종류에 관계없이 실행이 가능합니다.

자바는 프로그래밍에 필요한 다양한 라이브러리(Library)를 제공해주고 있는데요. 자바 개발자들은 이를 잘 활용해서 더욱 쉽게 프로그래밍할 수 있고, 더욱 빠르게 결과물(아웃풋)을 낼 수 있습니다.

 

2. 자바(Java)의 특징

아래 5개 항목은 자바의 대표적인 특징입니다.

2-1. 운영체제(OS)에 독립적인 언어

기존의 언어는 특정 운영체제에서 작동하는 프로그램을 다른 운영체제에 적용하기 위해 많은 노력이 필요했지만, 자바는 JVM(Java Virtual Machine)이라는 가상 머신을 통해 운영체제에 영향을 받지 않습니다.

JVM은 자바 프로그램과 운영체제 사이에서 중간다리 역할을 해주는데요. 자바 프로그램이 JVM으로 명령을 전달하면, JVM은 운영체제가 명령을 이해할 수 있도록 변환해서 전달합니다.

JVM 구조

 

2-2. 객체 지향 언어

자바는 대표적인 객체 지향 프로그래밍 언어 중 하나로, 클래스와 객체라는 것을 이용해서 코드를 재사용할 수 있고, 중복되는 코드를 제거할 수 있으며, OOP의 대표적인 특징인 상속, 캡슐화, 다형성이 잘 적용된 언어입니다.

클래스는 보통 설계도로 표현하고, 객체는 설계도를 통해 생성된 아이템으로 생각할 수 있습니다. 예를 들어 커피 머신, 냉장고, 믹서기 등은 클래스(설계도)가 되고, 이를 통해 생성된 커피, 음식, 녹즙(?) 등은 객체(아이템)가 됩니다.

 

2-3. 메모리를 자동으로 관리 (Garbage Collection)

자바 프로그램은 가비지 컬렉터(Garbage Collector)가 자동으로 메모리를 관리해 주기 때문에 개발자가 직접 메모리를 체크하고 반환하는 수고를 덜어줍니다. 이에 따라 개발자는 더욱 코딩에 집중할 수 있습니다.

자바는 변수를 선언하거나 객체를 생성하는 시점에 메모리를 할당하며, 가비지 컬렉터는 더 이상 사용하지 않는 변수나 객체를 메모리에서 자동으로 제거합니다.

 

2-4. 멀티 스레드(Multi Thread) 지원

스레드는 프로세스 내에서 실행되는 흐름의 단위를 의미하며, 일반적으로 하나의 프로세스는 하나의 스레드를 통해 작업을 수행합니다. 자바는 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행할 수 있는 멀티 스레드를 지원합니다.

 

2-5. 동적 로딩(Dynamic Loading) 지원

보통 자바 프로그램은 여러 개의 클래스로 구성되어 있는데요. 프로그램 실행 시 모든 클래스를 로딩하지 않고 필요한 시점에  클래스를 로딩해서 사용할 수 있습니다.

 

3. 자바(Java)로 할 수 있는 것

마지막으로 자바를 이용해서 무엇을 구현할 수 있는지 알아보도록 하겠습니다.

3-1. 웹 프로그래밍(Web Programming)

우리가 인터넷에서 브라우저에서 흔히 접속하는 사이트(Naver, Google, 블로그, 카페, 각종 커뮤니티 등)를 만들 수 있습니다. 웹 사이트에서 사용자가 보는 화면은 클라이언트 사이드(프런트 엔드)라고 표현하고, 어떠한 액션이 발생했을 때 데이터를 처리하는 영역을 서버 사이드(백 엔드)라고 표현합니다.

자바 개발자는 스프링(Spring) 또는 스프링 부트(Spring Boot) 프레임워크를 이용해서 웹 사이트를 더욱 쉽고 빠르게 구현할 수 있으며, 웹 프로그래밍에 관심이 있으시다면 아래 글이 도움 되실 수도 있습니다.

 

스프링 부트(Spring Boot) - 게시판 개발환경 설정하기 [Thymeleaf, MariaDB, IntelliJ, Gradle, MyBatis]

본 게시판 프로젝트 관련 안내사항 화면 처리는 JSP가 아닌 HTML5 기반의 자바 템플릿 엔진인 타임리프(Thymeleaf)를 사용합니다. 프로젝트의 각 설정은 XML 설정이 아닌 자바(Java) 기반의 설정을 사용

congsong.tistory.com

 

3-2. 앱 프로그래밍(App Programming)

자바는 안드로이드 운영체제의 앱을 개발할 때 사용되는 메인 언어입니다. 과거에는 안드로이드용 앱과 IOS용 앱을 따로따로 구현했으나, 최근에는 리액트 네이티브(React Native)와 플러터(Flutter) 등 여러 환경(안드로이드, 리눅스, 윈도우, 맥, IOS, 웹 브라우저 등)에서 앱을 실행할 수 있는 크로스 플랫폼이 출시되어 인기를 끌고 있습니다.

 

3-3. 데이터베이스(Database) 처리

데이터베이스는 쉽게 말해 여러 사람이 데이터를 공유해서 사용할 수 있는 저장소입니다. SQL이라는 언어를 이용해서 데이터베이스 내의 데이터를 관리(저장, 조회, 수정, 삭제) 할 수 있습니다. 자바는 이러한 데이터베이스와의 연동(연결)과 데이터 관리에 굉장히 유연한 언어입니다.

 

마치며

여기까지 자바는 무엇인지, 자바의 특징은 무엇인지, 자바로 무엇을 할 수 있는지에 대해 가볍게 알아보았습니다. 다음 글에서는 변수가 무엇인지, 변수를 어떻게 활용하는지 포인트만 콕콕 집어서 설명드려 보도록 하겠습니다.

방문해 주셔서 감사드립니다. 좋은 하루 보내세요 :)

반응형

댓글