๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

์ฝ”๋“œ ์‹œ๊ฐํ™”: ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•

์ธ์ปด 2026๋…„ 6์›” 8์ผ ,

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 ์ฝ”๋“œ)์‹ค์‹œ๊ฐ„ ์ˆœ์„œ๋„, ์˜์กด์„ฑ ๊ทธ๋ž˜ํ”„ํŒŒ์ด์ฌ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ, ํ…์ŠคํŠธ์‚ฌ์ด์ €, PHPVS ์ฝ”๋“œ ํ™•์žฅ
๋…์‹œ์   + ๊ทธ๋ž˜ํ”„๋น„์ฆˆํ˜ธ์ถœ ๊ทธ๋ž˜ํ”„, ํฌํ•จ ๊ทธ๋ž˜ํ”„, ํด๋ž˜์Šค ๊ณ„์ธต ๊ตฌ์กฐC, C++, ์ž๋ฐ”CI / CD ํŒŒ์ดํ”„ ๋ผ์ธ
py2cfg / pycallgraph์ œ์–ด ํ๋ฆ„ ๊ทธ๋ž˜ํ”„, ํ˜ธ์ถœ ๊ทธ๋ž˜ํ”„PythonCLI/์Šคํฌ๋ฆฝํŠธ
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

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

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