๊ธ์ต ์ฑ์ ํตํ ๋ฐ์ฌ๋ฆผ: ์์ ํ๊ฒ ๊ธ์ก ์ ์ฅํ๊ธฐ
๊ธ์ต ์ฑ์ ํตํ ๋ฐ์ฌ๋ฆผ์ 1์ผํธ ์ค์ฐจ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค. ์ ์ ์ผํธ ์ ์ฅ๋ฒ, ์ธ๊ธ ๋ฐ์ฌ๋ฆผ ๊ท์น, ์นยท๋ชจ๋ฐ์ผ์์ ์ผ๊ด๋ ํ์ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.

ํ ํผ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋ ์ด์
ํ ํผ ๋ฒ๊ทธ๋ ์ฌ์ฉ์๊ฐ ์ฆ์ ์์์ฐจ๋ฆฌ๋ ์ค์์ ๋๋ค. ์ํ ๋ชฉ๋ก์์๋ $19.99๋ก ๋ณด์ด๋ ํฉ๊ณ๊ฐ ๊ฒฐ์ ๋จ๊ณ์์ $20.00์ด ๋๊ฑฐ๋, $14.38 ํ๋ถ์ด $14.37๋ก ์ฒ๋ฆฌ๋๊ธฐ๋ ํฉ๋๋ค. ์ธ๋ณด์ด์ค์ ํ ์ค์๋ โTax: $1.45โ๋ก ๋์ค๋๋ฐ, ์ดํฉ์ ๋ค๋ฅธ ์ธ๊ธ ๊ณ์ฐ์ผ๋ก ๋ํด์ง ๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์์ต๋๋ค.
์ด๋ฐ ๋ฌธ์ ๋ ๋ณดํต ์์ด๋ ์์ ๋ฐ์ฌ๋ฆผ ์ฐจ์ด์์ ์์ํฉ๋๋ค. ๋์ ๋จ์ํ "์ซ์"๊ฐ ์๋๋๋ค. ํตํ๊ฐ ์ฌ์ฉํ๋ ์์ ์๋ฆฟ์, ์ธ์ ๋ฐ์ฌ๋ฆผํ ์ง, ๋ผ์ธ ํญ๋ชฉ๋ณ๋ก ๋ฐ์ฌ๋ฆผํ ์ง ์ต์ข ํฉ๊ณ์์๋ง ๋ฐ์ฌ๋ฆผํ ์ง ๋ฑ์ ๊ท์น์ด ์์ต๋๋ค. ์ฑ์ ํ ๋ถ๋ถ์ด ๋ค๋ฅธ ์ ํ์ ํ๋ฉด ํ ํผ์ด ์๊ธฐ๊ฑฐ๋ ์ฌ๋ผ์ง ์ ์์ต๋๋ค.
๋ํ ์ด๋ฐ ๋ฌธ์ ๋ ๊ฐ๋๋ง ๋ํ๋ ๋๋ฒ๊ทธ๊ฐ ์ด๋ ต์ต๋๋ค. ๊ฐ์ ์ ๋ ฅ์ด ๊ธฐ๊ธฐ๋ ๋ก์ผ์ผ ์ค์ , ์ฐ์ฐ ์์, ๊ฐ์ ํ์ ๋ณํ ๋ฐฉ์์ ๋ฐ๋ผ ๋ค๋ฅธ ์ผํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
ํํ ์ด๋ฐ ์์ธ์ผ๋ก๋ ๋ถ๋์์์ ์ผ๋ก ๊ณ์ฐํ๊ณ โ๋ง์ง๋ง์โ ๋ฐ์ฌ๋ฆผํ๋ ๊ฒ(ํ์ง๋ง โ๋ง์ง๋งโ์ ๊ณณ๋ง๋ค ๋ค๋ฆ ๋๋ค), ํ ํ๋ฉด์์ ํญ๋ชฉ๋ณ๋ก ์ธ๊ธ์ ์ ์ฉํ๊ณ ๋ค๋ฅธ ๊ณณ์์ ์๊ณ์ ์ ์ฉํ๋ ๊ฒ, ํตํ๋ ํ์จ์ ์์ด ์ผ๊ด์ฑ ์๋ ๋จ๊ณ์์ ๋ฐ์ฌ๋ฆผํ๋ ๊ฒ, ๋๋ ํ์๋ฅผ ์ํด ๊ฐ์ ํฌ๋งทํ๊ณ ์ค์๋ก ๋ค์ ์ซ์๋ก ํ์ฑํ๋ ๊ฒฝ์ฐ ๋ฑ์ด ์์ต๋๋ค.
ํผํด๋ ์ ๋ขฐ๊ฐ ์ค์ํ ๊ณณ์์ ๊ฐ์ฅ ํฝ๋๋ค: ์ฒดํฌ์์ ํฉ๊ณ, ํ๋ถ, ์ธ๋ณด์ด์ค, ๊ตฌ๋ , ํ, ์ง๊ธ ๋ฐ ๋น์ฉ ๋ณด๊ณ ์ ๋ฑ. ํ ํผ ์ฐจ์ด๋ ๊ฒฐ์ ์คํจ, ๋์กฐ ์์ ์ ๊ณจ์นซ๊ฑฐ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ "์ฑ์ด ๋์ ํ์ณ๊ฐ๋ค"๋ ๊ณ ๊ฐ ๋ฌธ์๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.
๋ชฉํ๋ ๋จ์ํฉ๋๋ค: ๋์ผํ ์ ๋ ฅ์ ์ด๋์๋ ๋์ผํ ์ผํธ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๊ฐ์ ์ํ, ๊ฐ์ ์ธ๊ธ, ๊ฐ์ ํ ์ธ, ๊ฐ์ ๋ฐ์ฌ๋ฆผ ๊ท์นโํ๋ฉด, ๊ธฐ๊ธฐ, ์ธ์ด, ๋ด๋ณด๋ด๊ธฐ์ ์๊ด์์ด์.
์์: ๊ฐ์ $9.99 ์ํ 2๊ฐ์ ์ธ์จ 7.25%๊ฐ ์๋ค๋ฉด, ์ธ๊ธ์ ํญ๋ชฉ๋ณ๋ก ๋ฐ์ฌ๋ฆผํ ์ง ์๊ณ์์ ๋ฐ์ฌ๋ฆผํ ์ง ๊ฒฐ์ ํ๊ณ ๋ฐฑ์๋, ์น UI, ๋ชจ๋ฐ์ผ ์ฑ์์ ๋์ผํ๊ฒ ์ ์ฉํ์ธ์. ์ผ๊ด์ฑ์ด "์ ์ฌ๊ธฐ์๋ ๋ค๋ฅด์ง?"๋ผ๋ ์ํฉ์ ์๋ฐฉํฉ๋๋ค.
์ ๋ถ๋์์์ ์ ๋์ ์ํํ๊ฐ
๋๋ถ๋ถ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ float์ double ๊ฐ์ ์ด์ง์ผ๋ก ์ ์ฅํฉ๋๋ค. ๋ง์ ์ญ์ง์ ๊ฐ๊ฒฉ์ ์ด์ง์ผ๋ก ์ ํํ ๋ํ๋ผ ์ ์์ด์, ์ ์ฅํ ๊ฐ์ด ๋ฏธ์ธํ๊ฒ ๋ ํฌ๊ฑฐ๋ ์์์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๊ณ ์ ์ ์ธ ์๋ 0.1 + 0.2์
๋๋ค. ๋ง์ ์์คํ
์์ 0.30000000000000004๊ฐ ๋ฉ๋๋ค. ๊ฒ๋ณด๊ธฐ์ ์ฌ์ํด ๋ณด์ด์ง๋ง, ๋ ๋ก์ง์ ๋ณดํต ์ฐ๊ฒฐ๋ ์ฒด์ธ์
๋๋ค: ์ํ ๊ฐ๊ฒฉ, ํ ์ธ, ์ธ๊ธ, ์์๋ฃ, ๊ทธ๋ฆฌ๊ณ ์ต์ข
๋ฐ์ฌ๋ฆผ. ์์ ์ค์ฐจ๊ฐ ๋ฐ์ฌ๋ฆผ ๊ฒฐ์ ์ ๋ฐ๊ฟ ํ ํผ ์ฐจ์ด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ฌ๋๋ค์ด ๋ ๋ฐ์ฌ๋ฆผ์ด ์๋ชป๋๋ค๊ณ ๋๋ ๋ ๋ํ๋๋ ์ฆ์๋ค:
- ๋ก๊ทธ๋ API ์๋ต์
9.989999๋19.9000001๊ฐ์ ๊ฐ์ด ๋ณด์ธ๋ค. - ๋ง์ ํญ๋ชฉ์ ๋ํ ํ ํฉ๊ณ๊ฐ ์กฐ๊ธ์ฉ ์ด๊ธ๋๋ค.
- ํ๋ถ ํฉ๊ณ๊ฐ ์๋ ์ฒญ๊ตฌ์ก๊ณผ $0.01 ์ฐจ์ด๊ฐ ๋๋ค.
- ๊ฐ์ ์นดํธ ํฉ๊ณ๊ฐ ์น, ๋ชจ๋ฐ์ผ, ๋ฐฑ์๋์์ ๋ค๋ฅด๊ฒ ๋์จ๋ค.
ํฌ๋งทํ
์ ์ข
์ข
๋ฌธ์ ๋ฅผ ์จ๊น๋๋ค. 9.989999๋ฅผ ์์ ๋์งธ ์๋ฆฌ๋ก ์ถ๋ ฅํ๋ฉด 9.99๋ก ๋ณด์ด๋ฏ๋ก ๋ชจ๋ ๊ฒ์ด ๋ง์ ๋ณด์
๋๋ค. ๋ฒ๊ทธ๋ ์ฌ๋ฌ ๊ฐ์ ํฉํ๊ฑฐ๋, ํฉ๊ณ๋ฅผ ๋น๊ตํ๊ฑฐ๋, ์ธ๊ธ ํ ๋ฐ์ฌ๋ฆผํ ๋ ๋๋ฌ๋ฉ๋๋ค. ๊ทธ๋์ ํ๋ค์ด ์ด ๋ฌธ์ ๋ฅผ ๋ฐฐํฌ ํ ๊ฒฐ์ ์ ๊ณต์๋ ํ๊ณ ๋ด๋ณด๋ด๊ธฐ์ ๋์กฐํ๋ฉด์ ๋ฐ๊ฒฌํ๊ณค ํฉ๋๋ค.
๊ฐ๋จํ ๊ท์น: ๋์ ๋ถ๋์์์ ์ผ๋ก ์ ์ฅํ๊ฑฐ๋ ํฉ์ฐํ์ง ๋ง์ธ์. ํตํ๋ฅผ ๊ทธ ํตํ์ ์์ ๋จ์(์: ์ผํธ)๋ก ์ ์ ์๋ ์ ์๋ก ์ทจ๊ธํ๊ฑฐ๋, ์ ํํ ์ญ์ง์ ์ฐ์ฐ์ ๋ณด์ฅํ๋ decimal ํ์ ์ ์ฌ์ฉํ์ธ์.
๋ฐฑ์๋, ์น ์ฑ, ๋ชจ๋ฐ์ผ ์ฑ(๋๋ AppMaster ๊ฐ์ ๋ ธ์ฝ๋ ํ๋ซํผ ํฌํจ)์ ๋น๋ํ ๋๋ ํญ์ ๊ฐ์ ์์น์ ์งํค์ธ์: ์ ํํ ๊ฐ์ ์ ์ฅํ๊ณ , ์ ํํ ๊ฐ์ผ๋ก ๊ณ์ฐํ๋ฉฐ, ํ์ํ ๋๋ง ํฌ๋งทํ์ธ์.
์ค์ ํตํ๋ฅผ ๋ฐ์ํ๋ ๋จธ๋ ๋ชจ๋ธ์ ์ ํํ์ธ์
๋๋ถ๋ถ์ ๋จธ๋ ๋ฒ๊ทธ๋ ์ฐ์ ์ด์ ์ ์์๋ฉ๋๋ค: ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ํตํ์ ์ค์ ์๋ ๋ฐฉ์์ ๋ฐ์ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ๋ชจ๋ธ์ ์ฒ์์ ์ฌ๋ฐ๋ฅด๊ฒ ์ก์ผ๋ฉด ๋ฐ์ฌ๋ฆผ์ ์ถ์ธก ๋ฌธ์ ๊ฐ ์๋๋ผ ๊ท์น ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค.
๊ฐ์ฅ ์์ ํ ๊ธฐ๋ณธ์ ๊ธ์ก์ ํตํ์ ์์ ๋จ์ ์ ์๋ก ์ ์ฅํ๋ ๊ฒ์ ๋๋ค. USD๋ ์ผํธ, EUR๋ ์ ๋ก ์ผํธ์ฒ๋ผ์. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ๋๋ ์ ํํ ์ ์๋ฅผ ๋ค๋ฃจ๊ณ , ์ฌ๋์๊ฒ ๋ณด์ฌ์ค ๋๋ง "์์์ "์ ๋ํฉ๋๋ค.
๋ชจ๋ ํตํ๊ฐ ์์ ๋์งธ ์๋ฆฌ(2์๋ฆฌ)๋ฅผ ์ฐ๋ ๊ฒ์ ์๋๋ฏ๋ก ๋ชจ๋ธ์ ํตํ๋ฅผ ์ธ์ํด์ผ ํฉ๋๋ค. JPY๋ ์์ ๋จ์๊ฐ 0์ด๊ณ (1์์ด ์ต์ ๋จ์), BHD๋ ๋ณดํต 3์๋ฆฌ(1๋๋๋ฅด = 1000 ํ์ค)๋ฅผ ์ฌ์ฉํฉ๋๋ค. "ํญ์ ๋ ์๋ฆฌ"๋ก ํ๋์ฝ๋ฉํ๋ฉด ์กฐ์ฉํ ๊ณผ์ฒญ๊ตฌํ๊ฑฐ๋ ๋ถ์กฑ ์ฒญ๊ตฌํ ์ ์์ต๋๋ค.
์ค์ฉ์ ์ธ ๋จธ๋ ๋ ์ฝ๋๋ ๋ณดํต ๋ค์์ด ํ์ํฉ๋๋ค:
amount_minor(์ ์, ์: $19.99๋ฉด 1999)currency_code(USD, EUR, JPY ๊ฐ์ ๋ฌธ์์ด)- ์์คํ
์์ ์กฐํ๊ฐ ์ด๋ ค์ฐ๋ฉด ์ ํ์
minor_unit๋๋scale(0, 2, 3)
๊ธ์ก๋ง๋ค ํตํ ์ฝ๋๋ฅผ ํจ๊ป ์ ์ฅํ์ธ์(๊ฐ์ ํ ์ด๋ธ ์์ด๋ผ๋). ๋ค์ค ํตํ ๊ฐ๊ฒฉ, ํ๋ถ, ๋ณด๊ณ ์ ๋ฑ์ ๋์ค์ ์ถ๊ฐํ ๋ ์ค์๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
๋ํ ์ด๋์์ ๋ฐ์ฌ๋ฆผ์ ํ์ฉํ๊ณ ์ด๋์์ ๊ธ์งํ ์ง ๊ฒฐ์ ํ์ธ์. ์ ํตํ๋ ํ ์ ์ฑ ์: ๋ด๋ถ ํฉ๊ณ, ํ ๋น, ์์ฅ ๋๋ ์งํ ์ค์ธ ๋ณํ์์๋ ๋ฐ์ฌ๋ฆผํ์ง ๋ง๊ณ ; ์ธ๊ธ ๋จ๊ณ, ํ ์ธ ๋จ๊ณ, ์ต์ข ์ธ๋ณด์ด์ค ๋ผ์ธ์ฒ๋ผ ์ ์๋ ๊ฒฝ๊ณ์์๋ง ๋ฐ์ฌ๋ฆผํ๋ผ; ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉํ ๋ฐ์ฌ๋ฆผ ๋ชจ๋(half up, half even, ๋ด๋ฆผ ๋ฑ)๋ฅผ ๊ธฐ๋กํด ๊ฒฐ๊ณผ๋ฅผ ์ฌํ ๊ฐ๋ฅํ๊ฒ ํ๋ผ ์ ๋๋ค.
๋จ๊ณ๋ณ: ์์ ๋จ์ ์ ์๋ก ๊ธ์ก ๊ตฌํํ๊ธฐ
๋๋ ๋งํผ ์ ์ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ์ ์ํ๋ฉด ๋ด๋ถ์์ ํ๋์ ๊ธ์ก ํํ์ ์ ํํ๊ณ ๊นจ์ง์ง ์๊ฒ ์ ์งํ์ธ์: ๊ธ์ก์ ํตํ์ ์์ ๋จ์(๋ณดํต ์ผํธ) ์ ์๋ก ์ ์ฅํฉ๋๋ค.
์: $10.99๋ 1099์ด๊ณ ํตํ๋ USD์
๋๋ค. ์์ ๋จ์๊ฐ ์๋ ํตํ์ธ JPY๋ 1500์์ด 1500์ผ๋ก ๋จ์ต๋๋ค.
ํ์ฅ ๊ฐ๋ฅํ ๊ฐ๋จํ ๊ตฌํ ๊ฒฝ๋ก:
- ๋ฐ์ดํฐ๋ฒ ์ด์ค:
amount_minor๋ฅผ 64๋นํธ ์ ์๋ก ์ ์ฅํ๊ณ ํตํ ์ฝ๋๋ฅผ ํจ๊ป ๋ณด๊ดํ์ธ์. ์ปฌ๋ผ ์ด๋ฆ์ ๋ช ํํ ํด์ ๋๊ตฐ๊ฐ๊ฐ ์์ํ์ผ๋ก ์ฐฉ๊ฐํ์ง ์๊ฒ ํฉ๋๋ค. - API ๊ณ์ฝ:
{ amount_minor: 1099, currency:"USD"}์ฒ๋ผ ์ ์กํ์ธ์."$10.99"๊ฐ์ ํฌ๋งท ๋ฌธ์์ด์ด๋ JSON ๋ถ๋์์์ ์ ํผํ์ธ์. - UI ์ ๋ ฅ: ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๊ฒ์ ์ซ์ ๋์ ํ ์คํธ๋ก ์ทจ๊ธํ์ธ์. ์ ๊ทํ(๊ณต๋ฐฑ ์ ๊ฑฐ, ํ๋์ ์์ ๊ตฌ๋ถ์ ํ์ฉ)ํ ๋ค ํตํ์ ์์ ๋จ์ ์๋ฆฟ์๋ก ๋ณํํ์ธ์.
- ๋ชจ๋ ๊ณ์ฐ์ ์ ์๋ก: ํฉ๊ณ, ๋ผ์ธ ํฉ๊ณ, ํ ์ธ, ์์๋ฃ, ์ธ๊ธ์ ๋ชจ๋ ์ ์๋ก ์ฐ์ฐํ์ธ์. ์: โ๋ฐฑ๋ถ์จ ํ ์ธ์ ๊ณ์ฐ ํ ์์ ๋จ์๋ก ๋ฐ์ฌ๋ฆผํ๋คโ ๊ฐ์ ๊ท์น์ ์ ์ํ๊ณ ํญ์ ๋์ผํ๊ฒ ์ ์ฉํ์ธ์.
- ํ์๋ ๋ง์ง๋ง์๋ง: ๋์ ๋ณด์ฌ์ค ๋
amount_minor๋ฅผ ๋ก์ผ์ผ๊ณผ ํตํ ๊ท์น์ผ๋ก ๋ฌธ์์ด๋ก ๋ณํํ์ธ์. ์์ ์ ํฌ๋งท ์ถ๋ ฅ๋ฌผ์ ๋ค์ ์ํ์ ํ์ฑํ์ง ๋ง์ธ์.
์ค์ฉ์ ํ์ฑ ์: USD๋ผ๋ฉด "12.3"์ "12.30"์ผ๋ก ๊ฐ์ฃผํ ๋ค 1230์ผ๋ก ๋ณํํ์ธ์. JPY์ ๊ฒฝ์ฐ ์์ ์
๋ ฅ์ ์ด๊ธฐ์ ๊ฑฐ๋ถํ์ธ์.
์ธ๊ธ, ํ ์ธ, ์์๋ฃ ๋ฐ์ฌ๋ฆผ ๊ท์น
๋๋ถ๋ถ์ ํ ํผ ๋ถ์์ ์ฐ์ ์ค์ ๋๋ฌธ์ด ์๋๋๋ค. ์ ์ฑ ์ฐจ์ด ๋๋ฌธ์ ๋๋ค. ๋ ์์คํ ์ด ๋ชจ๋ "์ ํ"ํ ์ ์์ง๋ง ์๋ก ๋ค๋ฅธ ์์ ์์ ๋ฐ์ฌ๋ฆผํ๋ฉด ์ฌ์ ํ ๋ถ์ผ์นํฉ๋๋ค.
๋ฐ์ฌ๋ฆผ ์ ์ฑ ์ ๋ฌธ์ํํ๊ณ ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉํ์ธ์: ๊ณ์ฐ, ์์์ฆ, ๋ด๋ณด๋ด๊ธฐ, ํ๋ถ. ์ผ๋ฐ์ ์ ํ์๋ ๋ฐ์ฌ๋ฆผ half-up(0.5 ์ฌ๋ฆผ)๊ณผ half-even(0.5๊ฐ ๊ฐ์ฅ ๊ฐ๊น์ด ์ง์๋ก) ๋ฑ์ด ์์ต๋๋ค. ์ผ๋ถ ์์๋ฃ๋ ํญ์ ์ฌ๋ฆผ(ceiling)์ ์๊ตฌํด ๋ถ์กฑ ์ฒญ๊ตฌ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
์ดํฉ์ ๋ณดํต ๋ค์ ๊ฒฐ์ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค: ๋ผ์ธ๋ณ๋ก ๋ฐ์ฌ๋ฆผํ ์ง ์ธ๋ณด์ด์ค๋ณ๋ก ๋ฐ์ฌ๋ฆผํ ์ง, ๊ท์น์ ์์ง ์์๋์ง(์: ์ธ๊ธ์ ๋ผ์ธ๋ณ, ์์๋ฃ๋ ์ธ๋ณด์ด์ค๋ณ) ๋ฐ ๊ฐ๊ฒฉ์ด ์ธ๊ธ ํฌํจ์ธ์ง(์์ก๊ณผ ์ธ๊ธ์ ์ญ์ฐ) ๋๋ ์ธ๊ธ ์ ์ธ์ธ์ง(์์ก์ผ๋ก๋ถํฐ ์ธ๊ธ ๊ณ์ฐ) ์ฌ๋ถ.
ํ ์ธ์ ๋ ๋ค๋ฅธ ๊ฐ๋๋ฅผ ๋ง๋ญ๋๋ค. "10% ํ ์ธ"์ ์ธ์ ์ผ๋ก ์ ์ฉํ๋ฉด ๊ณผ์ธ ๊ธฐ์ค์ด ๊ฐ์ํ๊ณ , ์ธ๊ธ ํ์ ์ ์ฉํ๋ฉด ๊ณ ๊ฐ์ด ๋ด๋ ๊ธ์ก์ ์ค์ง๋ง ์ ๊ณ ๋ ์ธ๊ธ์ ๋ฌ๋ผ์ง์ง ์์ ์ ์์ต๋๋ค(๊ดํ ๊ตฌ๋ ๊ณ์ฝ์ ๋ฐ๋ผ ๋ค๋ฆ).
์์ ์์๊ฐ ๊ท์น์ ์ค์์ฑ์ ๋ณด์ฌ์ค๋๋ค. $9.99์ง๋ฆฌ ์ํ 2๊ฐ์ 7.5% ์ธ์จ์ด ์๋ค๋ฉด, ๋ผ์ธ๋ณ๋ก ์ธ๊ธ์ ๋ฐ์ฌ๋ฆผํ๋ฉด ๊ฐ ๋ผ์ธ ์ธ๊ธ์ $0.75(9.99 x 0.075 = 0.74925)๋ก ๋์ด ์ด ์ธ๊ธ์ $1.50๊ฐ ๋ฉ๋๋ค. ์ธ๋ณด์ด์ค ํฉ๊ณ์์ ์ธ๊ธ์ ๊ณ์ฐํด๋ ์ฌ๊ธฐ์๋ $1.50์ด์ง๋ง, ๊ฐ๊ฒฉ์ ์กฐ๊ธ ๋ฐ๊พธ๋ฉด 1์ผํธ ์ฐจ์ด๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ง์๊ณผ ์ฌ๋ฌด๊ฐ ์ฝ๊ฒ ์ค๋ช ํ ์ ์๋๋ก ๊ท์น์ ํ์ดํ ์ธ์ด๋ก ์์ฑํ์ธ์. ๊ทธ๋ฐ ๋ค์ ๋์ผํ ํฌํผ๋ฅผ ์ธ๊ธ, ์์๋ฃ, ํ ์ธ, ํ๋ถ์ ์ฌ์ฌ์ฉํ์ธ์.
์ด์ก์ด ํ๋ ค์ง์ง ์๋ ํตํ ๋ณํ
๋ค์ค ํตํ ์ฐ์ ์ ์์ ๋ฐ์ฌ๋ฆผ ์ ํ์ด ํฉ๊ณ๋ฅผ ์์ํ ๋ฐ๊ฟ ์ ์๋ ๊ณณ์ ๋๋ค. ๋ชฉํ๋ ๋จ์ํฉ๋๋ค: ํ ๋ฒ ๋ณํํ๊ณ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ๋ฐ์ฌ๋ฆผํ๋ฉฐ ์๋ณธ ์ฌ์ค์ ๋ณด๊ดํ์ธ์.
ํ์จ์ ๋ช
์์ ์ ๋ฐ๋๋ก ์ ์ฅํ์ธ์. ํํ ํจํด์ rate_micro์ฒ๋ผ ์ค์ผ์ผ๋ ์ ์๋ก ์ ์ฅํ๋ ๊ฒ(์: 1.234567์ 1234567๋ก, ์ค์ผ์ผ 1,000,000)์
๋๋ค. ๋ ๋ค๋ฅธ ์ต์
์ ๊ณ ์ ์์ ํ์
์ด์ง๋ง, ํ๋์ ์ค์ผ์ผ์ ์ ์ด๋์ด ์ถ์ธกํ ์ ์๊ฒ ํ์ธ์.
๋ณด๊ณ ๋ฐ ํ๊ณ์ฉ ๊ธฐ๋ณธ ํตํ๋ฅผ ์ ํ์ธ์(๋ณดํต ํ์ฌ ํตํ). ๋ค์ด์ค๋ ๊ธ์ก์ ์์ฅ๊ณผ ๋ถ์์ ์ํด ๊ธฐ๋ณธ ํตํ๋ก ๋ณํํ๋ ์๋ ํตํ์ ๊ธ์ก๋ ๊ฐ์ด ๋ณด๊ดํ์ธ์. ๊ทธ๋ ๊ฒ ํ๋ฉด ๋์ค์ ๋ชจ๋ ์ซ์๋ฅผ ์ค๋ช ํ ์ ์์ต๋๋ค.
ํ๋ฆ์ ๋ง๋ ๊ท์น๋ค:
- ํ๊ณ์์๋ ํ ๋ฐฉํฅ(์ธํ โ ๊ธฐ๋ณธํ)์ผ๋ก๋ง ๋ณํํ๊ณ , ์๋ค๊ฐ๋ค ๋ณํํ์ง ๋ง์ธ์.
- ๋ฐ์ฌ๋ฆผ ์์ ์ ๊ฒฐ์ ํ์ธ์: ๋ผ์ธ๋ณ๋ก ๋ฐ์ฌ๋ฆผํด์ผ ๋ผ์ธ ํฉ๊ณ๋ฅผ ๋ณด์ฌ์ค์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ , ์ดํฉ๋ง ๋ณด์ฌ์ฃผ๋ฉด ๋์์ ๋ฐ์ฌ๋ฆผํ ์ ์์ต๋๋ค.
- ๋ฐ์ฌ๋ฆผ ๋ชจ๋๋ฅผ ์ผ๊ด๋๊ฒ ์ฌ์ฉํ๊ณ ๋ฌธ์ํํ์ธ์.
- ์๊ธ์ก, ํตํ, ๊ฑฐ๋์ ์ฌ์ฉ๋ ์ ํํ ํ์จ์ ์ ์ฅํ์ธ์.
์: ๊ณ ๊ฐ์ด 19.99 EUR๋ฅผ ๊ฒฐ์ ํ๋ฉด ์ด๋ฅผ 1999 minor units์ currency=EUR๋ก ์ ์ฅํ๊ณ , ์ฒดํฌ์์ ๋น์ ์ฌ์ฉํ ํ์จ(์: EURโUSD๋ฅผ ๋ง์ดํฌ๋ก ๋จ์๋ก)์ ํจ๊ป ์ ์ฅํฉ๋๋ค. ์์ฅ์ ๋ณํ๋ USD ๊ธ์ก(์ ํํ ๋ฐ์ฌ๋ฆผ ๊ท์น์ผ๋ก ๋ฐ์ฌ๋ฆผ)์ ์ ์ฅํ์ง๋ง, ํ๋ถ์ ์ ์ฅ๋ ์๋ EUR ๊ธ์ก๊ณผ ํตํ๋ฅผ ์ฌ์ฉํ์ง USD์์ ๋ค์ ๋ณํํ์ง ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด "์ 19.98 EUR๋ฅผ ๋๋ ค๋ฐ์๋์?" ๊ฐ์ ๋ฌธ์๋ฅผ ๋ง์ ์ ์์ต๋๋ค.
๊ธฐ๊ธฐ ๊ฐ ํฌ๋งทํ ๊ณผ ํ์
์ต์ข ๋จ๊ณ๋ ํ๋ฉด์ ๋๋ค. ์ ์ฅ์์ผ๋ก ๊ฐ์ด ๋ง๋๋ผ๋ ํฌ๋งทํ ์ด ์น๊ณผ ๋ชจ๋ฐ์ผ ๊ฐ์ ๋ค๋ฅด๋ฉด ํ๋ฆฌ๊ฒ ๋ณด์ผ ์ ์์ต๋๋ค.
๋ก์ผ์ผ๋ง๋ค ๊ตฌ๋์ ๊ณผ ์ฌ๋ณผ ์์น๊ฐ ๋ค๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฏธ๊ตญ ์ฌ์ฉ์๋ $1,234.50์ ๊ธฐ๋ํ์ง๋ง, ์ ๋ฝ ๋ง์ ์ง์ญ์์๋ 1.234,50 โฌ๋ฅผ ๊ธฐ๋ํฉ๋๋ค(๊ฐ์ ๊ฐ, ๋ค๋ฅธ ๊ตฌ๋ถ์์ ์ฌ๋ณผ ์์น). ํฌ๋งท์ ํ๋์ฝ๋ฉํ๋ฉด ์ฌ์ฉ์๋ฅผ ํผ๋์ค๋ฝ๊ฒ ํ๊ณ ์ง์ ๋น์ฉ์ ๋๋ฆฝ๋๋ค.
ํ ๊ฐ์ง ๊ท์น์ ์งํค์ธ์: ์ฝ์ด์์ ํฌ๋งทํ์ง ๋ง๊ณ ๊ฒฝ๊ณ์์ ํฌ๋งทํ์ธ์. ์ง์ค์ ์์ฒ์ (currency code, minor units integer) ์ฌ์ผ ํฉ๋๋ค. ๋ฌธ์์ด๋ก ๋ฐ๊ฟ ๋๋ง ํฌ๋งทํ๊ณ , ํฌ๋งท๋ ๋ฌธ์์ด์ ๋ค์ ํ์ฑํ์ง ๋ง์ธ์. ๊ทธ ๊ณผ์ ์์ ๋ฐ์ฌ๋ฆผ, ํธ๋ฆฌ๋ฐ, ๋ก์ผ์ผ ๊ด๋ จ ๋๋ผ์์ด ์จ์ด๋ญ๋๋ค.
ํ๋ถ ๊ฐ์ ์์ ๊ธ์ก์ ์ผ๊ด๋ ์คํ์ผ์ ์ ํํ์ธ์. ์ด๋ค ์์คํ
์ -$12.34๋ก, ๋ค๋ฅธ ์์คํ
์ ($12.34)๋ก ํ์ํฉ๋๋ค. ๋ ๋ค ๊ด์ฐฎ์ง๋ง ํ๋ฉด๋ง๋ค ๋ฐ๋๋ฉด ์ค๋ฅ์ฒ๋ผ ๋ณด์
๋๋ค.
๊ฐ๋จํ ๊ธฐ๊ธฐ ๊ฐ ๊ณ์ฝ:
- ํตํ๋ ๊ธฐํธ๊ฐ ์๋ ISO ์ฝ๋(์: USD, EUR)๋ก ์ ๋ฌํ์ธ์.
- ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๊ธฐ ๋ก์ผ์ผ์ ์ฌ์ฉํด ํฌ๋งทํ๋ ์ฑ ๋ด ์ค๋ฒ๋ผ์ด๋๋ฅผ ํ์ฉํ์ธ์.
- ๋ค์ค ํตํ ํ๋ฉด์์๋ ๊ธ์ก ์์ ํตํ ์ฝ๋๋ฅผ ํ์ํ์ธ์(์:
12.34 USD). - ์ ๋ ฅ ํฌ๋งท๊ณผ ํ์ ํฌ๋งท์ ๋ถ๋ฆฌํ์ธ์.
- ํฌ๋งท ์ ์ ๊ท์น์ ๋ฐ๋ผ ํ ๋ฒ ๋ฐ์ฌ๋ฆผํ์ธ์.
์: ๊ณ ๊ฐ์ด ๋ชจ๋ฐ์ผ์์ 10,00 EUR ํ๋ถ์ ๋ณด๊ณ ๋ฐ์คํฌํ์์ -โฌ10์ ๋ณด๋ฉด ํผ๋ํ ์ ์์ต๋๋ค. ์ฝ๋(10,00 EUR)๋ฅผ ๊ฐ์ด ๋ณด์ฌ์ฃผ๊ณ ์์ ์คํ์ผ์ ์ผ๊ด๋๊ฒ ์ฐ๋ฉด ๋ณ๊ฒฝ๋์๋์ง ๊ถ๊ธํดํ์ง ์์ต๋๋ค.
์์: ์์ธก ๊ฐ๋ฅํ ์ฒดํฌ์์, ์ธ๊ธ, ํ๋ถ
๊ฐ๋จํ ์นดํธ:
- Item A: $4.99 (499 cents)
- Item B: $2.50 (250 cents)
- Item C: $1.20 (120 cents)
์๊ณ = 869 cents ($8.69). ๋จผ์ 10% ํ ์ธ ์ ์ฉ: 869 x 10% = 86.9 cents โ 87 cents๋ก ๋ฐ์ฌ๋ฆผ. ํ ์ธ๋ ์๊ณ = 782 cents ($7.82). ์ด์ ์ธ๊ธ 8.875%๋ฅผ ์ ์ฉํฉ๋๋ค.
์ฌ๊ธฐ์ ๋ฐ์ฌ๋ฆผ ๊ท์น์ด ์ต์ข ํ๋๋ฅผ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
์ธ๋ณด์ด์ค ์ด์ก์ ๋ํด ์ธ๊ธ์ ๊ณ์ฐํ๋ฉด: 782 x 8.875% = 69.4025 cents โ 69 cents๋ก ๋ฐ์ฌ๋ฆผ.
๋ผ์ธ๋ณ๋ก(ํ ์ธ ํ) ์ธ๊ธ์ ๊ณ์ฐํ๊ณ ๊ฐ ๋ผ์ธ์์ ๋ฐ์ฌ๋ฆผํ๋ฉด:
- Item A: $4.49 ์ธ๊ธ = 39.84875 cents โ 40
- Item B: $2.25 ์ธ๊ธ = 19.96875 cents โ 20
- Item C: $1.08 ์ธ๊ธ = 9.585 cents โ 10
๋ผ์ธ ์ธ๊ธ ํฉ๊ณ = 70 cents. ๋์ผํ ์นดํธ, ๋์ผํ ์ธ์จ์ด์ง๋ง ๋ค๋ฅธ ์ ํจํ ๊ท์น์ผ๋ก 1์ผํธ ์ฐจ์ด๊ฐ ๋ฐ์ํฉ๋๋ค.
์ธ๊ธ ํ์ ๋ฐฐ์ก๋น 399 cents($3.99)๋ฅผ ๋ํ๋ฉด ์ดํฉ์ ์ธ๋ณด์ด์ค ๋ ๋ฒจ ์ธ๊ธ์ผ ๋ $12.50, ๋ผ์ธ ๋ ๋ฒจ ์ธ๊ธ์ผ ๋ $12.51๊ฐ ๋ฉ๋๋ค. ํ๋์ ๊ท์น์ ์ ํํ๊ณ ๋ฌธ์ํํ ๋ค ์ผ๊ด๋๊ฒ ์ ์งํ์ธ์.
์ด์ Item B๋ง ํ๋ถํ๋ค๊ณ ํฉ์๋ค. ํ ์ธ๋ ๊ฐ๊ฒฉ(225 cents)๊ณผ ํด๋น ํญ๋ชฉ์ ์ํ ์ธ๊ธ์ ํ๋ถํ์ธ์. ๋ผ์ธ ๋ ๋ฒจ ์ธ๊ธ์ด๋ฉด 225 + 20 = 245 cents($2.45)์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋๋จธ์ง ํฉ๊ณ๊ฐ ์ ํํ ๋ง์๋จ์ด์ง๋๋ค.
๋์ค์ ๋ถ์ผ์น๋ฅผ ์ค๋ช ํ๋ ค๋ฉด ๊ฐ ์ฒญ๊ตฌ ๋ฐ ํ๋ถ์ ๋ํด ๋ค์ ๊ฐ์ ๋ก๊น ํ์ธ์:
- ๋ผ์ธ๋ณ ์์ก ์ผํธ, ๋ผ์ธ๋ณ ์ธ๊ธ ์ผํธ, ์ฌ์ฉํ ๋ฐ์ฌ๋ฆผ ๋ชจ๋
- ์ธ๋ณด์ด์ค ํ ์ธ ์ผํธ์ ํ ๋น ๋ฐฉ์
- ์ฌ์ฉ๋ ์ธ์จ๊ณผ ๊ณผ์ธ ๊ธฐ์ค ์ผํธ
- ๋ฐฐ์ก/์์๋ฃ ์ผํธ์ ๊ณผ์ธ ์ฌ๋ถ
- ์ต์ข ํฉ๊ณ ์ผํธ์ ํ๋ถ ์ผํธ
๊ธ์ก ๊ณ์ฐ์ ํ ์คํธํ๋ ๋ฐฉ๋ฒ
๋๋ถ๋ถ์ ๋จธ๋ ๋ฒ๊ทธ๋ ์ฐ์ ๋ฒ๊ทธ๊ฐ ์๋๋๋ค. ๋ฐ์ฌ๋ฆผ, ์์, ํฌ๋งทํ ๋ฒ๊ทธ๋ก ํน์ ์นดํธ๋ ๋ ์ง์๋ง ๋๋ฌ๋ฉ๋๋ค. ์ข์ ํ ์คํธ๋ ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ค์ ํ๋ฒํ๊ฒ ๋ง๋ญ๋๋ค.
๊ณจ๋ ํ ์คํธ๋ก ์์ํ์ธ์: ๊ณ ์ ์ ๋ ฅ๊ณผ ๋ง์ด๋ ๋จ์(์ผํธ)๋ก ์ ํํ ๊ธฐ๋๊ฐ์ ๊ฐ์ง ํ ์คํธ์ ๋๋ค. ์ฃผ์ฅ(assertion)์ ์๊ฒฉํ๊ฒ ํ์ธ์. ์์ดํ ์ด 199 cents์ด๊ณ ์ธ๊ธ์ด 15 cents๋ผ๋ฉด, ํ ์คํธ๋ ์ ์ ๊ฐ์ ๊ฒ์ฌํด์ผ ํ๊ณ ํฌ๋งท ๋ฌธ์์ด์ ๊ฒ์ฌํ๋ฉด ์ ๋ฉ๋๋ค.
์์ ๊ณจ๋ ์ธํธ๋ก๋ ๋ง์ ๊ฒฝ์ฐ๋ฅผ ์ปค๋ฒํ ์ ์์ต๋๋ค:
- ์ธ๊ธ, ํ ์ธ, ์์๋ฃ๊ฐ ์๋ ๋จ์ผ ๋ผ์ธ ์์ดํ (๊ฐ ์ค๊ฐ ๋ฐ์ฌ๋ฆผ ๊ฒ์ฌ)
- ๋ผ์ธ๋ณ ๋ฐ์ฌ๋ฆผ ๋ ์๊ณ ๋ฐ์ฌ๋ฆผ(์ ํํ ๊ท์น ๊ฒ์ฆ)
- ํ๋ถ ๋ฐ ๋ถ๋ถ ํ๋ถ(๊ธฐํธ์ ๋ฐ์ฌ๋ฆผ ๋ฐฉํฅ ๊ฒ์ฆ)
- ๋ณํ ์๋ณต(AโBโA)๊ณผ ๋ฐ์ฌ๋ฆผ ์์น์ ๋ํ ์ ์ฑ
- ๊ฒฝ๊ณ๊ฐ(1์ผํธ ์์ดํ , ๋๋ ์๋, ๋งค์ฐ ํฐ ์ดํฉ)
๊ทธ๋ค์ ์์ฑ ๊ธฐ๋ฐ ๊ฒ์ฌ(property-based checks)๋ ๋จ์ ๋ฌด์์ ํ ์คํธ๋ฅผ ์ถ๊ฐํด ๋๋ผ์ด ๊ฒฝ์ฐ๋ฅผ ์ก์ผ์ธ์. ํ๋์ ๊ธฐ๋๊ฐ ๋์ ๋ถ๋ณ์์ ์ฃผ์ฅํ์ธ์: ์ดํฉ์ ๋ผ์ธ ํฉ๊ณ์ ํฉ๊ณผ ๊ฐ๋ค, ๋ถ์ ์์ ๋จ์๋ ์ ๋ ๋ํ๋์ง ์๋๋ค, "์ดํฉ = ์๊ณ + ์ธ๊ธ + ์์๋ฃ - ํ ์ธ"์ด ํญ์ ์ฑ๋ฆฝํ๋ค ๋ฑ.
ํฌ๋ก์ค ํ๋ซํผ ํ ์คํธ๋ ์ค์ํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ฐฑ์๋์ ํด๋ผ์ด์ธํธ ์ฌ์ด์์ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. Go ๋ฐฑ์๋, Vue ์น ์ฑ, Kotlin/SwiftUI ๋ชจ๋ฐ์ผ์ด ์๋ค๋ฉด ๊ฐ ๊ณ์ธต์์ ๋์ผํ ํ ์คํธ ๋ฒกํฐ๋ฅผ ์คํํ๊ณ UI ๋ฌธ์์ด์ด ์๋๋ผ ์ ์ ์ถ๋ ฅ๊ฐ์ ๋น๊ตํ์ธ์.
๋ง์ง๋ง์ผ๋ก ์๊ฐ์ ๋ฐ๋ฅธ ์ผ์ด์ค๋ฅผ ํ ์คํธํ์ธ์. ์ธ๋ณด์ด์ค์ ์ฌ์ฉ๋ ์ธ์จ์ ์ ์ฅํ๊ณ ์ธ์จ ๋ณ๊ฒฝ ํ์๋ ์ด์ ์ธ๋ณด์ด์ค๊ฐ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๊ณ์ฐํ๋์ง ๊ฒ์ฆํ์ธ์. ์ฌ๊ธฐ์์ "์ด์ ์๋ ์ผ์นํ๋๋ฐ ์ด์ ๋ค๋ฅด๋ค"๋ ๋ฒ๊ทธ๊ฐ ์๊น๋๋ค.
ํผํด์ผ ํ ํํ ํจ์
๋๋ถ๋ถ์ ํ ํผ ๋ฒ๊ทธ๋ ์ฐ์ ์ค์๊ฐ ์๋๋ผ ์ ์ฑ ์ ๋ฌธ์ ์ ๋๋ค: ์ฝ๋๊ฐ ์ ํํ ์ํจ ๋๋ก ๋์ํ๋๋ฐ ์ฌ๋ฌด๊ฐ ๊ธฐ๋ํ ๋ฐฉ์๊ณผ ๋ค๋ฆ ๋๋ค.
์ฃผ์ํ ํจ์ ๋ค:
- ๋๋ฌด ์ผ์ฐ ๋ฐ์ฌ๋ฆผํ๊ธฐ: ๊ฐ ๋ผ์ธ ํญ๋ชฉ์ ๋ฐ์ฌ๋ฆผํ ๋ค์ ์๊ณ๋ฅผ ๋ฐ์ฌ๋ฆผํ๊ณ ๋ค์ ์ธ๊ธ์ ๋ฐ์ฌ๋ฆผํ๋ฉด ํฉ๊ณ๊ฐ ํํธ๋ฌ์ง๋๋ค. ๊ท์น(์: ๋ผ์ธ๋ณ ์ธ๊ธ vs ์ธ๋ณด์ด์ค ํฉ๊ณ)์ ์ ํ๊ณ ์ ์ฑ ์ด ํ์ฉํ๋ ๊ณณ์์๋ง ๋ฐ์ฌ๋ฆผํ์ธ์.
- ํ ํ๋์ ์ฌ๋ฌ ํตํ ์๊ธฐ: ๋์ผํ "์ดํฉ" ํ๋์ USD์ EUR๋ฅผ ๋ํ๋ ๊ฒ์ ํ๋ถ, ๋ณด๊ณ , ๋์กฐ์์ ๋ฌธ์ ๋ฅผ ์ผ์ผํต๋๋ค. ๊ธ์ก์ ํตํ๋ฅผ ํ๊ทธํ๊ณ ๊ต์ฐจ ํตํ ํฉ๊ณ๋ฅผ ๋ด๊ธฐ ์ ์ ํฉ์๋ ํ์จ๋ก ๋ณํํ์ธ์.
- ์ฌ์ฉ์ ์ ๋ ฅ ํ์ฑ ์ค๋ฅ: ์ฌ์ฉ์๊ฐ "1,000.50", "1 000,50", "10.0" ๋ฑ์ ์ ๋ ฅํฉ๋๋ค. ํ์๊ฐ ํ ํ์๋ง ๊ฐ์ ํ๋ฉด 100050์ผ๋ก ์๋ชป ์ฒญ๊ตฌํ๊ฑฐ๋ ๋์๋ฆฌ 0์ ๋ผ์ด๋ฒ๋ฆด ์ ์์ต๋๋ค. ์ ๋ ฅ์ ์ ๊ทํ, ๊ฒ์ฆํ๊ณ ์์ ๋จ์๋ก ์ ์ฅํ์ธ์.
- ํฌ๋งท๋ ๋ฌธ์์ด์ API๋ DB์ ์ฌ์ฉํ๊ธฐ: "$1,234.56"์ ํ์์ฉ์ ๋๋ค. API๊ฐ ์ด๋ฅผ ์๋ฝํ๋ฉด ๋ค๋ฅธ ์์คํ ์ด ๋ค๋ฅด๊ฒ ํ์ฑํ ์ ์์ต๋๋ค. ์ ์(์์ ๋จ์)์ ํตํ ์ฝ๋๋ฅผ ์ ๋ฌํ๊ณ ๊ฐ ํด๋ผ์ด์ธํธ์์ ๋ก์ปฌ๋ก ํฌ๋งทํ๊ฒ ํ์ธ์.
- ์ธ์จ์ด๋ ํ์จ ํ ์ด๋ธ ๋ฒ์ ๊ด๋ฆฌ ๋๋ฝ: ์ธ์จ, ๋ฉด์ , ๋ฐ์ฌ๋ฆผ ๊ท์น์ ๋ฐ๋๋๋ค. ์๋ ๋น์จ์ ๋ฎ์ด์ฐ๋ฉด ๊ณผ๊ฑฐ ์ธ๋ณด์ด์ค๋ฅผ ์ฌํํ ์ ์์ต๋๋ค. ๊ณ์ฐ๋ง๋ค ๋ฒ์ ์ด๋ ์ ํจ ๋ ์ง๋ฅผ ์ ์ฅํ์ธ์.
๊ฐ๋จํ ํ์ค ์ ๊ฒ: ์์์ผ์ ์์ฑ๋ ์ฒดํฌ์์์ ์ง๋๋ฌ ์ธ์จ์ ์ฌ์ฉํ๊ณ , ๊ธ์์ผ์ ํ๋ถํ์ ๋ ์ธ์จ์ด ๋ฐ๋์๋ค๋ฉด ์๋ณธ ์ธ์จ๊ณผ ๋ฐ์ฌ๋ฆผ ์ ์ฑ ์ ์ ์ฅํ์ง ์์๋ค๋ฉด ํ๋ถ์ด ์๋ณธ ์์์ฆ๊ณผ ๋ง์ง ์์ ๊ฒ์ ๋๋ค.
๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์คํธ ๋ฐ ๋ค์ ๋จ๊ณ
๋๋ ์ผ์ ์ค์ด๋ ค๋ฉด ๋์ ์์ ์์คํ ์ผ๋ก ์ทจ๊ธํ์ธ์: ๋ช ํํ ์ ๋ ฅ, ๊ท์น, ์ถ๋ ฅ์ด ์๋ ์์คํ ์ ๋๋ค. ๋๋ถ๋ถ์ ํ ํผ ๋ฒ๊ทธ๋ ๋ฐ์ฌ๋ฆผ ํ์ฉ ์์น๋ฅผ ๋ฌธ์ํํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ด์๋จ์ต๋๋ค.
์ถ์ ์ ์ฒดํฌ๋ฆฌ์คํธ:
- ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋น์ฆ๋์ค ๋ก์ง, API ์ด๋์์๋ ๊ธ์ก์ ์์ ๋จ์ ์ ์(์ผํธ ๋ฑ)๋ก ์ ์ฅํ์ธ์.
- ๋ชจ๋ ์ํ์ ์ ์๋ก ํ๊ณ ํ์ ํฌ๋งท์ ๋ง์ง๋ง์๋ง ์ํํ์ธ์.
- ๊ณ์ฐ(์ธ๊ธ, ํ ์ธ, ์์๋ฃ, ํ์จ)๋ง๋ค ํ๋์ ๋ฐ์ฌ๋ฆผ ์ง์ ์ ์ ํํ๊ณ ํ ๊ณณ์์ ๊ฐ์ ํ์ธ์.
- ์น๊ณผ ๋ชจ๋ฐ์ผ์์ ํตํ ๊ท์น(์์ ์๋ฆฟ์, ๊ตฌ๋ถ์, ์์ ํํ)์ ์ผ๊ด๋๊ฒ ํฌ๋งทํ์ธ์.
- 0.01, ๋ณํ์์ ๋ฐ๋ณต๋๋ ์์, ํ๋ถ, ๋ถ๋ถ ์บก์ฒ, ํฐ ์ฅ๋ฐ๊ตฌ๋ ๊ฐ์ ๊ฒฝ๊ณ ์ผ์ด์ค ํ ์คํธ๋ฅผ ์ถ๊ฐํ์ธ์.
๊ณ์ฐ ์ ํ๋ณ๋ก ๋ฐ์ฌ๋ฆผ ์ ์ฑ ์ ํ ์ค๋ก ์ ์ด๋์ธ์. ์: "ํ ์ธ์ ๋ผ์ธ ํญ๋ชฉ๋ณ๋ก ๋ฐ์ฌ๋ฆผํ์ฌ ๊ฐ์ฅ ๊ฐ๊น์ด ์ผํธ๋ก ํ๋ค; ์ธ๊ธ์ ์ธ๋ณด์ด์ค ํฉ๊ณ์์ ๋ฐ์ฌ๋ฆผํ๋ค; ํ๋ถ์ ์๋์ ๋ฐ์ฌ๋ฆผ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ณตํ๋ค." ์ด๋ฌํ ์ ์ฑ ์ ์ฝ๋ ๊ทผ์ฒ์ ํ ๋ฌธ์์ ๋์ด ํํธ๋ฌ์ง์ง ์๊ฒ ํ์ธ์.
์ค์ ๋จ๊ณ๋ง๋ค ๊ฐ๋ฒผ์ด ๋ก๊ทธ๋ฅผ ์ถ๊ฐํ์ธ์. ์ ๋ ฅ ๊ฐ, ์ ํํ ์ ์ฑ ์ด๋ฆ, ๋ง์ด๋ ๋จ์ ์ถ๋ ฅ๊ฐ์ ์บก์ฒํ์ธ์. ๊ณ ๊ฐ์ด "ํ ํผ ๋ ์ฒญ๊ตฌ๋์๋ค"๊ณ ์ ๊ณ ํ๋ฉด, ํ ์ค์ ๋ก๊ทธ๋ก ์ด์ ๋ฅผ ๋ฐ๋ก ์ค๋ช ํ ์ ์์ด์ผ ํฉ๋๋ค.
ํ๋ก๋์ ์์ ๋ก์ง์ ๋ฐ๊พธ๊ธฐ ์ ์ ์์ ๊ฐ์ฌ๋ฅผ ๊ณํํ์ธ์. ์ค์ ๊ณผ๊ฑฐ ์ฃผ๋ฌธ ์ํ์์ ์ ๋ก์ง์ผ๋ก ๋ค์ ๊ณ์ฐํ๊ณ ์ ๊ฒฐ๊ณผ์ ๋น๊ตํด ๋ถ์ผ์น ๊ฑด์๋ฅผ ์ธ์ธ์. ๋ช ๊ฑด์ ์๋์ผ๋ก ๊ฒํ ํด ์ ์ ์ฑ ๊ณผ ์ผ์นํ๋์ง ํ์ธํ์ธ์.
๋ง์ฝ ๊ฐ์ ๊ท์น์ ์ธ ๋ฒ ๋ค์ ์ฐ์ง ์๊ณ ์๋ํฌ์๋ ํ๋ฆ์ ๋ง๋ค๊ณ ์ถ๋ค๋ฉด AppMaster (appmaster.io)์ ๊ณต์ ๋ฐฑ์๋ ๋ก์ง์ ๊ฐ์ง ์์ ํ ์ฑ์ ์ ํฉํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. PostgreSQL์ Data Designer์์ amount_minor๋ฅผ ๋ง์ด๋ ์ ๋ ์ ์๋ก ๋ชจ๋ธ๋งํ๊ณ , Business Process์ ๋ฐ์ฌ๋ฆผ ๋ฐ ์ธ๊ธ ๋จ๊ณ๋ฅผ ํ ๋ฒ ๊ตฌํํ ๋ค ์น๊ณผ ๋ค์ดํฐ๋ธ ๋ชจ๋ฐ์ผ UI์์ ๋์ผํ ๋ก์ง์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
๋๋ถ๋ถ ์ฑ์ ๋ค๋ฅธ ๋ถ๋ถ์ด ์๋ก ๋ค๋ฅธ ์์ ์ด๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ฌ๋ฆผํ ๋ ๋ฐ์ํฉ๋๋ค. ์ ํ ๋ชฉ๋ก์์ ํ ๋จ๊ณ ๋ฐ์ฌ๋ฆผํ๊ณ ์ฒดํฌ์์์์ ๋ค๋ฅธ ๋จ๊ณ๋ก ๋ฐ์ฌ๋ฆผํ๋ฉด ๊ฐ์ ์นดํธ๊ฐ ์๋ก ๋ค๋ฅธ ์ผํธ๋ก ๊ณ์ฐ๋ ์ ์์ต๋๋ค.
๋๋ถ๋ถ์ ๋ถ๋์์์ ์ ์ผ๋ฐ์ ์ธ ์ญ์ง์ ๊ฐ๊ฒฉ์ ์ด์ง์ผ๋ก ์ ํํ ํํํ ์ ์์ด์ ์์ ์ค์ฐจ๊ฐ ์์ ๋๋ค. ๊ทธ ์์ ์ฐจ์ด๊ฐ ๋์ค์ ๋ฐ์ฌ๋ฆผ ๊ฒฐ์ ์ ๋ฐ๊ฟ ํ ํผ ์ฐจ์ด๋ฅผ ๋ง๋ญ๋๋ค.
ํตํ์ ์์ ๋จ์(์: USD์ ์ผํธ)๋ก ์ ์๋ก ์ ์ฅํ์ธ์. ์: $19.99๋ 1999๋ก ์ ์ฅํ๊ณ , ํตํ ์ฝ๋๋ฅผ ํจ๊ป ๋ณด๊ดํฉ๋๋ค. ๊ณ์ฐ์ ์ ์๋ก ํ๊ณ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ๋๋ง ๋ฌธ์์ด๋ก ํฌ๋งทํ์ธ์.
๋ ์๋ฆฌ๋ฅผ ํ๋์ฝ๋ฉํ๋ฉด JPY(0์๋ฆฌ)๋ BHD(3์๋ฆฌ)์ฒ๋ผ ๋ค๋ฅธ ์์ ์๋ฆฟ์๋ฅผ ๊ฐ์ง ํตํ์์ ๋ฌธ์ ๊ฐ ์๊น๋๋ค. ํญ์ ๊ธ์ก๊ณผ ํจ๊ป ํตํ ์ฝ๋๋ฅผ ์ ์ฅํ๊ณ ์ ๋ ฅ ํ์ฑ๊ณผ ์ถ๋ ฅ ํฌ๋งท ์ ์ฌ๋ฐ๋ฅธ minor-unit ์ค์ผ์ผ์ ์ ์ฉํ์ธ์.
๋ช ํํ ๊ท์น์ ์ ํด ์ด๋์ ๋ฐ์ฌ๋ฆผํ ์ง ํ ๋ฒ์ ์ ์ฉํ์ธ์. ์: ๋ผ์ธ๋ณ๋ก ์ธ๊ธ์ ๋ฐ์ฌ๋ฆผํ ์ง ์ธ๋ณด์ด์ค ํฉ๊ณ์์ ๋ฐ์ฌ๋ฆผํ ์ง ์ ํํ๊ณ , ๋ฐฑ์๋ยท์นยท๋ชจ๋ฐ์ผยท๋ด๋ณด๋ด๊ธฐยทํ๋ถ ๋ชจ๋ ๊ฐ์ ๊ท์น๊ณผ ๋ฐ์ฌ๋ฆผ ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ธ์.
์์๋ฅผ ์ฌ์ ์ ์ ํ๊ณ ์ ์ฑ ์ผ๋ก ๋ค๋ฃจ์ธ์. ์ผ๋ฐ์ ์ธ ๊ธฐ๋ณธ์ ๋จผ์ ํ ์ธ(๊ณผ์ธ ๋์ ๊ฐ์), ๊ทธ๋ค์ ์ธ๊ธ ๊ณ์ฐ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ฆ๋์ค ๋ฐ ๊ดํ ๊ตฌ์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ฅด๊ณ ๋ชจ๋ ํ๋ฉด๊ณผ ์๋น์ค์์ ๋์ผํ๊ฒ ์ ์งํ์ธ์.
์ฒดํฌ์์ ์ ์ฌ์ฉํ ํ์จ(๋ช ํํ ์ ๋ฐ๋์ ํจ๊ป)์ ์ ์ฅํ๊ณ ํ ๋ฒ๋ง ๋ณํํ ๋ค, ํ๋ถ์ ์๋ ํตํ์ ๊ธ์ก์ ์ฌ์ฉํ์ธ์. ๋๋๋ ค ๋ณํ์ ๋ฐ๋ณตํ๋ฉด ๋ฐ๋ณต ๋ฐ์ฌ๋ฆผ์ผ๋ก ์ธํด ํฉ๊ณ๊ฐ ํ๋ ค์ง๋๋ค.
ํ์์ฉ ๋ฌธ์์ด์ ๋ค์ ์ซ์๋ก ํ์ฑํ์ง ๋ง์ธ์. ๋ก์ผ์ผ ๊ตฌ๋ถ์์ ๋ฐ์ฌ๋ฆผ ๊ท์น ๋๋ฌธ์ ๊ฐ์ด ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. (amount_minor, currency_code) ๊ฐ์ ๊ตฌ์กฐํ๋ ๊ฐ์ ์ ๋ฌํ๊ณ UI ๊ฐ์ฅ์๋ฆฌ์์๋ง ๋ก์ผ์ผ ๊ท์น์ ๋ฐ๋ผ ํฌ๋งทํ์ธ์.
์ ํด์ง ์ ๋ ฅ์ ๋ํด ๊ฐ ๋จ๊ณ์ ์ ํํ ์์ ๋จ์(์ผํธ) ์ถ๋ ฅ๊ฐ์ ๊ฒ์ฌํ๋ ๊ณจ๋ ํ ์คํธ๋ก ์์ํ์ธ์. ๊ทธ๋ฐ ๋ค์ ํฉ๊ณ๊ฐ ๋ถ๋ถ์ ํฉ๊ณผ ํญ์ ์ผ์นํ๋์ง, ์์ ๋จ์๊ฐ ์ ๋ ๋ถ์๋ก ๋์ค์ง ์๋์ง ๊ฐ์ ๋ถ๋ณ์ ํ ์คํธ๋ฅผ ์ถ๊ฐํ์ธ์.
๋จธ๋ ์ฐ์ฐ์ ํ ๊ณณ์ ๋ชจ์ผ๊ณ ์ฌ์ฌ์ฉํ์ธ์. ์: PostgreSQL์์ amount_minor๋ฅผ ์ ์๋ก ๋ชจ๋ธ๋งํ๊ณ ๋ฐ์ฌ๋ฆผ๊ณผ ์ธ๊ธ ๋ก์ง์ ํ๋์ Business Process์ ๋ฃ์ด ์นยท๋ชจ๋ฐ์ผยท๋ฐฑ์๋๊ฐ ๋์ผํ ์
๋ ฅ์ ๋ํด ๋์ผํ ์ผํธ๋ฅผ ๋ฐํํ๋๋ก ํ์ธ์.


