BackEnd๐Ÿงต

2023.05.09 TIL - ๊ธฐ์ˆ  ๋ฉด์ ‘ ์ค€๋น„

hae02y 2023. 5. 9. 12:22
๋ฐ˜์‘ํ˜•

๐Ÿ“ข ๋ฌธ์ œ

[Q1. ์ž๋ฐ” ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ค‘ ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q2. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q3. ์ƒ์„ฑ์ž์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q4. ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ๊ณผ ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?]
[Q5. ์ž๋ฐ”์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q6. static ํ‚ค์›Œ๋“œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ , static๋ฅผ ์–ธ์ œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q7. ์ž๋ฐ” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q8. ์ž๋ฐ” ์ ‘๊ทผ ์ œ์–ด์ž์˜ ํŠน์ง•๊ณผ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q9. ์ถ”์ƒ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?]
[Q10. ์ด๋„ˆํด๋ž˜์Šค์˜ ์žฅ์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q11. OOP์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q12. List, Set, Map์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š” .]
[Q13. ์ปฌ๋ ‰์…˜๊ณผ ์ŠคํŠธ๋ฆผ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]
[Q14. ์ œ๋„ค๋ฆญ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜๊ณ , ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์—์„œ ์™œ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜๋Š” ์ง€ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]

 

 

Choose

[Q2. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.] 

ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•œ ์„ค๊ณ„๋„ ๋˜๋Š” ํ‹€์ด๋ผ๊ณ  ์ •์˜ํ• ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๊ณ  ๋ฐ˜๋Œ€๋กœ ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค์— ์ •์˜๋˜๊ณ  ์„ค๊ณ„๋œ ๋‚ด์šฉ๊ทธ๋Œ€๋กœ ์ƒ์„ฑ์ด ๋ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” ๋ถ•์–ด๋นต ํ‹€๋กœ ๋ณผ์ˆ˜์žˆ๊ณ  ๊ทธ๋กœ์ธํ•ด์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐ์ฒด๋“ค์„ ๋ถ•์–ด๋นต์œผ๋กœ ๋ณผ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ•์–ด๋นต์ด๋ผ๋Š” ๊ฒƒ์€ ๊ฐ™์ง€๋งŒ ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์†์€ ๋‹ค๋ฅด๊ฒŒ ์ฑ„์šธ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ธ์Šคํ„ด์Šค์˜ ์ƒ์„ฑ์„ ํ†ตํ•ด ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ค„์ผ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

 

[Q4. ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋”ฉ๊ณผ ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?]

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

 overloading์˜ ์‚ฌ์ „์ ์ธ ์˜๋ฏธ๋Š” ๊ณผ์ ํ•˜๋‹ค๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์‚ฌ์ „์˜๋ฏธ ๊ทธ๋Œ€๋กœ ๋ฉ”์„œ๋“œ์˜ค๋ฒ„๋กœ๋”ฉ์€ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์•ˆ์— ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ •์˜ ํ•˜๋Š”๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ์˜ค๋ฒ„๋กœ๋”ฉ์ด ์„ฑ๋ฆฝ๋˜๋ ค๋ฉด ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ช…์„ ์จ์•ผํ•˜๊ณ  ๋งค์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜ ๋˜๋Š” ํƒ€์ž…์„ ๋‹ค๋ฅด๊ฒŒ ์ •์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐ˜ํ™˜ํƒ€์ž…์€ ์˜ค๋ฒ„๋กœ๋”ฉ์— ์˜ํ–ฅ์„ ์ฃผ์ง€์•Š์Šต๋‹ˆ๋‹ค. ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํ•ด๊ฒฐํ• ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

 

[Q8. ์ž๋ฐ” ์ ‘๊ทผ ์ œ์–ด์ž์˜ ํŠน์ง•๊ณผ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.]

์ž๋ฐ”์˜ ์ ‘๊ทผ์ œ์–ด์ž๋Š” ํด๋ž˜์Šค, ํ•„๋“œ, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž ๋“ฑ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ ‘๊ทผ์ œ์–ด์ž๋Š” ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์บก์Šํ™” ๊ตฌํ˜„์˜ ํ•ต์‹ฌ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ๋…ธ์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๋ฐ์ดํ„ฐ์˜ ์ž„์˜๋ณ€๊ฒฝ์„ ๋ง‰์Šต๋‹ˆ๋‹ค. ์ ‘๊ทผ์ œ์–ด๊ฐ€์˜ ์ข…๋ฅ˜๋Š” public, protected, default, private๊ฐ€ ์žˆ๋Š”๋ฐ public์€ ์ ‘๊ทผ์ œํ•œ์ด ์—†๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  protected๋Š” ๋™์ผ ํŒจํ‚ค์ง€, ๋‹ค๋ฅธํŒจํ‚ค์ง€์˜ ํ•˜์œ„ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Default๋Š” ์ ‘๊ทผ์ œ์–ด์ž๋ฅผ ์ž…๋ ฅํ•˜์ง€์•Š์„๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์„ค์ •๋˜๋Š” ์ ‘๊ทผ์ œ์–ด์ž๋กœ, ๊ฐ™์€ ํŒจํ‚ค์ง€์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง๋ง‰์œผ๋กœ private ์ ‘๊ทผ์ œ์–ด์ž๋Š” ๊ฐ™์€ ํด๋ž˜์Šค๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐ›์€ ์งˆ๋ฌธ

1. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

2. public, protected, default, private๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜์„ธ์š”

๋ฐ˜์‘ํ˜•