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

[SAP ABAP] λ³€μˆ˜λͺ… 접두어 κ·œμΉ™ (GT, GV, IT, LT, LV, WA, GS, LS λž€?)

by Jay Din 2023. 12. 4.
728x90
λ°˜μ‘ν˜•

λ³€μˆ˜λͺ… κ·œμΉ™μ΄λž€? 

SAP ABAPμ—μ„œ λ³€μˆ˜λͺ… κ·œμΉ™μ€ λ³€μˆ˜μ˜ 데이터 νƒ€μž…κ³Ό λ²”μœ„λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

 

λ³€μˆ˜λͺ… κ·œμΉ™μ„ μ‚¬μš©ν•˜λŠ” 이유

SAP ABAPμ—μ„œ λ³€μˆ˜λͺ… κ·œμΉ™μ€ μ½”λ“œμ˜ 가독성, μœ μ§€λ³΄μˆ˜μ„±, ν’ˆμ§ˆ ν–₯상 λ“± μ—¬λŸ¬ μΈ‘λ©΄μ—μ„œ μ€‘μš”ν•©λ‹ˆλ‹€.

 

가독성 ν–₯상

λͺ…ν™•ν•˜κ³  의미 μžˆλŠ” λ³€μˆ˜λͺ…을 μ‚¬μš©ν•˜λ©΄ μ½”λ“œλ₯Ό 읽고 μ΄ν•΄ν•˜λŠ”λ° 더 적은 λ…Έλ ₯이 ν•„μš”ν•©λ‹ˆλ‹€.

λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ¨Έλ‚˜ ν–₯ν›„ μžμ‹ μ΄ μ½”λ“œλ₯Ό μ»΄ν† ν•˜κ±°λ‚˜ μœ μ§€λ³΄μˆ˜ν•  λ•Œ 가독성은 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.

μ½”λ“œμ˜ 일관성 μœ μ§€

일관성 μžˆλŠ” λ³€μˆ˜λͺ… 큐칙을 μ‚¬μš©ν•˜λ©΄ μ—¬λŸ¬ λͺ¨λ“ˆ λ˜λŠ” ν”„λ‘œκ·Έλž¨ 간에 μΌκ΄€λœ μ½”λ”© μŠ€νƒ€μΌμ„ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŠ” νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ ν˜‘μ—…μ„ μš©μ΄ν•˜κ²Œ λ§Œλ“€μ–΄μ€λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž¨μ˜ 이식성 ν–₯상

νŠΉμ • κ·œμΉ™μ„ λ”°λ₯΄λ©΄ μ½”λ“œκ°€ 더 이식 κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.

μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈλ‚˜ ν™˜κ²½μœΌλ‘œ μ½”λ“œλ₯Ό 이전할 λ•Œ, μΌκ΄€λœ κ·œμΉ™μ„ μœ μ§€ν•˜λ©΄ 이식성이 ν–₯μƒλ©λ‹ˆλ‹€.

λ¬Έμ„œν™” 효과

의미 μžˆλŠ” λ³€μˆ˜λͺ…은 μ½”λ“œ 자체λ₯Ό λ¬Έμ„œν™”ν•˜λŠ” 효과λ₯Ό κ°–μŠ΅λ‹ˆλ‹€.

μ½”λ“œ λ‚΄μ—μ„œ λ³€μˆ˜κ°€ λ‚˜νƒ€λ‚΄λŠ” μ˜λ„λ₯Ό λͺ…ν™•νžˆ ν‘œν˜„ν•˜λ©΄ μ½”λ“œ 주석을 μ΅œμ†Œν™”ν•˜κ³ λ„ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κΈ° μ‰¬μ›Œμ§‘λ‹ˆλ‹€.

μœ μ§€λ³΄μˆ˜μ˜ νš¨μœ¨μ„± 증가

μ½”λ“œκ°€ μΌκ΄€λœ κ·œμΉ™μ„ λ”°λ₯΄λ©΄ μœ μ§€λ³΄μˆ˜ μž‘μ—…μ΄ 더 효율적으둜 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

λ‹€λ₯Έ κ°œλ°œμžλ‚˜ νŒ€μ›μ΄ μž‘μ„±ν•œ μ½”λ“œλ₯Ό 더 λΉ λ₯΄κ²Œ μ΄ν•΄ν•˜κ³  μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν˜‘μ—… μš©μ΄μ„±

λ³€μˆ˜λͺ… κ·œμΉ™μ„ κ³΅μœ ν•˜λ©΄ νŒ€ λ‚΄μ—μ„œ μΌκ΄€λœ μ½”λ”© μŠ€νƒ€μΌμ„ μœ μ§€ν•˜κΈ°κ°€ 더 μ‰¬μ›Œμ§‘λ‹ˆλ‹€.

λͺ¨λ“  νŒ€μ›μ΄ λ™μΌν•œ λͺ…λͺ… κ·œμΉ™μ„ λ”°λ₯΄λ©΄ ν˜‘μ—…μ΄ ν–₯μƒλ˜λ©°, 일관성 μžˆλŠ” μ½”λ“œ μž‘μ„±μ΄ κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.

디버깅 νŽΈμ˜μ„±

λ³€μˆ˜λͺ… κ·œμΉ™μ„ λ”°λ₯΄λ©΄ 디버깅 μ‹œ λ³€μˆ˜λ₯Ό 더 μ‰½κ²Œ 식별할 수 μžˆμŠ΅λ‹ˆλ‹€.

의미 μžˆλŠ” λ³€μˆ˜λͺ…을 μ‚¬μš©ν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ 쀑에 λ³€μˆ˜μ˜ 역할을 더 μ‰½κ²Œ 이해할 수 μžˆμ–΄ 디버깅이 λ”μš± 효과적으둜 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.

 

728x90

 

SAP ABAPμ—μ„œ λ³€μˆ˜λͺ… κ·œμΉ™ μ’…λ₯˜

λ³€μˆ˜λͺ… 접두어λ₯Ό μ‚¬μš©ν•˜λ©΄ μ½”λ“œλ₯Ό μ½λŠ” μ‚¬λžŒλ“€μ΄ λ³€μˆ˜μ˜ 역할을 λΉ λ₯΄κ²Œ 이해할 수 있으며, 특히 λŒ€κ·œλͺ¨ ν”„λ‘œκ·Έλž¨μ΄λ‚˜ νŒ€ ν”„λ‘œμ νŠΈμ—μ„œ ν˜‘μ—…κ³Ό μœ μ§€λ³΄μˆ˜λ₯Ό μš©μ΄ν•˜κ²Œ λ§Œλ“€μ–΄ μ€λ‹ˆλ‹€.

μ§μ›μ˜ 이름(employee_name)을 λ‚˜νƒ€λ‚΄λŠ” 경우λ₯Ό 상황에 맞게 예제 μ½”λ“œμ— μž…λ ₯ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

GT (Global Temporary)

  • GTλŠ” μ „μ—­ μž„μ‹œ(Global Temporary)λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • μ „μ—­ λ³€μˆ˜μ΄μ§€λ§Œ μž„μ‹œλ‘œ μ‚¬μš©λ˜λŠ” λ³€μˆ˜λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
  • 일반적으둜 ν”„λ‘œκ·Έλž¨ μ „μ²΄μ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜λ©°, νŠΉμ • λͺ©μ μ„ μœ„ν•΄ μΌμ‹œμ μœΌλ‘œ ν• λ‹Ήλ˜λŠ” κ²½μš°μ— 주둜 μ‚¬μš©λ©λ‹ˆλ‹€.

* μ „μ—­ μž„μ‹œ λ³€μˆ˜λ‘œ μ§μ›μ˜ 이름을 λ‚˜νƒ€λ‚΄λŠ” 경우
DATA: gt_employee_name TYPE i.

GV (Global Variable)

  • GVλŠ” μ „μ—­ λ³€μˆ˜(Global Variable)λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • ν”„λ‘œκ·Έλž¨ μ „μ²΄μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•œ λ³€μˆ˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • μ—¬λŸ¬ ν•¨μˆ˜λ‚˜ λͺ¨λ“ˆμ—μ„œ μ‚¬μš©λ  수 있으며, 전역적인 데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.
* μ „μ—­ λ³€μˆ˜λ‘œ μ§μ›μ˜ 이름을 λ‚˜νƒ€λ‚΄λŠ” 경우
DATA: gv_employee_name TYPE string.

IT (Internal Table)

  • ITλŠ” λ‚΄λΆ€ ν…Œμ΄λΈ”(Internal Table)을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • ν…Œμ΄λΈ” ν˜•μ‹μ˜ 데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ λ³€μˆ˜λ‘œ, λ©”λͺ¨λ¦¬μ— μ €μž₯된 ν…Œμ΄λΈ”κ³Ό μœ μ‚¬ν•œ 역할을 ν•©λ‹ˆλ‹€.
* λ‚΄λΆ€ ν…Œμ΄λΈ”λ‘œ μ§μ›μ˜ 이름을 λ‚˜νƒ€λ‚΄λŠ” 경우
DATA: it_employee_name TYPE TABLE OF string.

LT (Local Variable)

  • LVλŠ” 지역 λ³€μˆ˜(Local Variable)λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • νŠΉμ • 블둝, ν•¨μˆ˜, λ˜λŠ” λͺ¨λ“ˆ λ‚΄μ—μ„œλ§Œ μ‚¬μš©λ˜λŠ” λ³€μˆ˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • ν•΄λ‹Ή λΈ”λ‘μ΄λ‚˜ ν•¨μˆ˜κ°€ μ’…λ£Œλ˜λ©΄ λ³€μˆ˜λ„ μ†Œλ©Έλ©λ‹ˆλ‹€.
* 지역 λ³€μˆ˜λ‘œ μ§μ›μ˜ 이름을 λ‚˜νƒ€λ‚΄λŠ” 경우
DATA: lv_employee_name TYPE i.

WA (Work Area)

  • WAλŠ” μ›Œν¬ μ˜μ—­(Work Area)을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.
  • λ‚΄λΆ€ ν…Œμ΄λΈ”μ˜ λ ˆμ½”λ“œλ₯Ό λ‹¨μΌν•˜κ²Œ μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ λ³€μˆ˜λ‘œ, 일반적으둜 λ£¨ν”„μ—μ„œ ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ λ ˆμ½”λ“œλ₯Ό μ²˜λ¦¬ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
DATA: wa_employee_name TYPE string.

GS (Global Structure)

  • GS(μ „μ—­ ꡬ쑰체)λŠ” μ „μ—­ 데이터 μ˜μ—­μ—μ„œ μ„ μ–Έλ˜μ–΄ ν”„λ‘œκ·Έλž¨ μ „μ²΄μ—μ„œ μ ‘κ·Όν•  수 μžˆλŠ” κ΅¬μ‘°μ²΄μž…λ‹ˆλ‹€.
  • ν”„λ‘œκ·Έλž¨ μ–΄λ””μ„œλ“  μ‚¬μš© κ°€λŠ₯ν•˜λ―€λ‘œ 주둜 μ „μ—­ λ³€μˆ˜λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.
DATA: BEGIN OF gs_employee,
       employee_id TYPE i,
       employee_name TYPE string,
     END OF gs_employee.

LS (Local Structure)

  • LS(지역 ꡬ쑰체)λŠ” νŠΉμ • λΈ”λ‘μ΄λ‚˜ ν•¨μˆ˜ λ‚΄μ—μ„œ μ„ μ–Έλ˜μ–΄ ν•΄λ‹Ή λΈ”λ‘μ΄λ‚˜ ν•¨μˆ˜ λ‚΄μ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” κ΅¬μ‘°μ²΄μž…λ‹ˆλ‹€.
  • 지역 λ³€μˆ˜λ‘œ μ‚¬μš©λ˜λ©° λ²”μœ„κ°€ ν•œμ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
DATA: BEGIN OF ls_customer,
       customer_id TYPE i,
       customer_name TYPE string,
     END OF ls_customer.

 

728x90
λ°˜μ‘ν˜•