우당탕탕
[Java] 자바(Java)란 ? 본문
자바란 무엇인가?
자바(Java)란?
위키백과에서는 자바를 이렇게 설명한다
자바는 썬 마이크로시스템즈의 제임스 고슬링( James Gosling )과 다른 연구원들이 개발한 객체 지향적 프로그래밍 (OOP: Object Oriented Programming) 언어이다.
여기서 처음 개발을 시작하는 사람들은 객체 지향적 프로그래밍이란 것이 뭘까?라는 생각이 들것이다.
그럼 객체지향 프로그래밍(OOP: Object Oriented Programming)이란 무엇일까?
간단하게 말해서 객체지향 프로그래밍이란 프로그램을 개발하는 기법으로 객체(부품 정도로 생각하면 된다)를 만들고, 이것들을 조립하여 전체 프로그램을 완성시키는 기법이라 설명할 수 있다. 더 깊은 내용으로는 나중에 한 번에 모아서 작성하도록 하겠다.
자바를 사용하는 이유는 무엇일까?
자바를 사용하는 이유로는 다음을 꼽을 수 있다.
1. 객체지향 프로그래밍
2. 메모리를 자동으로 관리
3. 멀티 스레드 구현이 쉬움
4. 오픈소스 라이브러리가 많음
5. 이식성이 높다.
메모리를 자동으로 관리
- C언어의 경우 안쓰는 메모리를 개발자가 직접 정리한다. 하지만 자바의 경우 가비지컬렉터(GC)가 메모리를 사용하지 않으면 알아서 처리해준다.
멀티스레드 구현이 쉬움 ( 프로세스와 스레드가 뭔지 모른다면 ( [OS] 프로세스(Process)와 스레드(Thread)의 차이 ) 글을 보고 오면 된다. )
- 멀티스레드란 간단히 말해 스레드들을 동시에 실행할 수 있다는 것인데 자바는 스레드 생성 및 제어에 관련된 라이브러리 API를 제공하기 때문에 쉽게 구현할 수 있다.
오픈소스 라이브러리가 많음
- 보통 코딩을 진행하다 보면 개발자들이 많이 사용하고 커뮤니티 및 오픈소스가 풍부해야 정보를 많이 습득하고 안정적인 애플리케이션을 개발할 수 있는데, 자바의 경우 오픈소스 라이브러리가 많다.
이식성이 높다 [ JVM (Java Virtual Machine) ]
- 자바의 경우 JVM을 기반으로 동작한다. JVM이란 자바가상머신으로 여러 OS ( 윈도, 맥, 리눅스 )등의 여러 운영체제에서 동일한 코드가 돌아가도록 만들어준다.
- 자바의 프로그램을 저장하면 .java 파일이 생기며 이를 컴파일 시 자바 컴파일러가. class라는 파일을 생성한다. 생성된 class파일을 컴파일러가 바이트코드(반 기계어)로 바꿔준다. 바이트코드의 경우 컴퓨터가 바로 해석할 수 없는 상태이며, JVM(자바가상머신)이 여기서 컴퓨터가 해석할 수 있는 바이너리 코드로 바꿔준다. (좀 더 자세한 설명은 JVM게시글에서 진행하겠다)
왜 이름이 자바일까?
자바의 경우 처음에는 Oak(오크) 나무의 이름을 따서 오크라는 이름으로 나왔었다. 하지만 이미 다른 회사에서 사용하고 있어서 자바라고 이름이 정해진걸로 알려진다.
자바라는 이름은 자바 개발자 팀원 James Gosling, Arthur Van Hoff, Andy Bechtolsheim 의 이름의 앞글자들을 따와 JAVA라는 이름으로 나왔다는 소문이 있지만, 이들이 자주 마시던 커피의 원두 이름인 자바를 따서 지은 것이라는 소문이 더 많다. ( 그래서 자바의 로고가 커피모양..? )
'언어 > Java' 카테고리의 다른 글
[JPA] 낙관적 락(Optimistic Lock)과 비관적 락(Pessimistic Lock)에 대해 (1) | 2023.06.16 |
---|---|
[Java] static(정적) 변수와 메모리에 대해 (0) | 2022.11.02 |
[Java] 람다 표현식, 람다(Lambda Expression)이란? (0) | 2022.09.12 |
[Java] 가비지 컬렉션(Garbage Collection) 알고리즘 (가비지 컬렉션 - 2) (0) | 2022.08.29 |
[Java] 가비지 컬렉션(Garbage Collection)이란? (가비지 컬렉션 - 1) (0) | 2022.08.27 |