항목 TYPE C(고정 길이 문자) STRING(가변 길이 문자)
길이 선언 시 길이 고정 (LENGTH n) 길이 제한 없음 (논리적으로 2GB까지)
메모리 할당 정적 메모리 (스택 기반) 동적 메모리 (힙 영역)
자동 잘림 값이 길면 잘림 자동 확장 (잘리지 않음)
뒤에 공백 그대로 유지됨 (공백 채움) 필요 시 자동 제거 (CONDENSE 덜 필요)
성능 빠름, 가볍지만 제한적 유연하지만 약간 느릴 수 있음
문자열 조작 불편 (슬라이싱 등 불편) 유연 (연결, 길이 구하기, 조작 편함)
 

예제 비교

🔸 TYPE C

DATA: lv_c TYPE c LENGTH 5. lv_c = 'ABAPISFUN'. " → 'ABAPI'로 잘림 WRITE: / lv_c. " 출력: ABAPI

🔸 STRING

 
DATA: lv_s TYPE string. lv_s = 'ABAPISFUN'. " 전부 들어감 WRITE: / lv_s. " 출력: ABAPISFUN

 

 

메모리 구조 차이

  • TYPE C는 **컴파일 시 길이가 결정되므로 정적 메모리(스택)**에 저장됨
  • STRING은 실행 중에 메모리가 동적으로 할당됨 (힙 영역)
    → 그래서 길이 제한 없이 자유롭게 늘어날 수 있음

언제 어떤 걸 써야 할까?


상황 추천타입 이유
짧은 고정 필드 (예: 성별, 상태코드 등) TYPE C LENGTH 1~10 빠르고 메모리 절약
사용자 입력값, 설명, 긴 텍스트 등 STRING 길이 유동적이고 안전
파일 읽기, 로그, JSON 처리 STRING 데이터 길이 예측 불가

 

관련 함수


함수 설명
STRLEN() 문자열 길이 반환 (STRING에 최적)
CONCATENATE 문자열 연결
SPLIT, REPLACE, FIND 문자열 처리
CONDENSE 공백 제거 (C 타입에 자주 필요)

 

'SAP' 카테고리의 다른 글

easy abap 05.구조체 structure타입 선언  (0) 2025.05.07
easy abap 04. string 함수  (0) 2025.05.07
easy abap 02. 변수에 값 넣는 방법  (0) 2025.05.07
easy abap 01. 네이밍 규칙  (0) 2025.05.07
easy abap 00. 자료형  (0) 2025.05.06

+ Recent posts