📖 Books/자바 객체 지향의 원리와 이해

[Books] 자바는 어떻게 개발자에 대한 사랑을 실천했을까?

오늘 ONEUL 2023. 2. 24. 04:52

🧐 새로운 시선으로 바라보는 Java의 특징

 

1. 플랫폼에 독립적인 언어

“Java가 인간을 사랑한 방법은 바로 가상머신(Virtual Machine)이다.”

0과 1만 있던 기계어에서 인간 지향적인 어셈블리어를 거쳐 강력한 이식성을 가진 C언어에 오기까지 인간을 위해 많은 발전이 있었지만 C언어로 작성한 소스를 다른 기종의 컴퓨터에서 실행하려면 각각의 컴파일러가 필요했다.

Java는 기종이 몇 개든 단 하나의 JVM용 기계어를 생성하여 어떤 운영체제에서도 실행이 가능하다. 이게 가능한 이유는 모두 가상머신 덕분이다. Java는 컴퓨터 운영체제에 맞는 VM에 코드를 올려 그 코드가 운영체제에 맞게 해독하도록 변경해 준다.

Write once, run anywhere!

 

 

2. 객체 지향 언어(OOP, Object - Oriented Programming language)

C++이 C에 객체 지향 개념을 도입함으로써 역사에 한 획을 그은 언어가 되었지만 진정한 객체 지향 언어는 Java라고 할 수 있다. 객체 지향 언어 중심에는 class가 있는데, Java는 class를 떠나 존재할 수 있는 것이 아무것도 없다. 심지어 main() 메서드마저도 프로그램 외부가 아닌 내부에 존재해야 한다.

이렇게 조립식으로 만들어진 객체 지향 프로그램은 유지 보수의 간편함과 특정 기능들을 손쉽게 개선 또는 확장할 수 있다는 장점을 가지고 있다.

 

 

3. 가비지 컬렉터(GC, Garbage Collector)를 통한 자동 메모리 관리

C언어는 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 만약 이 작업을 잘 처리하지 않으면 프로그램은 불완전해지고 갑자기 다운되는 현상을 겪게 된다.

Java는 개발자가 직접 메모리에 접근할 수 없도록 설계되었으며 메모리는 Java가 직접 관리하게 된다. 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜준다.

이러한 특징으로 인해 프로그래머는 메모리 관리에 신경 쓸 필요 없이 오직 프로그래밍에만 집중할 수 있다.

 

 

 

※ 이 내용은 책 [스프링 입문을 위한 자바 객체 지향의 원리와 이해]를 보고 정리한 내용입니다.