기본 콘텐츠로 건너뛰기

라벨이 API인 게시물 표시

[ APM ] Application Performance Management - #3 자바 플랫폼에서 APM 관련 용어들 (지속적 갱신 필요)

  Application Performance Management 에 대한 여러 가지 정보를 검토하던 중에 생소한 용어들이 보여서 하나씩 정리해 놓도록 한다. (자바 쪽에서는 모든 용어들이 생소하기는 하지만 ㅠㅠ) JMX (Java Management eXtension) - 쉽게 생각하면 Windows 의 WMI (Windows Management Instrumentation) 와 같은 것이라고 판단이 된다. Spring Framework에서 제공되는 JMX 에 대한 정리가 필요하다. PMI (Performance Monitoring Infrastructure) - 현재까지의 자료로는 JMX Connector를 통해서 연동되는 Websphere Application Server 의 서비스로 판단이 되며, 성능에 관련된 모니터링 자료를 제공하는 듯 하다. BCI (Byte Code Instrumentation) - 자바 컴파일러에 의해서 생성되는 Byte Code (Meta Data) 를 직접 처리하여 소스 코드의 변경 없이도 원하는 기능을 추가하는 방법을 제공한다. APM 적인 측면에서 바라보면 AOP를 통해서 성능 측정과 관련된 기능을 소스코드의 수정없이 추가할 수 있는 것이라고 생각된다.   항상 개발을 할 때는 베이스 깔고 시작하는 프레임워크에 따라서 변동이 있기 때문에 검토해야 할 방향이 변경될 수는 있지만 아마도 위의 3가지는 고정 불변의 경우라고 생각된다. 단, PMI 는 아직 특정한 제품에서 제공이 되는 것인지에 대한 추가 검토가 필요할 듯 하다.

C# Interop - C# 과 C API 상호 운영성

C# 은 강력한 기능과 클래스들을 제공하기만 Window Application 의 작성을 위해서는 C 로 작성된 Library를 가져다 사용해야 하는 경우가 많이 발생한다. C# 은 기본적으로 포인터를 지원하지 않고, 관리되는 코드의 메모리 관리체계가 근본적으로 C와는 차이가 많기 때문에 C 와의 호환을 위해서는 특수한 기법을 사용해야 한다. 이를 위해서 제공되는 것이 C# 의 PInvoke 와 Marshalling 이다. 1. Using C DLL (PInvoke : Platform Invocation Service) C# 은 C DLL 의 관리되지 않는 코드 함수를 호출할 수 있도록 플랫폼 호출 서비스 (PInvoke)를 제공한다. 일반적으로 C 로 작성된 DLL 이나 WIN32 API 를 호출하는 용도로 사용된다. 1.1 DLL 함수의 정의 PInvoke 를 이용해서 WIN32 API를 정의하는 방법은 "DllImport" 를 이용하는 것으로 DllImportAttribute 클래스를 사용하여 특성 정의를 하면 된다. public DllImportAttribute( string dllName) 즉, 사용하려는 DLL 의 파일명을 파라미터로 지정하고 실제 사용하려는 함수는 특성의 바로 아래에 함수 선언을 하면 된다. 예) USER32.dll 의 MessageBox 함수 정의 using System.Runtime.InteropServices [DllImport(“user32”)] public static extern int MessageBox( int hWnd, String pText, String pCaption, int uType); 위의 예와 같이 선언하고 C# 코드에서 "MessageBo" 라는 이름으로 실제 함수를 호출할 수 있다. 단, 반드시 해당 함수는 "static extern" 으로 선언되어야 한다 . 1.2 Dll