안녕하세요. SAP ALV 개발을 하다 보면 CLEAR, REFRESH, FREE 그리고 refresh_table_display 같은 메서드가 자주 나오는데, 이름이 비슷해서 헷갈리기 쉽습니다.
하지만 각 키워드와 메서드의 역할은 분명히 다르며, 상황에 맞게 사용하지 않으면 메모리 누수나 화면 갱신 오류가 발생할 수 있습니다. 한 번 알아보겠습니다.
ABAP 키워드 차이: CLEAR / REFRESH / FREE 구분 대상 동작 메모리 처리 비고 CLEAR itab 내부테이블 레코드 삭제 메모리 유지 REFRESH와 동일 REFRESH itab 내부테이블 레코드 삭제 메모리 유지 옛날 버전 호환용, CLEAR와 동일하게 동작 FREE itab 내부테이블 레코드 삭제 + 구조 초기화 메모리 반환 대용량 테이블 메모리 회수 CLEAR ref 객체 참조 변수 참조만 초기화 객체 자체는 남음 컨트롤 리소스는 해제 안 됨 정리 내부테이블에 대해서는 CLEAR = REFRESH 메모리까지 반환...