ํ๋ก๊ทธ๋๋ฐ์ ํ๋ค ๋ณด๋ฉด ์๋ธ๋ฃจํด์ด๋ ํจ์ ๋๋ ํด๋์ค์ ๋ฉ์๋์ ๋ณ์๋ฅผ ์ ๋ฌํ ์ผ์ด ๋ง๋ค. ์ด๋ ์ ๋ฌ ๋ฐฉ์์ ๋ฐ๋ผ ๋๊ฒจ์ง๋ ๋ณ์์ ๋ณ๊ฒฝ ์ฌ๋ถ๊ฐ ๋ค๋ฅด๊ฒ ์๋ํ๋๋ฐ ์ด ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ ๋ฌ๋์ด ์ง๋ค.
- โ Pass by Value (๊ฐ์ ์ํ ์ ๋ฌ)
- โ Pass by Reference (์ฐธ์กฐ์ ์ํ ์ ๋ฌ)
โ Pass by Value๋?
Pass by Value๋ ๋ฐ์ดํฐ๋ฅผ ์๋ธ๋ฃจํด์ด๋ ํจ์(๋ฉ์๋)์ ๊ฐ์ ์ ๋ฌํ ๋ ๋ณต์ฌ๋ณธ์ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ด๋ค.
์น๊ตฌ์๊ฒ ์ค์ํ ์๋ฅ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ง๋ง, ์์ด๋ฒ๋ฆด๊น ๊ฑฑ์ ๋ผ์ ๋ณต์ฌ๋ณธ์ ์คฌ๋ค๊ณ ํด๋ณด์. ์น๊ตฌ๊ฐ ๋ณต์ฌ๋ณธ์ ๋์๋ฅผ ํ๋ ์ฐข๋ , ์๋ณธ ์๋ฅ์๋ ์ ํ ์ํฅ์ ๋ฐ์ง ์๋๋ค. ๋ฐ๋ก ์ด๊ฒ Pass by Value์ด๋ค.
๐ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ ๊ด์
- ํด๋น ๋ฃจํด์ด ํธ์ถ๋ ๋, ์ ๋ฌ๋ ๋ณ์์ ๊ฐ์ ๋ณต์ฌํด์ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํจ.
- ๋ฃจํด ๋ด๋ถ๋ ๋ณต์ฌ๋ ๊ฐ์ ์ฌ์ฉํ๊ณ , ์๋ณธ ๋ณ์๋ ๊ทธ๋๋ก ์ ์ง๋จ.
- ๋ฃจํด์ด ์ข ๋ฃ๋๋ฉด ๋ณต์ฌ๋ ๋ฉ๋ชจ๋ฆฌ๋ ํด์ ๋๊ณ , ์๋ณธ ๊ฐ์ ๋ณ๊ฒฝ๋์ง ์์.
๐ ์ฌ์ฉ ์์
- Pass by Value๋ ์๋ณธ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ณ ์ถ์ ๋ ๋งค์ฐ ์ ์ฉํ๋ค. ํนํ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ์ถ๊ฑฐ๋ ํด๋น ๋ฃจํด ๋ด์์ ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๋ ํ์ฉ๋๋ค.
๐ ABAP์์ Pass by Value ์ฌ์ฉ์ฒ
- ์๋ธ๋ฃจํด์ USING ํ๋ผ๋ฏธํฐ์ "VALUE ( ํ๋ผ๋ฏธํฐ ๋ช )" ๊ตฌ๋ฌธ์ ์ถ๊ฐํ์ ๊ฒฝ์ฐ
- ์๋ธ๋ฃจํด์ CHANGING ํ๋ผ๋ฏธํฐ์ "VALUE ( ํ๋ผ๋ฏธํฐ ๋ช )" ๊ตฌ๋ฌธ์ ์ถ๊ฐํ์ ๊ฒฝ์ฐ
- ํจ์์ IMPORTING, EXPORTING, CHANGING ํ๋ผ๋ฏธํฐ์ "Pass by Value" ๋ฅผ ์ฒดํฌํ์ ๊ฒฝ์ฐ
- ๋ฉ์๋์ IMPORTING, EXPORTING, CHANGING ํ๋ผ๋ฏธํฐ์ "Pass Value" ๋ฅผ ์ฒดํฌํ์ ๊ฒฝ์ฐ
- ๋ฉ์๋ RETURN ํ๋ผ๋ฏธํฐ
๐จ์๋ธ๋ฃจํด/ํจ์/๋ฉ์๋ CHANGING ํ๋ผ๋ฏธํฐ๋ ์๋ฐฉํฅ Pass by Value๋ก์จ, ๋ฃจํด ๋ด๋ถ์์ ๋ฐ์ ๊ฐ์ ๋ค์ ์๋ณธ ๋ณ์์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ์๋ณธ ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ ์๋ค.
โ Pass by Reference๋?
Pass by Reference๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ๋ณต์ฌ๋ณธ์ด ์๋ ์๋ณธ ๊ทธ ์์ฒด๋ฅผ ์ ๋ฌํ๋ค.
์ด๋ฒ์๋ ์น๊ตฌ์๊ฒ ์๋ฅ ์๋ณธ์ ์คฌ๋ค๊ณ ํด๋ณด์. ์น๊ตฌ๊ฐ ๋ด์ฉ์ ์ง์ฐ๊ฑฐ๋ ๋ฐ๊พธ๋ฉด ์๋ณธ๋ ๋ฐ๋๊ฒ ๋๋ค. ์ด๊ฒ ๋ฐ๋ก Pass by Reference ์ด๋ค.
๐ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ ๊ด์
- ํด๋น ๋ฃจํด์ด ํธ์ถ๋ ๋, ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์(์ฐธ์กฐ๊ฐ)์ ์ ๋ฌํจ.
- ๋ฃจํด ๋ด๋ถ์์ ํ๋ผ๋ฏธํฐ๋ ์๋ ๋ณ์์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํด.
- ๋ฃจํด ์์์ ๊ฐ์ ๋ฐ๊พธ๋ฉด ์๋ณธ๋ ํจ๊ป ๋ฐ๋.
๐ ์ฌ์ฉ ์์
- Pass by Reference๋ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ฐ๊พธ๊ณ ์ถ์ ๋ ์ฌ์ฉ๋๋ค. ํด๋น ๋ฃจํด ๋ด์์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฃจํด ๋ฐ์์๋ ๋ฐ์๋์ด์ผ ํ๋ ์ํฉ์์ ๋งค์ฐ ์ ์ฉํ ๋ฐฉ์์ด๋ค.
๐ ABAP์์ Pass by Reference ์ฌ์ฉ์ฒ
- ์๋ธ๋ฃจํด์ USING ํ๋ผ๋ฏธํฐ ๋ค์ "VALUE ( ํ๋ผ๋ฏธํฐ ๋ช )" ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ
- ์๋ธ๋ฃจํด์ CHANGING ํ๋ผ๋ฏธํฐ ๋ค์ "VALUE ( ํ๋ผ๋ฏธํฐ ๋ช )" ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ
- ์๋ธ๋ฃจํด์ TABLES ํ๋ผ๋ฏธํฐ
- ํจ์์ IMPORTING, EXPORTING, CHANGING ํ๋ผ๋ฏธํฐ์ "Pass by Value" ๋ฅผ ์ฒดํฌ์ํ ๊ฒฝ์ฐ (Default)
- ํจ์์ TABLES ํ๋ผ๋ฏธํฐ
- ๋ฉ์๋์ IMPORTING, EXPORTING, CHANGING ํ๋ผ๋ฏธํฐ ์ "Pass Value" ๋ฅผ ์ฒดํฌ์ํ ๊ฒฝ์ฐ (Default)
๐ ์๋ธ๋ฃจํด(PERFORM) ํ๋ผ๋ฏธํฐ ํธ์ถ ์ ํ
๐ ํจ์(Function Module) ํ๋ผ๋ฏธํฐ ํธ์ถ ์ ํ
๐ฉ ๊ฒฐ๋ก ์ ์ผ๋ก...
๊ตฌ๋ถ | ์ฌ์ฉ๋ชฉ์ | ๋ฐ์ดํฐ๋ณ๊ฒฝ ์ฌ๋ถ | ๋ฉ๋ชจ๋ฆฌ |
Pass by Value | ์๋ณธ ๋ฐ์ดํฐ ๋ณดํธ, ์์ ์ฑ ์ ์ง | ์๋ณธ ๋ณ๊ฒฝ โ | ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๋ณต์ฌ |
Pass by Reference | ํจ์จ์ฑ, ์๋ณธ ๋ฐ์ดํฐ ์ง์ ๋ณ๊ฒฝ | ์๋ณธ ๋ณ๊ฒฝ โ | ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ (์ฐธ์กฐ) |
๐ก TABLES ํ๋ผ๋ฏธํฐ๋ ์ ํญ์ Pass by Reference์ธ๊ฐ?
TABLES ํ๋ผ๋ฏธํฐ๋ ABAP ์ด๊ธฐ ์ค๊ณ ์ ์ฑ๋ฅ์ ๊ณ ๋ คํด Pass by Reference ๋ก๋ง ์๋ํ๋๋ก ๋ง๋ค์ด์ก๋ค. ์ธํฐ๋ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์์ด ๋ง๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ณต์ฌํ๋ Pass by Value ๋ฐฉ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ปค์ง๊ณ CPU ๋ถํ๋ ์ปค์ง๋ฏ๋ก ๋งค์ฐ ๋นํจ์จ์ ์ด๊ณ ์์ ๋ญ๋น๊ฐ ํฌ๋ค๊ณ ํ ์ ์๋ค. ์ด๋ฌํ ์ด์ ๋ก ์๋ธ๋ฃจํด์ TABLES ํ๋ผ๋ฏธํฐ์ VALUE ๊ตฌ๋ฌธ์ ์ฌ์ฉํ ์ ์๊ณ , ํจ์ ํ๋ผ๋ฏธํฐ์๋ "Pass by Value" ์ฒดํฌ๋ฐ์ค๊ฐ ์๋ ๊ฒ์ด๋ค.
'ABAP Concept (๐๊ฐ๋ ) > Advanced' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Internal Table Header line(ํค๋ ๋ผ์ธ) ๊ฐ๋ ๋ฐ ์ง์ํด์ผ ํ๋ ์ด์ (0) | 2025.04.14 |
---|---|
Internal Table์ ๊ฐ๋ ๊ณผ ๊ตฌ์ฑ ์์(Feat. Table Category) (0) | 2025.04.10 |
Function Module ํ๋ผ๋ฏธํฐ ์ข ๋ฅ์ ์ธํฐํ์ด์ค ๋ฐฉ์ (0) | 2025.04.09 |
ABAP Initial Value ์ Null ์ ์ฐจ์ด (0) | 2025.04.07 |
|ABAP ๊ฐ๋ ์ ๋ฆฌ| TYPE๊ณผ LIKE์ ์ฐจ์ด (2) | 2020.09.09 |