Search

Java ์†Œ๊ฐœ

Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํ“จํ„ฐ์—๊ฒŒ ๋ช…๋ น์„ ๋ณด๋‚ด๋Š” ๋ฌธ์ž ์ฒด๊ณ„ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
Java๋Š” ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ฒŒ์ž„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, ๊ทธ๋ฆฌ๊ณ  ๊ธฐํƒ€ ๋งŽ์€ ๊ฒƒ๋“ค์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Java ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

๊ฐ์ฒด

์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋Œ€์ƒ
โ€ข
๋กœ๋ด‡, ์ž๋™์ฐจ, ๋™๋ฌผ, ํ•™์ƒ, ์„ ์ƒ๋‹˜, ๊ณผ๋ชฉ ๋“ฑ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (OOP)

ํ˜„์‹ค ์„ธ๊ณ„์˜ ๊ฐ์ฒด(Object)๋ฅผ ๋ชจ๋ธ๋งํ•˜๊ณ , ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค๊ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„

ํŠน์ง•

ํŠน์ง•
์„ค๋ช…
์บก์Аํ™” (Encapsulation)
๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ์–ด ์บก์Аํ™”. ์ •๋ณด ์€๋‹‰์„ ํ†ตํ•ด ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๊ตฌํ˜„์„ ์™ธ๋ถ€์— ๊ฐ์ถ”๊ณ  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ์„ ๊ณต๊ฐœํ•˜์—ฌ ๋ชจ๋“ˆ์„ฑ์„ ๋†’์ž„.
์ƒ์† (Inheritance)
์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํด๋ž˜์Šค์˜ ํŠน์„ฑ๊ณผ ๋™์ž‘์„ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๊ฐ€ ์ƒ์†๋ฐ›์•„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•จ.
๋‹คํ˜•์„ฑ (Polymorphism)
๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋‚˜ ์—ฐ์‚ฐ์ž๊ฐ€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ํƒ€์ž…์— ๋Œ€ํ•ด ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘. ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์„ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋ฉฐ, ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ด.
์ถ”์ƒํ™” (Abstraction)
๋ณต์žกํ•œ ์‹œ์Šคํ…œ์—์„œ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์—๋งŒ ์ดˆ์ ์„ ๋งž์ถ”๊ณ  ๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ˆจ๊ธฐ๋Š” ๊ฒƒ. ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ถ”์ƒํ™”๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ๊ด€๋ฆฌ ์šฉ์ด์„ฑ์„ ํ–ฅ์ƒ.
ํด๋ž˜์Šค์™€ ๊ฐ์ฒด
ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ์œผ๋กœ, ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค. ํด๋ž˜์Šค๋Š” ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๋ฉฐ, ๊ฐ์ฒด๋Š” ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋™์ž‘.
๋ฉ”์‹œ์ง€ ํŒจ์‹ฑ
๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์€ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง. ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ํ˜‘๋ ฅ.
๋™์  ๋ฐ”์ธ๋”ฉ
์‹คํ–‰ ์‹œ๊ฐ„์— ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์–ด๋–ค ๊ฒƒ์„ ํ˜ธ์ถœํ• ์ง€๋ฅผ ๊ฒฐ์ •. ๋‹คํ˜•์„ฑ๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ, ์‹คํ–‰ ์ค‘์— ๊ฐ์ฒด์˜ ํƒ€์ž…์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋จ.

์ข…๋ฅ˜

1.
Java: ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ•์กฐํ•˜๋Š” ์–ธ์–ด๋กœ, ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์ธ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Java๋Š” ๋Œ€๊ทœ๋ชจ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
2.
C++: C ์–ธ์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ์ €์ˆ˜์ค€ ๋ฐ ๊ณ ์ˆ˜์ค€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๊ฐœ๋ฐœ, ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
3.
C#: Microsoft์—์„œ ๊ฐœ๋ฐœํ•œ ์–ธ์–ด๋กœ, ์ฃผ๋กœ Windows ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ๋งŽ์ด ํ™œ์šฉ๋˜๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
4.
Python: ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๋Š” ๋‹ค๋ชฉ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๋งŽ์€ ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
5.
Ruby: ๋™์  ํƒ€์ดํ•‘์„ ์ง€์›ํ•˜๋ฉฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ•์กฐํ•˜๋Š” ์–ธ์–ด๋กœ, ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Ruby on Rails์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
6.
Swift: Apple์ด iOS ๋ฐ macOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์–ธ์–ด๋กœ, ๊ฐ•๋ ฅํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.