๋ชฉ๋กSpring (3)
EEALL@ONCE
1. ์ํฉ ํ ์ธ ์ ์ฑ ๋ง์์ ์ ์ ํ ์ฌ์ฅ๊ณผ ๋จธ๋ฆฌ๊ฐ ์ํ ๊ฐ๋ฐ์ ํ ์ํฉ์ vip์๊ฒ ๊ณ ์ ํ ์ธ or ํ์ ๋ฑ๊ธ์ ๋ฐ๋ผ ํ ์ธ ๋ฑ์ ๊ณ ๋ฏผ์ค์ด๋ค. 2. ์ฃผ๋ฌธ ๋๋ฉ์ธ ํ๋ ฅ,์ญํ ,์ฑ ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฃผ๋ฌธ์ ํ๋ฉด, ์๋น์ค๋ ํ์ ์กฐํ๋ฅผ ํ๊ณ ๊ทธ์ ๋ฐ๋ฅธ ํ ์ธ์ ์ ์ฉํ๊ณ ํ ์ธ ๊ฒฐ๊ณผ๋ฅผ ํฌํจํ ์ฃผ๋ฌธ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋๋ ค์ค๋ค. 3. ๊ณ ์ ํ ์ธ ์ฝ๋ ์ค๊ณ member ํจํค์ง๋ ํ์ ์ ๋ณด ๋ก์ง์ด / discount ํํค์ง์๋ ํ ์ธ ๋ก์ง์ด / order ํํค์ง์๋ ์ฃผ๋ฌธ ๋ก์ง์ด ๋ด๊ฒจ์๋ค. ์์๋ ๊ฐ ํจํค์ง๋ง๋ค DTO/Repository /Service/Main์์๋ก ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ๋ค. ๐ฅ member ํจํค์ง ๐ป member ๊ฐ์ฒด (DTO) package hello.core.member; public class Member {..
• SRP: ๋จ์ผ ์ฑ ์ ์์น(single responsibility principle) ๋จ์ผ ์ฑ ์ ์์น์ ํ ํด๋์ค๋ ํ๋์ ์ฑ ์์ ๊ฐ์ ธ์ผ ํ๋ค๋ ๊ฒ๋ค. ์กฐ๊ธ ๋ชจํธํ ๊ฐ๋ ์ด๋ค. ํฐ ์ฑ ์ ์์ ์ฑ ์, ํ๋์ ์ฑ ์์ด๋ผ๊ณ ํด๋ ๊ทธ ๊ท๋ชจ๊ฐ ๋ค๋ฅด๋ค. ๊ทธ๋์ ๊ธฐ์ค์ "๋ณ๊ฒฝ"์ด๋ค. ๋ง์ฝ ๋ณ๊ฒฝ์ด ํ์ํ ์์ ์์ ๋๋ฌด ๋ง์ ๋ณ๊ฒฝ์ด ํ์ํ๋ค๋ฉด, ๋จ์ผ ์ฑ ์ ์์น์ด ์ ์ง์ผ์ง์ง ์์ ๊ฒ์ด๋ค. • OCP: ๊ฐ๋ฐฉ-ํ์ ์์น (Open/closed principle) ์ํํธ์จ์ด ์์๋ ํ์ฅ์๋ ์ด๋ ค์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผ ํ๋ค๋ ์์น ์ฌ์ค ์ธํฐํ์ด์ค๋ง ์๊ฐํด๋ ๋ญ๊ฐ ๊ทธ๋ด์ธํ ์ด์ผ๊ธฐ์ด์ง๋ง, ์ฌ์ค ๊ตฌํ์ ๋ฐ๊พธ๋ฉด, ํด๋ผ์ด์ธํธ์ชฝ์์๋ ๊ตฌํ ํด๋์ค๋ฅผ ์ง์ ์ ํํด์ผํด์, ์ฝ๋ ์์ ์ด ๋ถ๊ฐํผํ๋ค. ์๋ฅผ ๋ค์ด ์ด ๊ฒฝ์ฐ๋ ํด๋ผ์ด์ธํธ๊ฐ ๊ธฐ์กด A..
1. ์คํ๋ง์ด๋? -์๋ฐ(๊ฐ์ฒด ์งํฅ) ์ธ์ด ๊ธฐ๋ฐ์ ํ๋ ์์ํฌ -์คํ๋ง์ ์ข์ ๊ฐ์ฒด ์งํฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๊ฒ ๋์์ฃผ๋ ํ๋ ์์ํฌ ๊ทธ๋ ๋ค๋ฉด... 2. ์ข์ ๊ฐ์ฒด ์งํฅ ์ธ์ด๋? ๊ฐ์ฒด ์งํฅ ํน์ง 1. ์ถ์ํฉ 2. ์บก์ํ 3. ์์ 4. ๋คํ์ฑ ๊ทธ ์ค์์๋ ๋คํ์ฑ์ด ์ค์ํ๋ฐ.. ๋คํ์ฑ์ด๋? 3. ๋คํ์ฑ ์ญํ ๊ณผ ๊ตฌํ์ ๋ถ๋ฆฌํ๋ ๊ฒ ํด๋ผ์ด์ธํธ๋ ๋์์ ์ญํ ๋ง ์๋ฉด ๋๋ค. ํด๋ผ์ด์ธํธ๋ ๊ตฌํ ๋์์ ๋ด๋ถ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ์ํฅ์ ๋ฐ์ง ์๋๋ค. ํด๋ผ์ด์ธํธ๋ ๊ตฌํ ๋์ ์์ฒด๋ฅผ ๋ณ๊ฒฝํด๋ ์ํฅ์ ๋ฐ์ง ์๋๋ค. ์ญํ = ์ธํฐํ์ด์ค / ๊ตฌํ = ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค,๊ตฌํ ๊ฐ์ฒด ๋ฐ๋ผ์, ๐ป๊ฐ์ฒด ์ค๊ณ์ ์ธํฐํ์ด์ค๋ฅผ ๋จผ์ ๋ถ์ฌํ๊ณ , ๊ทธ ์ญํ ์ ์ํํ๋ ๊ตฌํ ๊ฐ์ฒด ๋ง๋ค๊ธฐ ์ญํ ์ด ๊ตฌํ๋ณด๋ค ์ค์ํ๋ค!! ์๋ฐ ์ธ์ด์ ๋คํ์ฑ์์..