๐ฑ
๐ฟ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ฉด์ ์ง๋ฌธ1
April 25, 2023
๐ฟ๋ฐฑ์๋ ๊ฐ๋ฐ ๋ฉด์ ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ต๋ณ์ ์ํ๋ ๊ธฐ๋ณธ์ ์ธ ์ง๋ฌธ๊ณผ ์ฐ๋ฆฌ๊ฐ ํจ๊ปํ ์ ์๋๋ก ๋์์ ์ค ์ ์๋ ๊ธฐํ ์ง๋ฌธ๋ค์ด ์๋ค.
๊ธฐ๋ณธ์ ์ธ ๋ฉด์ ์ง๋ฌธ
- ๊ทํ์ ๊ฐ๋ฐ ์คํ๊ณผ ๊ฒฝํ ๋ฑ์ ๊ดํด ์ด์ผ๊ธฐํด์ฃผ์๊ฒ ์ต๋๊น?
- ๋น์ ์ ๊ฐ์ฅ ์ํ๋ ๋ถ์ผ์ ๊ฐ๋ฐ ๋ ธํ์ฐ๋ ๋ฌด์์ ๋๊น?
- ๊ฐ๋ฐ ๊ฒฝํ๊ณผ ํ์ ๊ฒฝํ, ์ ๊ทธ๊ฒ์ ์ ํํ์ต๋๊น?
๊ฐ๋ฐ ์ค๋ ฅ์ ๋ฐํ๋ ์ง๋ฌธ
- ๋น์ ์ด ๊ฐ๋ฐํ ๋ ์ด๋ค ๋์์ธํจํด๊ณผ ํ ์คํธ ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํฉ๋๊น?
- REST API, SOAP ๋ฐ Microservice ๊ฐ๋ฐ์ ๋ํ ๊ฒฝํ์ด ์์ต๋๊น?
- ๊ณ ๊ฐ์ด ๊ธฐ๋ํ๋ ์๋ฃจ์ ์ ๋ํด ์ค๋ช ํด์ฃผ์๊ฒ ์ต๋๊น?
1. Java์์ ๋คํ์ฑ(Polymorphism)์ด๋ ๋ฌด์์ธ๊ฐ์?
- ๋คํ์ฑ์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ํ๋์ ๋ฉ์๋๋ ํด๋์ค๊ฐ ๋ค์ํ ํํ๋ฅผ ๊ฐ๋ ๊ฒ์ ๋งํฉ๋๋ค. Java์์๋ ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ, ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ, ์์ ๋ฑ์ ๊ธฐ๋ฅ์ผ๋ก ๋คํ์ฑ์ ๊ตฌํํ ์ ์์ต๋๋ค.
2. ์๋ฐ์์ ์ค๋ฒ๋ก๋ฉ(Overloading)๊ณผ ์ค๋ฒ๋ผ์ด๋ฉ(Overriding)์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
- ์ค๋ฒ๋ก๋ฉ์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ๋งค๊ฐ๋ณ์์ ๊ฐ์๋ ํ์ ๋ฑ์ ๋ค๋ฅด๊ฒ ์ ์ํ๋ ๊ฒ์ ๋งํ๋ฉฐ, ์ค๋ฒ๋ผ์ด๋ฉ์ ์์ ํด๋์ค์์ ์ ์๋ ๋ฉ์๋๋ฅผ ํ์ ํด๋์ค์์ ์ฌ์ ์ํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
3. ์๋ฐ์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ์์ ๋ฌด์์ธ๊ฐ์?
-
Java์์๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ(Garbage Collector)๊ฐ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
-
๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ฐ์ฒด๋ฅผ ์๋์ผ๋ก ํ์ ํ๊ณ ์ญ์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํฉ๋๋ค.
4. ์๋ฐ์์ ์ค๋ ๋(Thread)๋ ๋ฌด์์ธ๊ฐ์?
- ์ค๋ ๋๋ ํ๋ก๊ทธ๋จ์์ ์คํ๋๋ ์ต์์ ๋จ์๋ก, ํ ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ ์์ ์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. Java์์๋ ์ค๋ ๋๋ฅผ ๊ตฌํํ๊ธฐ ์ํด Thread ํด๋์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
5. ์๋ฐ์์ ๋๊ธฐํ(Synchronization)๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ๊ตฌํํ ์ ์๋์?
- ๋๊ธฐํ๋ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ๋์์ ํ๋์ ์์์ ์ฌ์ฉํ ๋, ์์๋ฅผ ์ง์ ํ์ฌ ์ถฉ๋์ ๋ฐฉ์งํ๋ ๊ฒ์ ๋งํฉ๋๋ค. Java์์๋ synchronized ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์๋๋ ๋ธ๋ก์ ๋๊ธฐํํ ์ ์์ต๋๋ค.
6. ์๋ฐ์์ ์ปฌ๋ ์ (Collection) ํ๋ ์์ํฌ๋ ๋ฌด์์ธ๊ฐ์?
- ์ปฌ๋ ์ ํ๋ ์์ํฌ๋ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ ๋ค๋ฃจ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ ํด๋์ค์ ์งํฉ์ ๋งํฉ๋๋ค. Java์์๋ List, Set, Map ๋ฑ์ ์ธํฐํ์ด์ค์ ์ด๋ฅผ ๊ตฌํํ ํด๋์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
7. ์๋ฐ์์ Exception๊ณผ Error์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
- Exception์ ํ๋ก๊ทธ๋จ ์คํ ์ค ๋ฐ์ํ๋ ์ผ๋ฐ์ ์ธ ์์ธ ์ํฉ์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉํ๋ฉฐ, Error๋ ํ๋ก๊ทธ๋จ์ด ๋ณต๊ตฌํ ์ ์๋ ์น๋ช ์ ์ธ ์ค๋ฅ๋ฅผ ๋ํ๋ ๋๋ค.
8. ์๋ฐ์์ Garbage Collection(GC)์ด๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ์๋ํ๋์?
- Garbage Collection์ ์๋์ผ๋ก ์ฌ์ฉ๋์ง ์๋ ๊ฐ์ฒด๋ฅผ ํ์ ํ๊ณ ์ญ์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํฉ๋๋ค. GC๋ JVM(Java Virtual Machine)์ด ๊ด๋ฆฌํ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ํด์ ๋ฅผ ์๋์ผ๋ก ์ํํฉ๋๋ค.
- GC๋ ๊ฐ์ฒด์ ์ฐธ์กฐ ํ์๋ฅผ ๊ณ์ฐํ์ฌ ๋ ์ด์ ์ฐธ์กฐ๋์ง ์๋ ๊ฐ์ฒด๋ฅผ ํ์ ํ๊ณ , ์ด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ฑฐํ์ฌ ํ๋ณดํฉ๋๋ค.
9. ์๋ฐ์์ ์ง๋ ฌํ(Serialization)๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ๊ตฌํํ ์ ์๋์?
- ์ง๋ ฌํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋งํฉ๋๋ค. Java์์๋ Serializable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ฌ ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํํ ์ ์์ต๋๋ค.
10. ์๋ฐ์์ JDBC๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ์ฌ์ฉํ๋์?
- JDBC(Java Database Connectivity)๋ ์๋ฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ๋ API์ ๋๋ค.
- JDBC๋ DriverManager, Connection, Statement ๋ฑ์ ์ธํฐํ์ด์ค์ ํด๋์ค๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ์ฟผ๋ฆฌ ์คํ, ๊ฒฐ๊ณผ ์ฒ๋ฆฌ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ์ํด์๋ DriverManager.getConnection() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
-
๊ฐ๋ฐ ์ค๋ ฅ์ ๋ฐํ๋ ์ง๋ฌธ
- 1. Java์์ ๋คํ์ฑ(Polymorphism)์ด๋ ๋ฌด์์ธ๊ฐ์?
- 2. ์๋ฐ์์ ์ค๋ฒ๋ก๋ฉ(Overloading)๊ณผ ์ค๋ฒ๋ผ์ด๋ฉ(Overriding)์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
- 3. ์๋ฐ์์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ์์ ๋ฌด์์ธ๊ฐ์?
- 4. ์๋ฐ์์ ์ค๋ ๋(Thread)๋ ๋ฌด์์ธ๊ฐ์?
- 5. ์๋ฐ์์ ๋๊ธฐํ(Synchronization)๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ๊ตฌํํ ์ ์๋์?
- 6. ์๋ฐ์์ ์ปฌ๋ ์ (Collection) ํ๋ ์์ํฌ๋ ๋ฌด์์ธ๊ฐ์?
- 7. ์๋ฐ์์ Exception๊ณผ Error์ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ์?
- 8. ์๋ฐ์์ Garbage Collection(GC)์ด๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ์๋ํ๋์?
- 9. ์๋ฐ์์ ์ง๋ ฌํ(Serialization)๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ๊ตฌํํ ์ ์๋์?
- 10. ์๋ฐ์์ JDBC๋ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ์ฌ์ฉํ๋์?