![자바 예시, 자바는(Java)는 기술 환경의 급격한 변화와 명성에 대한 많은 위협을 견뎌온 코딩 프로그래밍 언어다. [사진출처=위키미디어]](https://cwn.kr/news/data/2022/07/21/p179564964890874_344.jpg)
자바는(Java)는 기술 환경의 급격한 변화와 명성에 대한 많은 위협을 견뎌온 코딩 프로그래밍 언어다. 그동안 자바는 어떻게 수많은 역경을 딛고 개발자들이 가장 선호하는 언어로 남게 된 것일까? 또 앞으로 자바는 어떤 모습으로 발전할까? 미국 기술 테크 전문매체 인포월드(InfoWorld)가 자바의 성장 비결과 전망을 분석하는 기사를 게재했다.
커뮤니티 열정
그동안 자바가 선호 받는 언어로 존재해온 가장 큰 요소는 커뮤니티의 열정이다. 커뮤니티의 열정은 개발자가 자바를 살아있고 역동적으로 유지하도록 참여시키는 거버넌스 구조를 통해 실현된다. 자바의 거버넌스는 JCP(Java Community Process)와 JSR(Java Specification Requests)을 통해 목소리를 내는 경쟁 이해관계자와 조직의 조합이다. JCP는 자바 기술에 깊은 관심을 갖고 있는 사람들이 서로 발전하고 갈등을 해결하는 장이다. 관료제, 정책 및 창의성의 다소 신비로운 조합이기도 하다.
자바가 성공적으로 람다와 클로저를 통합한 것은 매우 인상적인 위업이었다. 객체 지향 프로그래밍 언어에 기능적 구조를 추가하는 것은 매우 논란의 여지가 많았지만, 자바는 이를 훌륭하게 소화했다. 자바는 하이버네이트(Hibernate) 및 스프링(Spring)과 같은 기술에서 도입한 개념을 공식 플랫폼에 흡수했다. 이렇게 널리 사용되는 기술이 여전히 새로운 아이디어를 통합할 수 있다는 사실은 고무적인 일이다.
소셜 코딩과 오픈 소스는 자바에만 있는 것은 아니지만, 자바 생태계의 건강을 유지하는 핵심 구성 요소 중 하나다. 자바스크립트(JavaScript)와 마찬가지로 자바는 웹이 주목을 받으면서 코딩 커뮤니티와 함께 발전해 왔다.
자바 성공의 또 다른 동인은 풍부한 오픈 소스 프레임워크와 이를 기반으로 구축된 도구다. 필요한 거의 모든 것에는 하나 이상의 사용 가능한 라이브러리가 있다. 프로젝트가 마음에 든다면, 오픈 소스일 가능성이 높으며 이에 기여할 수 있다.
스프링 의존성 주입
자바의 스프링(Spring)은 사용자 정의 코드를 작성하고 프로그램에 타사 코드를 통합하는 데 유용하다. 종속성 주입 및 제어 역전(inversion-of-control)의 구현을 통해 스프링은 자체 내부 구성 요소를 보다 표준으로 만들 수 있을 뿐만 아니라 타사 프로젝트 및 공급업체가 구성 요소를 준비하는 방법으로 유사한 표준화를 확장한다. 이렇게 하면 프로그램에서 구성 요소를 사용하는 방법의 일관성이 높아진다.
물론 스프링에 대한 유효한 비판이 있으며 항상 올바른 도구는 아니다. 하지만 스프링은 프레임워크로서 애플리케이션 구성 요소를 프로비저닝 하고 구성하는 깨끗하고 일관된 방법을 도입했다. 그것은 당시 게임체인저였으며 오늘날에도 여전히 중요하다.
자바는 어떤 패러다임에서도 굉장하거나 끔찍한 코드를 작성할 수 있다. 자바 시스템에 들어가면 강력한 형식이 지정되고, 모든 것이 클래스에 포함돼 있다는 것을 미리 알 수 있다. 이 디자인 결정의 절대성은 복잡성을 제거하고 그것을 사용하는 언어와 프로그램에 깔끔함을 부여한다. 잘 작성된 자바 프로그램은 잘 작성된 객체 지향 코드의 기계적 우아함을 갖고 있다. 기능은 기계의 기어와 같은 상호 작용하는 구성 요소의 결과다.
JVM(Java Virtual Machine)
JVM(Java Virtual Machine)은 자바 구성의 또 다른 측면이다. 개발 당시 JVM은 다양한 런타임 환경에 대담한 기술 솔루션이었다. 그 이후로 때때로 과도한 아키텍처의 부담과 성능 어려움의 원인으로 지목되기도 했다. 하지만 수년간 개선 끝에 이 기술은 점차 입증됐고, 세계는 최근 가상 머신에 매료됐다. JVM은 어디에나 있으며 심지어 클라우드 컴퓨팅의 가장 낮은 계층을 형성한다.
데브옵스(Devops) 컨테이너 및 서버리스 아키텍처에 적용되는 JVM은 잘 정의된 특성, 제어와 함께 명확한 배포 환경 대상을 제공한다. C에 가까운 즉시 사용 가능한 성능으로 정교한 자동 메모리 관리를 제공한다.

자바의 미래
소프트웨어 개발은 엔터프라이즈와 크리에이티브라는 두 가지 강력한 흐름으로 구성된다. 가령 25년 동안 ‘던전 시뮬레이터’를 작업한 사람은 코딩으로부터 창조적인 기쁨을 얻었을 것이다. 견고한 비즈니스 사용과 결합된 그 창의성은 자바를 계속해서 유지하는 연금술이다. 장기적인 성공을 위해서는 소프트웨어, 프로젝트, 두 가지 모두를 위한 공간을 마련해 하는데 자바가 이를 실현했다.

[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]