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