๐Ÿ‘ฟ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ฉด์ ‘์—๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋‹ต๋ณ€์„ ์›ํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์งˆ๋ฌธ๊ณผ ์šฐ๋ฆฌ๊ฐ€ ํ•จ๊ป˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ธฐํƒ€ ์งˆ๋ฌธ๋“ค์ด ์žˆ๋‹ค.

๊ธฐ๋ณธ์ ์ธ ๋ฉด์ ‘ ์งˆ๋ฌธ

  • ๊ท€ํ•˜์˜ ๊ฐœ๋ฐœ ์Šคํƒ๊ณผ ๊ฒฝํ—˜ ๋“ฑ์— ๊ด€ํ•ด ์ด์•ผ๊ธฐํ•ด์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
  • ๋‹น์‹ ์˜ ๊ฐ€์žฅ ์ž˜ํ•˜๋Š” ๋ถ„์•ผ์™€ ๊ฐœ๋ฐœ ๋…ธํ•˜์šฐ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
  • ๊ฐœ๋ฐœ ๊ฒฝํ—˜๊ณผ ํ˜„์—… ๊ฒฝํ—˜, ์™œ ๊ทธ๊ฒƒ์„ ์„ ํƒํ–ˆ์Šต๋‹ˆ๊นŒ?

๊ฐœ๋ฐœ ์‹ค๋ ฅ์„ ๋ฐํžˆ๋Š” ์งˆ๋ฌธ

  • ๋‹น์‹ ์ด ๊ฐœ๋ฐœํ•  ๋•Œ ์–ด๋–ค ๋””์ž์ธํŒจํ„ด๊ณผ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„ ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?
  • 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() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.