์ด๋ค ์ค๊ณ๊ฐ ์ข์ ๊ฐ์ฒด์งํฅ์ด๋ผ๊ณ ํ ์ ์์๊น์?
๊ฐ์ฒด์งํฅ์ค๊ณ์์ ๊ฐ์ฅ ์ค์ํ ๊ฒ
๊ฐ์ฒด์งํฅ์ ์ ๋ง์ ๊ณ ๋ฏผ์ ํ๋ค๊ฐ ์๊ฒ ๋ ์ฌ์ค์ ๋ฐ์ดํฐ ์ค์ฌ์ฌ๊ณ + ํ๋ ์ค์ฌ ์ฌ๊ณ ๋ฅผ ์ ์ ํ๊ฒ ์กฐํฉํ๋ ๊ฒ์ด๋ค.
๊ทธ๋ผ ์ด ๋๊ฐ์ง๊ฐ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์์ ๋ฅผ ํตํด ํ์ธํด๋ณผ๊น์?
๋ฐ์ดํฐ ์ค์ฌ์ฌ๊ณ
class Car {
private Frame frame;
private Engine engine;
private List<Wheel> wheels;
private Direction direction;
private Speed speed;
}
๊ฐ์ฅ ๋ง์ ๋ณด์ จ์ ํจํด์ด์ฃ ? ์๋ง ๋๋ถ๋ถ class ๊ฐ๋ ์ ์ฒ์ ๋ฐฐ์ธ ๋ ์ค์ต์ ํ๋ฉด์ ๋ง๋ค๊ฒ ๋๋ ์ฝ๋๋ ์ด๋ฐ ๋ชจ์์ผ ๊ฒ๋๋ค!! ๋ถ๋ถ ๋ถ๋ถ ํ์ํ ๋ถํ์ ๋ฐ๋ผ ๋๋ฉ์ธ์ ๋ถ๋ฆฌํด๋์ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
ํ๋ ์ค์ฌ์ฌ๊ณ
class Car {
public void drive(){}
public void accelerate(){}
public void decelerate(){}
public void changeDirection(){]
}
์๊น๋ณด๋ค ๋ญ๊ฐ ํ๋ํ๋ ๋ชจ์ต๋ค์ ํํํ๊ณ ์์ฃ ? ๋จ์ํ ๊ฐ๊ฐ Layer ๋ณ๋ก ์ญํ ์ ๋๋์๋ mvcํจํด๊ณผ๋ ๋ฌ๋ฆฌ Domain์ด ํด๋์ ๊ฐ๊ณ ๋ค๋ฅธ ๊ฐ์ฒด์ ์์ง์ผ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก ํ๋ ์ค์ฌ์ฌ๊ณ ์ ๋๋ค!!!
๊ทธ๋ฐ๋ฐ, ์ด๋ ๊ฒ ๋๋ฉด ๋ญ๊ฐ ์ข์๊น์?
๋ฐ์ดํฐ ์ค์ฌ ์ฌ๊ณ ๋ ์ด๋ฏธ ๋๋ถ๋ถ์ ํ๊ฒฝ์์ ๋ง์ด ์ฌ์ฉํ๊ณ ์๋๋ฐ ํ๋ ์ค์ฌ์ ์ธ ์ฌ๊ณ ๊ฐ ์คํ๋ ค ๋ถํธํ ๊ฒ์ด ์๋๊ฐ์?
์๋ง ์ด๋ฐ ์๋ฌธ์ ๊ฐ๊ฒ๋์ค ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ด ๋, ๊ธฐ์กด์ Service์ฝ๋๋ฅผ ๋ ์ฌ๋ ค๋ณด์ธ์!
๋๋ถ๋ถ ์ ๋ง์ ๋น์ฆ๋์ค ๋ก์ง๋ค์ด ์๊ณ ๋์ repository๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์์ฒญ ๋ณต์กํ๊ฒ ๋์ด์์ ๊ฒ๋๋ค. (์ ๊ฐ ๊ฒฝํํ ๋ชจ๋ ์ค๋ฌด ํ๋ก์ ํธ๊ฐ service๋จ์ด ๊ต์ฅํ ๋ณต์กํ ํํ์์ต๋๋ค..^^..)
์ด๋ฐ ๋ณต์กํ ๋น์ฆ๋์ค ๋์ , ๋๋ฉ์ธ ์์ฒด์์ ํ๋์ ๊ฐ๊ณ ์๋ค๋ฉด ํด๋น ๋๋ฉ์ธ์ ์ฑ ์์ ์์ํ ์ ์์ต๋๋ค. ์ฆ, service ์ฝ๋๊ธธ์ด๊ฐ ์ค์ด๋ ๋ค๋ ๋ง์ ๋๋ค :) ์์ฆ, ํด๋ฆฐ์ฝ๋ TDD DDD ๋ฑ ๋ค์ํ ๊ฐ๋ฐ ํธ๋๋๋ฅผ ์ ํ๊ณ ์๋๋ฐ ์ด ๋ํ ํธ๋๋ ์ค ํ๋๊ฐ ์๋๊นํฉ๋๋ค.
๋จ, ๋ชจ๋ ํธ๋๋๋ฅผ ๊ทธ๋ฅ ๋ฐ๋ผ๊ฐ๋ ๊ฒ์ ๋น์ถ์ ๋๋ค. ํธ๋๋๋ฅผ ๋ถ์ํ๊ณ ๋์๊ฒ ์ ํฉํ ๊ฒ์ธ์ง, ์ ํฉํ์ง ์๋ค๋ฉด ์ ๊ทธ๋ฐ์ง ๋ถ์ํ๋ ๋ฅ๋ ฅ์ ํค์ฐ๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ๋ฐ์๋ ์ ๋ต์ด ์๋ค๊ณ ํฉ๋๋ค. ๋ ๋์ ๊ฒ๋ง ์์ ๋ฟใ ใ
์ฐ๋ฆฌ ๋ชจ๋ ์ต์ ํํ๋ ๊ทธ ๋ ๊น์ง,
๊ทธ์ ๋์๊ฐ๊ธฐ๋ง ํ๋ ์ฐ๋ ๊ธฐ๊ฐ ์๋๋ผ ์ ๋ง ๊ฐ์ฒด ์งํฅ์ ์ผ๋ก product๋ฅผ ๋ง๋ค์ด์!!
'๋ฐ์ผ๋ฆฌ ์ก(Job) ์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ข์ ์ฌ์, ์ฃผ๋์ด๋ ์ข์ ๋ต๋ณ์ ๋๋ ๋ฐฉ๋ฒ (1) | 2023.10.24 |
---|---|
์ฑ์ฅํ ๊ฐ๋ฐ์๊ฐ ํผํด์ผ ํ๋ ์ค์ (0) | 2023.10.20 |
์ทจ์ ๋ฉํ ๋ง ์ฝ์ํธ, ๋ ์์ ์ ์๋ผ!! (0) | 2023.10.14 |
[์ต๊ดํธ๋ํน] ํ์ต๋ฒ ์ต๊ด๋ง๋ค๊ธฐ, ์ฌ๋ํ๋ ๊ฒ์ฒ๋ผ (0) | 2023.10.13 |
์ฝ๋ฉํ ์คํธ, ์ธ์ด๋ ๋ญ์จ์ผํ ๊น? ์๋ฐ? ํ์ด์ฌ? C++? (1) | 2023.10.11 |