๐ ๊ฐ์ฒด์งํฅ์์์ ๋ฌผ๋ฆฌ ๊ฐ์ฒด์ ๊ฐ๋ ๊ฐ์ฒด
- ๋ฌผ๋ฆฌ๊ฐ์ฒด
์ค์ ๋ก ์กด์ฌํ๋ ์ฌ๋ฌผ์ ํด๋์ค๋ก ์ ์ํ ๊ฐ์ฒด๋ฅผ ๋ปํ๋ค.
ex) ์๋์ฐจ ๋ ํ ์์คํ : ์๋์ฐจ, ๊ณ ๊ฐ, ์ง์, ์ฌ์ ์ฅ ์ ๋น์ ๋ฑ
ex) ๊ธ์ฌ ๊ด๋ฆฌ ์์คํ : ์ง์, ์๊ธํต์ฅ ๋ฑ
- ๊ฐ๋
๊ฐ์ฒด
์น ์์คํ ์์์ Service์ ํด๋น๋๋ฉฐ, ์ด๋ Business logic์ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ ์๋ฏธํ๋ค.
Business logic ์์๋ ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ์๋ก ์ํธ์์ฉ ํ๋๋ก ํ๊ฒํ๋ฉฐ, ๊ฐ์ฒด๊ฐ ์ ๊ณตํ๋ ์คํผ๋ ์ด์ method๋ฅผ ํตํ์ฌ ๊ฐ์ฒด์ ์์ฑ์ ๋ณ๊ฒฝ์ํจ๋ค.
ex) ์ฌ์ฉ์ ๊ด๋ฆฌ ์์คํ : ์ฌ์ฉ์ ๊ฐ์ฒด์ ๋ง์ง๋ง ์ ์์ผ์๋ฅผ ์ด์ฉํ์ฌ ๊ณ์ ๋ง๋ฃ, ๋น๋ฐ๋ฒํธ ์ด๊ธฐํ, ์ฌ๋ฑ๋ก ์ฒ๋ฆฌ ๋ฑ๋ฑ
๐ข ๊ฐ์ฒด ์งํฅ์์ ๋๋ถ๋ถ์ ์ฝ๋ฉ์ ๊ฐ ๊ฐ์ฒด์ ๊ธฐ๋ฅ์ ์ ์ํ๊ณ ์ด๋ฅผ business logic์ ์ด์ฉํด ๋ค๋ฃฌ๋ค. service(business logic)์์ ๊ฐ์ฒด์ method๋ฅผ ํ์ฉํ์ฌ, ์ฌ๋ฌ๊ฐ์ง ์กฐ๊ฑด์ ํ์ธํ๊ณ ๊ฐ์ฒด์ ์์ฑ์ ๋ณ๊ฒฝํ๋ ์์ ์ด ์ฃผ๋ business logic์ ์ฝ๋ฉ์ด๋ค. ์ด๋ฌํ ์์ ์ ํ๊ธฐ ์ํด์๋ ๊ฐ ๊ฐ์ฒด์ ์์ฑ(Variable) ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ํ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ์คํผ๋ ์ด์ (Method)์ ์ ์ ์ํด์ผํ๋ค.
๐ ์์ง๋์ ๊ฒฐํฉ๋
์ข์ ์ํํธ์จ์ด ์ค๊ณ๋ฅผ ์ํด์๋ ๊ฒฐํฉ๋(coupling)๋ ๋ฎ์ถ๊ณ ์์ง๋(cohesion)๋ ๋์ฌ์ผํ๋ค.
๊ฒฐํฉ๋
- ๋ชจ๋๊ณผ ๋ชจ๋๊ฐ์ ์ํธ ์์กด๋!
- ๋ชจ๋ (ํด๋์ค)๊ฐ์ ์ํธ ์์กด ์ ๋๋ฅผ ๋ํ๋ด๋ ์งํ๋ก์จ ๊ฒฐํฉ๋๊ฐ '๋ฎ์ผ๋ฉด' ๋ชจ๋ ๊ฐ์ ์ํธ ์์กด์ฑ์ด ์ค์ด๋ค์ด์ ๊ฐ์ฒด์ ์ฌ์ฌ์ฉ ๋ฐ ์ ์ง๋ณด์๊ฐ ์ ๋ฆฌํ๋ค.
์๋ ์๋์ฐจ์ธ ๋ฒ๋ธ๋น๋ ์ ๋น์ด ๋ํ๋๋ฉด ์๋ฆฌ์กฐ๋ฆฌ ๋ชธ์ ์กฐํฉํด "I'M BUMBLEBEE" ๊ฐ ๋๋ค. ๋ฒ๋ธ๋น์ ๋ชธ์ฒด๋ ์ํธ์์กด๋ ์ฆ, ๊ฒฐํฉ๋๊ฐ ๋์ ์ด๋ ํ ๋ถ์๊ฐ ๋ค์น๋ฉด ์ ์ฒด์ ์ธ ์๋์ง์ ์ํฅ์ ๋ฏธ์น๊ฒ ๋๋ค. ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์๊ฐ ๋ถ๋ฆฌํ๋ค.
์์ง๋
- ํ๋์ ๋ชจ๋ ๋ด๋ถ์ ์กด์ฌํ๋ ๊ตฌ์ฑ์์๋ค์ ๊ธฐ๋ฅ์ ๊ด๋ จ์ฑ์ผ๋ก ์์ง๋๊ฐ ๋์ ๋ชจ๋์ ํ๋์ ์ฑ ์์ ์ง์คํ๊ณ ๋ ๋ฆฝ์ฑ์ด ๋์์ ธ, ์ฌ์ฌ์ฉ ๋ฐ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋ค.
- ํ๋ก๊ทธ๋จ์ ํ ์์(์ํ ์ฐ๋ถ์ธ๊ณผ ํ๋ช ํ๋ช ์ ์บ๋ฆญํฐ)๊ฐ ํด๋นํ๋ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํด ์ผ๋ง๋งํผ์ ์ฐ๊ด๋ ์ฑ ์์ด ๋ญ์ณ์๋์ง๋ฅผ ๋ํ๋ด๋ ์ ๋. ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋จ์ ํ ์์๊ฐ ๋ชฉ์ ์ ์ด๋ฃจ๊ธฐ ์ํด ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋ ๊ธฐ๋ฅ๋ค์ด ๋ชจ์ฌ์ ๊ตฌํ๋์ด ์๊ณ , ์ง๋์น๊ฒ ๋ง์ ์ผ์ ํ์ง ์์ผ๋ฉด ๊ทธ๊ฒ์ "์์ง๋๊ฐ ๋๋ค"๋ผ๊ณ ๋งํ๋ค.
์ํ์ฐ๋ถ์ธ๊ณผ์์ ๊ฐ ์บ๋ฆญํฐ๋ค์ ์์ ์ ์บ๋ฆญํฐ๋ฅผ ํํํ๊ธฐ ์ํด์ ์ง์คํ๊ณ ์ํผ์๋๋ง๋ค ๋น ์ก๋ค ๋ค์ด๊ฐ๋คํ๋ฉฐ ๋ ๋ฆฝ์ ์ธ ์ฑ๊ฒฉ์ ๋๋ค. ๋ค๋ฅธ ์ํผ์๋์์์ ์ฌ์ฌ์ฉ ๋ฐ ์บ๋ฆญํฐ์ ๊ฐ๊ณผ์ฒ์ ๋ฑ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋ฉฐ, ๊ฐ๊ฐ์ ๋ ์ ์ฒด์ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ ํ๊ฒ'๋ง' ์ฐ๊ด๋์ด์๋ค. (์๋ธ ์บ๋ฆญํฐ ํ๋ช ์ด ๋น ์ ธ๋ ํฐ ์ํฅ์ด ์๋ค)
'์ด๋ก > Study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐธ์กฐ์๋ฃํ reference data type (0) | 2021.07.19 |
---|---|
์์ฑ์ Constructor (0) | 2021.07.19 |
๊ฐ์ฒด ์งํฅ ์ธ์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ํน์ง OOP Memory (0) | 2021.07.15 |
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ Object-Oriented Programming(OOP)์ด๋ (0) | 2021.07.15 |
[JAVA] ๊ฐ์ฒด์งํฅ 5๋์์น / POJO JAVA (0) | 2021.06.03 |