Collection์ Wrapping ํ๋ฉด์ ๊ทธ ์ธ์ ๋ค๋ฅธ ๋ฉค๋ฒ ๋ณ์๊ฐ ์๋ ์ํ. ๋งด๋ฒ ๋ณ์๊ฐ Collection์ ์์/๊ตฌํ์ฒด๋ผ๋ฉด ์ด๋ค ์ข ๋ฅ๋ ์๊ด์๋ค.
1. ์ฅ์
์ผ๊ธ ์ปฌ๋ ์ ์ ์ฌ์ฉํ๋ฉด ๋ถ๋ณ๊ฐ์ฒด, ์์ง์ฑ ์๋ ๊ฐ์ฒด์ ์ฅ์ ๋ค์ ๋ชจ๋ ์ทจํ ์ ์์ต๋๋ค. ๊ฐ์ ์์ ํ ์ ์์ผ๋ฉฐ ํด๋น ๊ฐ์ฒด๊ฐ ์์ ๊ณผ ์ฐ๊ด๋ ๋ก์ง์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์๋ํด ํ๋์ฉ ์ดํด๋ณด๊ฒ ์ต๋๋ค. *๊ฐ๋ณ ๊ฐ์ฒด์ ์ํ์ฑ์ ๋ํด์๋ ์๋ ๊ธ์ ์ฐธ์กฐ ํ์๋ฉด ๋ฉ๋๋ค.
1-1. ๋ถ๋ณ(Immutable)
์์ฑ์๋ก ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ ์ธ์๋ ์ฌํ ๋น ๋๋ ์์ ํ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ณ์ฑ์ด ๋ณด์ฅ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ๊ฒ์ฆํ๊ธฐ ์ํ ๋ถํ์ํ ๊ฒ์ฆ ๋น์ฉ์ ์ค์ผ ์ ์์ผ๋ฉฐ ์ปฌ๋ ์ ์ ๋ง์๊ป ๊ณต์ ํด ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ถ๋ณํ๋ ๊ฐ์ ์ฅ์
๋ฒ๊ทธ์ ์์ธ์ ๋ค์ํ์ง๋ง ์ํ์ ๋ณํ๊ฐ ๊ทธ ์ค ํ๋๋ค. ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๋ฉ์๋์ ์ธ์๋ก ๋๊ธฐ๋ ์์ ๋ ๋ชจ๋ฅด๋ ์ฌ์ด์ ์ํ๊ฐ ์์ ๋์ด ์๋ํ์ง ์์ ๋์์ ๋ณด์ด๊ฑฐ๋ ๋ฒ๊ทธ๋ฅผ ์ผ์ผ์ผฐ๋ค๋ ์ด์ผ๊ธฐ๋ ์์ฃผ ๋ค์์ ๊ฒ์ด๋ค. ์ํ ๋ณํ๊ฐ ์์ธ์ธ ๋ฒ๊ทธ๋ฅผ ๋ฐฉ์งํ๋ ๊ฐ์ฅ ๋จ์ํ ๋ฐฉ๋ฒ์ ์ํ๊ฐ ๋ณํํ์ง ์๊ฒ ํ๋ ๊ฒ์ด๋ค. ๋ชจ๋ฅด๋ ์ฌ์ด์ ์ํ๊ฐ ๋ฐ๋๋ ๊ฒ์ด ๋ฌธ์ ๋ผ๋ฉด ์ฒ์๋ถํฐ ์ํ๊ฐ ๋ณํํ์ง ์๊ฒ ํ๋ฉด ๋๋ค. ๋จ์ํ์ง๋ง ๊ฐ๋ ฅํ ๋ฐฉ์ด์ฑ ์ด๋ค. ์ํ๊ฐ ๋ณํํ์ง ์๊ฒ ํ๋ ๊ฒ์ ํ๋ก๊ทธ๋จ์ ๋จ์ํ๊ฒ ๋ง๋ค ๊ฐ๋ฅ์ฑ์ด ์๋ ์ ์ฝ์ด๋ค. ์๋ฅผ๋ค์ด ๋ณ๋ ฌ ํน์ ๋ณํ ์ฒ๋ฆฌ๊ฐ ์ผ์ด๋๋ ํ๋ก๊ทธ๋จ์์๋ ์ํ๊ฐ ๋ณํํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ๋ค๋ค์ผ ํ ์ง๊ฐ ๊ณผ์ ๊ฐ ๋๋ค. ๊ฐ์ฒด์ ์ํ๊ฐ ๋ณํํ์ง ์๋๋ค๋ฉด ๊ฐ์ด ๋ณํ๋ ์ํฉ์ ๊ณ ๋ คํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ณ๋ ฌ ๋ฐ ๋ณํ์ฒ๋ฆฌ๋ฅผ ๋น๊ต์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค. ๊ทธ ์ธ ์ปดํจํฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋๋ ๊ฐ์ฒด๋ฅผ ์บ์ฑํ๋ ์ ๋ต์ ์ทจํ ์ ์๋ค. ๊ฐ์ฒด์ ์ํ๊ฐ ๋ณํํ์ง ์๋๋ค๋ฉด ์์ ํ ๊ฐ์ ์ํ๋ฅผ ๊ฐ๋ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ์ค๋นํ ํ์ ์์ด ํ๋์ ๊ฐ์ฒด๋ฅผ ์บ์๋ก ๋๋ ค ์ธ ์ ์์ด ๋ฆฌ์์ค๋ฅผ ์ ์ฝํ ์ ์๋ค.
๋ฌผ๋ก ์ํ๊ฐ ๋ณํ์ง ์๋ ๊ฐ์ฒด์ ๋จ์ ๋ ์กด์ฌํ๋ค. ๊ทธ ์ค ๋ํ์ ์ผ๋ก ๊ฐ์ฒด์ ์ผ๋ถ ๊ฐ๋ง ๋ฐ๊พธ๊ณ ์ถ์ ๋ ๊ฐ์ฒด๋ฅผ ์์ ์๋ก ์์ฑํด์ผ ํ๋ค๋ ์ ์ด๋ค. ์ด ์ ์ ์ํ๊ฐ ๋ณํ ์ ์๋ ๊ฐ์ฒด์ ๋นํด ์ฑ๋ฅ ๋ฉด์์ ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์ฃผ ์ฌ๊ฐํ ์ํฉ์ด ์๋๊ณ ์๋ ๊ฐ ๊ฐ์ฒด๋ผ๋ ์ํ๋ฅผ ๋ฐ๊ฟ ์ ์๊ฒ ํ๋ ์ ๋ต์ ์ทจํ๊ธฐ๋ ํ๋ค. ํ์ง๋ง ๊ฐ๋ณ ๊ฐ์ฒด๋ฅผ ๋ถ๋ณ ๊ฐ์ฒด๋ก ๋ฐ๊พธ๋ ๊ฒ๋ณด๋ค ๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ณ ๊ฐ์ฒด๋ก ๋ง๋๋ ๊ฒ์ด ๋ ธ๋ ฅ์ด ์ ๊ฒ ๋ค๊ธฐ ๋๋ฌธ์ ๊ฐ๋ณ ๊ฐ์ฒด์ ๋ถ๋ณ ๊ฐ์ฒด ์ค ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ๊ฐ ์ด๋ ค์ธ ๋๋ ์ผ๋จ ๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด ๋ซ๋ค.
* ๋๋ฉ์ธ์ฃผ๋์ค๊ณ ์ฒ ์ ์ ๋ฌธ.
1-2. ์์ง์ฑ ์๋ ๊ฐ์ฒด
์ํ์ ํ์๋ฅผ ํ ๊ณณ์์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ฆ, ์ปฌ๋ ์ ๊ณผ ๊ด๋ จ๋ ์ฝ๋๊ฐ ๋ด๋ถ์์ ์๊ธฐ ๋๋ฌธ์ ์๋น์ค ๊ณ์ธต์ด๋ ๋ค๋ฅธ ๊ณณ์ ํฉ์ด์ง ์ค๋ณต ์ฝ๋๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ๋ํ ์์ ์ ๋ํ ๊ฒ์ฆ ๋ก์ง์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ๊ฒ์ฆ์ ๊ฑฐ์น์ง ์์๋ ๋๋ฉฐ ์ด๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์ ๋ขฐํ๊ณ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
๊ฐ/์ผ์ด์ค์ ๋ํ ๊ฒ์ฆ์ ๋ค๋ฅธ ๋ ์ด์ด์์ ํ๊ฒ ๋๋ฉด ์๋ก์ด ์กฐ๊ฑด์ด ์ถ๊ฐ๋๊ฑฐ๋ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์ํ์ ๋ ์ ์ฐํ๊ฒ ๋์ฒํ ์ ์์ต๋๋ค. ์๋ก์ด ์กฐ๊ฑด์ด ์ถ๊ฐ๋๋ฉด ๋ถ๊ธฐ๋ฌธ์ ๋๋ ค์ผ ํ๊ณ ์ด์ ์ฐ๊ด๋ ๋ชจ๋ ๋ถ๋ถ์ ์์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
2. ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
์ด๋ฅผ ์ฌ์ฉํ ๋ ๋๋ฏธํฐ์ ๋ฒ์น์ ์กฐ์ฌํด์ผ ํฉ๋๋ค. ์ผ๊ธ ์ปฌ๋ ์ ์ ์กฐํํ๊ฒ ๋๋ฉด
2. JPA์ ์ผ๊ธ ์ปฌ๋ ์
'๐ฅDEV > Java || Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
@Embedded์ ๊ธฐ๋ณธ ์์ฑ์ (0) | 2022.07.14 |
---|---|
๋ธ๋ฆฟ์ง ํจํด (0) | 2022.07.10 |
์ฑ๊ธํค๊ณผ ๋ฌธ์ ์ (0) | 2022.07.10 |
TreeSet (0) | 2022.02.22 |
์์ํ๊ณผ String (0) | 2022.02.20 |
๋๊ธ