๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

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

ABAP ํ”„๋กœ๊ทธ๋žจ ์†์„ฑ Fixed Point Arithmetic, ์™œ ์กด์žฌํ• ๊นŒ? ๊ผญ ์ฒดํฌํ•ด์•ผ ํ• ๊นŒ?

SAP ABAP์—์„œ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ์„ฑํ•  ๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ Fixed Point Arithmetic์ด๋‹ค. ๋Œ€๋ถ€๋ถ„ ์ด ์˜ต์…˜์— ๋Œ€ํ•ด ๊นŠ์ด ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์•Œ๊ณ  ๋„˜์–ด๊ฐ€์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ๊ธˆ์•ก ๊ณ„์‚ฐ, ์†Œ์ˆ˜์  ์ฒ˜๋ฆฌ ๋“ฑ ํ•ต์‹ฌ ๋กœ์ง์— ํฐ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์„ค์ •์ด๋‹ค. ์ด ์„ค์ •์ด ์™œ ์กด์žฌํ•˜๋Š”์ง€, ์ฒดํฌ๋ฅผ ์•ˆ ํ•  ๊ฒฝ์šฐ ์–ด๋–ค ํ˜„์ƒ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. 


1. Fixed Point Arithmetic์ด๋ž€?

Fixed Point Arithmetic์€ ABAP ํ”„๋กœ๊ทธ๋žจ์—์„œ ์†Œ์ˆ˜์  ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ณ ๋ คํ•œ ๊ณ„์‚ฐ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์ •ํ•˜๋Š” ์„ค์ •์ด๋‹ค. ์ด ์˜ต์…˜์ด ํ™œ์„ฑํ™”(์ฒดํฌ) ๋˜์–ด ์žˆ์œผ๋ฉด, TYPE P, DEC, CURR, QUAN๊ณผ ๊ฐ™์€ ์†Œ์ˆ˜์ ์„ ๊ฐ€์ง€๋Š” ์ˆซ์ž ํƒ€์ž…์ด ์‹ค์ œ ์—ฐ์‚ฐ์—์„œ๋„ ์†Œ์ˆ˜์ ๊นŒ์ง€ ํฌํ•จํ•˜์—ฌ ์ •ํ™•ํ•˜๊ฒŒ ๊ณ„์‚ฐ๋œ๋‹ค. 

 

๋ฐ˜๋Œ€๋กœ ์ด ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”(๋ฏธ์ฒดํฌ) ํ•˜๋ฉด, ํ•ด๋‹น ์ˆซ์ž๋“ค์€ ๋‚ด๋ถ€์˜ ์ •์ˆ˜ ํ‘œํ˜„๊ฐ’๋งŒ ์‚ฌ์šฉ๋˜์–ด ๊ณ„์‚ฐ๋˜๋ฉฐ, ์†Œ์ˆ˜์ ์€ ๋ฌด์‹œ๋œ๋‹ค.

< ํ”„๋กœ๊ทธ๋žจ ์ƒ์„ฑ์‹œ ์†์„ฑ ์ฒดํฌ ํ™”๋ฉด >

โœ… ์ฒดํฌํ•˜๋ฉด → ์‹ค์ˆ˜ ๊ณ„์‚ฐ
โŒ ์ฒดํฌํ•˜์ง€ ์•Š์œผ๋ฉด → ์ •์ˆ˜์ฒ˜๋Ÿผ ๊ณ„์‚ฐ


2. ์˜ˆ์ œ: ๊ฒฐ๊ณผ๊ฐ€ ์™œ ์ด์ƒํ•˜๊ฒŒ ๋‚˜์˜ฌ๊นŒ?

<์˜ˆ์ œ : Fixed Point Arithmetic ์ฒดํฌ ์œ ๋ฌด์— ๋”ฐ๋ฅธ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ’ ์ถœ๋ ฅ >

โœ… Fixed Point Arithmetic ์ฒดํฌ ์‹œ
๊ณ„์‚ฐ: 10.50 / 2.00 = 5.25
์ถœ๋ ฅ: 5.25

โŒ ์ฒดํฌํ•˜์ง€ ์•Š์•˜์„ ์‹œ
val1 = 10.50 → ๋‚ด๋ถ€ ์ •์ˆ˜ ๊ฐ’ = 1050
val2 = 2.00 → ๋‚ด๋ถ€ ์ •์ˆ˜ ๊ฐ’ = 200

๊ณ„์‚ฐ: 1050 / 200 = 5.25

BUT! ์ •์ˆ˜ ์—ฐ์‚ฐ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฉฐ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋Š” ์ •์ˆ˜ 5
result๋Š” DECIMALS 2 → 5 → 0.05๋กœ ์ถœ๋ ฅ๋จ

โ— ์ฆ‰, ๊ธฐ๋Œ€ํ•œ ๊ฒฐ๊ณผ 5.25 ๋Œ€์‹  0.05๋ผ๋Š” ์—‰๋šฑํ•œ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค. 


3. ์™œ ์ด๋Ÿฐ ์„ค์ •์ด ์กด์žฌํ• ๊นŒ?

1) ๊ณผ๊ฑฐ ์‹œ์Šคํ…œ์˜ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด

์ดˆ๊ธฐ SAP ์‹œ์Šคํ…œ์€ ํ•˜๋“œ์›จ์–ด๋‚˜ ์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ ์ •์ˆ˜ ๊ธฐ๋ฐ˜ ๊ณ„์‚ฐ์ด ์ผ๋ฐ˜์ ์ด์—ˆ๋‹ค. ๋‹น์‹œ์—๋Š” ๋ถ€๋™ ์†Œ์ˆ˜์  ์—ฐ์‚ฐ์ด ๋น„ํšจ์œจ์ ์ด์—ˆ๊ณ , ๋Œ€๋ถ€๋ถ„์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์‚ฐ์€ ์ •์ˆ˜ ๋‹จ์œ„๋กœ๋„ ์ถฉ๋ถ„ํ–ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ทธ๋Ÿฌํ•œ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์ด๋‹ค. 

2) ํผํฌ๋จผ์Šค ๊ณ ๋ ค

์ •์ˆ˜ ๊ณ„์‚ฐ์€ ๋ถ€๋™ ์†Œ์ˆ˜์  ๊ณ„์‚ฐ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ๊ฐ€๋ณ๋‹ค. ๋Œ€๋Ÿ‰์˜ ๊ณ„์‚ฐ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ๋Š” ์ •์ˆ˜ ์—ฐ์‚ฐ์ด CPU ๋ถ€๋‹ด์„ ์ค„์ด๋Š” ๋ฐ ์œ ๋ฆฌํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ดˆ๊ธฐ์—๋Š” ์ •์ˆ˜ ๊ธฐ๋ฐ˜์˜ ๊ณ„์‚ฐ์ด ๊ธฐ๋ณธ๊ฐ’์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค.

3) ๊ฐœ๋ฐœ์ž ์˜๋„๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด

๊ธˆ์•ก ๊ณ„์‚ฐ ๋“ฑ์—์„œ ์ •ํ™•๋„๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์†Œ์ˆ˜์  ๊ณ„์‚ฐ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉํ•˜๋„๋ก ํ•ด์„œ, ๊ฐœ๋ฐœ์ž์˜ ์˜๋„๋ฅผ ์ฝ”๋“œ๋กœ ๋“œ๋Ÿฌ๋‚ด๋Š” ์ฒ ํ•™์ด ๋ฐ˜์˜๋œ ์„ค์ •์ด๋‹ค. ๋ฌด์กฐ๊ฑด ์†Œ์ˆ˜์  ๊ณ„์‚ฐ์ด ๋˜๋Š” ๊ฒƒ์ด ์˜คํžˆ๋ ค ์˜๋„์น˜ ์•Š์€ ์˜ค๋ฅ˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ช…์‹œ์  ์„ค์ •์ด ํ•„์š”ํ–ˆ๋‹ค.

 

๐Ÿ’ก์ •๋ฆฌํ•ด ๋ณด๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค. 

ํ•ญ๋ชฉ ์„ค๋ช…
๊ธฐ์ˆ ์  ์ด์œ  ์ดˆ๊ธฐ ABAP์€ ๋ฉ”๋ชจ๋ฆฌ·์†๋„ ์ œ์•ฝ์ด ์ปธ๊ณ , ์†Œ์ˆ˜์  ๊ณ„์‚ฐ์€ ๋ฌด๊ฒ๊ณ  ๋А๋ ธ์Œ
์„ค๊ณ„ ์ฒ ํ•™ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„๋ฅผ ๋ช…ํ™•ํžˆ ๋“œ๋Ÿฌ๋‚ด๋Š” ๋ฐฉ์‹ → ๋ช…์‹œ์ ์œผ๋กœ "์ •ํ™•ํ•œ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•˜๋‹ค"๋ผ๊ณ  ์„ ์–ธ
ERP ์ „๋ฐ˜ ๊ณ ๋ ค SAP๋Š” ํšŒ๊ณ„๋งŒ ๋‹ค๋ฃจ์ง€ ์•Š์œผ๋ฉฐ, ์ •์ˆ˜ ๊ณ„์‚ฐ์ด ์ฃผ๊ฐ€ ๋˜๋Š” ๋ชจ๋“ˆ๋„ ๋งŽ์•˜์Œ
์—ญ์‚ฌ์  ๋งฅ๋ฝ 1980~90๋…„๋Œ€ ๋ฉ”์ธํ”„๋ ˆ์ž„ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์˜ ํ•œ๊ณ„ ๋ฐ˜์˜

4. ์–ธ์ œ ๊ผญ ์ฒดํฌํ•ด์•ผ ํ• ๊นŒ?

์ƒํ™ฉ Fixed Point Arithmetic ์ฒดํฌ ์—ฌ๋ถ€
 ๊ธˆ์•ก ๊ณ„์‚ฐ (์˜ˆ: ๋‹จ๊ฐ€ × ์ˆ˜๋Ÿ‰)  โœ… ๋ฐ˜๋“œ์‹œ ์ฒดํฌ
 ๋น„์œจ, ํผ์„ผํŠธ ๊ณ„์‚ฐ โœ… ๋ฐ˜๋“œ์‹œ ์ฒดํฌ
 ๋‹จ์ˆœํ•œ ์กฐ๊ฑด ๋น„๊ต๋‚˜ ์นด์šดํŠธ  โŒ ์„ ํƒ ์‚ฌํ•ญ


 

SAP๋Š” ํšŒ๊ณ„ ์ค‘์‹ฌ ERP์ง€๋งŒ, ABAP ์–ธ์–ด์˜ ๊ธฐ์ˆ ์  ์ถœ๋ฐœ์ ์€ ์„ฑ๋Šฅ๊ณผ ์œ ์—ฐ์„ฑ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ Fixed Point Arithmetic์€ “๊ธˆ์•ก ๊ณ„์‚ฐ์ด ํ•„์š”ํ•  ๋•Œ๋งŒ ๋ช…์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ผ”๋Š” ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๋˜์—ˆ๊ณ , ์˜ค๋Š˜๋‚ ์—๋Š” ๊ธˆ์•ก ์—ฐ์‚ฐ์ด ์ผ๋ฐ˜ํ™”๋˜์—ˆ๊ธฐ์—, ์‚ฌ์‹ค์ƒ ํ•„์ˆ˜๋กœ ๋ณด๋Š” ๊ฒƒ์ด ๋งž๋‹ค.

 

์ง€๊ธˆ์€ ํ•˜๋“œ์›จ์–ด ์‚ฌํ•ญ์ด ๋งŽ์ด ์ข‹์•„์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๊ณผ๊ฑฐ์ฒ˜๋Ÿผ ์†Œ์ˆ˜์  ๊ณ„์‚ฐ์œผ๋กœ ์ธํ•œ ๋ฉ”๋ชจ๋ฆฌ·์†๋„ ์ œ์•ฝ์ด ์—†์œผ๋ฏ€๋กœ ๊ณ ๋ฏผ์—†์ด ํŽธํžˆ ์ฒดํฌํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ฒ ๋‹ค.

 

ํ˜น์‹œ ๊ธฐ์กด ๋ ˆ๊ฑฐ์‹œ ์Šคํƒ ๋‹ค๋“œ ํ”„๋กœ๊ทธ๋žจ์˜ Enhancement ์ถ”๊ฐ€ ์‹œ ( user-exit routine, VOFM routine(SD), enhancement source code in ๋“ฑ ) ๊ธˆ์•ก ๊ณ„์‚ฐํ•  ๋•Œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค๋ฉด Fixed Point Arithmetic ์„ค์ • ์‚ฌํ•ญ์„ ํ•œ๋ฒˆ ์˜์‹ฌํ•ด ๋ณด๋„๋ก ํ•˜์ž.