์๋ง
๋ณธ์ง์ ์ผ๋ก ๊ฐ์์ธ ์ด ๊ธฐ์ฌ์์๋ ํตํฉ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ํ๋ซํผ์ธ Eclipse ์ํคํ
์ฒ์ ๊ธฐ๋ณธ ์ฌํญ ์ค ์ผ๋ถ๋ฅผ ์ดํด๋ณด๊ณ ๊ธฐ์ ์ ๊ธฐ์ด๋ฅผ ํ์ฑํ๋ Eclipse ๊ตฌ์ฑ ์์์ ๋ํ ์ด๊ธฐ ์์ด๋์ด๋ฅผ ์ ๊ณตํ๋ ค๊ณ ํฉ๋๋ค. "์๋ก์ด ๊ตฌ์ฑ์" 1C: Enterprise๋ฅผ ์ํ ํ๋ซํผ์
๋๋ค.
Eclipse ์ํคํ ์ฒ ์๊ฐ
๋จผ์ ์์ ๋ฅผ ์ฌ์ฉํ์ฌ Eclipse ์ํคํ
์ฒ์ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ธก๋ฉด์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฐ์ , Eclipse๋ ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํ๋๋ก ์ค๊ณ๋ ๊ธฐ๋ฅ๊ณผ ์ธ์ด ๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ๊ณ , ๊ด๋ จ ๊ตฌ์ฑ ์์์์ UI ๋ ๋ฆฝ์ ์ธ "ํต์ฌ" ๊ตฌ์ฑ ์์๋ฅผ ๋ถ๋ฆฌํ๋ ์๋นํ ๋ช ํํ ์ํคํ ์ฒ ๊ณ์ธต์ด ํน์ง์ด๋ผ๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ง์ํฉ๋๋ค.
๋ฐ๋ผ์ Eclipse ํ๋ซํผ์ ์ธ์ด ๋ ๋ฆฝ์ ์ธ ๊ณตํต ์ธํ๋ผ๋ฅผ ์ ์ํ๊ณ Java ๊ฐ๋ฐ ๋๊ตฌ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ Java IDE๋ฅผ Eclipse์ ์ถ๊ฐํฉ๋๋ค. Eclipse ํ๋ซํผ๊ณผ JDT๋ ๋ชจ๋ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋๋ฉฐ ๊ฐ ๊ตฌ์ฑ ์์๋ UI ๋ ๋ฆฝ์ ์ธ "์ฝ์ด" ๋๋ UI ๊ณ์ธต(๊ทธ๋ฆผ 1)์ ์ํฉ๋๋ค.
์. 1. Eclipse ํ๋ซํผ๊ณผ JDT
Eclipse ํ๋ซํผ์ ์ฃผ์ ๊ตฌ์ฑ์์๋ฅผ ๋์ดํด ๋ณด๊ฒ ์ต๋๋ค.
- ๋ฐํ์ โ ํ๋ฌ๊ทธ์ธ ์ธํ๋ผ๋ฅผ ์ ์ํฉ๋๋ค. Eclipse๋ ๋ชจ๋์ ์ํคํ ์ฒ๊ฐ ํน์ง์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Eclipse๋ "ํ์ฅ ์ง์ "๊ณผ "ํ์ฅ"์ ๋ชจ์์ ๋๋ค.
- ์์ ๊ณต๊ฐ โ ํ๋ ์ด์์ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ํ๋ก์ ํธ๋ ํ์ผ ์์คํ ์ ์ง์ ๋งคํ๋๋ ํด๋์ ํ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- SWT(ํ์ค ์์ ฏ ํดํท) - ์ด์ ์ฒด์ ์ ํตํฉ๋ ๊ธฐ๋ณธ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Jํ์ด์ค โ SWT๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๋ค์ํ UI ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ํฌ ๋ฒค์น โ ํธ์ง๊ธฐ, ๋ณด๊ธฐ, ๊ด์ ๋ฑ Eclipse UI ํจ๋ฌ๋ค์์ ์ ์ํฉ๋๋ค.
Eclipse ํ๋ซํผ์ ๋๋ฒ๊ทธ, ๋น๊ต, ๊ฒ์ ๋ฐ ํ์ ํฌํจํ์ฌ ํตํฉ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ ์ฉํ ๋ค๋ฅธ ๋ง์ ๊ตฌ์ฑ ์์๋ ์ ๊ณตํฉ๋๋ค. ์์ค ์ฝ๋์ "์ค๋งํธ ํธ์ง๊ธฐ"๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ธฐ๋ฐ์ธ JFace Text์ ๋ํด ํน๋ณํ ์ธ๊ธํด์ผ ํฉ๋๋ค. ์ํ๊น๊ฒ๋ ์ด ๋ฌธ์์ ๋ฒ์ ๋ด์์๋ ์ด๋ฌํ ๊ตฌ์ฑ ์์์ UI ๋ ์ด์ด ๊ตฌ์ฑ ์์๋ฅผ ๋๋ต์ ์ผ๋ก ์ดํด๋ณด๋ ๊ฒ์กฐ์ฐจ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ์ด ์น์ ์ ๋๋จธ์ง ๋ถ๋ถ์์๋ UI ๋ ์ด์ด ๊ตฌ์ฑ ์์์ ์ฃผ์ "ํต์ฌ" ๊ตฌ์ฑ ์์์ ๋ํ ๊ฐ์๋ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. Eclipse ํ๋ซํผ๊ณผ JDT.
ํต์ฌ ๋ฐํ์
Eclipse ํ๋ฌ๊ทธ์ธ ์ธํ๋ผ๋ ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
ํต์ฌ ์์ ๊ณต๊ฐ
Eclipse ํ๋ซํผ ์์ ๊ตฌ์ถ๋ ๊ฑฐ์ ๋ชจ๋ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์ Eclipse ์์
๊ณต๊ฐ์์ ์๋ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก IDE์์ ๊ฐ๋ฐ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ค ์ฝ๋๊ฐ ํฌํจ๋์ด ์๋ ์์
๊ณต๊ฐ์
๋๋ค. ์์
๊ณต๊ฐ์ ํ์ผ ์์คํ
์ ์ง์ ๋งคํ๋๋ฉฐ ํด๋์ ํ์ผ์ ํฌํจํ๋ ํ๋ก์ ํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ด๋ฌํ ํ๋ก์ ํธ, ํด๋ ๋ฐ ํ์ผ์ ์์ ์์
๊ณต๊ฐ. Eclipse์ ์์
๊ณต๊ฐ ๊ตฌํ์ ํ์ผ ์์คํ
๊ณผ ๊ด๋ จํ์ฌ ์บ์ ์ญํ ์ ํ๋ฏ๋ก ๋ฆฌ์์ค ํธ๋ฆฌ ํ์ ์๋๋ฅผ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค. ๋ํ Workspace๋ ๋ค์๊ณผ ๊ฐ์ ๋ค์ํ ์ถ๊ฐ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํต์ฌ ๋ฆฌ์์ค ๊ตฌ์ฑ์์(org.eclipse.core.resources ํ๋ฌ๊ทธ์ธ)๋ ์์
๊ณต๊ฐ๊ณผ ํด๋น ๋ฆฌ์์ค๋ฅผ ์ง์ํ๋ ์ญํ ์ ํฉ๋๋ค. ํนํ ์ด ๊ตฌ์ฑ ์์๋ ๋ค์ ํ์์ผ๋ก ์์
๊ณต๊ฐ์ ๋ํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ ๋ชจ๋ธ. ์ด ๋ชจ๋ธ์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด ํด๋ผ์ด์ธํธ๋ ๋ฆฌ์์ค์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ชจ๋ธ์ ๋ฆฌ์์ค ์ํ๋ฅผ ์ง์ ์ ์ฅํ๋ ๊ฐ์ฒด๋ฅผ ํด๋ผ์ด์ธํธ ์ก์ธ์ค๋ก๋ถํฐ ์จ๊ธฐ๋ ๊ฒ์ด ๋ฐ๋์งํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฅผ ๋ค์ด ํ์ผ์ ์ญ์ ํ๋ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ๊ฐ ๋ ์ด์ ๋ชจ๋ธ์ ์๋ ๊ฐ์ฒด๋ฅผ ๊ณ์ ๋ณด์ ํ ์ ์์ผ๋ฉฐ ์ด๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. Eclipse๋ ๋ค์์ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ํธ๋ค ์์. ํธ๋ค์ ํค ์ญํ ์ ํ๋ฉฐ(์์
๊ณต๊ฐ์ ๋ฆฌ์์ค์ ๋ํ ๊ฒฝ๋ก๋ง ์๊ณ ์์) ๋ฆฌ์์ค ์ํ์ ๋ํ ์ ๋ณด๋ฅผ ์ง์ ์ ์ฅํ๋ ๋ด๋ถ ๋ชจ๋ธ ๊ฐ์ฒด์ ๋ํ ์ก์ธ์ค๋ฅผ ์์ ํ ์ ์ดํฉ๋๋ค. ์ด ๋์์ธ์ ํจํด์ ๋ณํ์
๋๋ค
์. ๊ทธ๋ฆผ 2๋ ์์ ๋ชจ๋ธ์ ์ ์ฉ๋ ํธ๋ค/๋ณธ๋ฌธ ๊ด์ฉ๊ตฌ๋ฅผ ๋ณด์ฌ์ค๋๋ค. IResource ์ธํฐํ์ด์ค๋ ์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ Resource ํด๋์ค์ ๋ณธ๋ฌธ์ ๋ํ๋ด๋ ResourceInfo ํด๋์ค๊ฐ API๊ฐ ์๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ๋ฆฌ์์ค์ ํธ๋ค์ ๋ํ๋ด๋ API์ ๋๋ค. ํธ๋ค์ ์์ ๊ณต๊ฐ ๋ฃจํธ์ ์๋์ ์ธ ๋ฆฌ์์ค ๊ฒฝ๋ก๋ง ์๊ณ ๋ฆฌ์์ค ์ ๋ณด์ ๋ํ ๋งํฌ๋ ํฌํจํ์ง ์๋๋ค๋ ์ ์ ๊ฐ์กฐํฉ๋๋ค. ๋ฆฌ์์ค ์ ๋ณด ๊ฐ์ฒด๋ ์์ "์์ ํธ๋ฆฌ"๋ฅผ ํ์ฑํฉ๋๋ค. ์ด ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ๋ฉ๋ชจ๋ฆฌ์์ ์์ ํ ๊ตฌ์ฒดํ๋ฉ๋๋ค. ํธ๋ค์ ํด๋นํ๋ ๋ฆฌ์์ค ์ ๋ณด ์ธ์คํด์ค๋ฅผ ์ฐพ๊ธฐ ์ํด ํด๋น ํธ๋ค์ ์ ์ฅ๋ ๊ฒฝ๋ก์ ๋ฐ๋ผ ์์ ํธ๋ฆฌ๋ฅผ ํ์ํฉ๋๋ค.
์. 2. IResource ๋ฐ ResourceInfo
๋์ค์ ์ดํด๋ณด๊ฒ ์ง๋ง ์์ ๋ชจ๋ธ์ ๊ธฐ๋ณธ ๋์์ธ(ํธ๋ค ๊ธฐ๋ฐ์ด๋ผ๊ณ ๋ถ๋ฅผ ์๋ ์์)์ Eclipse์์ ๋ค๋ฅธ ๋ชจ๋ธ์๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ง๊ธ์ ์ด ๋์์ธ์ ๋ช ๊ฐ์ง ๋ ํนํ ์์ฑ์ ๋์ดํด ๋ณด๊ฒ ์ต๋๋ค.
- ํธ๋ค์ ๊ฐ ๊ฐ์ฒด์ ๋๋ค. ๊ฐ ๊ฐ์ฒด๋ ๋์ผ์ฑ์ด ID๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ง ์๋ ๋ถ๋ณ ๊ฐ์ฒด์ ๋๋ค. ์ด๋ฌํ ๊ฐ์ฒด๋ ํด์๋ ์ปจํ ์ด๋์ ํค๋ก ์์ ํ๊ฒ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ํธ๋ค์ ์ฌ๋ฌ ์ธ์คํด์ค๊ฐ ๋์ผํ ๋ฆฌ์์ค๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ๋น๊ตํ๋ ค๋ฉด equals(Object) ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- Handle์ ๋ฆฌ์์ค์ ๋์์ ์ ์ํ์ง๋ง ๋ฆฌ์์ค ์ํ์ ๋ํ ์ ๋ณด๋ ํฌํจํ์ง ์์ต๋๋ค(์ฌ๊ธฐ์ ์ ์ฅ๋๋ ์ ์ผํ ๋ฐ์ดํฐ๋ ๋ฆฌ์์ค ๊ฒฝ๋ก์ธ "ํค"์ ๋๋ค).
- ํธ๋ค์ ์กด์ฌํ์ง ์๋ ๋ฆฌ์์ค(์์ง ์์ฑ๋์ง ์์ ๋ฆฌ์์ค ๋๋ ์ด๋ฏธ ์ญ์ ๋ ๋ฆฌ์์ค)๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. IResource.exists() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
- ์ผ๋ถ ์์ ์ ํธ๋ค ์์ฒด์ ์ ์ฅ๋ ์ ๋ณด๋ง์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋ ์ ์์ต๋๋ค(์์ ํธ๋ค ์ ์ฉ ์์ ). ์๋ฅผ ๋ค๋ฉด IResource.getParent(), getFullPath() ๋ฑ์ด ์์ต๋๋ค. ์ด๋ฌํ ์์ ์ด ์ฑ๊ณตํ๊ธฐ ์ํด ๋ฆฌ์์ค๊ฐ ์กด์ฌํ ํ์๋ ์์ต๋๋ค. ์ฑ๊ณตํ๋ ค๋ฉด ๋ฆฌ์์ค๊ฐ ์์ด์ผ ํ๋ ์์ ์์ ๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด CoreException์ด ๋ฐ์ํฉ๋๋ค.
Eclipse๋ ์์ ๊ณต๊ฐ ๋ฆฌ์์ค ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฆฌ๋ ํจ์จ์ ์ธ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค(๊ทธ๋ฆผ 3). ๋ฆฌ์์ค๋ Eclipse IDE ์์ฒด ๋ด์์ ์ํ๋ ์์ ์ ๊ฒฐ๊ณผ ๋๋ ํ์ผ ์์คํ ๊ณผ์ ๋๊ธฐํ์ ๊ฒฐ๊ณผ๋ก ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์๋ฆผ์ ๊ตฌ๋ ํ๋ ํด๋ผ์ด์ธํธ์๊ฒ๋ "๋ฆฌ์์ค ๋ธํ" ํ์์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์์ธํ ์ ๋ณด๊ฐ ์ ๊ณต๋ฉ๋๋ค. ๋ธํ๋ ์์ ๊ณต๊ฐ ๋ฆฌ์์ค(ํ์) ํธ๋ฆฌ์ ๋ ์ํ ๊ฐ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ค๋ช ํ๋ฉฐ ๊ทธ ์์ฒด๊ฐ ํธ๋ฆฌ์ ๋๋ค. ๊ฐ ๋ ธ๋์ ๊ฐ ๋ ธ๋๋ ๋ฆฌ์์ค ๋ณ๊ฒฝ ์ฌํญ์ ์ค๋ช ํ๊ณ ํ์ ๋ฆฌ์์ค ๋ณ๊ฒฝ ์ฌํญ์ ์ค๋ช ํ๋ ๋ค์ ์์ค์ ๋ธํ ๋ชฉ๋ก์ ํฌํจํฉ๋๋ค.
์. 3. IResourceChangeEvent ๋ฐ IResourceDelta
๋ฆฌ์์ค ๋ธํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๋ฆผ ๋ฉ์ปค๋์ฆ์๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ด ์์ต๋๋ค.
- ๋ธํ๋ ์ฌ๊ท์ ๊ตฌ์ฑ ์๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋๋ฏ๋ก ๋จ์ผ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๋ง์ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ผํ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ช ๋ฉ๋๋ค. ๊ตฌ๋ ์ ํด๋ผ์ด์ธํธ๋ ๋ธํ ํธ๋ฆฌ๋ฅผ ํตํ ์ฌ๊ท ํ๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค ๋ณ๊ฒฝ ์๋ฆผ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ธํ์๋ ๋ฆฌ์์ค ์ด๋ ๋ฐ/๋๋ ์ด์ ๊ด๋ จ๋ "๋ง์ปค"์ ๋ณ๊ฒฝ ์ฌํญ์ ํฌํจํ์ฌ ๋ฆฌ์์ค ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ ์ฒด ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค(์: ์ปดํ์ผ ์ค๋ฅ๋ ๋ง์ปค๋ก ํ์๋จ).
- ํธ๋ค์ ํตํด ๋ฆฌ์์ค ์ฐธ์กฐ๊ฐ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ ๋ธํ๋ ์์ฐ์ค๋ฝ๊ฒ ์๊ฒฉ ๋ฆฌ์์ค๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
๊ณง ์๊ฒ ๋๊ฒ ์ง๋ง, ์์ ๋ชจ๋ธ ๋ณ๊ฒฝ ์๋ฆผ ๋ฉ์ปค๋์ฆ ์ค๊ณ์ ์ฃผ์ ๊ตฌ์ฑ์์๋ ๋ค๋ฅธ ํธ๋ค ๊ธฐ๋ฐ ๋ชจ๋ธ๊ณผ๋ ๊ด๋ จ์ด ์์ต๋๋ค.
JDT ์ฝ์ด
Eclipse ์์ ๊ณต๊ฐ ์์ ๋ชจ๋ธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ์ด์ ๊ตฌ์ ๋ฐ์ง ์๋ ๋ชจ๋ธ์ ๋๋ค. JDT Core ๊ตฌ์ฑ์์(ํ๋ฌ๊ทธ์ธ org.eclipse.jdt.core)๋ ์์ "Java ๋ชจ๋ธ"์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ Java ๊ด์ ์์ ์์ ๊ณต๊ฐ ๊ตฌ์กฐ๋ฅผ ํ์ํ๊ณ ๋ถ์ํ๊ธฐ ์ํ API๋ฅผ ์ ๊ณตํฉ๋๋ค(์๋ฐ ๋ชจ๋ธ). ์ด API๋ ํด๋ ๋ฐ ํ์ผ ์ธก๋ฉด์์ ์ ์๋๋ ๊ธฐ๋ณธ ์์ ๋ชจ๋ธ API์ ๋ฌ๋ฆฌ Java ์์ ์ธก๋ฉด์์ ์ ์๋ฉ๋๋ค. Java ์์ ํธ๋ฆฌ์ ์ฃผ์ ์ธํฐํ์ด์ค๋ ๊ทธ๋ฆผ 4์ ๋์ ์์ต๋๋ค. XNUMX.
์. 4. Java ๋ชจ๋ธ ์์
Java ๋ชจ๋ธ์ ์์ ๋ชจ๋ธ๊ณผ ๋์ผํ ํธ๋ค/๋ณธ๋ฌธ ๊ด์ฉ๊ตฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค(๊ทธ๋ฆผ 5). IJavaElement๊ฐ ํธ๋ค์ด๊ณ , JavaElementInfo๊ฐ ๋ฐ๋ ์ญํ ์ ํฉ๋๋ค. IJavaElement ์ธํฐํ์ด์ค๋ ๋ชจ๋ Java ์์์ ๊ณตํต์ ์ธ ํ๋กํ ์ฝ์ ์ ์ํฉ๋๋ค. getElementName(), getParent() ๋ฑ ์ผ๋ถ ๋ฉ์๋๋ ํธ๋ค ์ ์ฉ์ ๋๋ค. JavaElementInfo ๊ฐ์ฒด๋ ํด๋น ์์์ ์ํ(๊ตฌ์กฐ ๋ฐ ์์ฑ)๋ฅผ ์ ์ฅํฉ๋๋ค.
์. 5. IJavaElement ๋ฐ JavaElementInfo
Java ๋ชจ๋ธ์ ๋ฆฌ์์ค ๋ชจ๋ธ๊ณผ ๋น๊ตํ์ฌ ๊ธฐ๋ณธ ํธ๋ค/๋ณธ๋ฌธ ๋์์ธ ๊ตฌํ์ ๋ช ๊ฐ์ง ์ฐจ์ด์ ์ด ์์ต๋๋ค. ์์์ ์ธ๊ธํ ๊ฒ์ฒ๋ผ ๋ฆฌ์์ค ๋ชจ๋ธ์์ ๋ ธ๋๊ฐ ๋ฆฌ์์ค ์ ๋ณด ๊ฐ์ฒด์ธ ์์ ํธ๋ฆฌ๋ ์์ ํ ๋ฉ๋ชจ๋ฆฌ์ ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ Java ๋ชจ๋ธ์ .java ๋ฐ .class ํ์ผ์ ๋ด๋ถ ๊ตฌ์กฐ(์ ํ, ํ๋ ๋ฐ ๋ฉ์๋)๋ ๋ํ๋ด๊ธฐ ๋๋ฌธ์ ๋ฆฌ์์ค ํธ๋ฆฌ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์์ ์์๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฒด ์์ ํธ๋ฆฌ๊ฐ ์์ ํ ๊ตฌ์ฒดํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด Java ๋ชจ๋ธ ๊ตฌํ์์๋ ์์ ์ ๋ณด์ ์ ํ๋ ํฌ๊ธฐ LRU ์บ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์ ํต์ฌ์ IJavaElement ํธ๋ค์ ๋๋ค. ์์ ์ ๋ณด ๊ฐ์ฒด๋ ์์ ํธ๋ฆฌ๋ฅผ ํ์ํ ๋ ์์ฒญ ์ ์์ฑ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉ๋์ง ์๋ ํญ๋ชฉ์ด ์บ์์์ ์ ๊ฑฐ๋๊ณ ๋ชจ๋ธ์ ๋ฉ๋ชจ๋ฆฌ ์๋น๋ ์ง์ ๋ ์บ์ ํฌ๊ธฐ๋ก ์ ํ๋ฉ๋๋ค. ์ด๋ ํด๋ผ์ด์ธํธ ์ฝ๋์์ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ์์ ํ ์จ๊ธฐ๋ ํธ๋ค ๊ธฐ๋ฐ ๋์์ธ์ ๋ ๋ค๋ฅธ ์ฅ์ ์ ๋๋ค.
Java ์์์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฆฌ๋ ๋ฉ์ปค๋์ฆ์ ์ผ๋ฐ์ ์ผ๋ก ์์์ ์ค๋ช ํ ์์ ๊ณต๊ฐ ๋ฆฌ์์ค์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๋ ๋ฉ์ปค๋์ฆ๊ณผ ์ ์ฌํฉ๋๋ค. Java ๋ชจ๋ธ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ํฐ๋งํ๋ ค๋ ํด๋ผ์ด์ธํธ๋ IJavaElementDelta(๊ทธ๋ฆผ 6)๊ฐ ํฌํจ๋ ElementChangedEvent ๊ฐ์ฒด๋ก ํ์๋๋ ์๋ฆผ์ ๊ตฌ๋ ํฉ๋๋ค.
์. 6. ElementChangedEvent ๋ฐ IJavaElementDelta
Java ๋ชจ๋ธ์๋ ๋ฉ์๋ ๋ณธ๋ฌธ์ด๋ ์ด๋ฆ ํ์ธ์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฏ๋ก Java๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ์์ธํ ๋ถ์ํ๊ธฐ ์ํด JDT Core๋ ์ถ๊ฐ(ํธ๋ค ๊ธฐ๋ฐ์ด ์๋) ๋ชจ๋ธ์ ์ ๊ณตํฉ๋๋ค.
๊ตฌ๋ฌธ ํธ๋ฆฌ๋ ์๋นํ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋นํ ์ ์์ผ๋ฏ๋ก JDT๋ ํ์ฑ ํธ์ง๊ธฐ์ ๋ํด ํ๋์ AST๋ง ์บ์ํฉ๋๋ค. Java ๋ชจ๋ธ๊ณผ ๋ฌ๋ฆฌ AST๋ ์ผ๋ฐ์ ์ผ๋ก AST ์์ฑ์ผ๋ก ์ด์ด์ง ์์ ์ปจํ ์คํธ ์ธ๋ถ์์ ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ๋ฉค๋ฒ๋ฅผ ์ฐธ์กฐํด์๋ ์ ๋๋ "์ค๊ฐ", "์์" ๋ชจ๋ธ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๋์ด๋ ์ธ ๊ฐ์ง ๋ชจ๋ธ(Java ๋ชจ๋ธ, AST, ๋ฐ์ธ๋ฉ)์ ๋ค์ํ "๋์ฐ๋ฏธ"๊ฐ ํฌํจ๋ ๊ฐ๋ ฅํ Java ํธ์ง๊ธฐ, ์์ค ์ฝ๋ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ์์ (๊ฐ์ ธ์ค๊ธฐ ๋ชฉ๋ก ๊ตฌ์ฑ ํฌํจ)์ ํฌํจํ์ฌ JDT์์ "์ง๋ฅํ ๊ฐ๋ฐ ๋๊ตฌ"๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ธฐ๋ฐ์ ํจ๊ป ํ์ฑํฉ๋๋ค. ์ฌ์ฉ์ ์ ์๋ ์คํ์ผ์ ๋ฐ๋ฅธ ์ด๋ฆ ๋ฐ ํ์), ๊ฒ์ ๋ฐ ๋ฆฌํฉํ ๋ง ๋๊ตฌ. ์ด ๊ฒฝ์ฐ Java ๋ชจ๋ธ์ ๊ฐ๋ฐ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ์ ์๊ฐ์ ํํ(์: ํจํค์ง ํ์๊ธฐ, ๊ฐ์, ๊ฒ์, ํธ์ถ ๊ณ์ธต ๊ตฌ์กฐ)์ ๊ธฐ์ด๋ก ์ฌ์ฉ๋๋ฏ๋ก ํน๋ณํ ์ญํ ์ ํฉ๋๋ค. ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
1C:์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ ๋๊ตฌ์ ์ฌ์ฉ๋๋ Eclipse ๊ตฌ์ฑ์์
๊ทธ๋ฆผ์์. ๊ทธ๋ฆผ 7์ 1C:Enterprise Development Tools์ฉ ๊ธฐ์ ํ๋ซํผ์ ๊ธฐ๋ฐ์ ํ์ฑํ๋ Eclipse ๊ตฌ์ฑ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์. 7. 1C:์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ ๋๊ตฌ์ฉ ํ๋ซํผ์ผ๋ก์์ Eclipse
์ดํด๋ฆฝ์ค ํ๋ซํผ ๊ธฐ๋ณธ์ ์ธ ์ธํ๋ผ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด์ ์น์ ์์ ์ด ์ธํ๋ผ์ ์ผ๋ถ ์ธก๋ฉด์ ์ดํด๋ณด์์ต๋๋ค.
์ง์ ํ ๋ฒ์ฉ ๋๊ตฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก EMF๋ ๊ด๋ฒ์ํ ๋ชจ๋ธ๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ ํฉํ์ง๋ง ์ผ๋ถ ๋ชจ๋ธ ํด๋์ค(์: ์์์ ์ค๋ช
ํ ํธ๋ค ๊ธฐ๋ฐ ๋ชจ๋ธ)์๋ ๋ณด๋ค ์ ๋ฌธ์ ์ธ ๋ชจ๋ธ๋ง ๋๊ตฌ๊ฐ ํ์ํ ์ ์์ต๋๋ค. EMF์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ ํนํ ํ ๊ธฐ์ฌ์ ์ ํ๋ ๋ฒ์ ๋ด์์ ๊ฐ์ฌํ ์ผ์ด ์๋๋๋ค. ์๋ํ๋ฉด ์ด๊ฒ์ ๋ณ๋์ ์ฑ
๊ณผ ๋ค์ ๋๊บผ์ด ์ฑ
์ ์ฃผ์ ์ด๊ธฐ ๋๋ฌธ์
๋๋ค. EMF์ ๊ธฐ๋ฐ์ด ๋๋ ๊ณ ํ์ง ์ผ๋ฐํ ์์คํ
์ ํตํด ์ต์์ ํ๋ก์ ํธ์ ํฌํจ๋ ๋ชจ๋ธ๋ง ์ ์ฉ ํ๋ก์ ํธ ์ ์ฒด๊ฐ ํ์ํ ์ ์์์ต๋๋ค.
1C:์ํฐํ๋ผ์ด์ฆ ๊ฐ๋ฐ ๋๊ตฌ๋ EMF ์์ฒด์ ๊ธฐํ ์ฌ๋ฌ Eclipse ๋ชจ๋ธ๋ง ํ๋ก์ ํธ๋ฅผ ๋ชจ๋ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ํนํ Xtext๋ ๋ด์ฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ์ฟผ๋ฆฌ ์ธ์ด์ ๊ฐ์ 1C:Enterprise ์ธ์ด์ฉ ๊ฐ๋ฐ ๋๊ตฌ์ ๊ธฐ๋ฐ ์ค ํ๋์ ๋๋ค. ์ด๋ฌํ ๊ฐ๋ฐ ๋๊ตฌ์ ๋ ๋ค๋ฅธ ๊ธฐ๋ฐ์ Eclipse Handly ํ๋ก์ ํธ์ ๋๋ค. ์ด์ ๋ํด ๋ ์์ธํ ๋ ผ์ํ ๊ฒ์ ๋๋ค(๋์ด๋ Eclipse ๊ตฌ์ฑ ์์ ์ค ์์ง ๊ฐ์ฅ ์ ์๋ ค์ ธ ์์ง ์์).
ํธ๋ค/๋ณธ์ฒด ๊ด์ฉ์ด์ ๊ฐ์ ํธ๋ค ๊ธฐ๋ฐ ๋ชจ๋ธ์ ๊ธฐ๋ณธ ์ํคํ ์ฒ ์์น์ ๋ฆฌ์์ค ๋ชจ๋ธ๊ณผ Java ๋ชจ๋ธ์ ์๋ก ์ฌ์ฉํ์ฌ ์์์ ๋ ผ์๋์์ต๋๋ค. ๋ํ ๋ฆฌ์์ค ๋ชจ๋ธ๊ณผ Java ๋ชจ๋ธ ๋ชจ๋ Eclipse JDT(Java ๊ฐ๋ฐ ๋๊ตฌ)์ ์ค์ํ ๊ธฐ๋ฐ์ด๋ผ๋ ์ ๋ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฑฐ์ ๋ชจ๋ *DT Eclipse ํ๋ก์ ํธ์๋ JDT์ ์ ์ฌํ ์ํคํ ์ฒ๊ฐ ์์ผ๋ฏ๋ก ํธ๋ค ๊ธฐ๋ฐ ๋ชจ๋ธ์ด Eclipse ํ๋ซํผ ์์ ๊ตฌ์ถ๋ ๋ชจ๋ IDE๋ ์๋๋๋ผ๋ ๋ง์ IDE์ ๊ธฐ์ด๊ฐ ๋๋ค๊ณ ํด๋ ๊ณผ์ฅ์ด ์๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, Eclipse CDT(C/C++ Development Tooling)์๋ JDT์ Java ๋ชจ๋ธ๊ณผ ๋์ผํ ์ญํ ์ CDT ์ํคํ ์ฒ์์ ์ํํ๋ ํธ๋ค ๊ธฐ๋ฐ C/C++ ๋ชจ๋ธ์ด ์์ต๋๋ค.
Handly ์ด์ ์๋ Eclipse๊ฐ ํธ๋ค ๊ธฐ๋ฐ ์ธ์ด ๋ชจ๋ธ์ ๊ตฌ์ถํ๊ธฐ ์ํ ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ์ง ์์์ต๋๋ค. ํ์ฌ ์กด์ฌํ๋ ๋ชจ๋ธ์ ์ฃผ๋ก Java ๋ชจ๋ธ ์ฝ๋(์ผ๋ช ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ)๋ฅผ ์ง์ ์ ์ฉํ์ฌ ์์ฑ๋์์ผ๋ฉฐ, ํ์ฉ๋๋ ๊ฒฝ์ฐ EPL(Eclipse ๊ณต๊ฐ ๋ผ์ด์ ์ค). (๋ถ๋ช ํ ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก Eclipse ํ๋ก์ ํธ ์์ฒด์์๋ ๋ฒ์ ๋ฌธ์ ๊ฐ ์๋์ง๋ง ํ์ ์์ค ์ ํ์์๋ ๊ทธ๋ ์ง ์์ต๋๋ค.) ๋ณธ์ง์ ์ธ ์ฐ์ฐ์ฑ ์ธ์๋ ์ด ๊ธฐ์ ์ ์ ์๋ ค์ง ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํฉ๋๋ค. ์ค๋ฅ์ ์ ์ํ ๋ ๋ฐ์ํ๋ ์ฝ๋ ์ค๋ณต, ๋ฑ. ๋ ๋์ ๊ฒ์ ๊ฒฐ๊ณผ ๋ชจ๋ธ์ด "๊ทธ ์์ฒด"๋ก ๋จ์ ์๊ณ ํต์ผ ๊ฐ๋ฅ์ฑ์ ํ์ฉํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํธ๋ค ๊ธฐ๋ฐ ์ธ์ด ๋ชจ๋ธ์ ๋ํ ๊ณตํต ๊ฐ๋ ๊ณผ ํ๋กํ ์ฝ์ ๋ถ๋ฆฌํ๋ฉด EMF์ ๊ฒฝ์ฐ์ ์ ์ฌํ๊ฒ ํด๋น ๋ชจ๋ธ์ ์ฌ์ฉํ๊ธฐ ์ํ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์์๊ฐ ์์ฑ๋ ์ ์์ต๋๋ค.
Eclipse๊ฐ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ดํดํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ์๋๋๋ค. 2005๋
์ ๋ค์
์ด๋ค ์๋ฏธ์์ Handly ํ๋ก์ ํธ๋ EMF์ ๊ฑฐ์ ๋์ผํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ์ค๊ณ๋์์ง๋ง ํธ๋ค ๊ธฐ๋ฐ ๋ชจ๋ธ๊ณผ ์ฃผ๋ก ์ธ์ด ๋ชจ๋ธ(์: ์ผ๋ถ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ตฌ์กฐ์ ์์๋ฅผ ๋ํ๋)์ ๋ํ ๊ฒ์ ๋๋ค. Handly๋ฅผ ๋์์ธํ ๋ ์ค์ ํ ์ฃผ์ ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฃผ์ ์์ญ์ ์ฃผ์ ์ถ์ํ ์๋ณ.
- ์ฝ๋ ์ฌ์ฌ์ฉ์ ํตํด ๋ ธ๋ ฅ์ ์ค์ด๊ณ ํธ๋ค ๊ธฐ๋ฐ ์ธ์ด ๋ชจ๋ธ ๊ตฌํ ํ์ง์ ํฅ์์ํต๋๋ค.
- ๊ฒฐ๊ณผ ๋ชจ๋ธ์ ํตํฉ๋ ๋ฉํ ์์ค API๋ฅผ ์ ๊ณตํ์ฌ ์ธ์ด ํธ๋ค ๊ธฐ๋ฐ ๋ชจ๋ธ๊ณผ ํจ๊ป ์๋ํ๋ ๊ณตํต IDE ๊ตฌ์ฑ ์์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ.
- Xtext์์ ํตํฉ(๋ณ๋์ ๋ ์ด์ด)
์ผ๋ฐ์ ์ธ ๊ฐ๋ ๊ณผ ํ๋กํ ์ฝ์ ๊ฐ์กฐํ๊ธฐ ์ํด ์ธ์ด ์ฒ๋ฆฌ ๊ธฐ๋ฐ ๋ชจ๋ธ์ ๊ธฐ์กด ๊ตฌํ์ ๋ถ์ํ์ต๋๋ค. Handly์์ ์ ๊ณตํ๋ ์ฃผ์ ์ธํฐํ์ด์ค์ ๊ธฐ๋ณธ ๊ตฌํ์ ๊ทธ๋ฆผ 8์ ๋์ ์์ต๋๋ค. XNUMX.
์. 8. Handly ์์์ ๊ณตํต ์ธํฐํ์ด์ค ๋ฐ ๊ธฐ๋ณธ ๊ตฌํ
IElement ์ธํฐํ์ด์ค๋ ์์์ ํธ๋ค์ ๋ํ๋ด๋ฉฐ ๋ชจ๋ Handly ๊ธฐ๋ฐ ๋ชจ๋ธ์ ์์์ ๊ณตํต๋ฉ๋๋ค. ์ถ์ ํด๋์ค Element๋ ์ผ๋ฐํ๋ ํธ๋ค/๋ณธ์ฒด ๋ฉ์ปค๋์ฆ์ ๊ตฌํํฉ๋๋ค(๊ทธ๋ฆผ 9).
์. 9. IElement ๋ฐ ์ผ๋ฐ ํธ๋ค/๋ณธ๋ฌธ ๊ตฌํ
๋ํ Handly๋ ๋ชจ๋ธ ์์์ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฆฌ๋ ์ผ๋ฐํ๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค(๊ทธ๋ฆผ 10). ๋ณด์๋ค์ํผ ์ด๋ ์์ ๋ชจ๋ธ ๋ฐ Java ๋ชจ๋ธ์ ๊ตฌํ๋ ์๋ฆผ ๋ฉ์ปค๋์ฆ๊ณผ ๋์ฒด๋ก ์ ์ฌํ๋ฉฐ IElementDelta๋ฅผ ์ฌ์ฉํ์ฌ ์์ ๋ณ๊ฒฝ ์ ๋ณด์ ํตํฉ ํํ์ ์ ๊ณตํฉ๋๋ค.
์. 10. Handly ์๋ฆผ ๋ฉ์ปค๋์ฆ์ ์ผ๋ฐ ์ธํฐํ์ด์ค ๋ฐ ๊ธฐ๋ณธ ๊ตฌํ
์์์ ์ค๋ช ํ Handly ๋ถ๋ถ(๊ทธ๋ฆผ 9 ๋ฐ 10)์ ๊ฑฐ์ ๋ชจ๋ ํธ๋ค ๊ธฐ๋ฐ ๋ชจ๋ธ์ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ฑ์ ์ํด ์ธ์ด์ ์ธ ๋ชจ๋ธ์ธ ๊ฒฝ์ฐ ํ๋ก์ ํธ๋ ์ถ๊ฐ ๊ธฐ๋ฅ, ํนํ ์์ ์์ค ํ ์คํธ ๊ตฌ์กฐ์ ์์์ ๋ํ ๊ณตํต ์ธํฐํ์ด์ค ๋ฐ ๊ธฐ๋ณธ ๊ตฌํ์ ์ ๊ณตํฉ๋๋ค. ์์ค ์์ (๊ทธ๋ฆผ 8). ISourceFile ์ธํฐํ์ด์ค๋ ์์ค ํ์ผ์ ๋ํ๋ด๊ณ ISourceConstruct๋ ์์ค ํ์ผ ๋ด์ ์์๋ฅผ ๋ํ๋ ๋๋ค. ์ถ์ ํด๋์ค SourceFile ๋ฐ SourceConstruct๋ ์์ค ํ์ผ ๋ฐ ํด๋น ์์ ์์ ์ ์ง์ํ๋ ์ผ๋ฐํ๋ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํฉ๋๋ค(์: ํ ์คํธ ๋ฒํผ ์์ , ์์ค ํ ์คํธ์ ์์ ์ขํ์ ๋ฐ์ธ๋ฉ, ์์ ๋ณต์ฌ๋ณธ ๋ฒํผ์ ํ์ฌ ๋ด์ฉ๊ณผ ๋ชจ๋ธ ์กฐ์ ). , ๋ฑ. ์ด๋ฌํ ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ๋ ๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ์๋นํ ์ด๋ ค์ด ์ผ์ด๋ฉฐ Handly๋ ๊ณ ํ์ง ๊ธฐ๋ณธ ๊ตฌํ์ ์ ๊ณตํจ์ผ๋ก์จ ํธ๋ค ๊ธฐ๋ฐ ์ธ์ด ๋ชจ๋ธ์ ๊ฐ๋ฐํ๋ ๋ ธ๋ ฅ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
์์ ๋์ด๋ ํต์ฌ ๋ฉ์ปค๋์ฆ ์ธ์๋ Handly๋ ํ ์คํธ ๋ฒํผ ๋ฐ ์ค๋ ์ท์ ์ํ ์ธํ๋ผ, ์์ค ์ฝ๋ ํธ์ง๊ธฐ์์ ํตํฉ ์ง์(Xtext ํธ์ง๊ธฐ์์ ๊ธฐ๋ณธ ํตํฉ ํฌํจ) ๋ฐ ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ UI ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ค ์ฝ๋ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ๊ณ ๊ฐ์ ํ๋ ์์ํฌ์ ๊ฐ์ ๋ชจ๋ธ์ ์ง์ ์ฒ๋ฆฌํฉ๋๋ค. ํด๋น ๊ธฐ๋ฅ์ ์ค๋ช ํ๊ธฐ ์ํด ํ๋ก์ ํธ๋ Handly์ Java ๋ชจ๋ธ ๊ตฌํ์ ํฌํจํ์ฌ ์ฌ๋ฌ ๊ฐ์ง ์๋ฅผ ์ ๊ณตํฉ๋๋ค. (JDT์์ Java ๋ชจ๋ธ์ ์ ์ฒด ๊ตฌํ๊ณผ ๋น๊ตํ์ฌ ์ด ๋ชจ๋ธ์ ๋ ๋ช ํ์ฑ์ ์ํด ์๋์ ์ผ๋ก ๋ค์ ๋จ์ํ๋์์ต๋๋ค.)
์์ ์ธ๊ธํ ๊ฒ์ฒ๋ผ Handly์ ์ด๊ธฐ ์ค๊ณ์ ํ์ ๊ฐ๋ฐ ๊ณผ์ ์์ ์ฃผ์ ์ด์ ์ ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ด์์ผ๋ฉฐ ์์ผ๋ก๋ ๊ณ์ ๊ทธ๋ด ๊ฒ์ ๋๋ค.
์์น์ ์ผ๋ก ํธ๋ค ๊ธฐ๋ฐ ๋ชจ๋ธ์ "์ค๊ณ์ ๋ฐ๋ผ" ์๋นํ ์ ํ์ฅ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํธ๋ค/๋ณธ์ฒด ๊ด์ฉ๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ธ์ด ์๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์์ค๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ์ฅ์ฑ์ ์ํด Handly๋ฅผ ํ ์คํธํ ๋ ์๋ฆผ ๋ฉ์ปค๋์ฆ ๊ตฌํ์์ ๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋์์ต๋๋ค. ์ฆ, ๋ง์ ์์ ์์๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ธํ ๊ตฌ์ฑ์ ๋๋ฌด ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ํด๋น ์ฝ๋๋ฅผ ์ผ๋จ ์ ์ฉํ JDT Java ๋ชจ๋ธ์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. Handly์์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ , JDT์์๋ ๋น์ทํ ํจ์น๋ฅผ ์ค๋นํ๋๋ฐ, ์ข์ ๋ฐ์์ ์ป์์ต๋๋ค. ์ด๋ ๊ธฐ์กด ๋ชจ๋ธ ๊ตฌํ์ Handly๋ฅผ ๋์ ํ๋ ๊ฒ์ด ์ ์ฌ์ ์ผ๋ก ์ ์ฉํ ์ ์๋ ํ ๊ฐ์ง ์์ผ ๋ฟ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์ด๋ฌํ ๋ฒ๊ทธ๋ ํ ๊ณณ์์ ์์ ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ธฐ์กด ๋ชจ๋ธ ๊ตฌํ์ Handly๋ฅผ ๊ธฐ์ ์ ์ผ๋ก ๊ตฌํํ๋ ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋นํ ์ ์ฐ์ฑ์ด ์์ด์ผ ํฉ๋๋ค. ์ฃผ์ ๋ฌธ์ ๋ API ๋ชจ๋ธ ์ ์ฒด์์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๋ ๊ฒ์
๋๋ค. ์ด ๋ฌธ์ ๋ ๋ค์์์ ํด๊ฒฐ๋์์ต๋๋ค.
์ ์ฐ์ฑ์๋ ๋ค๋ฅธ ์ธก๋ฉด๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Handly๋ ๋ชจ๋ธ ๊ตฌ์กฐ์ ๊ฑฐ์ ์ ํ์ ๋์ง ์์ผ๋ฉฐ ๋ฒ์ฉ ์ธ์ด์ ๋๋ฉ์ธ ํน์ ์ธ์ด๋ฅผ ๋ชจ๋ ๋ชจ๋ธ๋งํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ค ํ์ผ์ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ ๋ Handly๋ ํน์ ํ์์ AST ํํ์ ๊ท์ ํ์ง ์์ผ๋ฉฐ ์์น์ ์ผ๋ก AST ์์ฒด์ ์กด์ฌ๋ ์๊ตฌํ์ง ์์ผ๋ฏ๋ก ๊ฑฐ์ ๋ชจ๋ ๊ตฌ๋ฌธ ๋ถ์ ๋ฉ์ปค๋์ฆ๊ณผ์ ํธํ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก Handly๋ Eclipse ์์
๊ณต๊ฐ๊ณผ์ ์์ ํ ํตํฉ์ ์ง์ํ์ง๋ง ๋ค์๊ณผ์ ํตํฉ ๋๋ถ์ ํ์ผ ์์คํ
์์๋ ์ง์ ์์
ํ ์๋ ์์ต๋๋ค.
ํ์ฌ ๋ฒ์
์์์ ์ธ๊ธํ๋ฏ์ด ์ด๋ฌํ ์ ํ ์ค ํ๋๋ 1C:Enterprise Development Tools์
๋๋ค. Handly๋ ์ฒ์๋ถํฐ ๋ด์ฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๋ฐ ์ฟผ๋ฆฌ ์ธ์ด์ ๊ฐ์ 1C:Enterprise ์ธ์ด์ ์์ ์์ค ๊ตฌ์กฐ ์์๋ฅผ ๋ชจ๋ธ๋งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. . ๋ ๋ค๋ฅธ ์ ํ์ ์ผ๋ฐ ๋์ค์๊ฒ ๋ ์๋ ค์ ธ ์์ต๋๋ค. ์ด๊ฒ
API ์์ ์ฑ์ด ๋ณด์ฅ๋ ๋ฒ์ 1.0์ด ์ถ์๋๊ณ ํ๋ก์ ํธ๊ฐ ์ธํ๋ฒ ์ด์
์ํ๋ฅผ ๋ ๋ ํ Handly์ ์๋ก์ด ์ฑํ์๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ ๋์ ํ๋ก์ ํธ๋ ๊ณ์ํด์ API๋ฅผ ํ
์คํธํ๊ณ ๋์ฑ ๊ฐ์ ํ์ฌ ๋งค๋
XNUMX์(๋์ Eclipse ๋ฆด๋ฆฌ์ค์ ๊ฐ์ ๋ ์ง)๊ณผ XNUMX์์ ๋ ๊ฐ์ "์ฃผ์" ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฆด๋ฆฌ์คํ์ฌ ์ฑํ์๊ฐ ์ ๋ขฐํ ์ ์๋ ์์ธก ๊ฐ๋ฅํ ์ผ์ ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ํ๋ก์ ํธ์ "๋ฒ๊ทธ ๋น์จ"์ด ์ง์์ ์ผ๋ก ๋ฎ์ ์์ค์ผ๋ก ์ ์ง๋๊ณ ์์ผ๋ฉฐ Handly๋ ์ฒซ ๋ฒ์งธ ๋ฒ์ ๋ถํฐ ์ผ๋ฆฌ ์ด๋ตํฐ ์ ํ์์ ์์ ์ ์ผ๋ก ์๋ํด ์๋ค๊ณ ๋ง๋ถ์ผ ์ ์์ต๋๋ค. Eclipse Handly๋ฅผ ๋ ์์ธํ ํ์ํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ถ์ฒ : habr.com