[๋ช ํ ์๋ฐ ํ๋ก๊ทธ๋๋ฐ] 1์ฅ 53~54์ชฝ ์ฐ์ต๋ฌธ์ ์ด๋ก ๋ฌธ์ _์ ๋ต
1์ฅ ์๋ฐ ์์
1๋ฒ
๋ต: .java, .class
// ์๋ฐ ์์ค ํ์ผ์ ํ์ฅ์๋ .java, ์ปดํ์ผ๋ ํด๋์ค ํ์ผ์ ํ์ฅ์๋ .class
2๋ฒ
๋ต: 1๋ฒ ์ ์์ค ๊ณ ์ฌ๋ง
// ์ ๋ง์ดํฌ๋ก ์์คํ ์ฆ์ ์ ์์ค ๊ณ ์ฌ๋ง์ด ์๋ฐ๋ผ๋ ์ธ์ด๋ฅผ ๊ฐ๋ฐํ์๋ค.
3๋ฒ
๋ต: C, C++, Java, C#
4๋ฒ
๋ต: ๊ฐ์ ์ ํ์ ๋ค์ด๊ฐ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ฌ์ฉํ ์ธ์ด ๊ฐ๋ฐ
// ๋ค์ํ ํ๋ซํผ์ ๊ฐ์ง๊ณ , ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ์ ๊ฐ์ ์ ํ์ ๋ค์ด๊ฐ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ํด ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ด๊ณ , ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ ์ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ๋ ํ๊ธฐ ์ํด์ ์๋ฐ๋ฅผ ๊ฐ๋ฐํ์๋ค.
5๋ฒ
๋ต: 1๋ฒ
// ์๋ฐ ๊ฐ์ ๊ธฐ๊ณ๊ฐ JVM์ด๋ค.
// ์๋ฐ ์์ค ํ์ผ์ ์ปดํ์ผํ๋ฉด ๋ฐ์ดํธ ์ฝ๋๋ก ์ด๋ฃจ์ด์ง ํด๋์ค ํ์ผ์ด ๋ง๋ค์ด์ง๋ค. ๋ฐ์ดํธ ์ฝ๋๋ ์ด๋ค ํ๋ซํผ์๋ ์ข ์์ ์ด์ง ์์ ๊ณตํต์ฝ๋์ด๋ค. ๋ฐ์ดํธ ์ฝ๋๊ฐ CPU์ ์ํด์ ์ง์ ์คํ๋๋ ๊ฒ์ด ์๋๋ผ, JVM์ ์ํด์ ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์์ผ๋ก ๊ฐ๊ฐ์ ํ๋ซํผ์ ๋ง๊ฒ ๋ณํ๋ ๋ค ์คํ๋๋ค.
6๋ฒ
๋ต: WORA
// Write Once Run Anywhere
// ํ ๋ฒ ์์ฑํ๋ฉด ํ๋์จ์ด๋ ์ด์์ฒด์ ์ ์๊ด์์ด ์ด๋์์๋ ์คํ๊ฐ๋ฅํ๋ค.
7๋ฒ
๋ต: 4๋ฒ
1. O // ์๋ฐ๋ก ์์ฑ๋ ์์คํ์ผ.java๋ฅผ ์ปดํ์ผํ ๊ฒฐ๊ณผ ๋ฐ์ดํธ์ฝ๋๋ก ์ด๋ฃจ์ด์ง ํด๋์คํ์ผ.class๊ฐ ๋ง๋ค์ด์ง๋ค.
2. O // ์๋ฐ๋ ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ธ ์ธ์ด๋ก, JVM์ด ์ค์น๋ ์ด๋ค ํ๋ซํผ์ด๋ ์ง ์คํ๋๋ค.
3. O // ์๋ฐ๋ ์์คํ์ผ.java์ ์ปดํ์ผํ ๋ฐ์ดํธ์ฝ๋๋ก ์ด๋ฃจ์ด์ง ํด๋์ค ํ์ผ.class๋ค์ ํ๋์ ์คํํ์ผ๋ก ๋ง๋๋ ๋งํฌ ๊ณผ์ ์์ด ํ์ํ ํด๋์ค ํ์ผ๋ค์ ๋์ ์ผ๋ก ๋ก๋ํ์ฌ ์คํํ๋ค.
// C/C++์ ์๋ฐ์ ๋ฌ๋ฆฌ ์์คํ์ผ.c์ ์ปดํ์ผํ ๋ชฉ์ ์ฝ๋.obj์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ๋ค์ ๋งํฌํ์ฌ ํ๋์ ์คํํ์ผ.exe๋ก ๋ง๋๋ ๊ณผ์ ์ด ์๋ค.
4. X // ์์คํ์ผ์ ์ปดํ์ผํ๋ฉด 1๊ฐ์ ํด๋์ค ๋น 1๊ฐ์ ํด๋์ค ํ์ผ์ด ๋ง๋ค์ด์ง๋ค.
8๋ฒ
๋ต: JDK
// JDK ์๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ํด ์ค์นํ๋ ๊ฒ์ผ๋ก, JRE + ์๋ฐ ์ปดํ์ผ๋ฌ๋ก ์ด๋ฃจ์ด์ ธ์๋ค.
9๋ฒ
๋ต: 3๋ฒ
// ์๋ฐ๋ ํด๋์ค ๋ฐ์ ์ด๋ค ์ฝ๋๋ ์์ฑํ ์ ์๋ค.
1. O // ์๋ฐ๋ ๊ฐ๋น์ง ์ปฌ๋ ์ ์ด ์์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํด์ค๋ค.
2. O // ์๋ฐ๋ C/C++์ ๋ฌ๋ฆฌ ํฌ์ธํฐ๊ฐ ์๋ค.
3. X // C++์ ๋ฌ๋ฆฌ, ์๋ฐ๋ 100% ๊ฐ์ฒด์งํฅ์ธ์ด๋ก ํด๋์ค ์์ ๋ชจ๋ ํ๋์ ๋ฉ์๋๋ฅผ ์์ฑํ๋ค. ํด๋์ค ์ธ๋ถ์ ์ด๋ค ์ฝ๋๋ ์์ฑํ ์ ์๋ค.
4. O // ์๋ก ๊ด๋ จ๋ ํด๋์ค๋ค์ ํจํค์ง๋ก ๋ฌถ๋๋ค.
10๋ฒ
๋ต: Shape.java
// ์๋ฐ ์์ค ํ์ผ์ ์ด๋ฆ์ ํด๋์ค์ ์ด๋ฆ๊ณผ ๊ฐ์์ผ ํ๋ค.
// ์๋ฐ ์์ค ํ์ผ ํ ๊ฐ์๋ ์ฌ๋ฌ ๊ฐ์ ํด๋์ค๋ฅผ ์์ฑํ ์ ์๋ค. ๊ทธ๋ฌ๋, public ํด๋์ค๋ ํ ๊ฐ๋ง ์์ฑํ ์ ์๋ค.
// ์๋ฐ ์์ค ํ์ผ ํ๊ฐ์ ํด๋์ค๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ, ์์คํ์ผ์ ์ด๋ฆ์ public์ผ๋ก ์ ์ธ๋ ํด๋์ค์ ์ด๋ฆ๊ณผ ๊ฐ์์ผ ํ๋ค.
11๋ฒ
(1) ๋ต: A.java
// ์๋ฐ ์์ค ํ์ผ์ ์ด๋ฆ์ ํด๋์ค์ ์ด๋ฆ๊ณผ ๊ฐ์์ผ ํ๋ค. ํด๋์ค๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ, public์ผ๋ก ์ ์ธ๋ ํด๋์ค์ ์ด๋ฆ๊ณผ ๊ฐ์์ผ ํ๋ค.
(2) ๋ต: A.class, A$B.class, C.class, C$D.class
// ํด๋์ค 1๊ฐ๋น ํด๋์ค ํ์ผ 1๊ฐ๊ฐ ๋ง๋ค์ด์ง๋ค.
// ํด๋์ค ์์ ์์ฑ๋ ๋ด๋ถ ํด๋์ค์ ๊ฒฝ์ฐ, ์ธ๋ถ ํด๋์ค ์ด๋ฆ$๋ด๋ถ ํด๋์ค ์ด๋ฆ ๋ฐฉ์์ ์ด๋ฆ์ผ๋ก ํด๋์ค ํ์ผ์ด ๋ง๋ค์ด์ง๋ค.
// ํด๋์ค ์์ ํด๋์ค์ธ ๋ด๋ถ ํด๋์ค๋ฅผ ์์ฑํ ์ ์๋ค.
12๋ฒ
๋ต: 2๋ฒ
// ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด์ ํ ํ๊ฒฝ์์๋ ์คํ์ด ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ์๋ฐ์ ํน์ง๊ณผ ์ฐ๊ด์ฑ์ด ์๋ค.
// ๋๋จธ์ง ์ ์ง 1, 3, 4๋ฒ์ ํ๋ซํผ์ ๋ ๋ฆฝ์ ์๋ฐ์ ํน์ง๊ณผ ์ฐ๊ด์ฑ์ด ์๋ค.