JavaRush /Java Blog /Random-KO /커피 브레이크 #68. Java와 해당 생태계에 대한 솔직한 의견입니다. 2021년에 고려해야 할 세 ...

커피 브레이크 #68. Java와 해당 생태계에 대한 솔직한 의견입니다. 2021년에 고려해야 할 세 가지 새로운 Java 도구

Random-KO 그룹에 게시되었습니다

Java와 그 생태계에 대한 솔직한 의견

출처: Dev.to 좋습니다. 제 주요 언어가 C#이라는 점을 인정합니다. 그러나 이것은 Java와 그 주변 생태계에 대한 나의 편견 없는 의견입니다. 나는 Java에서 bash 명령을 자주 사용하여 모든 단점을 확인했습니다. 예를 들어 Java에는 속성이 없고 기본적으로 이벤트, 구조체, 연산자 오버로드가 없으며 Java 10까지는 추론이 없으므로 'var'이 없습니다. C#에는 모든 것이 있습니다! 또한 LINQ, var 및 enum이 부족하여 Java용 bash를 사용했습니다. 그럼에도 불구하고 저는 특히 Android용 애플리케이션을 만들 때 Java로 글을 많이 작성하지만 다른 용도로도 작성합니다. 내 첫 프로젝트도 Java로 진행되었습니다! 그래서 금요일 저녁에는 긴급한 상황으로 인해 몇 시간 동안 계속해서 Java로 글을 써야 했습니다. 그리고 내가 무엇을 발견했는지 알아보세요? 개울! 커피 브레이크 #68.  Java와 해당 생태계에 대한 솔직한 의견입니다.  2021년에 고려해야 할 세 가지 새로운 Java 도구 - 1분명히 Java 8에는 스레드가 도입되었습니다! 그리고 나는 그것에 대해 전혀 몰랐습니다! 모르는 분들을 위해 설명하자면 Streams는 LINQ의 Java 구현입니다. 또한 Java 10에 유형 추론이 있으므로 이제 Java에 var 함수가 있다는 것도 발견했습니다. 내 지식이 얼마나 낡았는지 믿을 수 없지만 솔직히 거기에는 이유가 있었다. 이 두 가지가 내 생각에 큰 변화를 가져왔습니다! Java는 항상 예외를 확인하지만 C#은 그렇지 않다는 것을 알고 계셨습니까? 저는 C#에서 이 기능이 정말 그리워진다는 것을 인정합니다! 예, 구조, 속성 등은 없지만 젠장, 우아합니다! 내 생각에 Java는 설계상 개발자가 더욱 강력한 애플리케이션을 작성하도록 강요합니다. 반면 .NET 세계에서는 이는 대부분 코더의 재량에 달려 있습니다. 일부 개발자는 이러한 제한을 좋아하지만 다른 개발자는 자유를 선호합니다. 두 언어 모두 상당히 안전하지만 Java는 분명히 약간의 우위를 갖고 있습니다. 그렇다면 대기업이 Java를 선호하는 이유는 무엇입니까? 이제 답을 알 것 같아요! 가장 답답한 점은... 인터넷에서 보는 대부분의 코드 예제에서 이러한 고급 기능이 항상 사용되지는 않는다는 것입니다... 새로운 Java 개발자가 코드 베이스 전체에 'var'가 쓰여 있는 것을 본다면 그렇게 생각합니다. , 그는 미쳐버릴 거야! 스트림은 어떻습니까? 스트림이란 무엇입니까? Java 개발자는 For 루프를 좋아합니다! 실제로 foreach 루프도 Java 세계에서는 매우 드뭅니다(그리고 아마도 이에 대한 이유가 있을 것입니다: For 루프가 훨씬 더 최적화되어 있기 때문일 것입니다). 그러나 이것은 나쁜 기능이 아닙니다! 나는 더 나아가 이러한 기능이 놀랍다고 말할 것입니다! Android 앱을 작성할 때 Android API의 거의 어디에도 열거형이 사용되지 않는다는 사실을 알게 되면 정말 고통스럽습니다! Android는 수년 전에 작성되었기 때문에 이것은 공평합니다. 나를 가장 짜증나게 하는 것은 Android에서 결과에 대한 활동 기능을 사용해야 할 때마다 다음과 같이 상수를 사용해야 한다는 것입니다. int PICK_IMAGE_FROM_GALLERY = 3000 형, 이거 미친 짓이야! 그럼에도 불구하고 전 세계 사람들이 그것을 받아들이게 되었습니다. 그리고 나도. Java에는 기본 이벤트 구현도 부족합니다! C#과 같은 이벤트와 대리자가 있었다면...(자바 언어 제작자 여러분, 이 글을 읽고 계시다면 이벤트를 추가하셔야 합니다! 이미 이벤트가 있거나 작업 중이라면 알려주세요. ). 이제 Java 생태계의 가장 큰 결함이 무엇인지 말씀드리겠습니다. 선적 서류 비치!!! Oracle 웹사이트의 어수선하고 도움이 되지 않는 문서는 2007년 수준으로 볼 때 어리석고 시대에 뒤떨어져 보입니다. 항상 코드 예제가 있는 것은 아닙니다. 상대적으로 특이한 기능이나 API 메소드를 찾기 시작하면 지루한 정의, 선언, 인수, 그것이 속한 패키지를 찾을 수 있습니다. 그게 전부입니다. 나는 이것이 터무니없다고 생각한다. 이것이 터무니없다고 생각하지 않나요? 코드 조각이 없나요? 따라서 우리 개발자는 StackOverflow와 같은 포럼이나 TutorialsPoint와 같은 다른 프로그래밍 웹사이트에 크게 의존해야 합니다. 때로는 이 기능을 보여주는 좋은 코드 예제가 있어 정말 도움이 되지만, 다른 경우에는 그다지 유용하지 않습니다. C#으로 작성된 Microsoft 설명서와 Java로 작성된 Oracle 설명서를 비교해 보시기 바랍니다. 천국과 땅! 나를 믿지 못합니까? 가서 확인해 보세요: OracleMicrosoft. Microsoft 사이트의 설명서가 정말 멋져 보입니다! 다크 모드도 있어요! 우리 개발자들은 다크 모드에 열광합니다. Oracle 문서는 어떻습니까? 말씀드린대로 2007년에도 남아있습니다. 그 당시에는 다크 모드가 없었을 수도 있죠? 그래서 저는 Java가 훌륭하다고 말하고 싶습니다! 그러나 이 언어는 오래된 문서로 인해 큰 어려움을 겪고 있습니다. 이것들은 대부분 스레드, 변수, 열거형과 같이 꼭 필요한 새로운 기능을 강조하지 않는 오래된 문서와 매뉴얼입니다. 요즘 사람들은 Java가 쓸모없어지고 Kotlin으로 대체될 것이라고 말하지만 저는 이에 동의하지 않습니다. 이것이 사실이더라도 그는 오랫동안 그녀를 대신하지 않을 것이기 때문입니다. 이것은 아주 오랜 세월이 걸릴 것입니다. Scala도 이를 대체하려고 했던 것을 기억하시나요? 그래서 그 결과는 무엇입니까? Java는 여전히 전체 JVM 생태계를 지배하고 있습니다. 나는 Scala가 주로 기능면에서 Java와 매우 다르다는 것을 인정합니다. 이제 마지막으로... Java 세계의 그 어떤 것보다 나에게 더 많은 감동을 주는 것이 하나 더 있습니다. 이것은 JDK를 얻는 것입니다. JDK를 다운로드하는 것이 왜 그렇게 어려운가요? 제 말은 JDK가 필요한 경우 간단한 Google 검색을 통해 Oracle 웹사이트로 연결되고 그곳으로 가서 필요한 JDK 버전을 찾을 수 있다는 것입니다. 지금까지는 모든 것이 상대적으로 쉽지만 다운로드하려면 등록이 필요합니다. JDK를 다운로드하는 대신 Oracle에 계정을 만든 다음 매주 이메일을 처리해야 하는 이유는 무엇입니까? Java는 처음부터 오픈 소스라는 점을 명심하세요! 2015년에야 오픈소스로 전환된 C#과 달리 그래서 벌써 답답해서 구글 검색결과에 나오는 두 번째 웹사이트로 가봅니다. OpenJDK 사이트로 연결됩니다. 거기에서 JDK를 찾아 "다운로드"를 클릭합니다. 그러나 (놀랍게도!) 다른 사이트의 JDK 구현에 대한 링크를 제공합니다! 사이트 중에는 저주받은 Oracle이 있지만 Red Hat 사이트에 대한 링크도 있습니다. 예, Red Hat은 훌륭합니다. 전 세계 오픈소스 기업의 선구자 중 하나입니다. 좋아요, 그 회사 웹사이트로 가볼게요! 거기에서 다운로드하겠습니다! 이 링크를 클릭하고 내가 찾고 있는 JDK 버전을 찾은 다음 무엇을 추측할까요? 나도 거기 등록해야 하는데... (극적인 멈춤) 이건 정말 슬프다... 젠장! 이 사람들에게 무슨 문제가 있습니까? 마지막으로 Chocolatey를 포기하고 설치합니다(apt-get과 비슷하지만 Windows용입니다. Windows용으로 널리 배포되고 사용되는 최초의 패키지 관리자라고 생각합니다). 따라서 이 모든 작업이 끝나면 PowerShell에서 choco install jdk-1.8과 같은 간단한 명령을 작성해야 합니다. 그리고 나는 그것을한다! (C# 개발자라면 등록 등의 절차 없이 단 2~3번의 클릭만으로 .Net SDK를 얻는 것이 얼마나 쉬운지 아실 것입니다.) 나의 긴 호언장담을 마무리하자면: Java는 훌륭한 프로그래밍 언어입니다. 이 제품은 아름답고 안정적이며 (제 생각에는) 세계 최고의 IDE, 즉 JetBrains의 잘 알려진 IntelliJ IDEA를 갖추고 있습니다. 또한 Java에는 매우 유용한 커뮤니티와 크고 다양한 생태계가 있습니다. 그리고 저는 이것을 C# 개발자라고 말하고 있습니다... 하지만 문서를 업데이트해야 합니다. 코드 예시. API. JDK를 더 쉽게 얻을 수 있도록 해야 합니다. 전반적으로 Java는 올바른 방향으로 움직이고 있습니다. 최근 인기가 다소 하락했을 수도 있지만 그렇다고 Java가 사라지지는 않습니다. 수년 동안 이 언어는 세계 최고의 언어 목록의 최상위에 있었습니다! 저는 항상 Java를 사용하고 있으며 앞으로도 계속 사용할 예정입니다.

2021년에 고려해야 할 세 가지 새로운 Java 도구

출처: OpenSource 최근 인공지능, 머신러닝, 쿠버네티스 관련 프로젝트를 구현하기 위해 활발히 사용되는 Python, Go, Node.js의 인기에도 불구하고 Java 기술은 여전히 ​​엔터프라이즈 애플리케이션 개발에서 핵심적인 역할을 하고 있습니다. Developer Economics에 따르면 2020년 3분기에 전 세계적으로 800만 명의 엔터프라이즈 Java 개발자가 있었습니다. 커피 브레이크 #68.  Java와 해당 생태계에 대한 솔직한 의견입니다.  2021년에 고려해야 할 세 가지 새로운 Java 도구 - 2Java 프로그래밍 언어는 25년 넘게 사용되어 왔으며 지속적으로 업데이트되고 있습니다. 귀하의 애플리케이션과 경력을 강화할 수 있는 새로운 도구와 프레임워크가 등장하고 있습니다. 대부분의 Java 플랫폼은 서버나 가상 머신에서 실행되도록 설계된 동적 동작으로 장기 실행 프로세스를 구현하기 위해 만들어졌습니다. 2014년에 Kubernetes 컨테이너가 등장하면서 이러한 상황이 바뀌었습니다. 이제 Kubernetes에서 Java를 실행할 때 가장 큰 과제는 메모리 공간을 줄이고, 시작 및 응답 시간을 가속화하고, 파일 크기를 줄여 애플리케이션 성능을 최적화하는 것입니다.

세 가지 새로운 Java 프레임워크 및 도구

Java 개발자는 항상 인기 있는 도구와 오픈 소스 프로젝트를 Java 애플리케이션에 통합하는 가장 쉬운 방법을 찾고 있습니다. 새로운 고성능 도구는 개발 생산성을 크게 높이고 더 많은 회사와 개인 개발자가 Java 스택을 사용하도록 장려합니다. 오늘은 세 가지 새로운 Java 프레임워크와 도구에 대해 이야기하겠습니다.

쿼커스

Quarkus는 클라우드 마이크로서비스 및 서버리스 애플리케이션 개발을 위해 설계되었습니다. Kubernetes와 같은 컨테이너 오케스트레이션 플랫폼에서 빠른 부팅 시간, 작은 RSS(메모리 상주 세트) 크기 및 높은 메모리 밀도를 제공합니다. JRebel의 9차 연례 보고서에 따르면 Java 개발자의 Quarkus 사용량은 6%(전년에는 1% 미만) 증가했습니다. Micronaut와 Vert.x는 각각 4%와 2%로 성장했습니다(작년 - 약 1% 증가).

이클립스 JKube

Eclipse JKube를 사용하면 Java 개발자는 Docker, Jib 또는 Source-To-Image 빌드 전략을 사용하여 클라우드 기반 Java 애플리케이션을 기반으로 컨테이너 이미지를 생성할 수 있습니다. 또한 이 도구는 컴파일 타임에 Kubernetes 및 OpenShift 매니페스트를 생성하고 디버깅, 모니터링 및 로깅 도구에 대한 경험을 향상시킵니다.

마이크로프로파일

MicroProfile은 새로운 프레임워크를 도입하거나 전체 애플리케이션을 리팩터링하지 않고도 Java 마이크로서비스의 엔터프라이즈 아키텍처 최적화와 관련된 문제를 해결합니다. 또한 MicroProfile 사양(예: Health, Open Tracing, Open API, Fault Tolerance, Metrics, Config)은 Jakarta EE 구현에 맞춰 계속 발전하고 있습니다.

결론

어떤 Java 프레임워크나 도구가 엔터프라이즈 Java 개발자에게 가장 적합한지 말하기는 어렵습니다. Java 스택을 개선하고 기업 비즈니스 성장을 가속화할 수 있는 기회가 있는 한 새로운 프레임워크, 도구 및 플랫폼이 등장할 것으로 기대할 수 있습니다. 2021년에 Java 애플리케이션을 개선할 수 있는지 확인해 보세요.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION