자바가 인기있는 이유와 객체지향적 언어

훈장 아르모트

·

2017. 4. 12. 17:29

반응형
 
자바(JAVA)
 

썬 마이크로시스템즈에서 1995년에 개발 객체지향 언어이다. 2010년에 오라클이 썬을 인수해서 현재는 오라클이 자바의 저작권을 보유하고 있다. 최고의 데이터베이스 기업이 가장 인기있는 프로그래밍 언어를 보유한 셈이다. 

자바는 전 세계의 모든 프로그래밍 언어 중 가장 많이 쓰이는 언어이다. 프로그래밍 언어 점유율 순위를 제공하는 TIOBE 에 따르면, (아래 자료 참고) 2017년 4월 기준으로 자바가 15.5% 의 점유율로 1위이다. C와 C++ , C#의 점유율을 모두 합쳐야 JAVA와 비슷한 수준이 되며, 요즘은 빅데이터, 머신러닝 등과 관계가 있는 Python 이 두각을 나타내고 있다. 자바의 강세는 이미 몇년 간 지속되어온 현상이며 앞으로도 자바의 강세는 이어질 것으로 전망된다. 

 

 

시장을 장악한 언어, JAVA의 특징

 

1. JAVA는 객체지향(Object-Oriented) 언어이다. 

객체지향이란? 

프로그램을 단순히 데이터와 처리 방법, 둘로 나누어서 보는 것이 아니라, 프로그램을 수많은 각각의 '객체' 라는 기본 단위로 나누고 이 객체들의 상호작용으로 서술하는 방식을 말함.

초기의 프로그래밍은 절차적 프로그래밍이라고 하는데, 프로그램 자체가 가지는 기능에 대해서만 집중을 하고, 다루는 데이터의 성질이나 내용에 대해서는 관심이 없었다. 이런 부분들을 고려하지 않았기 때문에 알고리즘이 복잡해지면 순서도로 나타내는 것이 거의 불가능해지는 문제점이 있었다. 데이터 처리방식을 구조화할 수는 있었지만, 데이터 자체를 구조화 하지 못하였기 때문에 많은 문제가 발생했고, 지역변수나 구조체 등의 개념을 도입하여 어찌어찌 해오고는 있었으나, 보다 근본적인 대책이 필요했다.

이런 문제점을 해결할 대안으로 세상에 나오게 된 것이 객체 지향 프로그래밍이다. 큰 문제를 작게 쪼개는 것이 아니라, 먼저 작은 문제들을 해결할 수 있는 객체들을 만든 뒤, 이 객체들을 조합해서 큰 문제를 해결하는 상향식(Bottom-up) 해결법을 도입한 것이다. 이 객체란 것을 일단 한번 독립성/신뢰성이 높게 만들어 놓기만 하면 그 이후엔 그 객체를 수정 없이 재사용할 수 있으므로 개발 기간과 비용이 대폭 줄어들게 된다.

객체 지향 프로그래밍은 등장 당시에는 기존의 절차적 프로그래밍과 비교해 매우 이질적이고, 당시 컴퓨터의 처리능력이 별로 좋지 않아서 별 주목을 받지 못하였으나, 운영체제, 게임, 유틸리티 등 온갖 분야에서 GUI(Graphical User Interface)가 대세가 되면서 객체 지향 프로그램이 주목을 받기 시작했다.

 

2. 같은 코드로 어떤 마이크로프로세서에서나 실행할 수 있다. (각각에 대한 버전을 따로 만들 필요가 없다.) 

애초에 제임스 고슬링이 자바(당시에는 다른 이름이었음, Oak)를 개발할 때부터 이 부분을 의도했다. 이를 위해서 자바만의 실행 코드인 바이트코드(ByteCode)라는 중간 코드를 컴파일러(Compiler)에 의해 생성한다. 그리고 자바가상머신(JVM,Java Virtual Machine)에 의해 해석되어 실행된다. 따라서 C/C++ 코드로 작성되어 생성된 코드보다 일대일 상황이면 실행 속도가 느리다. 그러나 장점은 같은 코드로 다양한 플랫폼이나 운영 체제에서 실행될 수 있다는 점이다. 

컴파일러 : 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램

 

3. 프로그래밍을 혼자만 하는 것이 아니라서 더 벗어날 수 없는 자바

개발자들의 커뮤니티 같은 곳을 보면 자바가 왜 인기있는지에 대한 토론이 벌어지곤 하는데, 내용들을 보면 다음과 같다.

"오랜 기간 축적되고 검증된 라이브러리의 코드량"

 

"정부가 자바를 채택해서 쓰기 때문..."

 

"접근성도 용이하고 편리하고 웹과의 호환도 좋고 .... 그렇게 코딩이 어렵지도 않고"

 

 "java-oracle의 안정성"

 

"새로 나오는 언어들도 좋기는 한데, 다른 사람들과 협업 하려면 결국 다 통하는 자바로 해야한다"

 

하지만 모두가 자바의 미래를 밝게 보고 있지만은 않다.

 

 

구글에 '자바쓰는이유' 라고 검색하면 가장 위에 뜨는 3개의 글 모두 자바에 대한 부정적인 늬앙스를 가진 글이다. 그리고 커뮤니티를 보면 자바가 아닌 대안언어를 준비하는 사람들이 많다. 자바스크립트나 Go 등이 있다.

 

과연 자바는 앞으로도 이 지위를 지켜낼 수 있을지? 아니면 판세를 뒤엎을만한 일이 일어날지? 빠른 시일 내에 그런 일이 일어날 것 같지는 않지만 기대와 걱정이 동시에 된다. 프로그래밍으로 먹고 살려면 평생 공부해야 하나보다.

 

반응형