C์ธ์ด
C์ธ์ด๋ compile ์ธ์ด์ด๋ฉฐ, ์๋๊ฐ ์๋์ ์ผ๋ก ๋น ๋ฅด๋ค.
Javascirpt
Javascript๋ interpreter(ํด์) ์ธ์ด์ด๋ฉฐ, ์๋๊ฐ ์๋์ ์ผ๋ก ๋๋ฆฌ๋ค.
1) ์์ค์ฝ๋๋ฅผ ์์ฑํ๊ณ , ์์ง์ด ์ฝ์ด๋ค์ด๋ฉด ์ค๊ฐ์ฝ๋๋ก ๋ณํํ๋ค.
2) ์ดํ ๋ค์ ๋จธ์ ์ฝ๋๋ก ๋ณํํด์ ๋งค ์ค ๋ง๋ค interprete๋ฅผ ์ํํ๊ฒ ๋๋ค.
Java
Java๋ compile ์ธ์ด์ interpreter ์ธ์ด๋ฅผ ํผํฉ์ํจ ๊ฒ์ด๋ค.
1) Java๋ Javac๋ก ์์ค์ฝ๋(.java)๋ฅผ ์ปดํ์ผํ๊ฒ๋๋ฉด bytecode(.class)๊ฐ ๋์จ๋ค.
2) ์ด๋ฅผ jvm์ด ํ์คํ์ค ์ฝ์ด๋ค์ฌ์ interpreting ์์
์ ํ๋ค.
Java๋ ์ด์์ฒด์ ์ ๋ ๋ฆฝ์ ์ด๋ค.
JVM(Java Virtual Machine) ์์ ์์ผ๋ฉด ๋์ํ ์ ์๋ค. (JVM์ ์ด์์ฒด์ ์ ์ข ์์ )
- Java๋ ๊ฐ์ฒด์งํฅ ๊ฐ๋ ์ ๊ฐ์ฅ ์ ํํํ ์ธ์ด์ด๋ค.
- ํ๋์จ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ง์ ์ ์ธ ์ ์ด๊ฐ ์๋๋ค.
( garbage collection์ ์ํด์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๊ด๋ฆฌํด์ค๋ค )- ๋คํธ์ํฌ์ ๋ถ์ฐ์ฒ๋ฆฌ์ ๊ฐ์ ์ ๊ฐ์ง๋ค.
- Dynamic loading์ ์ ๊ณตํ๋ค.
( class์ loading์ด ๋์ ์ผ๋ก ์ผ์ด๋๋ค )
๋ฉ๋ชจ๋ฆฌ์ ํจ์จ์ ์ธ ์ฌ์ฉ์ ์ํด์ ํ์ํ ํด๋์ค๋ฅผ ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๋ค.- ์ ์ญ๊ณผ ํจ์์ ๋ํ ๊ฐ๋ ์ด ์๋ค.
ํ๋ก๊ทธ๋จ์ ๋๋ฆฌ๊ธฐ ์ํด์๋ JAVA๊ฐ ์ ๊ณตํด์ฃผ๋ API์ธ Java class Library(API)๊ฐ ํ์ํ๋ค.
JVM ๋ํ ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค๊ณ ์์ด์ผ์ง ์์ค์ฝ๋๋ฅผ ์คํ์ํฌ ์ ์๋ค.
์ฐ๋ฆฌ๋ Java class library์ JVM์ ๋ฌถ์ด์ JRE(Java Runtime Environment)๋ผ๊ณ ํ๋ค.
Java๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด์๋ JDK ์ค์น๊ฐ ํ์ํ๋ค.JDK๋ JRE๋ฅผ ํฌํจํ๋ ๊ฐ๋ ์ด๋ค.
jdk 1.1 โ jdk 1.2 โ jdk 1.5(JAVA5) โ jdk 1.8(JAVA 8) โ jdk 1.11 (JAVA 11)
- jdk 1.5 (Java 5) ์ดํ ์ฝ๋ ๋ํญ ๋ณํ
- jdk 1.8 (Java 8) - ํ์ ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฒ์
- ํ์ฌ JAVA 11๋ก ๋์ด๊ฐ๋ ์ถ์ธ(Java 11๋ก ๊ณต๋ถํ๋ ๊ฒ์ ์ถ์ฒ)
- ํด๊ฒฐํด์ผํ๋ ๋ฌธ์ ์ ๊ตฌ์ฑ์์๋ฅผ ํ์ ํ๊ณ , ๊ตฌ์ฑ์์ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ์ ๋ฌ๋๋์ง ํ์ ํ๋ค. (๋ถ์์ค๊ณ ์ด๋ ค์)
- ์ ์ง๋ณด์์ ๊ฐ์ ์ ๊ฐ์ง๋ค.
- ๊ธฐ๋ฅ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์ธ๋ถํํ๋ค.
(๋ถ์์ด ์๋์ ์ผ๋ก ์ฝ๊ณ ๋น ๋ฆ)- ๋น ๋ฅธ ๋ถ์๊ณผ ์ค๊ณ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ํ๋ก๊ทธ๋จ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์์ฑํ ์ ์๋ค.
- ํ๋ก๊ทธ๋จ์ ์ ์ง๋ณด์์ ์ทจ์ฝํ๋ค.
(์ ์ง๋ณด์ ๋น์ฉ์ด ๋ง์ด ๋ ๋ค )
ํ์ค์ธ๊ณ๋ฅผ ๊ตฌ์ฑํ๋ ๊ตฌ์ฑ์์๋ฅผ ํ์ ํ๊ณ ๊ฐ ๊ตฌ์ฑ์์ ์์ ์ด๋ค ๋ฐ์ดํฐ๋ค์ด ์๊ณ , ์ด๋ป๊ฒ ์ํธ์์ฉํ๋์ง ํ์ ํ๋ค.
ex. ํ์ฌ์ง์์์คํ
์ถ์ํ (Abstraction)
ํ์ฌ์ง์์์คํ
์ ๋ํ ํ์์ ๋ํ ์ํ, ํ์์์ ํ์์๋ ๋ถ๋ถ์ ์ง์ด๋ค. ๊ผญ ํ์ํ ํน์ง๋ค์ ๋ฝ์๋ด์ด ๋จ์ํ ์ํจ๋ค.
Modeling
class๋ฅผ ์ด์ฉํด์ modelingํ๋ค. class๋ ๊ฐ์ฒด ๋ชจ๋ธ๋ง์ ์๋จ์ด๋ผ๊ณ ํ ์ ์๋ค.
โป class
Java๋ ํ์์ ๋ํ ์ํ๋ฅผ class ์์์ ๋ณ์๋ก ํํํ๋ค.
(class ์์ ์๋ ๋ณ์๋ฅผ ํ๋๋ผ๊ณ ํ๋ค)
Java๋ ํ์๋ฅผ class ์์์ ํจ์๋ก ํํํ๋ค.
(class ์์ ์๋ ํจ์๋ฅผ ๋ฉ์๋๋ผ๊ณ ํ๋ค)
public static void main(String args[]){ ]