1C ์›น ํด๋ผ์ด์–ธํŠธ ์ •๋ณด

1C:Enterprise ๊ธฐ์ˆ ์˜ ์ข‹์€ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ๊ด€๋ฆฌํ˜• ์–‘์‹ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†”๋ฃจ์…˜์ด Windows, Linux, MacOS X์šฉ ์”ฌ(์‹คํ–‰ ๊ฐ€๋Šฅ) ํด๋ผ์ด์–ธํŠธ์™€ 5๊ฐœ ๋ธŒ๋ผ์šฐ์ €์šฉ ์›น ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Chrome, Internet Explorer, Firefox, Safari, Edge ๋“ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ์ด ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์™ธ๋ถ€์ ์œผ๋กœ ์”ฌ ํด๋ผ์ด์–ธํŠธ์™€ ๋ธŒ๋ผ์šฐ์ €์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ธฐ๋Šฅ๊ณผ ๋ชจ์–‘์ด ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
10๊ฐ€์ง€ ์ฐจ์ด์  ์ฐพ๊ธฐ(์ปท ์•„๋ž˜ ์‚ฌ์ง„ 2์žฅ):

Linux์˜ ์”ฌ ํด๋ผ์ด์–ธํŠธ ์ฐฝ:

1C ์›น ํด๋ผ์ด์–ธํŠธ ์ •๋ณด

์›น ํด๋ผ์ด์–ธํŠธ์˜ ๋™์ผํ•œ ์ฐฝ(Chrome ๋ธŒ๋ผ์šฐ์ €):

1C ์›น ํด๋ผ์ด์–ธํŠธ ์ •๋ณด

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

1C ์›น ํด๋ผ์ด์–ธํŠธ ์ •๋ณด

์”ฌ ํด๋ผ์ด์–ธํŠธ์— ์›น ๊ธฐ๋ฐ˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์™„์ „ํžˆ ๋ณ€๊ฒฝ๋œ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ์›น ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ ์„ฑ๋ช…

๋”ฐ๋ผ์„œ ํ”„๋กœ์ ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ: ์›น ํด๋ผ์ด์–ธํŠธ๋Š” ์”ฌ ํด๋ผ์ด์–ธํŠธ์™€ ๋™์ผํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰,

  1. ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ํ‘œ์‹œ
  2. 1C ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ ์‹คํ–‰

1C์˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์‹œ๊ฐ์  ํŽธ์ง‘๊ธฐ์—์„œ ์„ค๋ช…๋˜์ง€๋งŒ ์„ ์–ธ์ ์œผ๋กœ๋Š” ์š”์†Œ์˜ ํ”ฝ์…€ ๋‹จ์œ„ ๋ฐฐ์—ด์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฒ„ํŠผ, ์ž…๋ ฅ ํ•„๋“œ(ํ…์ŠคํŠธ, ์ˆซ์ž, ๋‚ ์งœ/์‹œ๊ฐ„), ๋ชฉ๋ก, ํ‘œ, ๊ทธ๋ž˜ํ”„ ๋“ฑ ์•ฝ XNUMX๊ฐ€์ง€ ์œ ํ˜•์˜ ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

1C ์–ธ์–ด์˜ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์—๋Š” ์„œ๋ฒ„ ํ˜ธ์ถœ, ๋กœ์ปฌ ๋ฆฌ์†Œ์Šค(ํŒŒ์ผ ๋“ฑ) ์ž‘์—…, ์ธ์‡„ ๋“ฑ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์”ฌ ํด๋ผ์ด์–ธํŠธ(์›น์„ ํ†ตํ•ด ์ž‘์—…ํ•  ๋•Œ)์™€ ์›น ํด๋ผ์ด์–ธํŠธ๋Š” ๋ชจ๋‘ ๋™์ผํ•œ ์›น ์„œ๋น„์Šค ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 1C ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํด๋ผ์ด์–ธํŠธ ๊ตฌํ˜„์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์”ฌ ํด๋ผ์ด์–ธํŠธ๋Š” C++๋กœ ์ž‘์„ฑ๋˜๊ณ  ์›น ํด๋ผ์ด์–ธํŠธ๋Š” JavaScript๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

์—ญ์‚ฌ์˜ ๋น„ํŠธ

์›น ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์ ํŠธ๋Š” 2006๋…„ ํ‰๊ท  5๋ช…์˜ ํŒ€์œผ๋กœ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ํŠน์ • ๋‹จ๊ณ„์—์„œ๋Š” ํŠน์ • ๊ธฐ๋Šฅ(์Šคํ”„๋ ˆ๋“œ์‹œํŠธ ๋ฌธ์„œ, ๋‹ค์ด์–ด๊ทธ๋žจ ๋“ฑ)์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฐธ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋“ค์€ ์”ฌ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ด ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ ๊ฐœ๋ฐœ์ž์™€ ๋™์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๊ฒƒ๋“ค. ๊ฐœ๋ฐœ์ž๋Š” ์ด์ „์— C++๋กœ ๋งŒ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ JavaScript๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ๋ถ€ํ„ฐ ์šฐ๋ฆฌ๋Š” ๋‘ ์–ธ์–ด ๊ฐ„์˜ ๊ฐ•๋ ฅํ•œ ๊ฐœ๋…์  ์ฐจ์ด๋กœ ์ธํ•ด C++ ์”ฌ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ๋ฅผ JavaScript ์›น ํด๋ผ์ด์–ธํŠธ๋กœ ์ž๋™(๋ถ€๋ถ„์ ์ด๋ผ๋„) โ€‹โ€‹๋ณ€ํ™˜ํ•œ๋‹ค๋Š” ์•„์ด๋””์–ด๋ฅผ ๊ฑฐ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์›น ํด๋ผ์ด์–ธํŠธ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ JavaScript๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์›น ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” 1C:Enterprise ํ”Œ๋žซํผ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ„์ „์€ 2009๋…„์— ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ ์›น ํด๋ผ์ด์–ธํŠธ๋Š” Internet Explorer์™€ Firefox๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ง€์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์›๋ž˜ ๊ณ„ํš์—๋Š” Opera์— ๋Œ€ํ•œ ์ง€์›์ด ํฌํ•จ๋˜์–ด ์žˆ์—ˆ์ง€๋งŒ ๋‹น์‹œ Opera์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ข…๋ฃŒ ์ฒ˜๋ฆฌ๊ธฐ์™€ ๊ด€๋ จ๋œ ๊ทน๋ณตํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋กœ ์ธํ•ด(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ๋˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ 2% ํ™•์‹คํ•˜๊ฒŒ ์ถ”์ ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ–ˆ์œผ๋ฉฐ ๊ทธ ์ˆœ๊ฐ„์— ์—ฐ๊ฒฐ ํ•ด์ œ ์ ˆ์ฐจ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. 100C ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„)๋Š” ์ด๋Ÿฌํ•œ ๊ณ„ํš์—์„œ ํ๊ธฐ๋˜์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

์ „์ฒด์ ์œผ๋กœ 1C:Enterprise ํ”Œ๋žซํผ์—๋Š” JavaScript๋กœ ์ž‘์„ฑ๋œ 4๊ฐœ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. WebTools โ€“ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ณต์œ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(๋˜ํ•œ ๋‹ค์Œ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค) Google ํด๋กœ์ € ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ).
  2. ์ œ์–ด ์š”์†Œ ์„œ์‹์ด ์ง€์ •๋œ ๋ฌธ์„œ (์”ฌ ํด๋ผ์ด์–ธํŠธ์™€ ์›น ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘์—์„œ JavaScript๋กœ ๊ตฌํ˜„๋จ)
  3. ์ œ์–ด ์š”์†Œ ์Šค์ผ€์ค„๋Ÿฌ (์”ฌ ํด๋ผ์ด์–ธํŠธ์™€ ์›น ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘์—์„œ JavaScript๋กœ ๊ตฌํ˜„๋จ)
  4. ์›น ํด๋ผ์ด์–ธํŠธ

๊ฐ ํ”„๋กœ์ ํŠธ์˜ ๊ตฌ์กฐ๋Š” Java ํ”„๋กœ์ ํŠธ(๋˜๋Š” .NET ํ”„๋กœ์ ํŠธ ์ค‘ ๋” ๊ฐ€๊นŒ์šด ํ”„๋กœ์ ํŠธ)์˜ ๊ตฌ์กฐ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์žˆ๊ณ  ๊ฐ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๋ณ„๋„์˜ ํด๋”์— ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋” ์•ˆ์—๋Š” ํŒŒ์ผ๊ณผ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ์ ํŠธ์—๋Š” ์•ฝ 1000๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์กฐ์ ์œผ๋กœ ์›น ํด๋ผ์ด์–ธํŠธ๋Š” ํฌ๊ฒŒ ๋‹ค์Œ ํ•˜์œ„ ์‹œ์Šคํ…œ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

  • ๊ด€๋ฆฌํ˜• ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค
    • ์ผ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค(์‹œ์Šคํ…œ ๋ฉ”๋‰ด, ํŒจ๋„)
    • ์•ฝ 30๊ฐœ์˜ ์ปจํŠธ๋กค(๋ฒ„ํŠผ, ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์ž…๋ ฅ ํ•„๋“œ - ํ…์ŠคํŠธ, ์ˆซ์ž, ๋‚ ์งœ/์‹œ๊ฐ„ ๋“ฑ, ํ…Œ์ด๋ธ”, ๋ชฉ๋ก, ๊ทธ๋ž˜ํ”„ ๋“ฑ)์„ ํฌํ•จํ•œ ๊ด€๋ฆฌ๋˜๋Š” ์–‘์‹์˜ ์ธํ„ฐํŽ˜์ด์Šค

  • ํด๋ผ์ด์–ธํŠธ์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ฒด ๋ชจ๋ธ(์ด 400๊ฐœ ์ด์ƒ์˜ ์œ ํ˜•: ๊ด€๋ฆฌํ˜• ์ธํ„ฐํŽ˜์ด์Šค ๊ฐœ์ฒด ๋ชจ๋ธ, ๋ฐ์ดํ„ฐ ๋ ˆ์ด์•„์›ƒ ์„ค์ •, ์กฐ๊ฑด๋ถ€ ์Šคํƒ€์ผ ์ง€์ • ๋“ฑ)
  • ๋‚ด์žฅ 1C ์–ธ์–ด ํ†ต์—ญ์‚ฌ
  • ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ(JavaScript์—์„œ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์— ์‚ฌ์šฉ๋จ)
    • ์•”ํ˜ธํ™” ์ž‘์—…
    • ํŒŒ์ผ ์ž‘์—…
    • ์”ฌ ํด๋ผ์ด์–ธํŠธ์™€ ์›น ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์™ธ๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ ๊ธฐ์ˆ 

๊ฐœ๋ฐœ ๊ธฐ๋Šฅ

์œ„์˜ ๋ชจ๋“  ๊ฒƒ์„ JavaScript๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ 1C ์›น ํด๋ผ์ด์–ธํŠธ๋Š” ์•ฝ 450.000์ค„์— ๋‹ฌํ•˜๋Š” JavaScript๋กœ ์ž‘์„ฑ๋œ ๊ฐ€์žฅ ํฐ ํด๋ผ์ด์–ธํŠธ ์ธก ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ค‘ ํ•˜๋‚˜์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์›น ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์—์„œ ๊ฐ์ฒด ์ง€ํ–ฅ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ๋‹จ์ˆœํ™”ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋จผ์ € ์ž์ฒด Obfuscator๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ํ”Œ๋žซํผ ๋ฒ„์ „ 8.3.6(2014๋…„ XNUMX์›”)๋ถ€ํ„ฐ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. Google ํด๋กœ์ € ์ปดํŒŒ์ผ๋Ÿฌ. ์ˆซ์ž๋กœ ํ‘œํ˜„๋œ ์‚ฌ์šฉ ํšจ๊ณผ โ€“ ๋‚œ๋…ํ™” ํ›„ ์›น ํด๋ผ์ด์–ธํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํฌ๊ธฐ:

  • ์ž์ฒด ๋‚œ๋… ์ฒ˜๋ฆฌ๊ธฐ โ€“ 1556kb
  • Google ํด๋กœ์ € ์ปดํŒŒ์ผ๋Ÿฌ โ€“ 1073kb

Google Closure Compiler๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž์ฒด ๋‚œ๋…์ฒ˜๋ฆฌ๊ธฐ์— ๋น„ํ•ด ์›น ํด๋ผ์ด์–ธํŠธ ์„ฑ๋Šฅ์ด 30% ํ–ฅ์ƒ๋˜๋Š” ๋ฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์†Œ๋น„ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์–‘์ด 15~25% ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค(๋ธŒ๋ผ์šฐ์ €์— ๋”ฐ๋ผ ๋‹ค๋ฆ„).

Google Closure Compiler๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ์™€ ๋งค์šฐ ์ž˜ ์ž‘๋™ํ•˜๋ฏ€๋กœ ์›น ํด๋ผ์ด์–ธํŠธ์˜ ํšจ์œจ์„ฑ์ด ์ตœ๋Œ€ํ•œ ๋†’์Šต๋‹ˆ๋‹ค. ํด๋กœ์ € ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ๋ช‡ ๊ฐ€์ง€ ์ข‹์€ ์ผ์„ ํ•ด ์ค๋‹ˆ๋‹ค:

  • ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ๋‹จ๊ณ„์—์„œ ์ •์  ์œ ํ˜• ๊ฒ€์‚ฌ(JSDoc ์ฃผ์„์œผ๋กœ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๋Š”์ง€ ํ™•์ธ) ๊ทธ ๊ฒฐ๊ณผ ์ •์  ํƒ€์ดํ•‘์ด ์ด๋ฃจ์–ด์ง€๋ฉฐ C++์˜ ํƒ€์ดํ•‘ ์ˆ˜์ค€๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ์ ํŠธ ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์ƒ๋‹นํžˆ ๋งŽ์€ ๋น„์œจ์˜ ์˜ค๋ฅ˜๋ฅผ ์žก๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  • ๋‚œ๋…ํ™”๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ ํฌ๊ธฐ ์ค„์ด๊ธฐ
  • ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํ–‰๋œ ์ฝ”๋“œ์˜ ๋‹ค์–‘ํ•œ ์ตœ์ ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.
    • ์ธ๋ผ์ธ ํ•จ์ˆ˜ ๋Œ€์ฒด. JavaScript์—์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ์ƒ๋‹นํžˆ ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž‘์—…์ด๋ฉฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ž‘์€ ๋ฉ”์„œ๋“œ๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ๋Œ€์ฒดํ•˜๋ฉด ์ฝ”๋“œ ์†๋„๊ฐ€ ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
    • ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ƒ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ํ‘œํ˜„์‹์ด ์ƒ์ˆ˜์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ ์ƒ์ˆ˜์˜ ์‹ค์ œ ๊ฐ’์ด ํ•ด๋‹น ํ‘œํ˜„์‹์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์›น ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ WebStorm์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ๋ถ„์„์„ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์†Œ๋‚˜ํ๋ธŒ, ์ •์  ์ฝ”๋“œ ๋ถ„์„๊ธฐ๋ฅผ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JavaScript ์†Œ์Šค ์ฝ”๋“œ์˜ ํ’ˆ์งˆ ์ €ํ•˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

1C ์›น ํด๋ผ์ด์–ธํŠธ ์ •๋ณด

์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๊ฑฐ๋‚˜ ํ•ด๊ฒฐํ•˜๊ณ  ์žˆ๋‚˜์š”?

ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ์šฐ๋ฆฌ๋Š” ํ•ด๊ฒฐํ•ด์•ผ ํ•  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํฅ๋ฏธ๋กœ์šด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„์™€ ์ฐฝ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜

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

  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ํ˜•ํƒœ๋กœ ์„œ๋ฒ„์—์„œ ์˜ค๋Š” ์ฝ”๋“œ
  • ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ฐฝ์— ๋Œ€ํ•œ ์ฝ”๋“œ

์„œ๋ฒ„์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ๋•Œ ๋‚œ๋…ํ™”๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด @expose ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

/**
 * @constructor
 * @extends {Base.SrvObject}
 */
Srv.Core.GenericException = function ()
{
    /**
     * @type {string}
     * @expose
     */
    this.descr;

    /**
     * @type {Srv.Core.GenericException}
     * @expose
     */
    this.inner;

    /**
     * @type {string}
     * @expose
     */
    this.clsid;

    /**
     * @type {boolean}
     * @expose
     */
    this.encoded;
}

๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์ฐฝ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•  ๋•Œ ๋‚œ๋…ํ™”๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์†Œ์œ„ ๋‚ด๋ณด๋‚ธ ์ธํ„ฐํŽ˜์ด์Šค(๋ชจ๋“  ๋ฉ”์„œ๋“œ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ์ธํ„ฐํŽ˜์ด์Šค)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

/**
 * ะญะบัะฟะพั€ั‚ะธั€ัƒะตะผั‹ะน ะธะฝั‚ะตั€ั„ะตะนั ะบะพะฝั‚ั€ะพะปะฐ DropDownWindow
 *
 * @interface
 * @struct
 */
WebUI.IDropDownWindowExp = function(){}

/**
 * ะŸะตั€ะตะผะตั‰ะฐะตั‚ ะฒั‹ะดะตะปะตะฝะธะต ะฝะฐ 1 ะฒะฟะตั€ะตะด ะธะปะธ ะฝะฐะทะฐะด
 *
 * @param {boolean} isForward
 * @param {boolean} checkOnly
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.moveMarker = function (isForward, checkOnly){}

/**
 * ะŸะตั€ะตะผะตั‰ะฐะตั‚ ะฒั‹ะดะตะปะตะฝะธะต ะฒ ะฝะฐั‡ะฐะปะพ ะธะปะธ ะบะพะฝะตั†
 *
 * @param {boolean} isFirst
 * @param {boolean} checkOnly
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.moveMarkerTo = function (isFirst, checkOnly){}

/**
 * @return {boolean}
 * @expose
 */
WebUI.IDropDownWindowExp.prototype.selectValue = function (){}

์šฐ๋ฆฌ๋Š” Virtual DOM์ด ์ฃผ๋ฅ˜๊ฐ€ ๋˜๊ธฐ ์ „์— ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค)

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

์›น ํด๋ผ์ด์–ธํŠธ ์ตœ์ ํ™”

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

1C ์›น ํด๋ผ์ด์–ธํŠธ ์ •๋ณด

ํ…Œ์ŠคํŠธ

๊ธฐ๋Šฅ ๋ฐ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋…์  ๋„๊ตฌ(Java ๋ฐ C++๋กœ ์ž‘์„ฑ)์™€ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ํ…Œ์ŠคํŠธ ์ œํ’ˆ๊ตฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์…€๋ ˆ๋‹ˆ์›€.

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

๋˜ํ•œ ์ด ๋„๊ตฌ๋Š” ์ตœ๋Œ€ 25๋ฐ€๋ฆฌ์ดˆ์˜ ์ •ํ™•๋„๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ์ผ๋ถ€๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ(์˜ˆ: ์ฃผ๋ฌธ ์ž…๋ ฅ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณต) ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ์‹คํ–‰ ์‹œ๊ฐ„ ์ €ํ•˜๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธก์ • ๊ฒฐ๊ณผ๋Š” ๋ถ„์„์„ ์œ„ํ•ด ๋กœ๊ทธ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

1C ์›น ํด๋ผ์ด์–ธํŠธ ์ •๋ณด
ํ…Œ์ŠคํŠธ ์ค‘์ธ ํ…Œ์ŠคํŠธ ๋„๊ตฌ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

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

๋‘ ๋„๊ตฌ(๋‹น์‚ฌ ๋ฐ Selenium)์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ๋Š” ๋‹น์‚ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†”๋ฃจ์…˜์˜ ์ผ๋ฐ˜์ ์ธ ์ž‘์—… ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” 1C:Enterprise ํ”Œ๋žซํผ์˜ ์ผ์ผ ๋นŒ๋“œ ํ›„ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋นŒ๋“œ์™€ ๋น„๊ตํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋Š๋ฆฐ ๊ฒฝ์šฐ ์†๋„ ์ €ํ•˜์˜ ์›์ธ์„ ์กฐ์‚ฌํ•˜๊ณ  ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๊ธฐ์ค€์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋นŒ๋“œ๋Š” ์ด์ „ ๋นŒ๋“œ๋ณด๋‹ค ๋Š๋ฆฌ๊ฒŒ ์ž‘๋™ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋Š” ์†๋„ ์ €ํ•˜ ์‚ฌ๊ณ ๋ฅผ ์กฐ์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์‚ฌ์šฉ ๋‹ค์ด๋‚˜ํŠธ๋ ˆ์ด์Šค AJAX ์—๋””์…˜ ์ œ์กฐ์—… ํšŒ์‚ฌ DynaTrace. ์ด์ „ ๋นŒ๋“œ์™€ ์ƒˆ ๋นŒ๋“œ์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์ž‘์—…์„ ์‹คํ–‰ํ•œ ๋กœ๊ทธ๊ฐ€ ๊ธฐ๋ก๋œ ํ›„ ๋กœ๊ทธ๊ฐ€ ๋ถ„์„๋ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— ๋‹จ์ผ ์ž‘์—…์˜ ์‹คํ–‰ ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„)์€ ๊ฒฐ์ •์ ์ธ ์š”์†Œ๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค ํ”„๋กœ์„ธ์Šค๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ์‹œ์ž‘๋˜๋ฉฐ ๊ธฐ๋Šฅ ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ๊ฒน์ณ์„œ ๊ทธ๋ฆผ์„ ์™œ๊ณกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋” ๊ด€๋ จ์„ฑ์ด ๋†’์€ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์‹คํ–‰๋œ JavaScript ๋ช…๋ น์–ด ์ˆ˜, DOM์˜ ์›์ž์  ์ž‘์—… ์ˆ˜ ๋“ฑ์ž…๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์—์„œ ๋™์ผํ•œ ์Šคํฌ๋ฆฝํŠธ์˜ ๋ช…๋ น/์ž‘์—… ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•œ ๊ฒฝ์šฐ ์ด๋Š” ๊ฑฐ์˜ ํ•ญ์ƒ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์„ฑ๋Šฅ ์ €ํ•˜์˜ ์›์ธ ์ค‘ ํ•˜๋‚˜๋Š” Google Closure Compiler๊ฐ€ ์–ด๋–ค ์ด์œ ๋กœ ํ•จ์ˆ˜์˜ ์ธ๋ผ์ธ ๋Œ€์ฒด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ํ•จ์ˆ˜๊ฐ€ ์žฌ๊ท€์ ์ด๊ฑฐ๋‚˜ ๊ฐ€์ƒ์ด๊ธฐ ๋•Œ๋ฌธ์—). ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์—ฌ ์ƒํ™ฉ์„ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†”๋ฃจ์…˜์— JavaScript์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ํ™•์žฅ์€ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„์€ ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ(์ผ๋ฐ˜์ ์œผ๋กœ JavaScript๋กœ ์ž‘์„ฑ๋œ Chrome ๋ฐ Firefox์šฉ ํ™•์žฅ)์œผ๋กœ, ๋‘ ๋ฒˆ์งธ ๋ถ€๋ถ„(ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํ™•์žฅ)๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Windows, Linux ๋ฐ MacOS์šฉ 3๊ฐ€์ง€ ๋ฒ„์ „์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํ™•์žฅ์„ ์ž‘์„ฑํ•œ๋‹ค๋Š” ์ ์„ ์–ธ๊ธ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ํ™•์žฅ์€ 1C:Enterprise ํ”Œ๋žซํผ์˜ ์ผ๋ถ€๋กœ ์ œ๊ณต๋˜๋ฉฐ 1C ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ํด๋ผ์ด์–ธํŠธ์—์„œ ์ฒ˜์Œ ํ˜ธ์ถœ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ ์ปดํ“จํ„ฐ๋กœ ๋‹ค์šด๋กœ๋“œ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

Safari์—์„œ ์‹คํ–‰๋  ๋•Œ ํ™•์žฅ ๊ธฐ๋Šฅ์€ NPAPI๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , Internet Explorer์—์„œ ์‹คํ–‰๋  ๋•Œ ActiveX ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ ์†Œํ”„ํŠธ ์—์ง€ ์•„์ง ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ์›น ํด๋ผ์ด์–ธํŠธ๋Š” ์ œํ•œ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ๊ฐœ๋ฐœ

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

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

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€