JavaRush /Java Blog /Random-KO /커피 브레이크 #21. Python과 Java를 통합합니다. Jakarta EE 및 Eclipse Mi...

커피 브레이크 #21. Python과 Java를 통합합니다. Jakarta EE 및 Eclipse MicroProfile 알아보기

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

Python과 Java의 통합? 왜 안 돼!

출처: Jaxenter 커피 브레이크 #21.  Python과 Java를 통합합니다.  Jakarta EE 및 Eclipse MicroProfile 알아보기 - 1 실제로 시스템 프로그래밍과 스크립팅 언어를 결합하는 것은 이상한 새로운 개념이 아닙니다. 단지 거의 사용되지 않을 뿐입니다. 공통 바이너리 애플리케이션 인터페이스를 갖는 프로그래밍 언어의 경우 이를 단일 라이브러리나 실행 파일로 결합하는 것이 전적으로 가능합니다. 이로 인해 상황이 좀 더 어려워지지만 도움이 될 수 있는 도구가 있습니다. Python과 Java는 실제로 서로를 보완합니다. 예를 들어, 그 중 하나는 일반적인 하위 작업에 사용하고 다른 하나는 애플리케이션 설정을 확장하는 스크립팅 언어로 사용할 수 있습니다. 예를 들어 다른 언어를 통합하는 경우 JavaScript는 적어도 Perl, Tcl, Visual Basic 및 Python과 같은 다른 스크립팅 언어에 비해 일반적으로 웹 브라우저 외부에서 사용되지 않습니다. 그러나 이러한 모든 언어는 일반적으로 다른 언어와 결합됩니다. Python은 전통적으로 C 및 C++와 결합되어 왔으며 Visual Basic은 Windows 플랫폼에서 C++용으로 선택되는 스크립팅 언어인 경우가 많습니다. Perl은 Tcl과 마찬가지로 C/Unix에서 일반적으로 사용됩니다. Python은 Microsoft 스크립팅 호스트 아키텍처 및 COM과 쉽게 통합되므로 Windows에서 좀 더 자주 사용됩니다. 또한 macOS 도구에도 적합합니다.

왜 자바와 파이썬인가?

Python은 객체 지향 스크립팅 언어이므로 Java와 잘 어울립니다. Jython과 같이 완전히 Java로 작성된 Python 인터프리터와 결합하면 Python으로 전체 애플릿을 작성할 수 있으며, 그런 다음 C/CPython만큼 빠른 코드 실행 속도로 모든 JDK 호환 브라우저에서 실행할 수 있습니다. Jython 인터프리터는 Python 소스 코드를 Java 바이트코드로 직접 변환하여 놀라운 속도를 제공합니다. 그러나 다른 Java 스크립팅 솔루션(Java/TCL, Java/Perl 등)은 이러한 언어의 C 구현에 JVM을 연결하므로 이식성 문제가 발생할 뿐만 아니라 이러한 솔루션 자체도 우리가 원하는 만큼 쉽지 않습니다.

Java와 JPython을 함께 사용하는 가장 좋은 방법은 무엇입니까?

Python을 Java로 구현하거나 그 반대로 구현하는 입증된 도구가 많이 있으므로 한 언어의 명령을 다른 언어로 실행할 수 있습니다. 다음은 Python과 Java를 통합하기 위한 최고의 도구 중 일부의 간단한 목록입니다.
  • Jython은 Java로 구현된 Python입니다.
  • JPype - Python을 사용하여 Java 명령을 실행할 수 있습니다.
  • Jepp - Python에 내장된 Java입니다.
  • JCC 는 C++/Python에서 Java를 호출하기 위한 C++ 코드 생성기입니다.
  • Javabridge는 CPython에서 JVM을 실행하고 상호작용하기 위한 패키지입니다.
  • Py4j - Python에서 Java 명령을 실행할 수 있습니다.
  • Voc 는 BeeWare 도구 의 요소입니다 . Python 코드를 Java 바이트코드로 변환합니다.
  • p2j - Python 코드를 Java로 변환합니다. 더 이상 개발되지 않습니다.
이러한 도구를 사용하는 방법에는 여러 가지가 있습니다. 각각에는 고유한 장점과 단점이 있습니다. 예를 들어 Jython으로 전체 애플리케이션의 프로토타입을 제작할 수 있으며 여러 차례의 테스트와 재설계를 거친 후 모든 것을 Java로 다시 작성할 수 있습니다. 이를 통해 프로젝트 초기에 스크립팅 언어 개발 시 향상된 유연성과 속도를 활용할 수 있습니다. 그러나 최종 제품은 방금 Java로만 작성을 시작한 경우보다 좀 더 자세해야 합니다. 그리고 UI 라이브러리가 걱정된다면 Jython은 일반 Java와 동일한 UIL에 연결할 수 있으므로 Java 변환은 매우 쉽습니다. 그러나 대규모 프로젝트를 구축하려는 경우에는 상황이 그리 간단하지 않습니다. 최상위 구성 요소와 같이 독립적인 개발 주기를 갖는 다양한 구성 요소와 레이어의 단점에 직면할 가능성이 높습니다. 물론, 안정적인 릴리스에 가까워지면 개별 구성 요소를 Java로 다시 작성할 수도 있고, 처음부터 Java로만 일부 구성 요소를 작성할 수도 있습니다. 또 다른 옵션은 성능이 중요한 구성 요소만 다시 작성하는 것입니다. 이렇게 하면 상위 수준 구성 요소를 Jython에 그대로 둘 수 있습니다. 즉 하위 수준 구성 요소만 다시 작성하면 되며 어떤 경우에는 아무 것도 다시 작성할 필요가 없습니다.

Jakarta EE 및 Eclipse MicroProfile 소개

출처: DZone 아직 Jakarta EE와 Eclipse MicroProfile에 대해 들어보지 못하셨나요? 이제 Java Enterprise 표준이 어떻게 개발되었는지 알아볼 시간입니다. 이 두 기술은 모두 클라우드 네이티브 및 최신 엔터프라이즈 애플리케이션을 구축하는 데 적합하므로 향후에 유용할 것입니다.

자카르타 EE란 무엇인가요?

Jakarta EE는 Java로 엔터프라이즈 애플리케이션을 작성하기 위한 사양 세트(JAX-RS, CDI, JPA, JSON-P 등)입니다. 이러한 사양은 API와 기술이 상호 작용하는 방식을 정의하는 문서입니다. 커피 브레이크 #21.  Python과 Java를 통합합니다.  Jakarta EE 및 Eclipse MicroProfile 알아보기 - 2사양 문서는 공식적인 정의가 포함된 인터페이스와 유사하며 이러한 인터페이스의 실제 구현은 애플리케이션 서버 공급업체(예: WildFly, Open Liberty, Payara, TomEE)에 따라 다릅니다. 공급업체가 사양을 잘못 구현하는 것을 방지하기 위해 각 사양은 CTS(기술 호환성 키트)를 제공합니다. 이는 특정 사양 구현의 준수 여부를 확인하기 위한 일련의 테스트입니다. 애플리케이션 서버는 모든 사양에 대해 CST를 전송하면 전체 표준을 준수합니다. 수년 동안 Java EE는 엔터프라이즈 애플리케이션을 작성하는 표준 방법이었습니다. Java EE(이전의 J2EE)는 오랫동안 Oracle에서 지원되어 왔습니다. 2017년에 오라클은 더 이상 자사의 후원 하에 기업 표준을 개발하지 않기로 결정하고 이를 Eclipse 재단으로 이전했습니다. 법적인 이유로 브랜드를 변경해야 했고 제품 이름을 Jakarta EE로 지정하기로 결정했습니다. 공식 웹사이트 에서 모든 Jakarta EE 사양을 확인할 수 있으며 , Eclipse Foundation 웹사이트에서 현재 사양 프로세스가 어떻게 작동하는지에 대한 자세한 정보를 얻을 수 있습니다.

Eclipse 마이크로프로파일이란 무엇입니까?

Java EE의 새로운 기능을 출시하고 적용하는 과정이 상당히 느리기 때문에 공급업체 및 커뮤니티 구성원 그룹은 2016년에 MicroProfile을 만들기로 결정했습니다. 이 프로젝트의 주요 목표는 개발자가 시대에 뒤처지지 않도록 돕고 마이크로서비스 아키텍처를 위해 기존 플랫폼을 최적화하는 것이었습니다. 현재 Eclipse MicroProfile에는 12개의 사양이 포함되어 있습니다. 그 중 4개도 자카르타 EE의 일부입니다. 이를 통해 MicroProfile만으로 독립형 애플리케이션을 생성할 수 있습니다. 모든 사양은 공급업체에 독립적이며 구현은 애플리케이션 서버와 함께 제공됩니다. 자카르타 EE 사양은 엔터프라이즈 애플리케이션 구축을 위한 견고한 기반으로 간주될 수 있습니다. 이 외에도 Eclipse MicroProfile은 기술이 Twelve-Factor 애플리케이션 방법론을 따르기 때문에 분산 시스템 구축의 공백을 메웁니다 .
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION