ABAP Concept (๐Ÿ“๊ฐœ๋…)/Advanced

ABAP Initial Value ์™€ Null ์˜ ์ฐจ์ด

two_ssun 2025. 4. 7. 12:33

ABAP์„ ํ•˜๋ฉด ๊ฐ€๋” ์งˆ๋ฌธํ•˜๋Š” ๊ฒƒ์ด ์žˆ๋‹ค.

 

ABAP์—์„œ Null์ด๋ž‘ Initial Value๋Š” ๋ญ๊ฐ€ ๋‹ค๋ฅธ ๊ฑฐ์•ผ?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋ถ„๋“ค์ด๋‚˜ ๋‹ค๋ฅธ ์–ธ์–ด(Java, Python ๋“ฑ)์—์„œ ๋„˜์–ด์˜จ ๋ถ„๋“ค์—๊ฒŒ ์ด ๊ฐœ๋…์€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ SQL์„ ๋‹ค๋ค„๋ณธ ์‚ฌ๋žŒ๋“ค์€ ‘NULL’์„ ์ต์ˆ™ํ•˜๊ฒŒ ์—ฌ๊ธฐ์ง€๋งŒ, ABAP์—์„œ๋Š” ๊ทธ๊ฒŒ ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. ์˜ค๋Š˜์€ ์ด ๋‘ ๊ฐœ๋…์˜ ์ฐจ์ด๋ฅผ ๋งˆ์น˜ ๋นˆ ์ƒ์ž์™€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ƒ์ž๋กœ ์‰ฝ๊ฒŒ ํ’€์–ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.


๐Ÿ“Œ  ์ƒ์ž๋กœ ์ดํ•ดํ•˜๋Š” Initial Value vs Null

์ƒ์ž๋ฅผ ํ•˜๋‚˜ ์ค€๋น„ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์ž.
์ด ์ƒ์ž๋Š” ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ‘๋ณ€์ˆ˜’๋ฅผ ๋น„์œ ํ•œ ๊ฒƒ์ด๋‹ค.

 

  • Initial Value๋Š” ์ƒ์ž ์•ˆ์— ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ๋“ค์–ด์žˆ์ง€๋งŒ, ์ƒ์ž ์ž์ฒด๋Š” ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค.
    ์ฆ‰, "๊ฐ’์€ ์—†์ง€๋งŒ ์ดˆ๊ธฐ ๊ฐ’์€ ์กด์žฌํ•œ๋‹ค"๋Š” ๋œป์ด๋‹ค.
  • Null์€ ์ƒ์ž๊ฐ€ ์•„์˜ˆ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ์ด๋‹ค.
    ์ฆ‰, "๋ณ€์ˆ˜์— ๊ฐ’์ด ํ• ๋‹น๋œ ์ ๋„ ์—†๊ณ , ์กด์žฌ๋„ ๋ถˆํ™•์‹คํ•œ ์ƒํƒœ"๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ๋งˆํŠธ์—์„œ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์ค„ ์„ ๋ฌผ ์ƒ์ž๋ฅผ ์ค€๋น„ํ–ˆ๋Š”๋ฐ ์•„์ง ํฌ์žฅ์„ ์•ˆ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๋ณด์ž. ์ƒ์ž๋Š” ์กด์žฌํ•˜๊ณ  ์•ˆ์— ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ์ƒํƒœ. ์ด๊ฒŒ Initial Value์ด๋‹ค.
๋ฐ˜๋Œ€๋กœ, ์„ ๋ฌผ ์ค„ ์ƒ๊ฐ ์ž์ฒด๋ฅผ ์•ˆ ํ•œ ์ƒํƒœ๋ผ๋ฉด? ์ƒ์ž๊ฐ€ ์กด์žฌํ•˜์ง€๋„ ์•Š์œผ๋ฏ€๋กœ. ์ด๊ฒŒ Null์ด๋‹ค.

 


๐Ÿ“Œ  SAP ABAP์—์„œ๋Š” Null์ด ์—†๋‹ค?

SAP ABAP์€ Null ๊ฐœ๋…์„ ์ง์ ‘์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

< TYPE ๋ณ„ ๋ฐ์ดํ„ฐ ์„ ์–ธ ๋ฐ INITIAL VALUE ํ™•์ธ >
< ์ถœ๋ ฅ ๊ฒฐ๊ณผ >

 

๊ฒฐ๊ณผ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ์ˆซ์žํ˜• ๋ณ€์ˆ˜์ธ lv_integer๋Š” ์ž๋™์œผ๋กœ 0์ด๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ๋‚ ์งœ ํƒ€์ž…์˜ ๋ณ€์ˆ˜ lv_Date๋Š” '00000000' ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ์ฆ‰, ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ’์„ ๋”ฐ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์•„๋„, ABAP์—์„œ๋Š” ์„ ์–ธํ•œ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์— ๋งž๊ฒŒ ์ดˆ๊ธฐ ๊ฐ’(Initial Value)์„ ์ž๋™์œผ๋กœ ๋„ฃ์–ด์ค€๋‹ค.

  • ์ •์ˆ˜ํ˜•(TYPE i) → ์ดˆ๊ธฐ ๊ฐ’: 0
  • ๋ฌธ์žํ˜•(TYPE string, TYPE c) → ์ดˆ๊ธฐ ๊ฐ’: ' ' (๋นˆ ๋ฌธ์ž์—ด(๊ณต๋ฐฑ))
  • ๋‚ ์งœํ˜•(TYPE d) → ์ดˆ๊ธฐ ๊ฐ’: '00000000'
  • ์‹œ๊ฐ„ํ˜•(TYPE t) → ์ดˆ๊ธฐ ๊ฐ’: '000000'

< IS INITIAL ๊ตฌ๋ฌธ >

ABAP์—์„œ๋Š” "IS INITIAL" ๊ตฌ๋ฌธ์œผ๋กœ ๋ณ€์ˆ˜๊ฐ€ "๋น„์–ด ์žˆ๋Š”์ง€" ์ฆ‰, ์ดˆ๊ธฐ ๊ฐ’ ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, ์šฐ๋ฆฌ๋Š” ์•„๋ฌด ๊ฐ’๋„ ๋„ฃ์ง€ ์•Š์•˜๋‹ค๋ฉด, ๋ณ€์ˆ˜๋Š” "์ดˆ๊ธฐ ๊ฐ’(Initial Value)"์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋„(null) ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด์˜€๋‹ค๋ฉด null ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ABAP์—์„œ๋Š” ๊ทธ๋Ÿฐ ์ผ์ด ์—†๋‹ค.


๐Ÿ“Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์˜ค๋Š” Null์€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋ ๊นŒ?

์žฌ๋ฏธ์žˆ๋Š” ์ ์€, SAP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์ฒด๋Š” Null์„ ํ—ˆ์šฉํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, SQL๋กœ ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•  ๋•Œ ํ•„๋“œ ๊ฐ’์ด ์—†์œผ๋ฉด NULL๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

< SQL ์˜ˆ์ œ >

์ด ๋•Œ Database "KNA1" ํ…Œ์ด๋ธ”์— name2 ๊ฐ’์ด NULL์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋ฉด, ABAP์€ ํ•ด๋‹น ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋ฉด์„œ ์ž๋™์œผ๋กœ  Initial Value ์ดˆ๊ธฐ ๊ฐ’์ธ ๊ณต๋ฐฑ(' ')์œผ๋กœ ๋ฐ”๊ฟ”์„œ lv_name2์— ๋„ฃ์–ด์ค€๋‹ค. ์ฆ‰, ABAP ๋‚ด๋ถ€์—์„œ๋Š” ์—ฌ์ „ํžˆ Null์„ Initial Value๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋‹ค๋ฃฌ ๊ฒŒ ๋œ๋‹ค. 

 

๐Ÿ’กํ•˜์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ ํ…Œ์ด๋ธ”์— null ๊ฐ’์ด ์กด์žฌํ•˜๊ธด ์–ด๋ ต๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์šฐ๋ฆฌ๋Š” ABAP์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ Database์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์„ ๋„ฃ์ง€ ์•Š์œผ๋ฉด ๋ชจ๋‘ Initial Value ๊ฐ’์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ( ์œ„ ์˜ˆ์ œ๋„ ๊ฐ’์ด ์—†๋‹ค๋ฉด ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฏธ Database์— ์ €์žฅ์ด ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. )

 

โš ๏ธ๋‹จ, ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ธฐ์กด ํ…Œ์ด๋ธ”์— ์‹ ๊ทœ๋กœ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๊ธฐ์กด์— ์žˆ๋˜ ๋ ˆ์ฝ”๋“œ์˜ ์‹ ๊ทœ ํ•„๋“œ์˜ ๊ฐ’์€ NULL ๊ฐ’์ด ๋˜๋ฏ€๋กœ, ์ด ๋•Œ๋Š” ๋”•์…”๋„ˆ๋ฆฌ์—์„œ ํ•ด๋‹น ์ถ”๊ฐ€ ํ•„๋“œ์— INITIAL VALUE๋ฅผ ์ฒดํฌํ•ด์•ผ ๊ธฐ์กด ๋ ˆ์ฝ”๋“œ์—๋„ INITIAL VALUE ๊ฐ’์œผ๋กœ ์—…๋ฐ์ดํŠธ๋œ๋‹ค. 

< ABAP DICTIONARY TABLE-FIELD์˜ Initial value ์†์„ฑ ๊ฐ’ >


๐Ÿ“Œ  ๊ฒฐ๋ก : ABAP์€ ๋นˆ ์ƒ์ž๋Š” ์žˆ์–ด๋„, ์ƒ์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค!

SAP ABAP์—์„œ๋Š” ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋“ ์ง€ ๊ฐ„์—, ๊ทธ ๋ณ€์ˆ˜๋Š” ์ดˆ๊ธฐ๊ฐ’์„ ๊ฐ–๊ณ  ์‹œ์ž‘ํ•œ๋‹ค. Null์ฒ˜๋Ÿผ ‘์กด์žฌํ•˜์ง€ ์•Š์Œ’์ด๋ผ๋Š” ์ƒํƒœ๋Š” ์• ์ดˆ์— ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ฝ”๋“œ์˜ ์•ˆ์ •์„ฑ์ด ๋†’์•„์ง€๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

IS INITIAL ๊ตฌ๋ฌธ์„ ์ž˜ ํ™œ์šฉํ•ด์„œ ๊ฐ’์ด ๋น„์–ด ์žˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜๊ณ , ์กฐ๊ฑด๋ฌธ์„ ๊ตฌ์„ฑํ•˜๋Š” ์Šต๊ด€์„ ๋“ค์ด๋ฉด ABAP ์ฝ”๋“œ๋ฅผ ํ›จ์”ฌ ๊ฒฌ๊ณ ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.