ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ฆฅ ๊ฐ์ฒด์งํฅ ์ธ์ด
์ค์ ๋ฐ์ดํฐ๋ฅผ ํด๋์ค๋ก ์ถ์ํํ์ฌ ํด๋์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ์๋๋ฅผ ํตํด ํด๋์ค๊ฐ ๋ฉ์ธ์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ฅ์ ์์ฑ์ํค๋ ๊ฒ.
๐ฟ ๊ฐ์ฒด์งํฅ์ธ์ด์ ํน์ง
- ์ถ์ํ : ๊ฐ์ฒด์ ๊ณตํต๋ ์์ฑ๊ณผ ํ์๋ค์ ์ถ์ถํ๋ ๊ฒ
- ๋คํ์ฑ : ์ด๋ฆ์ ๊ฐ์ง๋ง ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋์ํ๋ ๊ฒ. ์ค๋ฒ๋ก๋ฉ๊ณผ ์ค๋ฒ๋ผ์ด๋ฉ์ด ๋คํ์ฑ์ ํด๋น๋๋ค.
- ์บก์ํ : ๊ฐ์ฒด๊ฐ ๊ฐ์ง๊ณ ์๋ ์์ฑ๊ณผ ํ์๋ฅผ ์ธ๋ถ์ ๋ ธ์ถ๋์ง ์๋๋ก ๊ตฌ์ฑํ๋ ๊ฒ
- ์์ : ์์ ํด๋์ค๊ฐ ๋ถ๋ชจ ํด๋์ค์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๋ฌผ๋ ค๋ฐ๋ ๊ฒ
๐ฟ ๊ฐ์ฒด์งํฅ์ธ์ด์ ์ฅ์ ๊ณผ ๋จ์
- ์ฅ์ : ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ผ๋ก ํ์ฅ๊ณผ ์ ์ง๋ณด์๊ฐ ์ฝ๋ค
- ๋จ์ : ์๋๊ฐ ๋๋ฆผ
๐ฟ ๊ฐ์ฒด์งํฅ์ธ์ด์ ๊ธฐ๋ณธ ์์น
๐ก ๋จ์ผ์ฑ ์์์น (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๋ฅผ ์ฌ์ฉ
'๋ฉด์ ์ง๋ฌธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Day04] ํด๋ผ์ฐ๋ (0) | 2022.12.16 |
---|---|
[Day03] Web (0) | 2022.12.15 |
[Day02] ๋์์ธ ํจํด (0) | 2022.12.14 |
[Day01] ๋คํธ์ํฌ์ ์ด์์ฒด์ (0) | 2022.12.13 |
[DB] ๋ฉด์ ์คํฐ๋ (1) (0) | 2022.02.28 |
- Total
- Today
- Yesterday
- JPA
- level0
- TCP
- SpringSecurity
- Travis CI
- nginx
- ํ์ผ์ ๋ก๋์ค์
- graphql
- ํ๋ก๊ทธ๋๋จธ์ค
- ํธ๋์ญ์
- ๊ธฐ์ ๋ฉด์
- OS
- Oracle
- ddl-auto
- SpringGraphQL
- AWS
- EC2
- db
- Java
- ci/cd
- spring
- Til
- ์ด์์ฒด์
- ๋ค์ด๋ฒํด๋ผ์ฐ๋
- N+1
- ORA-27125
- ์ธ๋ฑ์ค
- ๋๋ค์
- CodeDeploy
- ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์ฑ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |