본문 바로가기
개발

[기술의역사] 자바(JAVA)

by 마스터누누 2017. 5. 29.
728x90
반응형

자바(JAVA)




(어느 한 분야에 깊게 빠질수 있는 사람이 개발을 잘하나 보다 - 사진은 제임스 고슬링)


1995년에 발표된 썬 마이크로 시스템즈의 제임스 고슬링이 개발한 언어이다.

위 사진에서 아련하게 소녀시대를 보고 있는 아저씨가 고슬링이다.

초기에는 임베디드 시스템을 위해 개발 되었으나 현재는 안드로이드나 웹 등에서 활발하게 사용되는 중이다.


자바가 가지고 있는 가장 큰 강점은 자바 가상 머신(JVM) 이다.

초기 언어들은 운영체제에 어느정도 종속적인 면을 보였는데, 자바는 개별적으로 JVM이라는 가상머신에서 돌아가기 때문에

어디서나 동일한 퍼포먼스를 보여줄수 있다는 장점이 있었다.

이 때문에 자바의 슬로건은 Write once, Run everywhere이다


물론 JVM이라는 특수한 환경 때문에 기존의 언어보다 속도가 느리다는 단점이 있었으나, 

이는 C, C++과 같은 언어와 비교했을때의 이야기고, 현재 주목받고 있는 파이썬과 같은 고수준 언어보다는 훨 빠르다.


두번째의 강점은 가비지 컬렉터이다.

자바는 언어에서 자체적으로 메모리 누수를 방지하기 위하여, 사용하지 않는 메모리 영역을 자동으로 처리해준다.

C언어를 예로 들자면 malloc과 free를 수동으로 실행해야했는데, 자바에서는 이렇게 heap 영역에 할당된 메모리를

사용하지 않을 경우 자동으로 수집해서 메모리를 확보하는 기능을 가지고 있는것이다.


언어의 이름에 대해서는 여러가지 기원이있는데,

고슬링 사무실 옆에 있는 Oak 나무에 착안, Oak라는 이름을 붙였다가 수정해서 결국에는 4번째 후보였던 자바가 채택되었다.

그 밖에도 개발진이 자바산 커피를 좋아해서 붙였다, 개발자들 이름의 머릿 글자를 다 따서 붙였다 들의 설이 많은데 

이름의 기원이야 어쨌든 상관 없지 않은가.

(커피설이 신빙성 있는 이유는 자바의 대표 로고가 커피이다.)






자바의 특성으로 대표되는 것이 바로 객체지향이라는 것이다.

C 언어를 개조해서 객체지향적으로 만들었던 C++과는 대비되게, 자바는 초기부터 객체지향을 염두에 두고 설계되었다.

따라서 자바는 과감하게 로우 레벨로 접근하는 포인터를 포기했고, OOP에 집중했다.

이러한 이유로 클래스간의 관계나, OOP가 가지고 있는 다형성이나 상속 등의 특성을 잘 구현하여 생산성이 높다.

개인적인 생각이지만, 로우 레벨 처리를 자동으로 해주는 덕분에 복잡한 메모리 접근을 신경 쓰지 않고 작업할 수 있어서

생산성이 더욱 높아진 것 같다.


이 때문인지 몰라도 자바는 발표 초기에서 부터 상당히 주목받는 언어였고 사람들의 사랑을 많이 받았다.

그래서 현업에서도 아직 대규모의 자바 개발자들이 산재해있고, 이 때문에 관련 레퍼런스나 자료들을 쉽게 찾을수 있다.

사람들이 많이 사용함에 따라 안정성도 높아졌고, 이미 검증된지 오래된 언어라고 할 수있다.

(이를 바탕으로 고찰해보면 프로그래밍 언어란 사용자에 따라 빈익빈 부익부가 심한것 같다.)





Hello World!


1
2
3
4
5
public class HelloWorldApp {
  public static void main(String[] args) {
    System.out.println("Hello World!"); // Hello World 를 출력
  }
}
cs


위의 코드는 자바로 출력한 Hello world이다.

다른 언어들과는 확연히 다르게 긴 코드를 자랑한다.

확실히 자바가 다른 고수준 언어보다 코드량이 많긴 하지만, 버전이 업그레이드 될수록

람다식이나 Stream등을 지원하여 짧은 코드를 짤수 있게 지원해주고 있다.



반응형

댓글