.NET의 클로저 기능은 많은 개발자들에게 인기가 있으며 Java에서는 이를 곧 구현할 것으로 보입니다. 물론 이것은 런타임 기능이 아니라 언어 기능입니다. 궁극적으로 둘 중 하나를 선택하는 것은 개인 선호도와 현지 취업 기회에 달려 있다고 생각합니다. .NET의 클로저 기능은 많은 개발자들에게 인기가 있으며 Java에서는 이를 곧 구현할 것으로 보입니다. 물론 이것은 런타임 기능이 아니라 언어 기능입니다. 궁극적으로 둘 중 하나를 선택하는 것은 개인 선호도와 현지 취업 기회에 달려 있다고 생각합니다.
1.Java SE 7이 .NET CLR을 만나면 어떻게 되나요?
Java SE 7의 기능 목록에서 볼 수 있듯이 이전 버전에 비해 크게 개선되었습니다. 그렇다면 게임 체인저가 아닌가 싶습니다. 지난 몇 년 동안 JVM과 .NET CLR 모두에 많은 개선이 이루어졌습니다. 과거에는 매우 숙련된 프로그래머만이 수행할 수 있었던 많은 것들이 이제 JVM의 개선 덕분에 일반 프로그래머의 능력 범위 내에 있습니다. 그리고 .NET CLR을 얻습니다.
JVM과 .NET CLR은 같은 아이디어를 동시에 구현하지는 않았지만 한쪽에서 좋은 아이디어가 나타나면 다른 쪽에서도 빠르게 후속 조치를 취합니다. 이는 런타임 수준에서만 반영되는 것이 아닙니다. 예를 들어, Java의 경우 Hibernate 프로젝트가 큰 성공을 거둔 후 .NET도 빠르게 NHibernate를 시작했습니다. .NET의 클로저 기능은 많은 개발자들 사이에서 매우 인기가 있으며 Java에서는 이를 곧 구현하게 될 것 같습니다. 물론 이것은 런타임 기능이 아니라 언어 기능입니다.
.NET 클로저가 인기를 끌고 있으며 Java도 곧 뒤따를 것입니다.
2. 가까운 미래에 한 런타임이 다른 런타임을 완전히 압도할까요?
JVM과 .NET CLR은 기술적인 측면에서는 매우 유사하지만 각각 고유한 시장이 있고 둘 다 그다지 유연하지 않습니다. .NET 서버와 IIS를 기반으로 인프라를 구축한 경우 다음 날 아침에 일어나서 모든 것을 Java로 마이그레이션할 수 있는 방법이 없으며 그 반대의 경우도 마찬가지입니다. 회사가 개발 플랫폼을 전환하기로 결정하더라도 전체 개발 팀을 교체하거나 처음부터 교육해야 할 수도 있습니다. 교육을 마친 후에도 여전히 심각한 기술 부족이 존재하므로 .NET 선배 개발자가 3개월의 교육을 받은 후 갑자기 선배 Java 개발자가 되는 것은 불가능합니다.
또한 회사는 기존 코드를 유지하기 위해 기존 기술 인력을 유지해야 합니다. 이 직원들이 자리를 비우고 자신의 기술이 쓸모없거나 평가절하되는 것을 지켜볼 것이라고 생각하십니까? 물론 그렇지 않습니다. 회사의 경우 Java에서 .NET으로 완전히 전환하거나 .NET에서 Java로 완전히 전환하는 것은 자살 행위입니다. 기껏해야 직원들은 다년간의 프로젝트를 통해 재교육을 받게 됩니다. VB6에서 .NET으로 마이그레이션하는 데는 .NET이 출시된 이후 8년이 걸렸습니다.
프로그래머와 프로젝트의 변화에는 시간이 걸립니다
3. Java 개발 비용이 .NET 개발보다 경제적입니까? 그렇다면 사람들은 투자를 절약하기 위해 Java로 전환할까요?
도구만 본다면 내 대답은 "옳고 그름"입니다. 실제로 원하는 경우 완전한 오픈 소스 패키지에서 Java를 실행할 수 있습니다. Linux/Tomcat/MySQL/Java 조합을 사용하거나 서버측에서는 SpringSource 조합을 사용하고 개발자 컴퓨터에서는 Eclipse 또는 NetBeans를 사용할 수 있습니다. 그러나 어떤 이유로든 오픈 소스 대안의 열렬한 팬이 될 수는 없다는 점을 지적하는 것이 중요하며, 만약 그렇다면 Java 도구의 가격이 다른 도구에 비해 나쁘다고 말하는 것은 아닙니다. .NET 도구 꽤 많은 경우 훨씬 더 비쌉니다. 그리고 Oracle 및 IBM과 같은 회사가 수행하는 작업을 살펴보면 많은 회사가 독점 Java 도구에 대한 비용을 지불할 필요성을 느끼는 것이 분명합니다. 가격 측면에서 Microsoft는 특정 시장 부문에서 거의 항상 최저가 기업 공급업체입니다.
또한 전환 비용이 없다면 회사가 얼마나 많은 돈을 절약할 수 있는지 고려해야 합니다. Visual Studio 복사본 비용은 중산층 개발자의 주급 및 보험료보다 훨씬 저렴합니다. 게다가 같은 개발자가 Java를 배우고 .NET을 능숙하게 사용할 수 있는 수준에 도달하는 데 걸리는 시간은 일주일 이상입니다.
공평하게 말하면 이 분석은 Java에서 .NET으로 이동하는 경우에도 적용됩니다. 플랫폼 전환의 고통에 비하면 개발 도구 비용은 정말 미미합니다. 물론 두 가지 예외가 있습니다. 첫 번째 상황은 새로운 회사를 설립하는 것이므로 마이그레이션 비용 문제는 없습니다. 이 경우에도 자바는 여전히 비용상의 이점이 없다. 마이크로소프트도 비주얼 스튜디오(Express 버전) 무료 버전을 출시했고, 신생 기업이라면 비즈스파크(BizSpark)를 통해 3년 동안 무료로 받을 수 있기 때문이다. MSDN과 Microsoft 라이센스를 계획하면 나쁘지 않습니다. 또 다른 예외는 Google이나 Yahoo와 같이 서버 대 개발자 비율이 매우 높은 회사입니다. 이러한 회사에는 수천 대의 서버에서 실행되는 응용 프로그램을 개발하는 개발자가 많을 수 있습니다. 이 경우 개발자 도구는 비용 절감의 주요 요소가 아니지만 서버 공간은 그렇습니다. 이러한 상황에 직면한 기업의 경우 Java(및 기타 오픈 소스 기술)는 결정적인 비용 이점을 가질 수 있습니다.
4. .NET에서 효율성을 얻으려면 Java 개발자가 얼마나 많은 스크립팅 언어를 알아야 합니까?
먼저, 웹 개발 분야에서 일하고 계시나요? 그렇다면 JavaScript를 알고 해당 프레임워크에 익숙해지고 싶을 수도 있습니다. 백엔드 작업의 경우 동적 또는 스크립팅 언어를 아는 것이 필수이거나 필수는 아닙니다. 그럼에도 불구하고 Java 공간에는 이러한 목적을 위한 좋은 옵션이 많이 있습니다. 현재 Java 개발자가 아닌 사람에게는 이 분야에 대한 실제 경험이 없지만 Groovy 및 Scala에 대한 좋은 리뷰를 많이 들었습니다. 좀 더 주류 기술을 선택하고 싶다면 JRuby와 Jython이 좋은 선택입니다.
Java 애플리케이션의 성능을 향상시키는 다양한 방법이 있습니다.
지난 몇 년 동안 JVM은 Java가 아닌 언어를 대규모로 지원하기 시작했으며 이제 개발자는 다양한 선택권을 갖게 되었습니다. 이들 중 하나를 배우면 더 나은 개발자가 되는 데 확실히 도움이 될 것이며(실제 프로덕션 프로젝트에서 사용하지 않더라도) 프로젝트가 막혔을 때 대안적인 방향을 제시할 수 있습니다.
Java가 .NET을 대체할 것인가? 아직 말하기는 이르다. 동시에 .NET은 Java를 종료하지 않습니다. 둘 다 고유한 장점과 단점이 있습니다. 궁극적으로 둘 중 하나를 선택하는 것은 개인 선호도와 현지 취업 기회에 달려 있다고 생각합니다.