Advertisement

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

자바 Java, 이제 COBOL의 길로 접어들었는가




한때 자바(Java)는 기업용 소프트웨어 개발의 사실상 표준이었다. 금융, 공공, 제조, 통신은 물론 웹 서비스까지 자바를 중심으로 거대한 생태계가 형성됐다. 지금도 자바는 세계에서 가장 많이 사용되는 프로그래밍 언어 가운데 하나이며 수많은 기업 시스템의 핵심을 담당하고 있다.

그런데 최근 소프트웨어 개발의 변화를 보면 다른 질문을 던질 필요가 있다.

자바는 여전히 강력한 언어인가가 아니라, 앞으로도 새로운 소프트웨어를 만드는 개발자들이 적극적으로 선택하는 언어로 남을 것인가?

이 질문에서 바라보면 자바의 미래는 조금 다르게 보인다.


풀스택이 스타트업만의 이야기가 아닌 이유

과거 기업의 소프트웨어 개발 조직은 역할을 세분화하는 것이 일반적이었다.

프론트엔드 개발자, 백엔드 개발자, 데이터베이스 개발자, 인프라 엔지니어가 각각 자신의 영역을 담당했다. 규모가 큰 기업일수록 이런 전문화가 효율적인 것으로 여겨졌다.

최근에는 분위기가 달라지고 있다.

풀스택 개발자가 증가하는 이유를 단순히 "소규모 기업이 개발자를 적게 고용하기 때문"이라고 해석하면 변화의 본질을 놓치게 된다.

더 중요한 이유는 소프트웨어에 대응해야 하는 속도가 빨라졌기 때문이다.

고객의 요구가 발생하면 화면을 수정하고, API를 변경하고, 데이터 모델을 바꾸고, 배포까지 빠르게 이어져야 한다. AI의 등장으로 이러한 변화 속도는 더욱 빨라지고 있다.

조직이 프론트엔드와 백엔드 사이의 업무 경계를 넘나들 때마다 담당자를 바꾸고 인터페이스를 정의하고 일정을 조율해야 한다면 그것 자체가 개발 속도를 떨어뜨린다.

그래서 풀스택은 단순한 인력 절감 방법이 아니라 소프트웨어 조직의 기민성을 높이는 방법으로 의미가 바뀌고 있다.


문제는 '두 개의 언어'가 아니다

현대적인 웹 애플리케이션에서 프론트엔드를 개발하려면 JavaScript 또는 TypeScript를 사실상 피하기 어렵다.

자바를 백엔드로 선택하면 일반적으로 다음과 같은 구성이 된다.

React·Next.js·TypeScript + Java·Spring Boot


겉으로 보면 언어 하나가 추가되는 것뿐이다.

하지만 실제 부담은 언어 두 개보다 훨씬 크다.

프론트엔드에서는 npm이나 pnpm, React, Next.js 등의 생태계를 이해해야 하고 백엔드에서는 Maven이나 Gradle, Spring, JPA/Hibernate 등의 생태계를 관리해야 한다.

빌드 시스템도 다르고 패키지 관리도 다르며 테스트, 디버깅, 배포 방식과 개발 관습도 다르다.

결국 개발자가 익혀야 하는 것은 두 개의 언어가 아니라 두 개의 개발 세계다.

전문화된 대규모 조직에서는 이것이 큰 문제가 아닐 수 있다. 그러나 한 개발자가 제품의 여러 계층을 빠르게 오가야 하는 풀스택 환경에서는 이야기가 달라진다.


TypeScript가 바꾸고 있는 게임의 규칙

TypeScript의 경쟁력은 단순히 JavaScript에 타입을 추가했다는 데 있지 않다.

더 중요한 것은 하나의 언어로 소프트웨어의 상당 부분을 연결할 수 있다는 점이다.

프론트엔드에서는 React와 Next.js를 사용하고 서버에서는 Next.js의 Server Components, Server Actions, Route Handler를 활용하거나 필요하면 Node.js와 NestJS 같은 별도의 백엔드 프레임워크를 사용할 수 있다.

데이터베이스 접근, API, 인증, 비즈니스 로직까지 TypeScript로 작성할 수 있다.

즉,

Browser → Web → API → Backend

전체 영역에서 하나의 언어를 사용할 수 있다.

시스템이 커지면 프론트엔드와 백엔드를 분리하면 된다. 중요한 것은 애플리케이션을 하나로 만들 수 있다는 것이 아니라 분리하더라도 언어와 개발 생태계를 상당 부분 공유할 수 있다는 것이다.

이는 풀스택 개발자에게 상당한 장점이다.


AI가 이 변화를 더욱 가속한다


AI 시대에는 개발자의 역할 범위가 더욱 넓어질 가능성이 높다.

AI 코딩 도구가 코드 작성 자체의 비용을 낮추면서 개발자에게 요구되는 능력은 특정 계층의 코드를 빠르게 작성하는 것에서 제품 전체를 이해하고 변경하는 것으로 이동하고 있다.

한 개발자가 UI를 수정하고 데이터 모델을 변경하고 API를 연결하고 AI 기능을 추가해 서비스를 완성하는 방식이 점점 현실적인 개발 모델이 되고 있다.

이런 환경에서는 언어와 프레임워크 사이를 이동하면서 발생하는 컨텍스트 전환 비용도 중요한 생산성 변수가 된다.

TypeScript가 이러한 흐름에서 유리한 위치에 있는 이유다.


그렇다면 자바는 쇠퇴하고 있는가


현재 데이터를 놓고 "자바가 쇠퇴하고 있다"고 단정하는 것은 정확하지 않다.

자바는 여전히 금융, 공공, 제조, ERP, MES, PLM 등 대규모 기업 시스템에서 막대한 영향력을 가지고 있다. Spring 생태계 역시 강력하며 기존 자바 시스템의 규모를 생각하면 단기간에 자바가 사라질 가능성은 거의 없다.

오히려 현재 상황을 표현하기에 적절한 단어는 쇠퇴보다는 정체 또는 역할의 고착화에 가깝다.

기존 기업 시스템에서는 계속 강하지만 새로운 웹 서비스와 풀스택 개발에서는 TypeScript, Python, Go 등과 경쟁해야 한다.

특히 신규 프로젝트에서 개발 생산성과 풀스택 대응 능력이 중요한 선택 기준이 될수록 자바는 과거보다 불리한 위치에 놓일 가능성이 있다.


코볼도 하루아침에 사라지지 않았다


여기에서 흥미로운 비교 대상이 COBOL이다.

COBOL은 실패한 프로그래밍 언어가 아니다.

오히려 너무 성공했기 때문에 수십 년이 지난 지금까지 금융기관과 정부기관의 핵심 시스템에서 사용되고 있다.


문제는 다른 곳에 있다.


기존 시스템에서는 반드시 필요한 언어지만 새로운 프로젝트를 시작하는 개발자들이 우선적으로 선택하는 언어는 아니라는 것이다.

이것이 흔히 말하는 레거시 언어의 본질이다.

사용량이 갑자기 사라지는 것이 아니라 신규 개발에서의 선택 비율이 감소하면서 기존 시스템을 유지하기 위한 언어로 역할이 점차 고정된다.

자바 역시 장기적으로 이러한 경로에 들어설 가능성을 완전히 배제할 수 없다.


자바와 코볼 사이에는 큰 차이도 있다


물론 현재의 자바를 COBOL과 동일하게 보는 것은 지나친 주장이다.


자바는 지속적으로 발전하고 있으며 현대적인 언어 기능을 적극적으로 받아들이고 있다. JVM이라는 강력한 플랫폼이 존재하고 Spring을 비롯한 방대한 오픈소스 생태계도 건재하다.

클라우드와 마이크로서비스에서도 자바는 여전히 중요한 선택지다.

따라서 "자바가 곧 COBOL이 된다"는 식의 주장은 현실과 거리가 있다.

중요한 것은 현재의 사용량이 아니라 신규 소프트웨어 개발에서의 선택이 어떻게 변하고 있는지를 관찰하는 것이다.

언어의 운명을 결정하는 것은 기존 코드가 아니다

프로그래밍 언어의 미래를 판단할 때 현재 얼마나 많은 시스템이 해당 언어로 만들어져 있는지만 보는 것은 위험하다.

더 중요한 지표는 다음 세대의 시스템을 만들 때 개발자와 기업이 어떤 언어를 선택하느냐다.

기존 자바 시스템이 워낙 많기 때문에 자바 개발자의 수요는 앞으로도 오랫동안 유지될 것이다. 하지만 유지보수 수요가 많다는 것과 새로운 소프트웨어를 만드는 언어로 성장하고 있다는 것은 전혀 다른 이야기다.

앞으로 자바의 미래를 판단하려면 전체 사용량보다 신규 프로젝트에서의 채택률, 풀스택 개발자들의 선택, 그리고 새로운 서비스에서 자바가 담당하는 영역이 어떻게 변하는지를 살펴볼 필요가 있다.

결국 문제는 자바가 아니라 개발 방식의 변화다


자바가 갑자기 나쁜 언어가 된 것은 아니다.

오히려 자바는 지금도 안정성, 성능, 도구, 생태계, 인력 측면에서 매우 뛰어난 선택이다.


변한 것은 소프트웨어를 만드는 방식이다.

프론트엔드와 백엔드의 경계가 낮아지고 한 개발자가 더 넓은 영역을 담당하며 AI가 개발 생산성을 크게 높이는 환경에서는 하나의 언어로 더 넓은 영역을 다룰 수 있다는 것이 과거보다 훨씬 중요한 경쟁력이 된다.


이러한 변화가 계속된다면 자바는 사라지지 않을 것이다.


대신 금융, 제조, 공공, 대기업의 핵심 업무 시스템에서 오랫동안 살아남으면서 새로운 프로젝트보다 기존의 거대한 엔터프라이즈 시스템을 지탱하는 언어로 조금씩 중심축이 이동할 가능성이 있다.

그 모습은 어쩌면 우리가 이미 COBOL에서 보았던 것과 닮아 있다.

그래서 지금 던져야 할 질문은 "자바는 죽었는가?"가 아니다.

더 흥미로운 질문은 이것이다.


"자바는 이미 충분히 성공했기 때문에, 이제 코볼이 걸었던 길의 초입에 들어서고 있는 것은 아닐까?"

댓글 쓰기

0 댓글