์๋ฐ๋?
Java๋ " Write Once, Run Anywhere " ๋ผ๋ ํ ๊ฐ์ง ์์น์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋ ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์
๋๋ค .
Java ์ ํ๋ฆฌ์ผ์ด์
์ JVM( Java Virtual Machine ) ๊ตฌํ์์ ์คํํ ์ ์๋ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ๋ฉ๋๋ค . JVM์ ์์ค ์ฝ๋์ ์ปดํจํฐ๊ฐ ์ดํดํ๋ 1๊ณผ 0 ์ฌ์ด์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. JVM์ด ์ค์น๋ ๋ชจ๋ ์์คํ
์์ Java๋ฅผ ์คํํ ์ ์์ต๋๋ค. ์น ๊ฐ๋ฐ์์ Java๋ Android ํ๋ซํผ์์ ๋ชจ๋ฐ์ผ ์ฑ์ฉ์ผ๋ก ์ ํํ ์๋ฒ์ธก ์ธ์ด ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ฐ์ฅ ๋๋๋ฌ์ง๊ฒ ๋ํ๋ฉ๋๋ค. ๋ํ ๋ณด์ ๋ฌธ์ ๋ก ์ธํด ์ธ๊ธฐ๊ฐ ๋จ์ด์ง๊ธด ํ์ง๋ง ์ฌ์ ํ Java ์ ํ๋ฆฟ์ผ๋ก์ ํ๋ก ํธ์๋์์ ์๋นํ ์กด์ฌ๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฌด์์
๋๊น?
HTML ๋ฐ CSS์ ํจ๊ป JavaScript(ECMAScript๋ก ํ์คํ๋จ)๋ ์น์ 3๋ ํต์ฌ ๊ตฌ์ฑ ์์ ์ค ํ๋๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ์น ์ฌ์ดํธ์์ ์ฌ์ฉ๋๋ JavaScript๋ ์ผ๋ฐ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๊ณ ์น ํ์ด์ง๋ฅผ ๋์ ์ด๊ณ ๋ํ์์ผ๋ก ๋ง๋๋ ์คํฌ๋ฆฝํ
์ธ์ด์
๋๋ค. ์ค๋๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ 2009๋
Node.js ์ถ์ ์ดํ ์๋ฒ ์ธก ๊ธฐ์ ๋ก๋ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๊ณ ์์ต๋๋ค.
์๋ฐ ๋. ์๋ฐ์คํฌ๋ฆฝํธ: ์ฃผ์ ์ ์ฌ์ฑ
๊ทธ๊ฒ๋ค์ด ๋ค๋ฅด๊ธฐ๋ ํ์ง๋ง, ํนํ ์๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋น๊ตํ ๋ ์น ๊ฐ๋ฐ์ ๋ณด๊ณ ์๋ค๋ฉด ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์๋ ๋ช ๊ฐ์ง ์ต์์ ์์ค์ ์ ์ฌ์ ์ด ์์ต๋๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP) . ๋ ์ธ์ด ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ๊ฐ์ฒด ๋ฐ ์๋ก ๊ฐ์ ๊ด๊ณ ์ธก๋ฉด์์ ์ฝ๋ฉํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ์ธ์ด ๋ชจ๋ ์์, ์บก์ํ ๋ฐ ๋คํ์ฑ๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
ํ๋ก ํธ์๋ ๊ฐ๋ฐ . ๋ ์ธ์ด ๋ชจ๋ ํ๋ฐํธ ์๋ ๊ฐ๋ฐ ์ธก๋ฉด์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. JavaScript๋ ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ตฌํ๋ HTML์ ์ง์ ๋ด์ฅ๋ ์ ์์ต๋๋ค. Java๋ Java ์ ํ๋ฆฟ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐฑ์๋ ๊ฐ๋ฐ. ๋ ์ธ์ด ๋ชจ๋ ์๋ฒ ์ธก์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Java๋ ์ค๋ซ๋์ Apache, JBoss ๋ฐ WebSphere์ ๊ฐ์ ๋ฐฑ์๋ ๊ธฐ์ ์ ์ง์ํ๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค. Node.js๋ JavaScript ๊ธฐ๋ฐ ์๋ฒ์ ๋ฐ์นํจ๋๊ฐ ๋์์ต๋๋ค.
์๋ฐ ๋. ์๋ฐ์คํฌ๋ฆฝํธ: ์ฃผ์ ์ฐจ์ด์
Java์ JavaScript๋ ์์ ํ ๋ค๋ฅธ ๋ชฉ์ ์ ์ํด ๊ฐ๋ฐ๋์์์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. Java๋ ๋
๋ฆฝ ์คํํ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ค๊ณ๋ ๋ฐ๋ฉด JavaScript๋ ์น ๊ธฐ์ , ์ฆ HTML๊ณผ์ ์ธํฐํ์ด์ค๋ฅผ ์ํด ํน๋ณํ ๊ตฌ์ถ๋ ์คํฌ๋ฆฝํ
์ธ์ด์
๋๋ค. Java๊ฐ 1991๋
Sun์์ ์ถ์๋์์ ๋ ์ฒ์์๋ VCR๊ณผ ๊ฐ์ ๊ฐ์ ์ ํ์ ํ๋ก๊ทธ๋๋ฐํ๋ ๋ฐ ์ฌ์ฉ๋์์ต๋๋ค. JavaScript๋ ์ปดํ์ผํ ํ์ ์์ด ๋ธ๋ผ์ฐ์ ์์ ์คํํ ์ ์๋ ํด๋ผ์ด์ธํธ ์ธก ์คํฌ๋ฆฝํ
์ธ์ด๋ก Java์ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํด ๋์
๋์์ต๋๋ค. ์ด ๋ ์ธ์ด์ ์ฃผ์ ์ฐจ์ด์ ์ค ์ผ๋ถ๋ฅผ ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ปดํ์ผ ๋ ํด์.Java๋ ์ปดํ์ผ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. JavaScript๋ ํด์๋ ์คํฌ๋ฆฝํ
์ธ์ด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ฐจ์ด์ ์ ๊ตฌํ์ ์์ต๋๋ค. Java๋ ๋ฐ์ดํธ์ฝ๋๋ก ์ปดํ์ผ๋์ด ๊ฐ์ ๋จธ์ ์์ ์คํ๋๋ ๋ฐ๋ฉด JavaScript๋ ์์ฑ๋ ๊ตฌ๋ฌธ์ผ๋ก ๋ธ๋ผ์ฐ์ ์์ ์ง์ ํด์ํ ์ ์์ต๋๋ค(์ผ๋ฐ์ ์ผ๋ก ์ค์ ๋ก ์ถ์๋จ).
์ ์ ๋ ๋์ ์ ํ ๊ฒ์ฌ. Java๋ ๋ณ์์ ์ ํ์ด ์ปดํ์ผ ํ์์ ํ์ธ๋๋ ์ ์ ์ ํ ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํ๋ก๊ทธ๋๋จธ๋ ์์ฑํ๋ ๋ชจ๋ ๋ณ์์ ์ ํ(์ ์, ์ด์ค, ๋ฌธ์์ด ๋ฑ)์ ์ง์ ํด์ผ ํฉ๋๋ค. ๋๋ถ๋ถ์ ์คํฌ๋ฆฝํ
์ธ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก JavaScript๋ ๋ฐํ์ ์ ์ ํ ์์ ์ฑ์ด ํ์ธ๋๋ ๋์ ํ์ดํ์ ์ฌ์ฉํฉ๋๋ค. ํ๋ก๊ทธ๋๋จธ๋ ์์ ์ด ์์ฑํ๋ ๋ณ์์ ์ ํ์ ์ง์ ํ ํ์๊ฐ ์์ต๋๋ค. ์ด ๋ ํจ๋ฌ๋ค์์๋ ๋ง์ ์ฅ๋จ์ ์ด ์์ง๋ง ์ ์ ์ ํ ๊ฒ์ฌ์ ์ฃผ์ ์ด์ ์ ์ ํ ์ค๋ฅ๊ฐ ๊ฐ๋ฐ ์ด๊ธฐ์ ๋ฐ๊ฒฌ๋๊ณ ์ปดํ์ผ๋ฌ๊ฐ ์ฌ์ฉ ์ค์ธ ๋ฐ์ดํฐ ์ ํ์ ์ ํํ ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋๊ฐ ๋ ๋น ๋ฅด๊ฒ ์คํ๋๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ฌ์ฉํ๋ค๋ ๊ฒ์
๋๋ค. . ๋์ ์ ํ ๊ฒ์ฌ์ ์ฃผ์ ์ด์ ์ ํ๋ก๊ทธ๋๋จธ ์์ฐ์ฑ์
๋๋ค. ์ฌ๊ฐ ์๊ฐ์ ์ ํ์ ์์ ๋กญ๊ฒ ํ ๋นํ ์ ์์ต๋๋ค.
๋์์ฑ. ๋์์ ์ฌ๋ฌ ๋ช
๋ น ์ํ์ค์ ์คํ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ Java์ JavaScript ๊ฐ์ ๋งค์ฐ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค. Java๋ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ฌ ์์
์ ๋ณ๋ ฌ๋ก ์ํํฉ๋๋ค. JavaScript๋ ํนํ ์๋ฒ ์ธก ์ ํ๋ฆฌ์ผ์ด์
์์ Node.js๋ก ์กด์ฌํ๋ฏ๋ก ์ด๋ฒคํธ ๋ฃจํ๋ผ๋ ํ ์์คํ
๊ณผ ๋
ธ๋ ํด๋ฌ์คํฐ๋ง์ด๋ผ๋ ๋ถ๊ธฐ ์์คํ
์ ํตํด ํ๋์ ๊ธฐ๋ณธ ์คํ ์ค๋ ๋์์ ๋์์ฑ์ ์ฒ๋ฆฌํฉ๋๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก์์ ๋ ๋ฐฉ๋ฒ ๋ชจ๋ ์ ์๋ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก Java๊ฐ ๋ ๋น ๋ฆ
๋๋ค. ์ค๋ ๋์์ ์ค๋ ๋ ์๋ ๊ธฐ๋ฐ์ผ๋ก์ ์ฐ๊ฒฐ์ด IPC(ํ๋ก์ธ์ค ๊ฐ ํต์ )๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์
๋๋ค.
ํด๋์ค ๊ธฐ๋ฐ ๋ ํ๋กํ ํ์
๊ธฐ๋ฐ. Java๋ ์์ฑ์ด ํด๋์ค์์ ์ ์๋๊ณ ํด๋น ํด๋์ค์ ์ธ์คํด์ค(๊ตฌ์ฑ์ ์ค ํ๋)์ ์ํด ์์๋๋ ํํฅ์, ๊ณ์ธต์ , ํด๋์ค ๊ธฐ๋ฐ ๊ด๊ณ์ธ ํด๋์ค ๊ธฐ๋ฐ ์์์ ๋ฐ๋ฆ
๋๋ค. JavaScript์์ ์์์ ํ๋กํ ํ์
์
๋๋ค. ๋ชจ๋ ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด์์ ์ง์ ์์ํ ์ ์์ต๋๋ค. ๊ณ์ธต ๊ตฌ์กฐ๋ ์์ฑ์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ํ๋กํ ํ์
์ผ๋ก ํ ๋นํ์ฌ JavaScript์์ ์ํ๋ฉ๋๋ค.
๋ค์ ํ๋ก์ ํธ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋๋ ์๋ฐ๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๊น?
๋ชจ๋ ์ธ์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ํ์ ๊ตฌ์ถํ๋ ค๋ ๋์๊ณผ ๋ง์๋๋ก ์ฌ์ฉํ ์ ์๋ ๋ฆฌ์์ค๋ก ๊ท๊ฒฐ๋ฉ๋๋ค. JavaScript๋ ์ฌ์ ํ ์น ๊ธฐ์ ์ ๊ฐ๊น์ง๋ง Java๋ ๋ฌด์์ด๋ ๋ง๋ค ์ ์๋ ๋ฒ์ฉ ์ธ์ด์
๋๋ค.
ํ๋ก์ ํธ์ ๋ค์๊ณผ ๊ด๋ จ๋ ๊ฒฝ์ฐ Java๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
- ์๋๋ก์ด๋ ์ฑ
- ์ํฐํ๋ผ์ด์ฆ ์ํํธ์จ์ด
- ๊ณผํ ์ปดํจํ
- ๋น
๋ฐ์ดํฐ ๋ถ์
- ๋ฒ์ฉ ํ๋์จ์ด ํ๋ก๊ทธ๋๋ฐ
- Apache, JBoss, Geronimo, GlassFish ๋ฑ๊ณผ ๊ฐ์ ์๋ฒ ์ธก ๊ธฐ์
ํ๋ก์ ํธ์ ๋ค์๊ณผ ๊ด๋ จ๋ ๊ฒฝ์ฐ JavaScript๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
- ๋์ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์
(SPA)
- jQuery, AngularJS, Backbone.js, Ember.js, ReactJS ๋ฑ๊ณผ ๊ฐ์ ํ๋ฐํธ ์๋ ๊ธฐ์
- Node.js, MongoDB, Express.js ๋ฑ๊ณผ ๊ฐ์ ์๋ฒ ์ธก ๊ธฐ์
- PhoneGap, React Native ๋ฑ์ ํตํ ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ
- ๋ ๋ชฉ๋ก ๋ชจ๋ ๊ด๋ฒ์ํ์ง ์์ผ๋ฉฐ ์์ํ ์ ์๋ ๋ด์ฉ๊ณผ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ ์ธ์ด๋ฅผ ํ๊ฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํค์๋์ ๋ํ ๋๋์ ์ป๋ ๋ฐ ๋์์ด ๋๋ ์ถ๋ฐ์ ์ผ ๋ฟ์
๋๋ค.
GO TO FULL VERSION