[SAP] ABAP ๊ฐ์ฒด์งํฅ ์ธ์ด? / ๊ธฐ์กด ๋ฌธ๋ฒ๊ณผ ์ ๋ฌธ๋ฒ์ ์ฐจ์ด
ABAP์ ์ฒ์ ์ ํ์ ๋, ๋ค์ ์ ์ฐจ์งํฅ์ ์ธ ๋๋์ด ๊ฐํ์ต๋๋ค. ํ์ง๋ง SAP NetWeaver 7.0 ์ดํ ABAP๋ ๊ฐ์ฒด์งํฅ(OOP) ํจ๋ฌ๋ค์์ ์ ๊ทน ๋ฐ์ํ๊ธฐ ์์ํ๊ณ , ์ดํ ABAP ๊ฐ๋ฐ์๋ผ๋ฉด ๋ฐ๋์ ๊ฐ์ฒด์งํฅ์ ์ดํดํ๊ณ ํ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ๊ธฐ์กด ABAP ๋ฌธ๋ฒ๊ณผ ๊ฐ์ฒด์งํฅ ์ค์ฌ ์ ๋ฌธ๋ฒ์ ์ฐจ์ด, ๊ฐ์ฒด์งํฅ ์ธ์ด๋ก์ ์ด๋ค ํน์ง์ ๊ฐ๊ณ ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค.
๐ ๊ธฐ์กด ๋ฌธ๋ฒ vs ์ ๋ฌธ๋ฒ (ABAP NetWeaver 7.0 ์ดํ)
๋จผ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ DATA ์ ์ธ๊ณผ SELECT ๋ฌธ์์ ๋ฌธ๋ฒ ์ฐจ์ด๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
* ๊ธฐ์กด ๋ฌธ๋ฒ
DATA it TYPE TABLE OF scarr.
DATA wa LIKE LINE OF it.
LOOP AT it INTO wa.
ENDLOOP.
* ์ ๋ฌธ๋ฒ
DATA it TYPE TABLE OF scarr.
LOOP AT it INTO DATA(wa).
ENDLOOP.
๊ธฐ์กด์๋ ๋ณ๋์ ์ํฌ์๋ฆฌ์ด(wa)๋ฅผ ์ ์ธํด์ผ ํ๋ค๋ฉด, ์ ๋ฌธ๋ฒ์ INTO DATA() ํํ๋ก LOOP ๋ด๋ถ์์ ๋ฐ๋ก ์ ์ธ ๊ฐ๋ฅํฉ๋๋ค.
๋ค์์ SELECT ๋ฌธ์ ๋๋ค.
* ๊ธฐ์กด ๋ฌธ๋ฒ
SELECT a b c
FROM scarr
INTO TABLE lt_result
WHERE carrid = 'LH'.
* ์ ๋ฌธ๋ฒ
SELECT FROM scarr
FIELDS a, b, c
WHERE carrid = 'LH'
INTO TABLE lt_result.
๐ ์ ์ฐจ์งํฅ vs ๊ฐ์ฒด์งํฅ์ ์ฐจ์ด
- ์ ์ฐจ์งํฅ: ์์์๋ถํฐ ์๋๋ก ํ๋ฅด๋ ๋ช ๋ น ์ค์ฌ์ ๊ตฌ์กฐ (์: FUNCTION MODULE, FORM ๋ฑ)
- ๊ฐ์ฒด์งํฅ: ๋ฐ์ดํฐ๋ฅผ ์ค์ฌ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ค๊ณํ๊ณ , ๊ฐ์ฒด ๊ฐ ๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ๋์ํจ (์: CLASS, METHOD ๋ฑ)
ABAP์์๋ Report ํ๋ก๊ทธ๋จ ์์์ CLASS์ METHOD๋ฅผ ์ง์ ์ ์ธํด ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ค์ ์ ๋ฌด์์๋ SE24 ๊ธ๋ก๋ฒ ํด๋์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
โABAP์ ๊ฐ์ฒด์งํฅ ์ธ์ด์ธ๊ฐ?
๊ฐ์ฒด์งํฅ ์ธ์ด๋ก ์ ์ํ๊ธฐ ์ํด์๋ ๋ณดํต ์๋ ์ธ๊ฐ์ง ํน์ฑ์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
- Encapsulation (์บก์ํ): ์ ๊ทผ ์ ์ด์ (Public / Private / Protected)
- Inheritance (์์): ํด๋์ค๋ฅผ ์์๋ฐ์ ๊ธฐ๋ฅ ํ์ฅ ๊ธฐ๋ฅ
- Polymorphism (๋คํ์ฑ): ๋์ผํ ๋ช ๋ น์ผ๋ก ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๋ค๋ฅด๊ฒ ๋์
ABAP์ ์ธ๊ฐ์ง ๋ชจ๋๋ฅผ ์ง์ํฉ๋๋ค. ํนํ SAP NetWeaver 7.0๋ถํฐ ๊ฐ์ฒด์งํฅ์ ๋ณธ๊ฒฉ์ ์ผ๋ก ์ง์ํ๋ฉด์, ์ ํต์ ์ธ ํ๋ก์์ ๊ธฐ๋ฐ ์ธ์ด์์ OOP ์ธ์ด๋ก ๋ณธ๊ฒฉ ์ ํ๋์๋ค๊ณ ํ ์ ์์ต๋๋ค.