어느 Salesforce Developer의 개발 성장기

다른 언어(C#, Java 등)와 APEX Class의 차이 본문

Salesforce/Learning concept

다른 언어(C#, Java 등)와 APEX Class의 차이

Developer_Foryou 2020. 3. 10. 23:24
  • c#과 달리 Apex는 대소문자를 구분하지 않는다.
  • Apex and Database are Tightly Coupled
    • Apex 코드와 Lightning Platform Database는 때로는 구별 할 수 없는 지점에 밀접하게 연결되어 있다.
    • 데이터베이스의 각 표준 개체 또는 사용자 지정 개체에는 Apex 클래스를 통해 데이터베이스와의 상호 작용을 손쉽게 수행할 수 있는 모든 기능을 제공한다.
    • 클래스와 그 기본 객체는 근본적으로 항상 서로 동기화되어 있는 서로의 미러 이미지이다.
      • ex. 개체에 새 필드를 만들 때마다 클래스 멤버가 자동으로 나타나서 데이터베이스의 값을 참조
    • 존재하지 않는 필드에 Apex코드의 참조를 추가 불가능
      • 컴파일러는 오류를 반환하고 단순히 코드를 저장하지 않는다.
      • 플랫폼은 종속성을 보장하기 위해 데이터베이스 스키마와 동기화되지 않도록 한다.
  • Different Design Patterns
    • 대부분의 Design Pattern은 Lightning Platform에서 작동하지 않는다.
    • Apex Design Pattern과 관련된 자료의 링크를 확인하자
    • .NET에서 사용하는 것과 동일한 Design Pattern을 Lightning Platform에 적용하려고하면 솔루션을 테스트하고 배포할 때 문제가 발생할 가능성이 높다.
  • Unit Tests Are Required
    • 75%의 테스트 범위를 가져야한다.
    • 강력하고 오류가 없는 코드의 개발을 촉진할 뿐 아니라 모든 테스트가 주요 릴리스 전에 실행되기 때문에 플랫폼의 안정성에 필수적이다.
  • No Solution, Project, or Config Files
    • 모든 코드는 클라우드에 상주하며 실행된다.
    • 경로를 구성할 필요가 없다.
  • A Much Smaller Class Library
    • .NET Framework Class Library보다 상당히 작기 때문에 Apex를 사용하여 보다 쉽고 빠르게 작업할 수 있다.
    • 완벽한 픽셀 맞춤형 응용 프로그램을 제작하려는 경우, Heroku Enterprise 플랫폼은 모든 기능을 제공한다.
  • Development Tools
    • Developer Console
  • Handling Security
    • Lightning Platform에서 비밀번호나 데이터베이스 연결 문자열을 인증하거나 저장하는 것에 대해 걱정할 필요가 없다.
    • 신원은 플랫폼에 의해 처리된다.
    • 개체 수준, 레코드 수준, 필드 수준을 비롯한 다양한 수준에서 데이터에 대한 액세스를 제어할 수 있다.
    • 대부분의 경우 보안은 Salesforce 관리자가 정의하고 설정한다.
  • What About Integration?
    • 여러가지 방법으로 플랫폼과 통합할 수 있지만, SOAP 및 REST를 가장 많이 사용한다.
    • Apex Programming Language를 사용하여 웹 서비스를 만들고 노출할 수 있으며 Apex에서 외부 웹 서비스를 호출 할 수 있다.
    • 수신되는 전자 메일 메시지에 반응하고 특정 이벤트가 발생할 때 자동화 된 아웃 바운드 메시지를 보낼 수 있다.
    • 타사 통합 응용 프로그램도 AppExchange에서 사용할 수 있다.
Comments