5,000์ค์ง๋ฆฌ COBOL ํ๋ก๊ทธ๋จ์ ์ฝ์ผ๋ฉด ๊ฐ ๋ช ๋ น๋ฌธ์ ๊ธฐ๋ฅ์ ์ ์ ์์ต๋๋ค. ํ์ง๋ง ํ๋ก๊ทธ๋จ์ ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ๋ณด๋ฉด ์ด๋ค ์ฝ๋์ ์ฐ๊ฒฐ๋์ด ์๋์ง, ์ด๋ค ์ฝ๋๊ฐ ์ด ํ๋ก๊ทธ๋จ์ ์์กดํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋์ง ์ ์ ์์ต๋๋ค. ์ฃผ์ ์คํ ๊ฒฝ๋ก์ ํ๋ฆ๋๋ฅผ ๋ณด๋ฉด ๋ค์ํ ์ ๋ ฅ๊ฐ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ํ์ ํ ์ ์์ต๋๋ค. ์ด ์ธ ๊ฐ์ง ๋ค์ด์ด๊ทธ๋จ์ ํจ๊ป ํ์ฉํ๋ฉด ์์ค ์ฝ๋๋ฅผ ์ผ์ผ์ด ์ฝ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ค์ง์ ์ธ ํต์ฐฐ๋ ฅ์ ๋จ 10๋ถ ๋ง์ ์ป์ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์ฝ๋ ์๊ฐํ์ ํต์ฌ ๊ฐ์น์ ๋๋ค. ์ฝ๋ ์๊ฐํ๋ ํ ์คํธ๋ก ๋ ๋ ผ๋ฆฌ๋ฅผ ๊ณต๊ฐ์ ์ด๊ณ ์๊ฐ์ ์ธ ๊ตฌ์กฐ๋ก ๋ณํํ์ฌ, ํ ์ค์ฉ ์ฝ๋ ๊ฒ๋ง์ผ๋ก๋ ํ์ ํ ์ ์๋ ๊ด๊ณ, ํ๋ฆ, ๊ทธ๋ฆฌ๊ณ ์ํ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ฝ๋๋ฒ ์ด์ค๋ฅผ ์๊ฐํํ์ธ์
SMART TS XL ์์ค ์ฝ๋์์ ์ง์ ์์กด์ฑ ๋งต, ํธ์ถ ๊ทธ๋ํ ๋ฐ ๊ตฌ์กฐ ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํฉ๋๋ค.
์ง๊ธ ํ์์ฝ๋ ์๊ฐํ๋ ํ๋์ ๊ธฐ๋ฒ์ด ์๋๋ผ, ์์๋, UML ๋ค์ด์ด๊ทธ๋จ, ์์กด์ฑ ๊ทธ๋ํ, ์ํ์ค ๋ค์ด์ด๊ทธ๋จ, ์ํ ๋ค์ด์ด๊ทธ๋จ, ํธ์ถ ๊ทธ๋ํ ๋ฑ ๋ค์ํ ํํ ๋ฐฉ์์ ์์ฐ๋ฅด๋ ๊ฐ๋ ์ ๋๋ค. ๊ฐ ํํ ๋ฐฉ์์ ์๋ก ๋ค๋ฅธ ์ง๋ฌธ์ ์ ํฉํ๋ฉฐ, ์ ์ ํ ํํ ๋ฐฉ์์ ์ ํํ๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค. ์ด ๊ธ์์๋ ๋ค์ํ ๋ค์ด์ด๊ทธ๋จ ์ ํ, ์ฝ๋๋ก๋ถํฐ ๋ค์ด์ด๊ทธ๋จ์ ์๋์ผ๋ก ์์ฑํ๋ ๋๊ตฌ, ๋ค์ด์ด๊ทธ๋จ์ ์ฝ๋๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ์, ๊ทธ๋ฆฌ๊ณ ๋ ๊ฑฐ์ ์์คํ ๊ณผ ์ต์ ์์คํ ์ ๋ฐ์ ๊ฑธ์ณ ๊ธฐ์ ํ๊ฒฝ์์ ์๊ฐํ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ด ๋๋ค.
๋ฐฉ๋ฒ SMART TS XL ์ ์ฒด ์์คํ ์ ๊ฑธ์ณ ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํฉ๋๋ค.
SMART TS XL ์ด ๋๊ตฌ๋ COBOL, JCL, Java, .NET, Python, RPG, SQL ๋ฑ ๊ธฐ์ ํ๊ฒฝ ๋ด ๋ชจ๋ ์ธ์ด์ ํ๋ซํผ์ ๋ถ์ํ์ฌ ๋ชจ๋ ๊ตฌ์กฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ด๋ ํตํฉ๋ ์ํธ ์ฐธ์กฐ ๋ชจ๋ธ์ ๊ตฌ์ถํจ์ผ๋ก์จ ์ํฐํ๋ผ์ด์ฆ ์์คํ ์ ์๊ฐํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ด ๋๊ตฌ๊ฐ ์์ฑํ๋ ๋ค์ด์ด๊ทธ๋จ์ ์์์ ์ผ๋ก ๊ทธ๋ฆฐ โโ๊ทธ๋ฆผ์ด ์๋๋ผ ์ค์ ์ฝ๋์ ๊ตฌ์กฐ ๋ถ์์ ํตํด ์ง์ ์์ฑ๋ ๊ฒฐ๊ณผ๋ฌผ์ด๋ฏ๋ก ํญ์ ์ฝ๋๋ฒ ์ด์ค์ ์ต์ ์ํ์ ๋๊ธฐํ๋ฉ๋๋ค.
The ์ฝ๋ ์๊ฐํ ๋ฅ๋ ฅ SMART TS XL ์ฌ๋ฌ ๊ฐ์ง ๋ค์ด์ด๊ทธ๋จ ์ ํ์ ์์ฑํฉ๋๋ค.
- ์์กด์ฑ ๋งต ์ ์ฒด ์์คํ ๋ถํฐ ๊ฐ๋ณ ์นดํผ๋ถ ๋ฉค๋ฒ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์ ์ด๋ฅด๊ธฐ๊น์ง ๋ชจ๋ ์ธ๋ถํ ์์ค์์ ์ด๋ค ํ๋ก๊ทธ๋จ, ๋ชจ๋ ๋ฐ ๊ตฌ์ฑ ์์๊ฐ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ, ๋ชจ๋ ๋ฐ ๊ตฌ์ฑ ์์์ ์์กดํ๋์ง ๋ณด์ฌ์ค๋๋ค.
- ๊ทธ๋ํ ํธ์ถ ์ด๋ค ํ๋ก๊ทธ๋จ์ด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ํธ์ถํ๋์ง ๋ณด์ฌ์ฃผ๊ณ , ์ธ์ด ๊ฒฝ๊ณ๋ฅผ ๋์ด ์ด๋ค ์์์ ์์๋ ์ด๋ค ๊น์ด๊น์ง๋ ํ์ํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ํ๋ฆ๋ ํน์ ํ๋ ๋๋ ๋ฐ์ดํฐ ์์๊ฐ ์์คํ ๋ด์์ ์์ฑ ์ง์ ๋ถํฐ ์ฝํ๊ณ , ์ฐ์ฌ์ง๊ณ , ๋ณํ๋๋ ๋ชจ๋ ์์น์ ์ด๋ฅด๊ธฐ๊น์ง ์ด๋ป๊ฒ ์ด๋ํ๋์ง ์ถ์ ํ๋ ๊ฒ
- ์ํฅ๋ํ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ์์ฑ๋๋ ๊ฒฐ๊ณผ๋ฌผ๋ก, ํด๋น ๋ณ๊ฒฝ์ด ์ด๋ฃจ์ด์ง ๊ฒฝ์ฐ ์ํฅ์ ๋ฐ๋ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ข ์์ฑ ๋งคํ ๊ธฐ๋ฅ์ ์ด๋ฅผ ์์คํ ์์ค์ผ๋ก ํ์ฅํ์ฌ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ๋ณด์ฌ์ฃผ๋ ๋งต์ ์์ฑํ๋ฉฐ, ์ด๋ ์ํคํ ์ฒ ๊ฒํ , ํ๋ํ ๊ณํ ๋ฐ ๊ท์ ์ค์ ๋ฌธ์ ์์ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
์งํํ๋ ํ์ ๊ฒฝ์ฐ ๋ ๊ฑฐ์ ํ๋ํ, SMART TS XL์๊ฐํ ์๋ฃ๋ ๊ณํ์ ๊ธฐ๋ฐ์ด ๋ฉ๋๋ค. ํ์ฌ ์์คํ ์ ์ข ์์ฑ ๋งต์ ๋ง์ด๊ทธ๋ ์ด์ ์์๋ฅผ ๊ฒฐ์ ํ๊ณ , ํธ์ถ ๊ทธ๋ํ๋ ์ด๋ค ๊ตฌ์ฑ ์์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ณํํ ์ ์๋์ง ์๋ณํ๋ฉฐ, ์ํฅ ๋ค์ด์ด๊ทธ๋จ์ ๊ณํ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ณ๊ฒฝ๋ ๊ตฌ์ฑ ์์์ ์ข ์๋ ๊ตฌ์ฑ ์์์์ ์๊ธฐ์น ์์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค์ง ์๋์ง ๊ฒ์ฆํฉ๋๋ค.
์ฝ๋ ์๊ฐํ๋ ๋ฌด์์ธ๊ฐ์?
์ฝ๋ ์๊ฐํ๋ ์์ค ์ฝ๋, ๊ทธ ๊ตฌ์กฐ, ๋์ ๋ฐ ์์กด ๊ด๊ณ๋ฅผ ํ ์คํธ ํํ๊ฐ ์๋ ๊ทธ๋ํฝ ํํ๋ก ํํํ๋ ์์ ์ ๋๋ค. ์๊ฐํ๋ ์ฝ๋๋ฒ ์ด์ค๋ ํ ์คํธ๋ก๋ ์ฝ๊ฒ ์ ๋ฌํ ์ ์๋ ์ ๋ณด, ์ฆ ์ด๋ค ๊ตฌ์ฑ ์์๊ฐ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์ ์์กดํ๋์ง, ์กฐ๊ฑด ๋ถ๊ธฐ๋ฅผ ํตํด ์คํ์ด ์ด๋ป๊ฒ ํ๋ฅด๋์ง, ๋ชจ๋๋ค์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ์ํธ ์์ฉํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๋ณต์ก์ฑ์ด ์ด๋์ ์ง์ค๋์ด ์๋์ง ๋ฑ์ ๋ณด์ฌ์ค๋๋ค.
์ฝ๋๋ฒ ์ด์ค ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ์ฝ๋ ์๊ฐํ์ ํ์์ฑ๋ ์ปค์ง๋๋ค. 500์ค ์ ๋์ ์คํฌ๋ฆฝํธ๋ผ๋ฉด ๊ฐ๋ฐ์๊ฐ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ๋จธ๋ฆฟ์์ ๋ด์๋ ์ ์์ต๋๋ค. ํ์ง๋ง 15๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค์ ๋ ๊ฑฐ์ ๋ฉ์ธํ๋ ์์ผ๋ก ๊ตฌ์ฑ๋ 50๋ง ์ค ๊ท๋ชจ์ ๋ถ์ฐ ์์คํ ์์๋ ๊ทธ ๋๊ตฌ๋ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์๋ฒฝํ๊ฒ ํ์ ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์๊ฐํ๋ ์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ํํํ์ฌ ์์คํ ์ด ๋ฐ์ ํจ์ ๋ฐ๋ผ ๊ณต์ , ์ฐธ์กฐ, ์ ๋ฐ์ดํธํ ์ ์๋๋ก ํด์ค๋๋ค.
์ฝ๋ ์๊ฐํ๋ ์๋ก ๋ค๋ฅธ ๋์์๊ฒ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ์ฉํฉ๋๋ค.
- ๊ฐ๋ฐ์ ์คํ ๋ ผ๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ์์์น ๋ชปํ ๋์์ ๋๋ฒ๊น ํ๊ณ , ๋ฆฌํฉํ ๋ง์ ๊ณํํ๊ธฐ ์ํด ์์๋์ ํธ์ถ ๊ทธ๋ํ๋ฅผ ํ์ฉํ์ธ์.
- ๊ฑด์ถ๊ฐ ์์กด์ฑ ๊ทธ๋ํ์ ๊ตฌ์ฑ ์์ ๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๊ตฌ์กฐ์ ๊ฑด์ ์ฑ์ ํ๊ฐํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณํํฉ๋๋ค.
- ํ์ง ๋ณด์ฆ ์์ง๋์ด ์์๋์ ์ ์ด ํ๋ฆ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ถ๊ธฐ๋ฅผ ํฌ๊ดํ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ค๊ณํ์ญ์์ค.
- ์ด์ ํ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ์์ฒญ ํ๋ฆ์ ์ถ์ ํ๊ณ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ํ์ ํฉ๋๋ค.
- ๋น๊ธฐ์ ์ ์ดํด๊ด๊ณ์ ๊ณํ ์๋ฆฝ ๋๋ ๊ท์ ์ค์ ๊ฒํ ์ค์ ์์คํ ๋ฒ์๋ฅผ ์ดํดํ๊ธฐ ์ํด ๊ฐ์ํ๋ ํ๋ฆ๋์ ๊ตฌ์ฑ ์์ ๋ค์ด์ด๊ทธ๋จ์ ํ์ฉํ์ญ์์ค.
๋ค์ด์ด๊ทธ๋จ์ ์ข ๋ฅ์ ๊ฐ ์ข ๋ฅ๋ณ ์ฌ์ฉ ์์
์๊ฐํ ์ ํ๋ง๋ค ๋ตํ๋ ๋ด์ฉ์ด ๋ค๋ฆ ๋๋ค. ์ง๋ฌธ์ ๋ง์ง ์๋ ๋ค์ด์ด๊ทธ๋จ ์ ํ์ ์ฌ์ฉํ๋ฉด ํผ๋์ค๋ฌ์ด ๊ฒฐ๊ณผ๊ฐ ์ด๋๋์ง๋ง, ์ฌ๋ฐ๋ฅธ ์ ํ์ ์ฌ์ฉํ๋ฉด ์ฆ๊ฐ์ ์ธ ๋ช ํ์ฑ์ ์ป์ ์ ์์ต๋๋ค.
| ๋ค์ด์ด๊ทธ๋จ ์ ํ | ๊ฐ์ฅ ์ข์ ์ง๋ฌธ, ๊ทธ๊ฒ์ด ๋ตํ๋ ์ง๋ฌธ | ์ง์ ๊ธฐ๊ธฐ |
|---|---|---|
| ์์๋ | ์ด ๋ ผ๋ฆฌ์ ๋ฐ๋ผ ์คํ์ ์ด๋ป๊ฒ ์งํ๋๋์? | ์์ฌ๊ฒฐ์ ๋ก์ง, ๋๋ฒ๊น , ์จ๋ณด๋ฉ |
| ์ํ์ค ๋ค์ด์ด๊ทธ๋จ | ๊ตฌ์ฑ ์์๋ค ๊ฐ์ ์ด๋ค ๋ฉ์์ง๊ฐ ์ ๋ฌ๋๋ฉฐ, ์ด๋ค ์์๋ก ์ ๋ฌ๋ฉ๋๊น? | API ์ํธ์์ฉ, ๋น๋๊ธฐ ํ๋ฆ, ๋๋ฒ๊น |
| ํด๋์ค ๋ค์ด์ด๊ทธ๋จ | ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๊ทธ ๊ตฌ์กฐ๋ค ๊ฐ์ ๊ด๊ณ๋ ๋ฌด์์ธ๊ฐ์? | ๊ฐ์ฒด์งํฅ ์ค๊ณ, ๋ฆฌํฉํ ๋ง, ๋ฌธ์ํ |
| ์์กด์ฑ ๊ทธ๋ํ | ๋ฌด์์ด ๋ฌด์์ ์์กดํ๋ฉฐ, ์์คํ ์ ์ผ๋ง๋ ๊ธด๋ฐํ๊ฒ ์ฐ๊ฒฐ๋์ด ์์ต๋๊น? | ์ํฅ ๋ถ์, ๋ฆฌํฉํ ๋ง, ๋ง์ด๊ทธ๋ ์ด์ ๊ณํ |
| ์ํ ๋ค์ด์ด๊ทธ๋จ | ์์คํ ์ ์ด๋ป๊ฒ ์ํ ๊ฐ ์ ํ์ ํ๋์? | ํ๋กํ ์ฝ ๋ก์ง, UI ์ํ ๋จธ์ , ์๋ฒ ๋๋ ์์คํ |
| ๊ตฌ์ฑ์์ ๋ค์ด์ด๊ทธ๋จ | ์์คํ ์ ๊ตฌ์ฑ ์์๋ค์ ์ด๋ป๊ฒ ์กฐ๋ฆฝ๋๊ณ ์ฐ๊ฒฐ๋๋๊ฐ? | ์ํคํ ์ฒ ๊ฒํ , ์จ๋ณด๋ฉ, ํด๋ผ์ฐ๋ ๋ง์ด๊ทธ๋ ์ด์ |
| ํธ์ถ ๊ทธ๋ํ | ์ด๋ค ํจ์๋ค์ด ๋ค๋ฅธ ์ด๋ค ํจ์๋ค์ ํธ์ถํ๋๊ฐ? | ๋ฐ๋ ์ฝ๋ ๊ฐ์ง, ์ฑ๋ฅ ํ๋กํ์ผ๋ง, ์ํฅ ๋ถ์ |
| ์ ์ด ํ๋ฆ ๊ทธ๋ํ | ํจ์์ ์คํ ๊ฒฝ๋ก๋ ๋ชจ๋ ๋ฌด์์ธ๊ฐ์? | ํ ์คํธ, ๋ณต์ก์ฑ ๋ถ์, ์์ ํ์ ๊ฒํ |
์์๋: ์์ฌ๊ฒฐ์ ๋ ผ๋ฆฌ๋ฅผ ์๊ฐํํ ๊ทธ๋ฆผ
์์๋๋ ํ๋ก์ธ์ค ๋๋ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์ ๋ํ๋ด๋ฉฐ, ํ์คํ๋ ๋ํ์ ์ฌ์ฉํ์ฌ ๊ฒฐ์ ์ง์ , ๋ถ๊ธฐ, ๋ฐ๋ณต๋ฌธ ๋ฐ ์ต์ข ์ํ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ง์ฌ๊ฐํ์ ํ๋ก์ธ์ค๋ฅผ ๋ํ๋ด๊ณ , ๋ง๋ฆ๋ชจ๋ ๊ฒฐ์ ์ ๋ํ๋ด๋ฉฐ, ํํ์ฌ๋ณํ์ ์ ๋ ฅ/์ถ๋ ฅ์ ๋ํ๋ด๊ณ , ํ์์ ์์/์ข ๋ฃ ์ง์ ์ ๋ํ๋ ๋๋ค.
์์๋๋ ์ธ๊ฐ์ด ์์ฐจ์ ์ธ ๊ณผ์ ์ ์๊ฐํ๋ ์์ฐ์ค๋ฌ์ด ๋ฐฉ์๊ณผ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋ณดํธ์ ์ผ๋ก ์ดํด๋๋ ์๊ฐํ ํ์์ ๋๋ค. ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฒ์ ์ ํ๋ ๊ฐ๋ฐ์๋ ๊ฒฐ์ ์ฒ๋ฆฌ ๋ก์ง์ ์์๋๋ฅผ ์ฝ์ผ๋ฉด ์ฝ๋๋ฅผ ์ฝ๋ ๊ฒ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์ดํดํ ์ ์์ต๋๋ค. QA ์์ง๋์ด๋ ์์๋๋ฅผ ๋ณด๋ฉด ๋ค ๊ฐ์ง ๊ฒฐ์ ๋ถ๊ธฐ๊ฐ ์์์ ํ์ ํ๊ณ ์ด๋ฅผ ๋ชจ๋ ์ปค๋ฒํ๋ ๋ค ๊ฐ์ง ํ ์คํธ ์ผ์ด์ค๋ฅผ ์ค๊ณํ ์ ์์ต๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ๋งฅ๋ฝ์์ ์์๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค.
- ๋จ์ผ ํจ์ ๋๋ ํ๋ก์์ ์์ ๋ถ๊ธฐ ๋ ผ๋ฆฌ๋ฅผ ์ค๋ช ํฉ๋๋ค.
- ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ๊ธฐ
- ๊ท์ ์ค์ ๋๋ ๊ฐ์ฌ ๋ชฉ์ ์ ์ํ ๋น์ฆ๋์ค ๊ท์น ๋ฌธ์ํ
- ์ค๋ฅ ๋ฐ์ ์ ์ด๋ค ๊ฒฝ๋ก๋ฅผ ๊ฑฐ์ณค๋์ง ์ถ์ ํ์ฌ ๋๋ฒ๊น ํฉ๋๋ค.
์์๋: ์๊ฐ์ ๋ฐ๋ฅธ ์ํธ์์ฉ
์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ๊ฐ์ฒด ๋๋ ๊ตฌ์ฑ ์์๊ฐ ์๊ฐ ์์๋๋ก ์ํธ ์์ฉํ๋ ๋ฐฉ์์ ๋ณด์ฌ์ค๋๋ค. ๊ฐ๋ก์ถ์ ์ฐธ์ฌ์(์๋น์ค, ํด๋์ค, ์ฌ์ฉ์)๋ฅผ ๋ํ๋ด๊ณ , ์ธ๋ก ํ์ดํ๋ ์๊ฐ ์์๋๋ก ์ฐธ์ฌ์ ๊ฐ์ ์ ๋ฌ๋๋ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ๋ถ์ฐ ์์คํ , ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ ํต์ ๋ฐ API ๋์์ ์ดํดํ๋ ๋ฐ ์์ด ํต์ฌ์ ์ธ ๋๊ตฌ์ ๋๋ค.
๋ชจ๋๋ฆฌ์ ์ํคํ ์ฒ์์ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ๋จ์ผ ์์ฒญ์ด ์ฌ๋ฌ ๊ณ์ธต์ ๊ฑฐ์ณ ์ผ๋ จ์ ๋ฉ์๋ ํธ์ถ์ ์ด๋ป๊ฒ ์ ๋ฐํ๋์ง ๋ณด์ฌ์ค๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์์๋ ์ด๋ค ์๋น์ค๊ฐ ๋ค๋ฅธ ์๋น์ค์ ์ด๋ค ์์๋ก ํต์ ํ๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ฐ ๋ฉ์์ง๊ฐ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ๋ณ๋ ฌํํ ์ ์๋ ์์ฐจ์ ํธ์ถ์ด๋ ๋ถํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ณต์ ์ ๋ฐํ๋ N+1 ์ฟผ๋ฆฌ ํจํด์ผ๋ก ์ธํด ๋ฐ์ํ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ง๋จํ๋ ๋ฐ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋๊ตฌ์ ๋๋ค.
์์กด์ฑ ๊ทธ๋ํ: ๊ตฌ์กฐ์ ๊ฑด์ ์ฑ์ ํ๋์ ํ์ ํ๊ธฐ
์์กด์ฑ ๊ทธ๋ํ๋ ๊ตฌ์ฑ ์์, ๋ชจ๋, ํจํค์ง, ํด๋์ค, ์๋น์ค ๋๋ ํ์ผ ๊ฐ์ ๋ฐฉํฅ์ ๊ด๊ณ๋ฅผ ๋ณด์ฌ์ค๋๋ค. A์์ B๋ก ํฅํ๋ ํ์ดํ๋ A๊ฐ B์ ์์กดํจ์ ์๋ฏธํฉ๋๋ค. ์ํ ์์กด์ฑ(A๊ฐ B์ ์์กดํ๊ณ , B๊ฐ A์ ์์กดํ๋ ๊ฒฝ์ฐ)์ ๊ทธ๋ํ์์ ์์ผ๋ก ํ์๋๋ฉฐ, ์ฆ์ ํ์ธํ๊ณ ์กฐ์น๋ฅผ ์ทจํ ์ ์์ต๋๋ค.
์์กด์ฑ ๊ทธ๋ํ๋ ๋ค์์ ๋ณด์ฌ์ค๋๋ค.
- ๋์ ํฌ์ธ ๋ ธ๋๋ค๋ฅธ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๊ฐ ์์กดํ๋ ํต์ฌ ์์์ด๋ฏ๋ก, ๋จ์ผ ์ฅ์ ์ง์ ์ผ๋ก์ ๋์ ์ํ์ฑ์ ์ง๋๋๋ค.
- ๋์ ํฌ์์ ๋ ธ๋๋ค๋ฅธ ์ฌ๋ฌ ๊ตฌ์ฑ ์์์ ์์กดํ๋ ๊ตฌ์ฑ ์์๋ก, ๋จ์ผ ์ฑ ์ ์์น์ ์๋ฐํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
- ์ํ ์ข ์์ฑ์ํธ ๊ฒฐํฉ์ผ๋ก ์ธํด ๋ ๋ฆฝ์ ์ธ ๋ฐฐํฌ๊ฐ ๋ถ๊ฐ๋ฅํ๊ณ ๋ฆฌํฉํ ๋ง์ด ์ด๋ ค์์ง๋๋ค.
- ์ํคํ ์ฒ ๋ ์ด์ด ์๋ฐํ์ ๋ ๋ฒจ ๊ตฌ์ฑ ์์๊ฐ ์์ ๋ ๋ฒจ ๊ตฌ์ฑ ์์์ ์์กดํ๋ ๊ฒ์ ์ค๊ณ ํธ์ฐจ๋ฅผ ๋ํ๋ ๋๋ค.
์์กด์ฑ ๊ทธ๋ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ํ ์ด๋ผ๋ ๋งฅ๋ฝ์์ , ์์กด์ฑ ๊ทธ๋ํ๊ฐ ์ ๊ณตํ๋ ๊ตฌ์กฐ์ ํต์ฐฐ๋ ฅ์ ๋ณ๊ฒฝ ๊ณํ ์๋ฆฝ์ ์ง์ ์ ์ผ๋ก ํ์ฉ๋ ์ ์์ต๋๋ค. ์ฆ, ๊ตฌ์ฑ ์์๋ฅผ ์์ ํ๊ธฐ ์ ์ ํด๋น ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ํตํด ์ํฅ์ ๋ฐ์ ์ ์๋ ์ ์ฒด ๋ฒ์๋ฅผ ํ์ ํ ์ ์์ต๋๋ค.
์ํ ๋ค์ด์ด๊ทธ๋จ: ๋ค์ํ ์กฐ๊ฑด์ ๋ฐ๋ฅธ ๋์ ๋ ผ๋ฆฌ
์ํ ๋ค์ด์ด๊ทธ๋จ(๋๋ ์ํ ๋จธ์ ๋ค์ด์ด๊ทธ๋จ)์ ์์คํ , ๊ฐ์ฒด ๋๋ ํ๋กํ ์ฝ์ด ๊ฐ์ง ์ ์๋ ๋ค์ํ ์ํ์ ์ด๋ฒคํธ ๋๋ ์กฐ๊ฑด์ ์ํด ๋ฐ์ํ๋ ์ํ ๊ฐ์ ์ ํ์ ๋ณด์ฌ์ค๋๋ค. ์ํ ๋ค์ด์ด๊ทธ๋จ์ ํ์ฌ ๋์์ด ๊ณผ๊ฑฐ ์ปจํ ์คํธ, ์ธ์ฆ ํ๋ฆ, ์ฃผ๋ฌธ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ, ์๋ฒ ๋๋ ์ฅ์น ํ์จ์ด, ๋คํธ์ํฌ ํ๋กํ ์ฝ ๊ตฌํ ๋ฑ์ ์์กดํ๋ ๋ชจ๋ ๋ ผ๋ฆฌ ํ๋ก์ ํ์์ ์ ๋๋ค.
์ํ ๋ค์ด์ด๊ทธ๋จ์ ๋ชจ๋ ๊ฐ๋ฅํ ํ์ฌ ์ํ์ ๋ชจ๋ ๊ฐ๋ฅํ ์ ๋ ฅ์ ๋ํด "๋ค์์๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊น?"๋ผ๋ ์ง๋ฌธ์ ๋ตํ๋ฏ๋ก, ๋์์ ์์ ์ฑ์ ๋ช ์ํ๊ณ ๊ฒ์ฆํ๋ ๋ฐ ๊ฐ์ฅ ์ ํํ ๋๊ตฌ์ ๋๋ค.
์ฝ๋ ์๊ฐํ ๋๊ตฌ: ์๋์์ ์๋ํ๊น์ง
๋ค์ด์ด๊ทธ๋จ์ ๋ค๋ฃฐ ๋ ์ค์ง์ ์ธ ์ด๋ ค์์ ์ต์ ์ํ๋ก ์ ์งํ๋ ๊ฒ์ ๋๋ค. 1์์ ์ ํํ๋ ์๋ ๋ค์ด์ด๊ทธ๋จ๋ ์ธ ๋ฒ์ ๊ธฐ๋ฅ ์คํ๋ฆฐํธ๊ฐ ์ง๋ 3์์๋ ์ด๋ฏธ ๊ตฌ์์ด ๋์ด๋ฒ๋ฆฝ๋๋ค. ์๋ ์๊ฐํ๋ ๋๊ตฌ๋ค์ ์๋ ๋ค์ด์ด๊ทธ๋จ ์์ฑ ๋๊ตฌ๋ถํฐ ์์ค ์ฝ๋์์ ์ง์ ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํ๋ ์์คํ ๊น์ง ๋ค์ํฉ๋๋ค.
๋ค์ด์ด๊ทธ๋จ์ ์ฝ๋๋ก: ๋๊ธฐํ ์๋ฃจ์
๋ค์ด์ด๊ทธ๋จ์ ์ต์ ์ฑ ์ ์ง๋ฅผ ์ํ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ํด๊ฒฐ์ฑ ์ ๋ค์ด์ด๊ทธ๋จ์ ์ฝ๋๋ก ํํํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ๋ค์ด์ด๊ทธ๋จ์ ์์ค ์ฝ๋์ ํจ๊ป ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ ์ฅ๋๋ ํ ์คํธ ์ ์๋ก ๋ํ๋ด๋ ๊ฒ์ ๋๋ค. ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ค์ด์ด๊ทธ๋จ ์ ์๋ ๋์ผํ ์ปค๋ฐ์์ ๋ณ๊ฒฝ๋ฉ๋๋ค. ๋ค์ด์ด๊ทธ๋จ์ ๋์ผํ ์ ์ฅ์์ ์กด์ฌํ๊ณ ๋์ผํ ๊ฒํ ํ๋ก์ธ์ค๋ฅผ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์ ํญ์ ์ต์ ์ํ๋ฅผ ์ ์งํฉ๋๋ค.
๊ฒ์ ์ฝ์ ๋ฐ์ดํฐ์์ "์ฝ๋-๋ค์ด์ด๊ทธ๋จ ๋๊ธฐํ", "์ฝ๋๋ฒ ์ด์ค ๋ฐ ๋ค์ด์ด๊ทธ๋จ ๋๊ธฐํ", "์ค์๊ฐ ์ฝ๋-๋ค์ด์ด๊ทธ๋จ ์ผ๊ด์ฑ"์ด๋ผ๋ ๊ฒ์์ด ํด๋ฌ์คํฐ๋ ๊ธฐ์กด ๋ค์ด์ด๊ทธ๋จ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ํ์ด ์ง๋ฉดํ๋ ์ค์ ๋ฌธ์ ๋ฅผ ๋ฐ์ํฉ๋๋ค. ์ฝ๋ํ ๋ค์ด์ด๊ทธ๋จ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ํด๊ฒฐํฉ๋๋ค.
Mermaid ๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฝ๋ํ ๋ค์ด์ด๊ทธ๋จ ๋๊ตฌ๋ก, GitHub, GitLab, Notion, Obsidian ๋ฐ ๋๋ถ๋ถ์ ์ต์ ๋ฌธ์ํ ํ๋ซํผ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์๋ฉ๋๋ค.


PlantUML์ ๋ณต์กํ UML ๋ค์ด์ด๊ทธ๋จ์ ์ํ ๋์ฑ ํ๋ถํ ๊ตฌ๋ฌธ์ ์ ๊ณตํ๋ฉฐ ๊ธฐ์ ๋ฌธ์ ์์ฑ์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
@startuml
class OrderService {
+createOrder(items: List<Item>): Order
+cancelOrder(orderId: String): void
-validatePayment(payment: Payment): Boolean
}
class Order {
+id: String
+status: OrderStatus
+items: List<Item>
+createdAt: DateTime
}
class PaymentService {
+charge(amount: Decimal, card: Card): Transaction
+refund(transactionId: String): void
}
OrderService --> Order: creates
OrderService --> PaymentService: delegates payment to
@enduml
D2 ๋ ๊ตฌ๋ฌธ์ด ๋ ์ฝ๊ธฐ ์ฝ๊ณ ์๋ ๋ ์ด์์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ต์ ๋ค์ด์ด๊ทธ๋จ ์ฝ๋ ์์ฑ ์ธ์ด๋ก, ๋ณต์กํ ์์กด์ฑ ๊ทธ๋ํ์ ๊ฐ์ ๋๊ท๋ชจ ๋ค์ด์ด๊ทธ๋จ์ Mermaid๋ณด๋ค ๋ ์ ์ฒ๋ฆฌํฉ๋๋ค.
API Gateway -> Auth Service: authenticate
API Gateway -> Order Service: route order request
Order Service -> Inventory Service: reserve stock
Order Service -> Payment Service: charge card
Order Service -> Notification Service: send confirmation
Payment Service -> Bank API: process transaction
Graphviz(DOT ์ธ์ด) ๋ ์๋ํ๋ ํ์ดํ๋ผ์ธ์์ ์์กด์ฑ ๊ทธ๋ํ์ ํธ์ถ ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์๊ฐํํ๋ ๋ฐ ๊ฐ์ฅ ์ ํฉํ ๋๊ตฌ์ ๋๋ค.
digraph dependencies {
rankdir=LR;
node [shape=box];
"OrderController" -> "OrderService";
"OrderService" -> "InventoryRepository";
"OrderService" -> "PaymentGateway";
"OrderService" -> "NotificationService";
"InventoryRepository" -> "Database";
"PaymentGateway" -> "StripeAPI";
}
์๋ ์ฝ๋-๋ค์ด์ด๊ทธ๋จ ๋ณํ ๋๊ตฌ
๊ฐ๋ฐ์๊ฐ ๋ค์ด์ด๊ทธ๋จ ์ ์๋ฅผ ์ง์ ์์ฑํ๋ ์ฝ๋ํ ๋ค์ด์ด๊ทธ๋จ ์ธ์๋, ์์ค ์ฝ๋๋ฅผ ์ง์ ๋ถ์ํ์ฌ ๋ค์ด์ด๊ทธ๋จ์ ์๋์ผ๋ก ์์ฑํ๋ ์ฌ๋ฌ ๋๊ตฌ๊ฐ ์์ต๋๋ค.
| ์๋จ | ๊ทธ๊ฒ์ด ์์ฑํ๋ ๊ฒ | ์ธ์ด | ํตํฉ |
|---|---|---|---|
| ํ๋ํธUML | ํด๋์ค, ์ํ์ค, UML ๋ค์ด์ด๊ทธ๋จ | ์ฌ๋ฌ ๊ฐ (์ฃผ์ ๋๋ ์๋ ์ ๋ ฅ) | IntelliJ, VS Code, Maven |
| ์์ค ํธ๋ ์ผ | ๋ํํ ์ข ์์ฑ ๊ทธ๋ํ, ํธ์ถ ๊ทธ๋ํ | C, C++, ์๋ฐ, ํ์ด์ฌ | ๋ ๋ฆฝ ์คํํ + IDE ํ๋ฌ๊ทธ์ธ |
| ์ฝ๋ ์๊ฐํ ๋๊ตฌ(VS ์ฝ๋) | ์ค์๊ฐ ์์๋, ์์กด์ฑ ๊ทธ๋ํ | ํ์ด์ฌ, ์๋ฐ์คํฌ๋ฆฝํธ, ํ ์คํธ์ฌ์ด์ , PHP | VS ์ฝ๋ ํ์ฅ |
| ๋ ์์ + ๊ทธ๋ํ๋น์ฆ | ํธ์ถ ๊ทธ๋ํ, ํฌํจ ๊ทธ๋ํ, ํด๋์ค ๊ณ์ธต ๊ตฌ์กฐ | C, C++, ์๋ฐ | CI / CD ํ์ดํ ๋ผ์ธ |
| py2cfg / pycallgraph | ์ ์ด ํ๋ฆ ๊ทธ๋ํ, ํธ์ถ ๊ทธ๋ํ | Python | CLI/์คํฌ๋ฆฝํธ |
| JavaParser + Graphviz | ๋ฉ์๋ ํธ์ถ ๊ทธ๋ํ, ํจํค์ง ์ข ์์ฑ | ์๋ฐ | ๋น๋ ๋๊ตฌ ํตํฉ |
| SMART TS XL | ์ธ์ด ๊ฐ ์์กด์ฑ ๋งต, ํธ์ถ ๊ทธ๋ํ, ํ๋ฆ๋ | COBOL, JCL, Java, Python, RPG, .NET, SQL | ๊ธฐ์ , ๋ฉ์ธํ๋ ์ |
IDE ํตํฉ: ์ฝ๋ฉ ์ค ์๊ฐํ
์ต์ IDE๋ ์๊ฐํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๋ณ๋์ ๋ค์ด์ด๊ทธ๋จ ๋๊ตฌ๊ฐ ํ์ํ์ง ์๋๋ก ํด์ค๋๋ค.
VS Code๋ rust-analyzer, pylance ๋๋ ๋ค๋ฅธ ์ธ์ด ์๋ฒ์ ํจ๊ป ์ฌ์ฉํ๋ฉด ํจ์ ํธ์ถ ๊ณ์ธต ๊ตฌ์กฐ(๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ํด๋ฆญ โ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ โ ํจ์ ํธ์ถ ๊ณ์ธต ๊ตฌ์กฐ)์ ์ํฌํธ ๊ทธ๋ํ๋ฅผ ๋ณด์ฌ์ค๋๋ค. CodeVisualizer ํ์ฅ ํ๋ก๊ทธ๋จ์ Python, JavaScript, TypeScript ๋ฐ PHP ํจ์์์ ์ค์๊ฐ ์์๋๋ฅผ ์์ฑํฉ๋๋ค.
IntelliJ IDEA/JetBrains IDE๋ ๋ด์ฅ๋ ์ข ์์ฑ ๋ถ์ ๊ธฐ๋ฅ, ์ ํํ ํด๋์ค ๋๋ ํจํค์ง์์ ์์ฑ๋ UML ํด๋์ค ๋ค์ด์ด๊ทธ๋จ(๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ํด๋ฆญ โ ๋ค์ด์ด๊ทธ๋จ โ ๋ค์ด์ด๊ทธ๋จ ํ์), ๊ทธ๋ฆฌ๊ณ ํธ์ถ์์ ํผํธ์ถ์๋ฅผ ์ฌ๊ท์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ํธ์ถ ๊ณ์ธต ๊ตฌ์กฐ ๋ณด๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Visual Studio๋ ๋น๋ ์์ ์ ์ํคํ ์ฒ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ฉํ๊ธฐ ์ํ ์ฝ๋ ๋งต(์๋ฃจ์ ์ ์ข ์์ฑ ๊ทธ๋ํ), ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ ๋ฐ ๋ ์ด์ด ๋ค์ด์ด๊ทธ๋จ์ ์ ๊ณตํฉ๋๋ค.
๊ธฐ์กด ์ฝ๋์์ ๋ค์ด์ด๊ทธ๋จ ์์ฑ
๊ธฐ์กด ์ฝ๋์์ ๋ค์ด์ด๊ทธ๋จ์ ์ญ์ค๊ณํ๋ ๊ฒ์ ๋ ๊ฑฐ์ ์์คํ ๋ฐ ์ํฐํ๋ผ์ด์ฆ ํ๊ฒฝ์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค. ์ด ๊ณผ์ ์ ์ฌ์ฉ๋๋ ์ธ์ด์ ํ์ํ ๋ค์ด์ด๊ทธ๋จ ์ ํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ฝ๋์์ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ์์ฑํ๊ธฐ
Java ๋ฐ .NET์ ๊ฒฝ์ฐ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ค ์ฝ๋์์ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.
- IntelliJ IDEA์ ๋ด์ฅ UML ์์ฑ๊ธฐ(ํด๋์ค๋ฅผ ์ ํํ๊ณ ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ ํ ๋ค์ด์ด๊ทธ๋จ์ ์ ํ)
- IntelliJ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด ์ ํํ ํด๋์ค๋ฅผ PlantUML ํ์์ผ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
- Pyreverse(pylint์ ์ผ๋ถ)๋ Python์ฉ์
๋๋ค.
pyreverse -o png -p MyPackage mypackage/ - NClass for .NET: ์ปดํ์ผ๋ ์ด์ ๋ธ๋ฆฌ์์ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํฉ๋๋ค.
ํธ์ถ ๊ทธ๋ํ ๋ฐ ์์กด์ฑ ๊ทธ๋ํ ์์ฑ
ํธ์ถ ๊ทธ๋ํ์ ์์กด์ฑ ๊ทธ๋ํ๋ฅผ ์ป์ผ๋ ค๋ฉด ์ฝ๋๋ฒ ์ด์ค์ ๋ํ ์ ์ ๋ถ์์ด ํ์ํฉ๋๋ค.
# Python: generate call graph using pycallgraph
pip install pycallgraph2
pycallgraph2 graphviz -- python my_script.py
# Python: generate package dependency graph
pip install pydeps
pydeps my_package --max-bacon 4 --cluster
# Java: generate call graph with javacg
java -jar javacg.jar my_project.jar | python3 parse_cg.py
# COBOL/JCL/Legacy: use SMART TS XL for automatic cross-program dependency maps
์ฝ๋์์ ์์๋ ์์ฑํ๊ธฐ
์๋ ์์๋ ์์ฑ์๋ ํน์ ๊ธฐ๋ฅ์ ์ ์ด ํ๋ฆ์ ๋ถ์ํ๋ ์์ ์ด ํ์ํฉ๋๋ค.
# Python: generate flowchart with code2flow
pip install code2flow
code2flow my_module.py --output my_flowchart.png
# C/C++: use Doxygen with CALL_GRAPH=YES in Doxyfile
CALL_GRAPH = YES
CALLER_GRAPH = YES
HAVE_DOT = YES
# Any language: CodeVisualizer VS Code extension
# Right-click any function โ Visualize Function Flow
์ฝ๋-๋ค์ด์ด๊ทธ๋จ ๋๊ธฐํ: ๋ค์ด์ด๊ทธ๋จ์ ํญ์ ์ต์ ์ํ๋ก ์ ์งํ๊ธฐ
์ฝ๋ ์๊ฐํ์์ ๊ฐ์ฅ ํํ ์คํจ ์์ธ์ ์๋์ ๋ค๋จ์ด์ง๋ ๋ค์ด์ด๊ทธ๋จ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ํ์ 1์์ ๋ฉ์ง ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ์ ๋ง๋ค์ง๋ง, ์ธ ๋ฒ์ ๊ธฐ๋ฅ ์คํ๋ฆฐํธ๋ฅผ ๊ฑฐ์น๋ฉด์ ์ฝ๋๋ฒ ์ด์ค๊ฐ ๋ณ๊ฒฝ๋๊ณ , 4์์ด ๋๋ฉด ๊ทธ ๋ค์ด์ด๊ทธ๋จ์ ๋ ์ด์ ์กด์ฌํ์ง ์๋ ์์คํ ์ ์ค๋ช ํ๊ฒ ๋ฉ๋๋ค. ๊ฐ๋ฐ์๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ์ ๋ขฐํ์ง ์๊ฒ ๋๊ณ , ๋ค์ด์ด๊ทธ๋จ์ ์๋ชป๋ ์ ๋ณด๋ฅผ ๋ด์ ์๋ฃ๋ก ์์ด๊ฒ ๋ฉ๋๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๋ ์ธ ๊ฐ์ง ์ ๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋ต 1: ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ๋ค์ด์ด๊ทธ๋จ์ ์ฝ๋๋ก ์ ์ฅํ๊ธฐ. Mermaid, PlantUML ๋๋ D2 ๋ค์ด์ด๊ทธ๋จ ์ ์๋ฅผ ํด๋น ๋ค์ด์ด๊ทธ๋จ์ด ์ค๋ช ํ๋ ์ฝ๋์ ๋์ผํ ์ ์ฅ์์ ์ ์ฅํฉ๋๋ค. ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๋ ๋ชจ๋ ํ ๋ฆฌํ์คํธ์๋ ํด๋น ๋ค์ด์ด๊ทธ๋จ ์ ๋ฐ์ดํธ๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์ฝ๋ ๊ฒํ ์๋ ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํจ๊ป ๊ฒ์ฆํ ์ ์์ต๋๋ค. CI ํ์ดํ๋ผ์ธ์ ๋ค์ด์ด๊ทธ๋จ์ ์๋์ผ๋ก ๋ ๋๋งํ๊ณ ํ ๋ฆฌํ์คํธ์ ์ฒจ๋ถํ ์ ์์ต๋๋ค.
์ ๋ต 2: CI/CD ํ๊ฒฝ์์ ๋ค์ด์ด๊ทธ๋จ ์๋ ์์ฑ. ๋น๋ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ์ฌ ๋ฉ์ธ ๋ธ๋์น์ ๋ณํฉ๋ ๋๋ง๋ค ์์ค ์ฝ๋์์ ์ข ์์ฑ ๊ทธ๋ํ์ ํธ์ถ ๊ทธ๋ํ๋ฅผ ๋ค์ ์์ฑํ๋๋ก ํฉ๋๋ค. ์์ฑ๋ ๋ค์ด์ด๊ทธ๋จ์ ๋น๋ ์ํฐํฉํธ๋ก ์ ์ฅํฉ๋๋ค. "ํ์ฌ ์ํคํ ์ฒ" ๋ค์ด์ด๊ทธ๋จ์ ํญ์ ๊ฐ์ฅ ์ต๊ทผ ๋น๋์ ๊ฒฐ๊ณผ๋ฌผ์ด๋ฉฐ, ์๋์ผ๋ก ๊ด๋ฆฌ๋๋ ํ์ผ์ด ์๋๋๋ค.
์ ๋ต 3: ์๊ฐํ ๊ธฐ๋ฅ์ด ํตํฉ๋ IDE. ํ๋ฐํ ๊ฐ๋ฐ ์ค์ ์ฌ์ฉ๋๋ ๊ฐ๋ฐ์์ฉ ๋ค์ด์ด๊ทธ๋จ์ ๊ฒฝ์ฐ, ํ์ฌ ์์ค์์ ํ์์ ๋ฐ๋ผ ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํ๋ IDE ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด ๋๊ธฐํ ๋ฌธ์ ๋ฅผ ์์ ํ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ค์ด์ด๊ทธ๋จ์ด ๋งค๋ฒ ์๋กญ๊ฒ ์์ฑ๋๋ฏ๋ก ํญ์ ์ต์ ์ํ๋ฅผ ์ ์งํฉ๋๋ค.
์ ๋ต 1๊ณผ 2๋ฅผ ๊ฒฐํฉํ๋ ๊ฒ์ด ํ ๋ฌธ์ํ์ ๊ฐ์ฅ ํจ๊ณผ์ ์ ๋๋ค. ์ฆ, ์ํคํ ์ฒ ์๋๋ฅผ ๋ํ๋ด๋ ๋ค์ด์ด๊ทธ๋จ์ ์ง์ ์์ฑํ๊ณ (์ฝ๋ ๊ฒํ ๋ฅผ ํตํด ์ต์ ์ํ๋ก ์ ์ง), ๊ตฌ์กฐ์ ์ง์ค์ ๋ํ๋ด๋ ๋ค์ด์ด๊ทธ๋จ์ ์๋ ์์ฑํ๊ณ (CI ์๋ํ๋ฅผ ํตํด ์ต์ ์ํ๋ก ์ ์ง) ๋ฌธ์ํํ๋ ๊ฒ์ ๋๋ค.
๋ ๊ฑฐ์ ์์คํ ์ ๋ณต์กํ ์ฝ๋ ์ข ์์ฑ ์๊ฐํ
๋ ๊ฑฐ์ ์ฝ๋๋ฒ ์ด์ค๋ ์๊ฐํ์ ์์ด ๊ฐ์ฅ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๋ฉฐ, ๋์์ ์๊ฐํ๊ฐ ๊ฐ์ฅ ์๊ธํ ๋์์ด๊ธฐ๋ ํฉ๋๋ค. 40๋ ๋์ ์ถ์ ๋ COBOL, JCL, ์นดํผ๋ถ, ๊ทธ๋ฆฌ๊ณ ๋ด์ฅ SQL๋ก ์ด๋ฃจ์ด์ง ๋ฉ์ธํ๋ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฌ ํ ๊ตฌ์ฑ์ ์ค ๋๊ตฌ๋ ์์ ํ ์ดํดํ์ง ๋ชปํ๋ ๋ณต์กํ ์์กด์ฑ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ค๋ น ๋ฌธ์๊ฐ ์กด์ฌํ๋ค ํ๋๋ผ๋, ๊ทธ ์์คํ ์ ์ด๋ฏธ ์์ ํ ๋ณ๊ฒฝ๋์ด ์์๋ณผ ์ ์์ ์ ๋์ ๋๋ค.
๋ ๊ฑฐ์ ์์คํ ์ ์๋ํ๋ ์ข ์์ฑ ๋ถ์์๋ ๊ด๋ จ ์ธ์ด๋ฅผ ์ดํดํ๋ ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค. Java ๋๋ Python์ฉ์ผ๋ก ์ค๊ณ๋ ํ์ค ์๊ฐํ ๋๊ตฌ๋ COBOL์ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๊ณ , JCL ์์ ์คํธ๋ฆผ ํธ์ถ ํจํด์ ์ดํดํ ์ ์์ผ๋ฉฐ, COBOL ํ๋ก๊ทธ๋จ๊ณผ ํด๋น ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ DB2 ํ ์ด๋ธ, ๊ทธ๋ฆฌ๊ณ ๊ทธ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ Java ์๋น์ค ๊ฐ์ ์ธ์ด ๊ฐ ์ฐ๊ฒฐ์ ์ถ์ ํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋ฐ ์ ์ด ํ๋ฆ ๋ถ์ ์ ๋งฅ๋ฝ์์ ์ดํด๋ณด๋ฉด , ๋ค๊ตญ์ด ์์คํ ์์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ด๋ํ๋์ง์ ๋ํ ๊ตฌ์กฐ์ ์ดํด๋ฅผ ์ํด์๋ ๊ฐ ์ธ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ํตํฉ ๋ชจ๋ธ์์ ์ธ์ด ๊ฐ ์ฐ๊ฒฐ์ ํ์ ํด์ผ ํฉ๋๋ค.
๊ธฐ์กด ํ๊ฒฝ์์์ ๊ตฌ์ฒด์ ์ธ ์๊ฐํ ์๊ตฌ ์ฌํญ์ ์ต์ ์์คํ ๊ณผ ๋ค๋ฆ ๋๋ค.
- ํ๋ก๊ทธ๋จ ํธ์ถ ๊ทธ๋ํ CALL, PERFORM ๋ฐ LINK๋ฅผ ํตํด ์ด๋ค COBOL ํ๋ก๊ทธ๋จ์ด ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ํธ์ถํ๋์ง ๋ณด์ฌ์ค๋๋ค.
- JCL ์์ ์คํธ๋ฆผ ๋ค์ด์ด๊ทธ๋จ ๋จ๊ณ๋ณ ์คํ ์์, ๊ฐ ๋จ๊ณ์์ ํธ์ถ๋๋ ํ๋ก๊ทธ๋จ, ๊ทธ๋ฆฌ๊ณ ๋จ๊ณ๋ค ์ฌ์ด์์ ํ๋ฅด๋ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
- ์ธ์ด ๊ฐ ์์กด์ฑ ๋งต ๋ณต์ฌ๋ณธ ํ๋ ์ ์๊ฐ DB2 ์ด์ ์ฐ๊ฒฐ๋๊ณ , ์ด ์ด์ด Java ์๋น์ค ๊ฐ์ฒด ํ๋์ ์ฐ๊ฒฐ๋๊ณ , ์ต์ข ์ ์ผ๋ก REST API ์๋ต์ ์ฐ๊ฒฐ๋๋ ๋ฐฉ์์ ๋ณด์ฌ์ค๋๋ค.
- ์ํฅ๋ํ ์์์ ์์ ๊ตฌ์ฑ ์์์์ ์์ฑ๋๋ฉฐ, ํด๋น ๊ตฌ์ฑ ์์๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ด๋ค ๋ถ๋ถ์ด ์ํฅ์ ๋ฐ๋์ง ๋ณด์ฌ์ค๋๋ค.
์ด๋ฌํ ๋ค์ด์ด๊ทธ๋จ์ ์์ ํ ํ๋ํ๋ฅผ ์ํ ๊ธฐ๋ฐ์ ๋๋ค. ์ด๋ค ๊ตฌ์ฑ ์์๋ฅผ ํด๋ผ์ฐ๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ฑฐ๋ ์๋ก์ด ์ธ์ด๋ก ๋ณํํ๊ธฐ ์ ์, ํ์ ํด๋น ๊ตฌ์ฑ ์์๊ฐ ๋ฌด์์ ์ฐ๊ฒฐ๋์ด ์๊ณ ๋ฌด์์ ์์กดํ๋์ง ์์์ผ ํฉ๋๋ค. ์๊ฐํ๊ฐ ์๋ค๋ฉด, ์ด๋ฌํ ์ ๋ณด๋ฅผ ์ป์ผ๋ ค๋ฉด ์์ค ์ฝ๋์์ ์๋์ผ๋ก ์ฌ๊ตฌ์ฑํด์ผ ํ๋๋ฐ, ์ด๋ ๋ช ์ฃผ๊ฐ ๊ฑธ๋ฆฌ๊ณ ๋ถ์์ ํ ๊ฒฐ๊ณผ๋ง ์ป๊ฒ ๋ฉ๋๋ค.
๋ฌธ์ ์ ๋ง๋ ์ ์ ํ ๋ํ ์ ํํ๊ธฐ
์ฝ๋ ์๊ฐํ์์ ๊ฐ์ฅ ํํ ์ค์๋ ์ง๋ฌธ์ ๋ง์ง ์๋ ์ ํ์ ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํ๊ฑฐ๋, ์ถ์ํ ์์ค์ด ์๋ชป๋ ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ์๋์ ๊ฒฐ์ ๊ฐ์ด๋๋ ์ผ๋ฐ์ ์ธ ์์ง๋์ด๋ง ์ง๋ฌธ์ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋ค์ด์ด๊ทธ๋จ ์ ํ์ ์ ์ํฉ๋๋ค.
| ๊ณตํ์ ์ง๋ฌธ | ์ต์ ์ ๋ค์ด์ด๊ทธ๋จ ์ ํ | ๋๊ตฌ |
|---|---|---|
| ์ด ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ์๋ํ๋์? | ์์๋ | ๋จธ๋ฉ์ด๋, ์ฝ๋๋น์ฃผ์ผ๋ผ์ด์ , ์ฝ๋2ํ๋ก์ฐ |
| ์ด ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น? | ํธ์ถ ๊ทธ๋ํ | Sourcetrail, IDE ํธ์ถ ๊ณ์ธต ๊ตฌ์กฐ, SMART TS XL |
| ์ด๋ฌํ ์๋น์ค๋ค์ ์ด๋ป๊ฒ ์๋ก ์ํตํ๋์? | ์ํ์ค ๋ค์ด์ด๊ทธ๋จ | ์ธ์ด, PlantUML |
| ์ด ๊ตฌ์ฑ ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ๊ฒ์ ๋ฌด์์ ๋๊น? | ์์กด์ฑ ๊ทธ๋ํ | ๊ทธ๋ํ๋น์ฆ, D2, SMART TS XL |
| ์ด ์์คํ ์ ์ด๋ค ์ฃผ์์ ์ฌ์ฉํ ์ ์๋์? | ์ํ ๋ค์ด์ด๊ทธ๋จ | ์ธ์ด, PlantUML |
| ์์คํ ์ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์ต๋๊น? | ๊ตฌ์ฑ์์ ๋ค์ด์ด๊ทธ๋จ | PlantUML, Lucidchart, draw.io |
| ์ด๋ฌํ ๋ณํ๋ ์ด๋ค ์ํฅ์ ๋ฏธ์น ๊น์? | ์ํฅ๋ํ | SMART TS XL |
| ๋ณต์ก์ฑ์ ์ด๋์ ์ง์ค๋์ด ์๋๊ฐ? | ์์กด์ฑ ๊ทธ๋ํ์ ํํธ๋งต์ ๊ฒน์ณ ํ์ | ์ฝ๋์ฌ, SMART TS XL |
| ์ด ์์ ๋ค์ ์ด๋ป๊ฒ ์ฐ๊ด๋์ด ์๋์? | ํด๋์ค ๋ค์ด์ด๊ทธ๋จ | IntelliJ, Pyreverse, PlantUML |
ํํ ์ ์ง๋ฅด๋ ๋ ๋ค๋ฅธ ์ค์๋ ์๊ฐํ๋ฅผ ์ผํ์ฑ ํ๋์ผ๋ก ์ฌ๊ธฐ์ง ์๊ณ ์ง์์ ์ธ ์ค์ฒ์ผ๋ก ํ์ฉํด์ผ ํ๋ค๋ ์ ์ ๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ํ๋ก์ ํธ ์์ ์ ์ ํ ๋ฒ ์์ฑํ๊ณ ์ ๋ฐ์ดํธํ์ง ์๋ ์์กด์ฑ ๊ทธ๋ํ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ๋๋ก ์ง์ํ์ง ๋ชปํฉ๋๋ค. ๋จ์ง ์์ฑ๋ ๋ ์ง์ ์์คํ ์ํ๋ง์ ๋ณด์ฌ์ค ๋ฟ์ ๋๋ค. ์ฝ๋์์ ์๋์ผ๋ก ์์ฑ๋๊ฑฐ๋, ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ ์ ์ฅ๋๊ฑฐ๋, ํ์์ ๋ฐ๋ผ ๋ค์ ์์ฑ๋๋ ๋ค์ด์ด๊ทธ๋จ๋ง์ด ์์ง๋์ด๋ง ํ๋ก๊ทธ๋จ ์ ๋ฐ์ ๊ฑธ์ณ ์ ์ฉํ๊ฒ ํ์ฉ๋ ์ ์์ผ๋ฉฐ, ์ธ๋ชจ์๋ ์ฐธ์กฐ ์๋ฃ๋ก ์ ๋ฝํ์ง ์์ต๋๋ค.
์๊ฐํ๋ ์ํฌํ๋ก์ ํตํฉ๋ ๋ ๊ฐ์ฅ ๊ฐ๋ ฅํ ํจ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฝ๋ ๊ฒํ ์ค์ ์๋ก์ด ์ข ์์ฑ์ด ์๋์ ์ธ์ง ํ์ธํ๊ธฐ ์ํด ์์ฑํ๊ฑฐ๋, ์ฅ์ ๋์ ์ค์ ์ค๋ฅ ๋ฐ์ ๊ฒฝ๋ก๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ์ฟผ๋ฆฌํ๊ฑฐ๋, ์ํคํ ์ฒ ํ์์์ ์์คํ ์ ์ค์ ๊ตฌ์กฐ์ ๊ธฐ๋ฐํ์ฌ ์ ๋ต์ ๋ ผ์๋ฅผ ์งํํ๋ ๋ฐ ํ์ฉํ ์ ์์ต๋๋ค.


