Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java)에 대해 몰랐던 흥미로운 사실 8가지

전 세계에서 가장 널리 사용되는 프로그래밍 언어 중 하나인 자바(Java). 하지만 이 강력한 언어가 어떻게 탄생했는지, 그리고 어떤 숨겨진 이야기들을 담고 있는지 알고 계셨나요? 오늘은 자바에 관한 흥미로운 사실 여덟 가지를 소개해 드립니다.

1. 우연한 실수로 탄생한 자바

자바는 사실 철저한 우연 속에서 만들어졌습니다. 당시 개발자 팀은 셋톱박스(set-top box)를 개발하는 프로젝트에 참여하고 있었고, 그 과정에서 C++ 코드를 정리하고 개선하는 작업을 진행했습니다. 그런데 이러한 수정 작업을 마무리하던 중, 팀은 어느새 새로운 언어인 자바와 그 런타임 환경을 발견하게 되었답니다.

2. 원래 이름은 '오크(Oak)'

많은 분들이 이미 알고 계시겠지만, 자바라는 이름은 처음부터 정해져 있던 것이 아닙니다. 이 언어의 원래 이름은 '오크(Oak)'였습니다. 그러나 선 마이크로시스템즈(Sun Microsystems)의 마케팅 팀이 'Oak'라는 이름을 사용하는 회사가 이미 존재한다는 사실을 깨닫고, 지금의 '자바'로 변경하게 되었습니다.

3. 개발자들이 가장 사랑하는 언어

자바는 전 세계적으로 폭넓게 사용되는 언어로, 개발자 커뮤니티에서 특히 큰 사랑을 받고 있습니다. 다양한 프로그래밍 언어 인기 조사에서 자바는 대부분 두 번째로 인기 있는 언어로 꼽히곤 합니다.

4. 30억 대 이상의 스마트폰을 지탱하는 자바

놀랍게도 현재 30억 대가 넘는 모바일 기기가 자바 기반 플랫폼 위에서 작동하고 있습니다. 그 숫자는 지금도 계속해서 증가하고 있으며, 자바가 모바일 생태계에서 차지하는 위상을 보여주는 대표적인 예라고 할 수 있습니다.

5. 마인크래프트(Minecraft)도 자바로 만들어졌다

역대 가장 인기 있는 게임으로 꼽히는 '마인크래프트(Minecraft)' 역시 자바로 작성되었습니다. 마인크래프트의 창시자 노치(Notch)는 자바로 이 게임을 개발했고, 이후 마이크로소프트(Microsoft)가 게임을 인수하면서 C++ 기반의 새로운 버전이 출시되기도 했습니다.

6. 'final' 키워드의 다양한 활용

자바의 'final' 키워드는 클래스, 변수, 메서드, 필드에 모두 사용할 수 있습니다. final이 붙은 요소들은 변경이 불가능해지는데, 구체적으로 살펴보면 다음과 같습니다.

  • final 클래스는 상속(확장)할 수 없습니다.
  • final 변수는 값을 변경할 수 없습니다.
  • final 메서드는 오버라이딩할 수 없습니다.
  • final 필드는 상수처럼 동작합니다.

7. 자바를 동적으로 만드는 두 가지 요소

자바가 동적인 언어로 기능할 수 있게 해주는 핵심 요소는 바로 '자바 인스트루멘테이션(Java Instrumentation)'과 '자바 리플렉션(Java Reflection)'입니다. 인스트루멘테이션은 런타임에 코드를 변경해야 할 때 미리 컴파일된 클래스를 수정할 수 있게 도와주며, 리플렉션은 특정 클래스의 private 변수까지 조회할 수 있게 해줍니다.

8. 포인터가 없는 이유

C++을 사용해 본 많은 개발자들이 포인터(pointer) 개념과 그 동작 방식 때문에 혼란스럽고 답답함을 느꼈을 것입니다. 다행히 자바에는 포인터 개념이 존재하지 않습니다. 자바의 설계자들은 포인터를 추가할 경우 언어의 견고성(robustness)이 저하될 것이라 판단했기 때문입니다.