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 ๊ฐ๋ ์ ์ง์ ์ ์ผ๋ก ์ฌ์ฉํ์ง๋ ์๋๋ค.
๊ฒฐ๊ณผ์์ ์ ์ ์๋ฏ์ด ์ซ์ํ ๋ณ์์ธ lv_integer๋ ์๋์ผ๋ก 0์ด๋ผ๋ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ๋ ์ง ํ์ ์ ๋ณ์ lv_Date๋ '00000000' ๊ฐ์ ๊ฐ์ง๋ค. ์ฆ, ๊ฐ๋ฐ์๊ฐ ๊ฐ์ ๋ฐ๋ก ์ง์ ํ์ง ์์๋, ABAP์์๋ ์ ์ธํ ๋ณ์์ ํ์ ์ ๋ง๊ฒ ์ด๊ธฐ ๊ฐ(Initial Value)์ ์๋์ผ๋ก ๋ฃ์ด์ค๋ค.
- ์ ์ํ(TYPE i) → ์ด๊ธฐ ๊ฐ: 0
- ๋ฌธ์ํ(TYPE string, TYPE c) → ์ด๊ธฐ ๊ฐ: ' ' (๋น ๋ฌธ์์ด(๊ณต๋ฐฑ))
- ๋ ์งํ(TYPE d) → ์ด๊ธฐ ๊ฐ: '00000000'
- ์๊ฐํ(TYPE t) → ์ด๊ธฐ ๊ฐ: '000000'
ABAP์์๋ "IS INITIAL" ๊ตฌ๋ฌธ์ผ๋ก ๋ณ์๊ฐ "๋น์ด ์๋์ง" ์ฆ, ์ด๊ธฐ ๊ฐ ์ํ์ธ์ง ํ์ธํ ์ ์๋ค. ์ด๋, ์ฐ๋ฆฌ๋ ์๋ฌด ๊ฐ๋ ๋ฃ์ง ์์๋ค๋ฉด, ๋ณ์๋ "์ด๊ธฐ ๊ฐ(Initial Value)"์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋(null) ์ํ๊ฐ ์๋๋ค. ๋ค๋ฅธ ์ธ์ด์๋ค๋ฉด null ์ค๋ฅ๊ฐ ๋ฌ์ ์๋ ์์ง๋ง, ABAP์์๋ ๊ทธ๋ฐ ์ผ์ด ์๋ค.
๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ค๋ Null์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ ๊น?
์ฌ๋ฏธ์๋ ์ ์, SAP ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๋ Null์ ํ์ฉํ๋ค. ์๋ฅผ ๋ค์ด, SQL๋ก ํ ์ด๋ธ์ ์กฐํํ ๋ ํ๋ ๊ฐ์ด ์์ผ๋ฉด NULL๋ก ๋์ฌ ์ ์๋ค.
์ด ๋ 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์ ๋น ์์๋ ์์ด๋, ์์๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ๋ ์๋ค!
SAP ABAP์์๋ ์ด๋ค ๋ณ์๋ฅผ ์ ์ธํ๋ ์ง ๊ฐ์, ๊ทธ ๋ณ์๋ ์ด๊ธฐ๊ฐ์ ๊ฐ๊ณ ์์ํ๋ค. Null์ฒ๋ผ ‘์กด์ฌํ์ง ์์’์ด๋ผ๋ ์ํ๋ ์ ์ด์ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์, ์ฝ๋์ ์์ ์ฑ์ด ๋์์ง๋ ์ฅ์ ์ด ์๋ค.
IS INITIAL ๊ตฌ๋ฌธ์ ์ ํ์ฉํด์ ๊ฐ์ด ๋น์ด ์๋์ง๋ฅผ ํ๋จํ๊ณ , ์กฐ๊ฑด๋ฌธ์ ๊ตฌ์ฑํ๋ ์ต๊ด์ ๋ค์ด๋ฉด ABAP ์ฝ๋๋ฅผ ํจ์ฌ ๊ฒฌ๊ณ ํ๊ฒ ์์ฑํ ์ ์์ ๊ฒ์ด๋ค.
'ABAP Concept (๐๊ฐ๋ ) > Advanced' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Internal Table์ ๊ฐ๋ ๊ณผ ๊ตฌ์ฑ ์์(Feat. Table Category) (0) | 2025.04.10 |
---|---|
Function Module ํ๋ผ๋ฏธํฐ ์ข ๋ฅ์ ์ธํฐํ์ด์ค ๋ฐฉ์ (0) | 2025.04.09 |
Parameter ์ ๋ฌ ๋ฐฉ์ Pass by Value ์ Pass by Reference (0) | 2025.04.08 |
|ABAP ๊ฐ๋ ์ ๋ฆฌ| TYPE๊ณผ LIKE์ ์ฐจ์ด (2) | 2020.09.09 |