ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐Ÿฆฅ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด

์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ž˜์Šค๋กœ ์ถ”์ƒํ™”ํ•˜์—ฌ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํด๋ž˜์Šค๊ฐ„ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›์•„ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋Šฅ์„ ์™„์„ฑ์‹œํ‚ค๋Š” ๊ฒƒ.

๐ŸŒฟ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ํŠน์ง•

- ์ถ”์ƒํ™” : ๊ฐ์ฒด์˜ ๊ณตํ†ต๋œ ์†์„ฑ๊ณผ ํ–‰์œ„๋“ค์„ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ

- ๋‹คํ˜•์„ฑ : ์ด๋ฆ„์€ ๊ฐ™์ง€๋งŒ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ. ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ๋‹คํ˜•์„ฑ์— ํ•ด๋‹น๋œ๋‹ค. 

- ์บก์Šํ™” : ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ๊ณผ ํ–‰์œ„๋ฅผ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ

- ์ƒ์† : ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๋ฌผ๋ ค๋ฐ›๋Š” ๊ฒƒ

๐ŸŒฟ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ์žฅ์ ๊ณผ ๋‹จ์ 

- ์žฅ์  : ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์œผ๋กœ ํ™•์žฅ๊ณผ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค  

- ๋‹จ์  : ์†๋„๊ฐ€ ๋Š๋ฆผ

๐ŸŒฟ ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์˜ ๊ธฐ๋ณธ ์›์น™

๐Ÿ’ก ๋‹จ์ผ์ฑ…์ž„์›์น™ (Single Responsibility Principle) : ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ–๋Š”๋‹ค

๐Ÿ’ก ๊ฐœ๋ฐฉํ์‡„์›์น™ (Open/Closed Principle) : ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ์ง€๋งŒ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€์žˆ์–ด์•ผ ํ•œ๋‹ค

๐Ÿ’ก ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ (Liskov Substitution Principle) : ํ•˜์œ„ ํƒ€์ž… ๊ฐ์ฒด๋Š” ์ƒ์œ„ ํƒ€์ž… ๊ฐ์ฒด์—์„œ ๊ฐ€๋Šฅํ•œ ํ–‰์œ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผํ•œ๋‹ค. 

๐Ÿ’ก ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™ (Interface Segregation Principle) : ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ์—๋งŒ ์˜์กดํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ’ก ์˜์กด์„ฑ ์—ญ์ „์˜ ์›์น™ (Dependency Inversion Principle) : ์˜์กด ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ ๋ณ€ํ•˜๊ธฐ ์‰ฌ์šด ๊ฒƒ๋ณด๋‹ค ๋ณ€ํ™”ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์— ์˜์กดํ•˜์—ฌ๋ผ

 

๐Ÿฆฅ  Java 

- ๋Œ€ํ‘œ์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด

๐ŸŒฟ ์žฅ์ ๊ณผ ๋‹จ์ 

- ์žฅ์  : JVM ์œ„์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ . ๊ฐ€๋น„์ง€์ปฌ๋ ‰ํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ

- ๋‹จ์  : JVM ์œ„์—์„œ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰์†๋„๊ฐ€ ๋งค์šฐ ๋Š๋ฆฌ๋‹ค

๐ŸŒฟ ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ

- ์˜ค๋ฒ„๋กœ๋”ฉ : ํ•จ์ˆ˜ ์ด๋ฆ„์€ ๊ฐ™์ง€๋งŒ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜, ํƒ€์ž…์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉ์ด๋ผํ•˜๊ณ  ์ƒ์„ฑ์ž์—์„œ ์‚ฌ์šฉํ•œ๋‹ค

- ์˜ค๋ฒ„๋ผ์ด๋”ฉ : ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜, ํƒ€์ž…์ด ๊ฐ™์ง€๋งŒ ๊ตฌํ˜„์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์„ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค

๐ŸŒฟ ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค

- ์ถ”์ƒํด๋ž˜์Šค : abstract ํ‚ค์›Œ๋“œ๋กœ ์ •์˜๋œ ํด๋ž˜์Šค๋กœ ๋ฉค๋ฒ„๋ณ€์ˆ˜์™€ ์ถ”์ƒ ๋ฉ”์„œ๋“œ, ์ผ๋ฐ˜๋ฉ”์„œ๋“œ๋ฅผ ๋ชจ๋‘ ๋ฉค๋ฒ„๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค

- ์˜ค๋ฒ„๋ผ์ด๋”ฉ : ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๊ฒƒ

- ๊ณตํ†ต์  : new ์—ฐ์‚ฐ์ž๋กœ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ถˆ๊ฐ€๋Šฅ, ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜์—ฌ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ

- ์ฐจ์ด์  : ์ถ”์ƒํด๋ž˜์Šค๋Š” ๋‹ค์ค‘์ƒ์†์ด ๋ถˆ๊ฐ€๋Šฅ, ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ค์ค‘์ƒ์†์ด ๊ฐ€๋Šฅ

๐ŸŒฟ Wrapper ํด๋ž˜์Šค

- ๊ธฐ๋ณธ ํƒ€์ž…์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค

- Boxing : ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์„ Wrapper ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ

- UnBoxing : ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ

๐ŸŒฟ Synchronized

- ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ์ž์›์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ํ˜„์žฌ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์Šค๋ ˆ๋“œ์˜ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ๋ง‰๊ธฐ์œ„ํ•œ ํ‚ค์›Œ๋“œ

- ๋ฐ์ดํ„ฐ์˜ thread-safe ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ Synchronized ํ‚ค์›Œ๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์Šค๋ ˆ๋“œ๊ฐ„ ๋™๊ธฐํ™”๋ฅผ ์‹œ์ผœ thread-safe ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค

- synchronized ๋Š” ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

- synchoronized ์˜ˆ์ œ) StringBuffer

๐ŸŒฟ StringBuffer์™€ StringBuilder

- ๋‘๊ฐ€์ง€ ํด๋ž˜์Šค ๋ชจ๋‘ ์ž์ฃผ ๋ณ€ํ™”๋˜๋Š” ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค๋‹ค

- StringBuffer : ๋™๊ธฐํ™”๋ฅผ ์ง€์›ํ•˜์—ฌ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ „ํ•˜๋‹ค

- StringBuilder : ๋™๊ธฐํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์•ˆ์ „ํ•˜์ง€ ์•Š์ง€๋งŒ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค

๐ŸŒฟ new String() ๊ณผ "" ์ฐจ์ด

- new String() ์€ new ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— Heap ์˜์—ญ์— ์ €์žฅ

- ""๋Š” Heap ์•ˆ์— ์žˆ๋Š” String Constant Pool ์— ์ €์žฅ

๐ŸŒฟ ์ ‘๊ทผ ์ œํ•œ์ž

- ๋ณ€์ˆ˜ ๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ์ ‘๊ทผ ๋ฒ”์œ„๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค์›Œ๋“œ

- public : ์–ด๋””์„œ๋“  ์ ‘๊ทผ ๊ฐ€๋Šฅ

- protected : ๊ฐ™์€ ํŒจํ‚ค์ง€, ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ์ง€๋งŒ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ

- default : ๊ฐ™์€ ํŒจํ‚ค์ง€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

- private : ํ•ด๋‹น ํด๋ž˜์Šค์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

๐ŸŒฟ static ํ‚ค์›Œ๋“œ

- static ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜์–ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ

๐ŸŒฟ Collection ํ”„๋ ˆ์ž„์›Œํฌ

- ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

- ๋ฐฐ์—ด์€ ๊ณ ์ •ํฌ๊ธฐ ๋ฐ์ดํ„ฐ๋งŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Collection ์€ ๊ฐ€๋ณ€ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค

- ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” List, ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š” Set, key-value ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” Map, Stack, Queue ๋“ฑ์ด ์žˆ๋‹ค

๐ŸŒฟ equals()

- ๊ฐ์ฒด์™€ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€์ง€ ๋น„๊ตํ•  ๋•Œ ์‚ฌ์šฉ

- ๋ฌธ์ž์—ด ๊ฐ’์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•  ๋•Œ ์‚ฌ์šฉ

๐ŸŒฟ hashCode()

- hashcode๋Š” ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ •์ˆ˜ ๊ฐ’

- ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ํ•ด์‹œํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ •์ˆ˜ ๊ฐ’์œผ๋กœ ๋ฆฌํ„ด

- equals์™€ hashCode ๋ชจ๋‘ ๊ฐ์ฒด๊ฐ€ ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜์ง€๋งŒ hashcode ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์ˆ˜ ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ ๋“œ๋Š” ๋น„์šฉ์ด ๋” ๋‚ฎ๊ธฐ ๋•Œ๋ฌธ์— hashcode๋ฅผ ์‚ฌ์šฉ

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/07   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ