๊ด€๋ฆฌ ๋ฉ”๋‰ด

CS Student’s SAP&Tech Journey๐Ÿ’ซ

[SAP] ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”(Internal Table) (1) ํ…Œ์ด๋ธ” ์„ ์–ธ, ์ƒ์„ฑํ•˜๊ธฐ ๋ณธ๋ฌธ

SAP/์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” Internal Table

[SAP] ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”(Internal Table) (1) ํ…Œ์ด๋ธ” ์„ ์–ธ, ์ƒ์„ฑํ•˜๊ธฐ

์ธํฌ๋งˆํ‹ฑ 2025. 2. 7. 19:32

SAP ABAP์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”(Internal Table, IT)์€ ํ•„์ˆ˜์ ์ธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.
์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ฌ๋ฆฌ ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ๊ฐœ๋…, ์„ ์–ธ ๋ฐ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ์ƒ์„ธํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

๋ฐ์ดํ„ฐ ๊ฐ์ฒด์™€ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์— ๊ด€๋ จ๋œ ํฌ์ŠคํŒ… ๋ณด๋Ÿฌ๊ฐ€๊ธฐโฌ‡๏ธ

 

ABAP ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ๋ฐ์ดํ„ฐ ๊ฐ์ฒด ์ดํ•ดํ•˜๊ธฐ (Simple, Structure, Internal Table)

SAP ABAP์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด(Data Object)๋ฅผ ๋‹ค๋ฃจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ABAP์—์„œ๋Š” ๋‹จ์ˆœ ๋ฐ์ดํ„ฐ(Single Data Object), ๊ตฌ์กฐ์ฒด(Structure), ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”(Internal Table)์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜

informatik.tistory.com

 

 


 

1. ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”(Internal Table) ๊ฐœ๋…

์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์€ ๋™์ผํ•œ ๊ตฌ์กฐ(Structure)๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์„ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋งŒ ์กด์žฌ
  • ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์ ํ•ฉ
  • ๋‹ค์–‘ํ•œ ์กฐ์ž‘ ๊ธฐ๋Šฅ์„ ์ œ๊ณต (APPEND, INSERT, READ, MODIFY, DELETE)

 

๐Ÿ“Œ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ์ฃผ์š” ์†์„ฑ

์†์„ฑ ์„ค๋ช…
Line Type ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ํ–‰ ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ • (์ŠคํŠธ๋Ÿญ์ฒ˜ ๋˜๋Š” ํ…Œ์ด๋ธ” ํ•„๋“œ)
Primary Key ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•œ ํ‚ค (์œ ์ผ์„ฑ ์—ฌ๋ถ€ ์„ค์ • ๊ฐ€๋Šฅ)
Table Kind ํ…Œ์ด๋ธ”์˜ ์œ ํ˜• (Standard, Sorted, Hashed)

 

 

2. ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์˜ ์ข…๋ฅ˜

์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹์— ๋”ฐ๋ผ 3๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ” ์ข…๋ฅ˜ ํŠน์ง• ์‚ฝ์ž…(APPEND) ์‚ฝ์ž…(INSERT) ๊ฒ€์ƒ‰ ์†๋„
Standard Table ๊ธฐ๋ณธ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” (์ˆœ์„œ ์—†์Œ) O O ๋А๋ฆผ (์ˆœ์ฐจ ๊ฒ€์ƒ‰)
Sorted Table ์ž๋™ ์ •๋ ฌ๋จ (Primary Key ๊ธฐ์ค€) X O ๋น ๋ฆ„ (์ด์ง„ ๊ฒ€์ƒ‰)
Hashed Table ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ฒ€์ƒ‰ ์ตœ์ ํ™” X O ๋งค์šฐ ๋น ๋ฆ„ (ํ•ด์‹œ ๊ฒ€์ƒ‰)

๐Ÿ“Œ ์ •๋ฆฌ

  • Standard Table: ์ˆœ์„œ ๋ฌด์ž‘์œ„, ์ถ”๊ฐ€ & ์‚ฝ์ž… ์ž์œ ๋กœ์›€, ๊ฒ€์ƒ‰ ์†๋„ ๋А๋ฆผ
  • Sorted Table: ์ž๋™ ์ •๋ ฌ, ์ค‘๋ณต ํ—ˆ์šฉ ์—ฌ๋ถ€ ์„ค์ • ๊ฐ€๋Šฅ, ๊ฒ€์ƒ‰ ์†๋„ ๋น ๋ฆ„
  • Hashed Table: ๊ฒ€์ƒ‰ ์ตœ์ ํ™”, ์ค‘๋ณต ๋ถˆ๊ฐ€, ๊ฒ€์ƒ‰ ์†๋„ ๊ฐ€์žฅ ๋น ๋ฆ„

 

 

3. ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์„ ์–ธ ๋ฐ ์ƒ์„ฑ

 

1๏ธโƒฃ ํ…Œ์ด๋ธ” ํƒ€์ž…์„ ๋จผ์ € ์ •์˜ํ•˜๊ณ  ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ• (TYPES ํ™œ์šฉ)

๋จผ์ € ํ…Œ์ด๋ธ” ํƒ€์ž…(Table Type)์„ TYPES๋ฅผ ์‚ฌ์šฉํ•ด ์ •์˜ํ•œ ํ›„, ๊ทธ ํƒ€์ž…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์„ ์„ ์–ธํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

* 1. ์›Œํฌ ์—์–ด๋ฆฌ์–ด(์ŠคํŠธ๋Ÿญ์ฒ˜) ์ •์˜
TYPES: BEGIN OF ts_struct,  
  field1 TYPE data_type1,  
  field2 TYPE data_type2,  
  field3 TYPE data_type3,  
  field4 TYPE data_type4,  
  END OF ts_struct.  

* 2. ํ…Œ์ด๋ธ” ํƒ€์ž… ์ •์˜
TYPES tt_struct TYPE STANDARD TABLE OF ts_struct  
      WITH NON-UNIQUE KEY field1 field2.

* 3. ํ…Œ์ด๋ธ” ์ •์˜
DATA gt_table TYPE tt_struct.

 

 ๐Ÿ”ท ์˜ˆ์ œ

* 1. ์›Œํฌ ์—์–ด๋ฆฌ์–ด(์ŠคํŠธ๋Ÿญ์ฒ˜) ์ •์˜
TYPES: BEGIN OF ts_flightinfo,  
  carrid TYPE S_CARR_ID,  
  connid TYPE S_CONN_ID,  
  fldate TYPE S_DATE,  
  percentage TYPE S_FLGHTOCC,  
  END OF ts_flightinfo.  

* 2. ํ…Œ์ด๋ธ” ํƒ€์ž… ์ •์˜
TYPES tt_flightinfo TYPE STANDARD TABLE OF ts_flightinfo  
      WITH NON-UNIQUE KEY carrid connid.

* 3. ํ…Œ์ด๋ธ” ์ •์˜
DATA gt_flight TYPE tt_flightinfo.

๐Ÿ“Œ tt_flightinfo: ์ŠคํŠธ๋Ÿญ์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ…Œ์ด๋ธ” ํƒ€์ž… ์ •์˜
๐Ÿ“Œ WITH NON-UNIQUE KEY: ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ ํ—ˆ์šฉ (carrid, connid ๊ธฐ์ค€)

 

โ“WITH KEY ์ƒ๋žต ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?

WITH KEY๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์—†์–ด ๋น„ํšจ์œจ์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹(Linear Search)์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 
WITH KEY๋ฅผ ์ƒ๋žตํ•˜๋ฉด ํ‚ค๊ฐ€ ์—†๋Š” ํ…Œ์ด๋ธ”์ด ๋˜๋ฏ€๋กœ, ์„ฑ๋Šฅ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ WITH KEY๋ฅผ ๋ช…์‹œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์œผ๋‚˜ ์ƒ๋žต ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

 

2๏ธโƒฃ ์ŠคํŠธ๋Ÿญ์ฒ˜ ํƒ€์ž…์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•

ํ…Œ์ด๋ธ” ํƒ€์ž…์„ ๋ณ„๋„๋กœ ์ •์˜ํ•˜์ง€ ์•Š๊ณ , ๋ฐ”๋กœ ์ŠคํŠธ๋Ÿญ์ฒ˜ ํƒ€์ž…(Structure Type)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”์„ ์„ ์–ธํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

1. Standard Table (๊ธฐ๋ณธ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ”)

DATA gt_table TYPE STANDARD TABLE OF ts_struct  
      WITH NON-UNIQUE KEY field1 field2.

 

STANDARD TABLE์€ ๊ธฐ๋ณธ๊ฐ’์ด๋ฏ€๋กœ ์ƒ๋žตํ•ด๋„ ๋˜๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DATA gt_table TYPE TABLE OF ts_struct  
      WITH NON-UNIQUE KEY field1 field2.

 

2. Sorted Table (์ž๋™ ์ •๋ ฌ๋˜๋Š” ํ…Œ์ด๋ธ”)

DATA gt_table TYPE SORTED TABLE OF ts_struct  
      WITH NON-UNIQUE KEY field1 field2.

๐Ÿ“Œ Sorted Table์€ INSERT๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ, APPEND์‚ฌ์šฉ ๋ถˆ๊ฐ€

 

3. Hashed Table (๋น ๋ฅธ ๊ฒ€์ƒ‰์šฉ ํ…Œ์ด๋ธ”)

DATA gt_table TYPE HASHED TABLE OF ts_struct  
      WITH NON-UNIQUE KEY field1 field2.

๐Ÿ“Œ Hashed Table์€ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฆ„ (APPEND ๋ถˆ๊ฐ€, INSERT๋งŒ ๊ฐ€๋Šฅ)

 

 

โ“ With Header Line ๋ฐฉ์‹์ด๋ž€?

ABAP์—์„œ๋Š” ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”(Internal Table)์„ ์ •์˜ํ•  ๋•Œ, ๊ณผ๊ฑฐ์—๋Š” Header Line์ด ํฌํ•จ๋œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, ํ˜„์žฌ๋Š” ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ๋ฐฉ์‹: Internal Table & Work Area

DATA: gt_carrier TYPE TABLE OF bc400_t_carriers,  " Internal Table
      wa_carrier TYPE bc400_t_carriers.          " Work Area

 

๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹: Internal Table With Header Line

  • ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”์„ ์ •์˜ํ•  ๋•Œ, WITH HEADER LINE ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด Work Area๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚ด๋ถ€ ํ…Œ์ด๋ธ”๊ณผ Work Area์˜ ์ด๋ฆ„์ด ๋™์ผํ•˜์—ฌ ํ˜ผ๋™๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
DATA gt_carrier TYPE bc400_t_carriers WITH HEADER LINE. " IT ์ƒ์„ฑ + WA ์ž๋™ ์ƒ์„ฑ

 

 

 

3๏ธโƒฃ ๊ธฐ์กด Transparent Table์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•

DATA gt_table TYPE TABLE OF db_table. " SAP DB ํ…Œ์ด๋ธ”์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ

๐Ÿ“Œ ํ—ท๊ฐˆ๋ฆฌ๋Š” ์ •์˜
DATA gt_flight TYPE TABLE OF [ํ…Œ์ด๋ธ”]. " โœ…
DATA gt_flight TYPE TABLE OF [ํ…Œ์ด๋ธ” ํƒ€์ž…]. " โŒ 

 

 

4. ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์„ ์–ธ ๋ฐ ์ƒ์„ฑ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ

๋ฐฉ๋ฒ• ์„ ์–ธ ํŠน์ง•
1. ํ…Œ์ด๋ธ” ํƒ€์ž…(TYPES) ์ •์˜ ํ›„ ์„ ์–ธ TYPES๋ฅผ ์‚ฌ์šฉํ•ด ํ…Œ์ด๋ธ” ํƒ€์ž…์„ ์ •์˜

TYPES ... TYPE STANDARD TABLE OF ...

๊ทธ ํ›„ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์„ ์–ธ DATA ... TYPE ... 
์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ํ‚ค ์„ค์ • ๊ฐ€๋Šฅ, ๊ฐ€๋…์„ฑ ์ข‹์Œ
2. ์ŠคํŠธ๋Ÿญ์ฒ˜ ํƒ€์ž…์„ ์ง์ ‘ ์‚ฌ์šฉ ์ŠคํŠธ๋Ÿญ์ฒ˜ ํƒ€์ž… ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์ •์˜

DATA ... TYPE STANDARD TABLE OF ... [์ŠคํŠธ๋Ÿญ์ฒ˜ ํƒ€์ž…]
๋น ๋ฅด๊ฒŒ ์„ ์–ธ ๊ฐ€๋Šฅ, ๊ฐ„๋‹จํ•œ ํ…Œ์ด๋ธ”์— ์ ํ•ฉ
3. Transparent Table์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ ์–ธ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ ํ…Œ์ด๋ธ” ์ •์˜

DATA ... TYPE TABLE OF ... [ํ…Œ์ด๋ธ”]
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”๊ณผ ๋™์ผํ•œ ๊ตฌ์กฐ ์œ ์ง€

 

 

๐Ÿ“Œ ์–ด๋–ค ๋ฐฉ์‹์„ ์จ์•ผ ํ• ๊นŒ?

โœ… ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ค‘์š”ํ•˜๋ฉด? → ํ…Œ์ด๋ธ” ํƒ€์ž…(TYPES) ์ •์˜ ํ›„ ์„ ์–ธ
โœ… ์ฝ”๋“œ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์•ผ ํ•˜๋ฉด? → ์ŠคํŠธ๋Ÿญ์ฒ˜ ํƒ€์ž… ์ง์ ‘ ์„ ์–ธ
โœ… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๋™ํ•  ํ…Œ์ด๋ธ”์ด๋ฉด? → Transparent Table ๊ธฐ๋ฐ˜ ์„ ์–ธ

โญ DB ํ…Œ์ด๋ธ”์„ ์ง์ ‘ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค ๊ฑฐ๋ฉด Transparent Table์„, ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ๊ฑฐ๋ฉด ์ŠคํŠธ๋Ÿญ์ฒ˜ ํƒ€์ž…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.