λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ§‘‍πŸ’Ό SAP/ABAP

[SAP ABAP] 넀이밍 λ£°(Naming Rule) μž‘μ„±λ²•(gv_data, gt_data λ“±)

by Jay Din 2024. 5. 22.
728x90
λ°˜μ‘ν˜•

넀이밍 λ£°(Naming Rule)μ΄λž€?

SAP ABAP 데이터 μ„ μ–Έ μ˜ˆμ‹œ

 

ν”„λ‘œκ·Έλž¨ 개발 방법둠 쀑에 κ°€μž₯ 기본이 λ˜λŠ” 것은 데이터λ₯Ό μ €μž₯ν•˜λŠ” λ³€μˆ˜μ˜ 이름을 μ •ν•˜λŠ” κ·œμΉ™μ΄λΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ³€μˆ˜ λ˜λŠ” μ˜€ν”„μ νŠΈμ˜ 이름을 μ •ν•˜λŠ” κ·œμΉ™μ„ Naming Rule이라고 ν•©λ‹ˆλ‹€.

λͺ¨λ“  ν”„λ‘œκ·Έλž¨ μ–Έμ–΄μ—μ„œλŠ” 가독성을 높이고, λ³€μˆ˜ κ°„μ˜ μΆ©λŒμ„ ν”Όν•˜λ©° ν”„λ‘œκ·Έλž¨μ˜ ꡬ쑰적 톡일성을 μœ„ν•˜μ—¬ Naming Rule을 μ •ν•  것을 κΆŒκ³ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

 

SAPμ—μ„œλŠ” κ³ κ°μ‚¬μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” ABAP Dictionary의 Naming Rule은 'Z' λ˜λŠ” 'Y'둜 μ‹œμž‘ν•˜λŠ” 것을 기본으둜 ν•˜κ³  있으며, INSERT/APPEND와 같은 KeywordλŠ” μ‚¬μš©ν•  수 없도둝 ν•˜λŠ” ν•„μˆ˜μ μΈ 사항이 μžˆμŠ΅λ‹ˆλ‹€. μ΄μ™Έμ—λŠ” κ³ κ°μ‚¬λ§ˆλ‹€ κ·œμΉ™μ„ μ •ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ— 톡일성을 κ°–μΆœ 수 μžˆλ„λ‘ ν•˜λ©΄ λ©λ‹ˆλ‹€.

 

728x90

 

넀이밍 λ£°(Naming Rule)의 μ€‘μš”μ„±

λͺ¨λ“  κ°œλ°œμžλŠ” μžμ‹ λ§Œμ˜ λ…νŠΉν•œ μŠ€νƒ€μΌλ§Œμ„ 고집할 것이 μ•„λ‹ˆλΌ 보편적으둜 μ‚¬μš©λ˜λŠ” Naming Rule을 μΈμ§€ν•˜κ³  κ·œμΉ™μ— μ ν•©ν•˜κ²Œ κ°œλ°œν•  수 μžˆλ„λ‘ νž˜μ¨μ•Ό ν•©λ‹ˆλ‹€. 이것은 SI와 SMμ—μ„œ 일을 ν•˜κ³  μžˆλŠ” 우리 λͺ¨λ‘κ°€ ν”„λ‘œκ·Έλž¨ μ•ˆμ—μ„œ νŽΈν•˜κ²Œ μ˜μ‚¬μ†Œν†΅ν•  수 μžˆλŠ” 채널을 μ œκ³΅ν•΄μ£ΌλŠ” κ²ƒμž…λ‹ˆλ‹€.

SIλ₯Ό ν•˜λŠ” μ‚¬λžŒμ€ SM λ‹΄λ‹Ήμžμ˜ μž…μž₯μ—μ„œ 가독성이 νŽΈν•˜λ„λ‘ Naming Rule에 μ ν•©ν•œ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν™”λ €ν•œ 기술과 μ‹€ν—˜μ μΈ 코딩보닀 μš°μ„ λ˜μ–΄μ•Ό ν•  것은 연속성이 μœ μ§€λ  수 μžˆλ„λ‘ κ°€μž₯ μ‰½κ²Œ μœ μ§€λ³΄μˆ˜ν•  수 μžˆλŠ” ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€μ–΄λ‚΄λŠ” κ²ƒμž…λ‹ˆλ‹€.

 

λ°˜μ‘ν˜•

 

넀밍룰 μš”μ•½ 정리

SAP ABAP μ½”λ“œλ₯Ό 보닀면 gt_data, gs_data, gv_data, lt_data, ls_data 등을 λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

t ν…Œμ΄λΈ” (Table)
s ꡬ쑰체 (Structure)
v λ³€μˆ˜ (Variable)
  • gt_: μ „μ—­ ν…Œμ΄λΈ” (Global Table)
  • gs_: μ „μ—­ ꡬ쑰 (Global Structure)
  • gv_: μ „μ—­ λ³€μˆ˜ (Global Variable)
  • lt_: 지역 ν…Œμ΄λΈ” (Local Table)
  • ls_: 지역 ꡬ쑰 (Local Structure)
  • lv_: 지역 λ³€μˆ˜ (Local Variable)

 

ABAP ν”„λ‘œκ·Έλž¨μ˜ Naming Rule 방법

λ²”μœ„(μ „μ—­/둜컬) 데이터 μœ ν˜•(λ³€μˆ˜/ꡬ쑰) - 의미 μš”μ•½
Prefix 1 Prefix 2 Separator Summary

 

ABAP ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” λ³€μˆ˜λͺ…은 언더라인(_) 기호λ₯Ό ν¬ν•¨ν•˜μ—¬ 30μžκΉŒμ§€ κ°€λŠ₯ν•©λ‹ˆλ‹€. λ³€μˆ˜μ˜ μ•ž 2μžλ¦¬λŠ” λ²”μœ„μ™€ 데이터 μœ ν˜•μ„ ν•œλˆˆμ— λ³Ό 수 μžˆλ„λ‘ μ •μ˜ν•˜κ³ , '_'κ΅¬λΆ„μžμ™€ λ§ˆμ§€λ§‰ λ‹¨μ–΄λŠ” μ–΄λ– ν•œ 역할을 ν•˜λŠ”μ§€ 의미λ₯Ό μš”μ•½ν•˜κ²Œ λ©λ‹ˆλ‹€.

 

μ „μ—­ λ³€μˆ˜ μ •μ˜(Global Variable)

μ „μ—­ λ³€μˆ˜λž€ ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨ λ˜λŠ” ν•¨μˆ˜ κ·Έλ£Ή λ‚΄μ—μ„œ μ ‘κ·Όν•  수 μžˆλŠ” 데이터 μœ ν˜•μ„ μ˜λ―Έν•©λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž¨ λ‚΄ λͺ¨λ“  μ˜μ—­μ—μ„œ μ°Έμ‘°ν•˜κ³  λ³€κ²½ν•  수 있기 λ•Œλ¬Έμ— 지역성이 μ—†μŠ΅λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž¨μ΄ ν™œμ„±ν™”λ˜μ–΄ μžˆλŠ” μƒνƒœμ—μ„œλŠ” μ „μ—­ λ³€μˆ˜λŠ” 항상 λ©”λͺ¨λ¦¬λ₯Ό μ μœ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

지역 λ³€μˆ˜μ˜ μ •μ˜λŠ” G둜 μ‹œμž‘ν•˜κ³  데이터 μœ ν˜•μ— 따라 μ•„λž˜ ν‘œμ™€ 같이 μ •μ˜ν•˜μ—¬ μ‚¬μš©ν•©λ‹ˆλ‹€.

 

μ „μ—­ λ³€μˆ˜ μ •μ˜ 방법

데이터 νƒ€μž… 접두어 μ‚¬μš© 예 ν”„λ‘œκ·Έλž¨
λ³€μˆ˜
(Variable)
V
λ˜λŠ”
D
GV_CARRID
λ˜λŠ”
GD_CARRID
DATA GV_SFLGIHT TYPE S_CARR_ID.
λ˜λŠ”
DATA GD_SFLGIHT TYPE S_CARR_ID.

ꡬ쑰체
(Structure)
S GS_SFLIGHT DATA GS_SFLIGHT TYPE SFLIGHT.
μƒμˆ˜
(Constant)
C GC_RATE CONSTANTS GC_RATE TYPE | VALUE '3.14'.
ν…Œμ΄λΈ”
(Table)
T GT_SFLIGHT DATA GT_SFLIGHT TYPE TABLE OF SFLIGHT.
클래슀 O GO_ALVGRID DATA GO_ALVGIRD TYPE REF TO CL_SALV_TABLE.
RANGE R GR_CARRID RANGES GR_CARRID FOR SFLIGHT-CARRID.
데이터 μ°Έμ‘° λ³€μˆ˜
(λ°μ΄ν„°μ˜€λΈŒμ νŠΈ)
F GF_OBJ DATA GF_OBJ TYPE REF TO OBJECT.

 

μ „μ—­ λ³€μˆ˜ Naming Rule을 μ’€ 더 μ„ΈλΆ€μ μœΌλ‘œ κ΅¬λΆ„ν•˜μ—¬, 접두어(Prefix)λ₯Ό 3자리둜 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

접두어1 -> λ²”μœ„		접두어2 -> 데이터 μœ ν˜•		접두어3 -> 데이터 성격

 

예λ₯Ό λ“€μ–΄ GVF_CARRIDλΌλŠ” λ³€μˆ˜μ—μ„œ μ ‘λ‘μ–΄μ˜ μ˜λ―ΈλŠ” G:μ „μ—­ - V:ν•„λ“œ - F:ν”Œλž˜κ·Έ μ„±κ²©μ˜ 데이터라고 약속을 ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ³€μˆ˜ 선언이 길어지면 μ½”λ”© μ‹œ μž…λ ₯ν•΄μ•Ό ν•˜λŠ” 문자 μˆ˜κ°€ λŠ˜μ–΄λ‚˜κΈ° λ•Œλ¬Έμ—, 개발 νš¨μœ¨μ„± 및 생산성에 도움이 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

ꡳ이 데이터 μƒμ‚°μ„±κΉŒμ§€ λ³€μˆ˜ μ΄λ¦„μ—μ„œ νŒŒμ•…ν•˜κ³ μž ν•œλ‹€λ©΄ GV_FXX(ν”Œλž˜κ·Έ λ³€μˆ˜), GV_IXX(인덱슀 λ³€μˆ˜), GV_DXX(λ‚ μ§œ λ³€μˆ˜)와 같이 '_'문자 λ‹€μŒ 첫째 μžλ¦¬μ—μ„œ κ΅¬λΆ„ν•˜λŠ” 것도 쒋은 방법이 될 수 μžˆμŠ΅λ‹ˆλ‹€.

 

ABA ν”„λ‘œκ·Έλž¨μ—λ§Œ μ‘΄μž¬ν•˜λŠ” PARAMETERS와 SELECT-OPTIONS λ³€μˆ˜λŠ” 각각 'P', 'S'와 같이 ν•œμžλ¦¬ μ ‘λ‘μ–΄λ§Œ μ‚¬μš©ν•˜μ—¬ κ΅¬λΆ„ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.

PARAMETERS: P_CARRID TYPE S_CARR_ID.
SELECT-OPTions: S_CARRID FOR SFLIGHT-CARRID.
λ°˜μ‘ν˜•

지역 λ³€μˆ˜ μ •μ˜(Local Variable)

지역 λ³€μˆ˜λŠ” ν”„λ‘œκ·Έλž¨μ˜ λͺ¨λ“ˆ λ‚΄μ—μ„œλ§Œ μœ νš¨ν•œ λ³€μˆ˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.

λͺ¨λ“ˆμ΄λž€ ν•¨μˆ˜λ‚˜ μ„œλΈŒλ£¨ν‹΄ 같이 λ‹¨μœ„ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄ 슀크립트λ₯Ό κ·Έλ£Ήν™”ν•œ κ²ƒμž…λ‹ˆλ‹€.

지역 λ³€μˆ˜μ˜ μ •μ˜λŠ” L둜 μ‹œμž‘ν•˜ν•©λ‹ˆλ‹€.

 

지역 λ³€μˆ˜ μ •μ˜ 방법

데이터 νƒ€μž… 접두어 μ‚¬μš© 예 ν”„λ‘œκ·Έλž¨
λ³€μˆ˜
(Variable)
V
λ˜λŠ”
D
LV_CARRID
λ˜λŠ”
LD_CARRID
DATA LV_SFLGIHT TYPE S_CARR_ID.
λ˜λŠ”
DATA LV_SFLGIHT TYPE S_CARR_ID.
ꡬ쑰체
(Structure)
S LS_SFLIGHT DATA LS_SFLIGHT TYPE SFLIGHT.
μƒμˆ˜
(Constant)
C LC_RATE CONSTANTS LC_RATE TYPE | VALUE '3.14'
ν…Œμ΄λΈ”
(Table)
T LO_ALVGRID DATA LT_SFLIGHT TYPE TABLE OF SFLIGHT.
클래슀 O LO_ALVGRID DATA LO_ALVGIRD TYPE REF TO CL_SALV_TABLE.
RANGE R LR_CARRID RANGES LR_CARRID FOR SFLIGHT-CARRID.
데이터 μ°Έμ‘° λ³€μˆ˜
(데이터 였브젝트)
F LF_OBJ DATA GF_OBJ TYPE REF TO OBJECT.

 


μ°Έκ³ 

[λ„μ„œ]EASY ABAP2.0(33p~36p) - κΉ€μ„±μ€€ 

728x90
λ°˜μ‘ν˜•