Apex란??
Apex는 Strong 타입의 객체지향 프로그래밍 언어로, 주로 Salesforce 애플리케이션의 로직을 구축하고 사용자 정의 기능을 추가하는데 사용된다.
Apex는 자바와 비슷한 구문을 가지고 있고, 세일즈포스의 데이터베이스와 상호작용할 수 있는 기능을 제공한다.
Apex의 특징
- Integrated(통합된)
- Apex는 Lightning 플랫폼(Salesforce가 제공하는 클라우드 기반 애플리케이션 개발 및 배포 플랫폼) 관용구를 지원
- 내장된 DmlException 처리를 포함하는 INSERT, UPDATE, DELETE같은 데이터 조작 언어(DML) 호출
- SOQL(세일즈포스 객체 쿼리 언어) 및 SOSL(세일즈포스 객체 검색 언어) 쿼리가 포함됨
- 한번에 여러 레코드를 대량으로 처리할 수 있는 반복문
- 레코드 업데이트 충돌을 방지하는 레코드 잠금 구문
- 저장된 Apex 메서드에서 구축할 수 있는 사용자 정의 공개 API 호출
- Apex에서 참조하는 사용자 정의 개체나 필드를 편집하거나 삭제하려고 할 때 발생하는 경고 및 오류
- Apex는 Lightning 플랫폼(Salesforce가 제공하는 클라우드 기반 애플리케이션 개발 및 배포 플랫폼) 관용구를 지원
- Easy to use(사용하기 쉽다.)
- Apex는 변수 및 표현식 구문, 조건문, 반복문, 객체 및 배열 표기법 등 익숙한 자바 관용구를 기반으로 한다.
- Data focused(데이터 집중화)
- Saleseforce 서버에서 여러 쿼리 및 DML 문을 단일 작업 단위로 연결하는 데 사용된다.
- Database stored procedures를 사용하여 데이터베이스 서버에서 여러 트랜잭션 문을 연결하는 방식과 유사하게 동작
- Database stored procedures : 데이터베이스에 미리 컴파일되어 저장된 프로그램 단위로, 일련의 SQL 문과 프로그래밍 논리를 포함할 수 있다.
- 주로 DB 서버에서 로직을 실행하고 관리하는데 사용됨
- 사용자 인터페이스의 렌더링 요소에 대한 일반적인 지원을 제공하지 않음
- Rigorous(엄격함)
- Java와 같이 개체에 대한 참조를 사용하는 Strong 타입의 언어로, 잘못된 참조가 있을 시 컴파일 에러를 발생시킨다.
- 사용자 정의 필드, 객체 및 클래스 종속성을 모두 메타데이터에 저장하여 활성중인 Apex 코드에 필요할 때 삭제되지 않도록 보장한다.
- Hosted(호스팅)
- Apex는 Lightning 플랫폼에 의해 전적으로 해석, 실행 및 제어된다.
- Multitenant aware(멀티테넌트 고려)
- Multitenant??
- 여러 사용자가 서버, 애플리케이션 및 데이터베이스와 같은 동일한 시스템 및 서비스를 공유하고 사용하는 방법
- 동일한 서버와 데이터베이스를 가상으로 분할하여, 각 사용자는 각각 주어진 영역을 사용할 수 있다.(현실 세계에서의 쇼핑몰이나 건물에 입점한 회사와 가게들이 줄지어 있는 이미지)
- 여러 서버 및 데이터베이스, 응용프로그램을 통합함으로써, 리소스를 활용할 수 있고, 운영관리의 번거로움을줄일 수 있다.
- Multitenant??
- Easy to test(테스트하기 쉽다)
- Apex는 단위 테스트 작성 및 실행에 대한 내장 지원을 제공
- 코드가 얼마나 많이 커버되었는지와 코드의 어느 부분이 더 효율적으로 개선될 수 있는지를 나타내는 테스트 결과가 포함됨
- Salesforce는 플랫폼 업그레이드 전에 정의된 Apex코드가 예상대로 작동하도록 단위테스트를 실행하여 보장
- Versioned(버전 관리)
- Apex 코드를 다양한 API 버전에 저장할 수 있어, 이를 통해 다른 버전에서도 코드의 동작을 유지할 수 있다.
Apex는 어떻게 작동할까
모든 Apex는 on-demand 형식으로 Lightning Platform에서 실행되는데, 개발자들은 코드를 작성하여 플랫폼에 저장하고, 최종 사용자는 사용자 인터페이스를 통해 Apex 코드 실행을 트리거한다.
개발자가 Apex 코드를 작성하고 플랫폼에 저장하면, 플랫폼 애플리케이션 서버는 먼저 코드를 컴파일 한 후 해당 명령을 메타데이터로 저장한다.
최종 사용자가 단추를 클릭하거나 Visualforce 페이지서 Apex 실행을 트리거하면 플랫폼 응용 프로그램 서버는 메타데이터에서 컴파일된 지침을 검색하고, 결과를 반환하기 전에 런타임 해석기를 통해 보내고, End User는 표준 플랫폼 요청과 실행시간에 차이가 없음을 관측한다.
'Salesforce' 카테고리의 다른 글
SFDC 데이터 보안(group, role, sharing, profile...) (0) | 2024.04.15 |
---|---|
Salesforce의 Standard Object (0) | 2024.04.15 |
Apex 핵심 개념 이해 (Apex - 2) (0) | 2024.04.09 |