[Salesforce] Apex 어노테이션 완전 정리

molamola·2025년 4월 24일

Salesforce

목록 보기
7/10

🔖 Salesforce Apex 어노테이션 완전 정리

Apex에서 어노테이션은 클래스, 메서드, 변수 등에 특정한 역할이나 실행 조건을 지정해주는 메타정보입니다.
이 글에서는 Salesforce Apex에서 사용할 수 있는 모든 어노테이션분류별로 깔끔하게 정리했습니다.


✅ 1. LWC / Aura 통신용

어노테이션설명
@AuraEnabledApex 메서드나 변수에 Aura 또는 LWC에서 접근 가능하게 함
@AuraEnabled(cacheable=true)클라이언트 측 캐싱을 허용함 (@wire 방식에서만 사용 가능)

✅ 2. Flow 통합용

어노테이션설명
@InvocableMethodFlow에서 호출 가능한 Apex 메서드로 선언
@InvocableVariableFlow에서 접근 가능한 변수로 선언

✅ 3. 비동기/배치 관련

어노테이션설명
@future메서드를 비동기 처리 (즉시 반환, 서버에서 나중에 실행됨)
@ReentrancyFlow 또는 프로세스에서 재진입 허용을 명시 (동시성 충돌 방지)

✅ 4. 테스트 전용

어노테이션설명
@isTest테스트 전용 클래스 또는 메서드로 지정
@testSetup테스트 실행 전 공통 셋업 데이터를 구성하는 메서드
@TestVisibleprivate 변수나 메서드를 테스트 클래스에서 접근 가능하게 함

✅ 5. REST API / Visualforce 연동

어노테이션설명
@RemoteActionVisualforce에서 Apex 메서드를 Ajax로 호출 가능하게 함
@RestResourceApex 클래스를 REST API 엔드포인트로 공개함
@HttpGet / @HttpPost / @HttpPatch / @HttpDeleteREST API 메서드에서 HTTP 동작을 매핑함 (@RestResource 내부에서 사용됨)

✅ 6. 보안 / 성능 제어

어노테이션설명
@ReadOnly트랜잭션을 읽기 전용으로 제한 (조회 성능 향상, 대용량 조회용)
@NamespaceAccessibleManaged Package 외부에서도 클래스/메서드 접근 가능하게 설정
@Deprecated더 이상 사용하지 말아야 할 항목으로 표시 (경고만, 실행은 가능)

✅ 7. JSON 직렬화

어노테이션설명
@JsonAccessJSON 직렬화/역직렬화 시 특정 변수 포함 여부 지정 (실사용 빈도 낮음)

✅ 부가적인 메모

어노테이션상태
@WithSharing / @WithoutSharing공유 설정 제어용 키워드 (@ 없이 사용되지만 어노테이션처럼 보일 수 있음)
@codeCoverageIgnore비공식 테스트 커버리지 제외 표시 (공식 Apex에는 없음)

✅ 정리 요약

분류대표 어노테이션
LWC 연동@AuraEnabled
Flow 연동@InvocableMethod, @InvocableVariable
비동기 처리@future, @Reentrancy
테스트용@isTest, @testSetup, @TestVisible
API 연동@RestResource, @RemoteAction, @Http*
성능/보안@ReadOnly, @NamespaceAccessible, @Deprecated

✨ 마무리

Salesforce Apex에서 어노테이션은 단순히 코드의 부가기능이 아닌, 플랫폼과 완벽하게 통합되도록 돕는 핵심 요소입니다.
LWC, Flow, Visualforce, REST API 등 Salesforce의 다양한 계층과 연결되는 만큼, 각각의 어노테이션 목적을 명확히 이해해두면 훨씬 강력한 Apex 개발자가 될 수 있습니다.

0개의 댓글