현재 버전

오키깡 // 조금은 원론적인 이야기가 될 수 있지만, 크고 복잡한 소프트웨어를 만들기 위해서는 대체로 두 가지 정 반대의 접근을 생각할 수 있습니다.

우선 어떤 공통된 관행을 따르는 통일성 있는 환경을 구축하는 방법이 있고, 다른 한 편에선 서로 느슨하게 연동하며 서로 부족한 부분을 다양한 구성요소로 생태계를 만드는 접근이 있습니다.

그리고 지금 질문하신 내용과 연관지어 보면 J2EE는 전자의 방식을, 그리고 노드나 파이썬은 대체로 후자의 방법을 따라 발전하고 있다고 할 수 있습니다.

서로 장단점이 있기 때문에 꼭 어느 쪽이 맞다 틀리다라고 할 수는 없는 문제지만, 확실한 것은 J2EE의 전성기와 비교하면 지금은 분명 시장의 흐름이 보다 다원적이고 느슨한 결합을 추구하는 방향으로 변하고 있다는 점입니다.

큰 기업들이 모여서 회의를 해서 스펙을 정하고 벤더들이 구현을 만들고 하기 보단, 다양한 오픈소스 프로젝트가 경쟁하면서 생태계를 이루고 이를 취사 선택해서 심지어 언어조차 상이한 작은 서비스를 느슨하게 결합해서 연동하는 방식이 대세가 되었기 때문입니다.

물론 그렇다고 스프링 부트나 자바가 그런 방식보다 못 하다고 볼 수 없고, 또 원한다면 스프링 부트 기반 마이크로 서비스 같은 것도 얼마든지 만들 수 있습니다.

본문에서 이야기한 문제의 맥락에서 핵심은 자바나 스프링이 나쁘다 보다는, 더 이상 "닥치고 XXX" 하는 식으로 단일한 기술 환경의 설계 패턴까지 정해놓고 프로젝트 마다 똑같은 결과물을 찍어 내는 방식, 그리고 그런 작업에만 익숙해진 실무 개발자들이 변화한 환경에서 살아남을 수 있을지입니다.

반면, 자바가 쇠퇴하고 있는 것은 분명하지만, 이는 자바나 스프링의 기능적인 한계보단 오라클의 행보 등 기술 외적인 여러 요인이 더 크게 작용한 결과라 생각해서 별개의 문제로 보아야 한다고 생각합니다.

한 마디로 이래저래 자바에 미운털이 많이 박힌 마당에 기술 환경의 변화로 더 이상 자바를 꼭 써야할 이유가 줄어드니 다른 쪽으로 추세가 옮겨가는 모양인 것 같습니다.

제 생각에 말씀하시는 이유로 스프링 부트가 최적의 선택이라고 판단하신다면 굳이 대세를 따라 다른 기술로 전환하실 필요는 없다고 봅니다.

개인적으로 파이썬을 배운 것은 블렌더 관련 API와 머신러닝 쪽을 보기 위함이고 노드는 진지하게 개발해본 적이 없어서 말씀하신 내용을 충족하는 구체적인 라이브러리 같은 걸 소개해드리긴 어려운 점 양해 부탁드리겠습니다.


수정 이력

2021-02-01 18:33:56 에 아래 내용에서 변경 됨 #1

오키깡 // 조금은 원론적인 이야기가 될 수 있지만, 크고 복잡한 소프트웨어를 만들기 위해서는 대체로 두 가지 정 반대의 접근을 생각할 수 있습니다.

우선 어떤 공통된 관행을 따르는 통일성 있는 환경을 구축하는 방법이 있고, 다른 한 편에선 서로 느슨하게 연동하며 서로 부족한 부분을 다양한 구성요소로 생태계를 만드는 접근이 있습니다.

그리고 지금 질문하신 내용과 연관지어 보면 J2EE는 전자의 방식을, 그리고 노드나 파이썬은 대체로 후자의 방법을 따라 발전하고 있다고 할 수 있습니다.

서로 장단점이 있기 때문에 꼭 어느 쪽이 맞다 틀리다라고 할 수는 없는 문제지만, 확실한 것은 J2EE의 전성기와 비교하면 지금은 분명 시장의 흐름이 보다 다원적이고 느슨한 결합을 추구하는 방향으로 변하고 있다는 점입니다.

큰 기업들이 모여서 회의를 해서 스펙을 정하고 벤더들이 구현을 만들고 하기 보단, 다양한 오픈소스 프로젝트가 경쟁하면서 생태계를 이루고 이를 취사 선택해서 심지어 언어조차 상이한 작은 서비스를 느슨하게 결합해서 연동하는 방식이 대세가 되었기 때문입니다.

물론 그렇다고 스프링 부트나 자바가 그런 방식보다 못 하다고 볼 수 없고, 또 원한다면 스프링 부트 기반 마이크로 서비스 같은 것도 얼마든지 만들 수 있습니다.

본문에서 이야기한 문제의 맥락에서 핵심은 자바나 스프링이 나쁘다 보다는, 더 이상 "닥치고 XXX" 하는 식으로 단일한 기술 환경의 설계 패턴까지 정해놓고 프로젝트 마다 똑같은 결과물을 찍어 내는 방식, 그리고 그런 작업에만 익숙해진 실무 개발자들이 변화한 환경에서 살아남을 수 있을지입니다.

반면, 자바가 쇠퇴하고 있는 것은 분명하지만, 이는 자바나 스프링의 기능적인 한계보단 오라클의 행보 등 기술 외적인 여러 요인이 더 크게 작용한 결과라 생각해서 별개의 문제로 보아야 한다고 생각합니다.

제 생각에 말씀하시는 이유로 스프링 부트가 최적의 선택이라고 판단하신다면 굳이 대세를 따라 다른 기술로 전환하실 필요는 없다고 봅니다.

개인적으로 파이썬을 배운 것은 블렌더 관련 API와 머신러닝 쪽을 보기 위함이고 노드는 진지하게 개발해본 적이 없어서 말씀하신 내용을 충족하는 구체적인 라이브러리 같은 걸 소개해드리긴 어려운 점 양해 부탁드리겠습니다.