๋ชฉ๋กSpring (3)

EEALL@ONCE

๐ŸŒฑ๋งˆ์Œ์„ ์ •ํ•˜์ง€ ์•Š์€ ์‚ฌ์žฅ๊ณผ Spring์„ ์‚ฌ์šฉํ•ด์„œ ์œ ์—ฐํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฐœ๋ฐœ์ž

1. ์ƒํ™ฉ ํ• ์ธ ์ •์ฑ… ๋งˆ์Œ์„ ์•ˆ ์ •ํ•œ ์‚ฌ์žฅ๊ณผ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”ˆ ๊ฐœ๋ฐœ์ž ํ˜„ ์ƒํ™ฉ์€ vip์—๊ฒŒ ๊ณ ์ • ํ• ์ธ or ํšŒ์› ๋“ฑ๊ธ‰์— ๋”ฐ๋ผ ํ• ์ธ ๋“ฑ์„ ๊ณ ๋ฏผ์ค‘์ด๋‹ค. 2. ์ฃผ๋ฌธ ๋„๋ฉ”์ธ ํ˜‘๋ ฅ,์—ญํ• ,์ฑ…์ž„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฃผ๋ฌธ์„ ํ•˜๋ฉด, ์„œ๋น„์Šค๋Š” ํšŒ์› ์กฐํšŒ๋ฅผ ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ฅธ ํ• ์ธ์„ ์ ์šฉํ•˜๊ณ  ํ• ์ธ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•œ ์ฃผ๋ฌธ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋Œ๋ ค์ค€๋‹ค. 3. ๊ณ ์ • ํ• ์ธ ์ฝ”๋“œ ์„ค๊ณ„ member ํŒจํ‚ค์ง€๋Š” ํšŒ์› ์ •๋ณด ๋กœ์ง์ด / discount ํŽ˜ํ‚ค์ง€์—๋Š” ํ• ์ธ ๋กœ์ง์ด / order ํŽ˜ํ‚ค์ง€์—๋Š” ์ฃผ๋ฌธ ๋กœ์ง์ด ๋‹ด๊ฒจ์žˆ๋‹ค. ์ˆœ์„œ๋Š” ๊ฐ ํŒจํ‚ค์ง€๋งˆ๋‹ค DTO/Repository /Service/Main์ˆœ์„œ๋กœ ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ฒ ๋‹ค. ๐Ÿฅ‘ member ํŒจํ‚ค์ง€ ๐Ÿ”ป member ๊ฐ์ฒด (DTO) package hello.core.member; public class Member {..

Spring๐ŸŒฑ 2023. 6. 23. 17:40
๐ŸŒฑ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„์˜ 5๊ฐ€์ง€ ์›์น™ (SOLID)

• SRP: ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(single responsibility principle) ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์€ ํ•œ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ๋‹ค. ์กฐ๊ธˆ ๋ชจํ˜ธํ•œ ๊ฐœ๋…์ด๋‹ค. ํฐ ์ฑ…์ž„ ์ž‘์€ ์ฑ…์ž„, ํ•˜๋‚˜์˜ ์ฑ…์ž„์ด๋ผ๊ณ  ํ•ด๋„ ๊ทธ ๊ทœ๋ชจ๊ฐ€ ๋‹ค๋ฅด๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ์ค€์€ "๋ณ€๊ฒฝ"์ด๋‹ค. ๋งŒ์•ฝ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ์‹œ์ ์—์„œ ๋„ˆ๋ฌด ๋งŽ์€ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด, ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์ด ์ž˜ ์ง€์ผœ์ง€์ง€ ์•Š์€ ๊ฒƒ์ด๋‹ค. • OCP: ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ (Open/closed principle) ์†Œํ”„ํŠธ์›จ์–ด ์š”์†Œ๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค์žˆ์œผ๋‚˜ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™ ์‚ฌ์‹ค ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ƒ๊ฐํ•ด๋„ ๋ญ”๊ฐ€ ๊ทธ๋Ÿด์‹ธํ•œ ์ด์•ผ๊ธฐ์ด์ง€๋งŒ, ์‚ฌ์‹ค ๊ตฌํ˜„์„ ๋ฐ”๊พธ๋ฉด, ํด๋ผ์ด์–ธํŠธ์ชฝ์—์„œ๋„ ๊ตฌํ˜„ ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ์„ ํƒํ•ด์•ผํ•ด์„œ, ์ฝ”๋“œ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€ํ”ผํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๊ฒฝ์šฐ๋„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ธฐ์กด A..

Spring๐ŸŒฑ 2023. 6. 23. 10:28
๐ŸŒฑ์Šคํ”„๋ง ํ•ต์‹ฌ ์ปจ์…‰

1. ์Šคํ”„๋ง์ด๋ž€? -์ž๋ฐ”(๊ฐ์ฒด ์ง€ํ–ฅ) ์–ธ์–ด ๊ธฐ๋ฐ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ -์Šคํ”„๋ง์€ ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ๊ทธ๋ ‡๋‹ค๋ฉด... 2. ์ข‹์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋ž€? ๊ฐ์ฒด ์ง€ํ–ฅ ํŠน์ง• 1. ์ถ”์ƒํ™ฉ 2. ์บก์Šํ™” 3. ์ƒ์† 4. ๋‹คํ˜•์„ฑ ๊ทธ ์ค‘์—์„œ๋„ ๋‹คํ˜•์„ฑ์ด ์ค‘์š”ํ•œ๋ฐ.. ๋‹คํ˜•์„ฑ์ด๋ž€? 3. ๋‹คํ˜•์„ฑ ์—ญํ• ๊ณผ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ ํด๋ผ์ด์–ธํŠธ๋Š” ๋Œ€์ƒ์˜ ์—ญํ• ๋งŒ ์•Œ๋ฉด ๋œ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๊ตฌํ˜„ ๋Œ€์ƒ์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๊ตฌํ˜„ ๋Œ€์ƒ ์ž์ฒด๋ฅผ ๋ณ€๊ฒฝํ•ด๋„ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค. ์—ญํ•  = ์ธํ„ฐํŽ˜์ด์Šค / ๊ตฌํ˜„ = ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค,๊ตฌํ˜„ ๊ฐ์ฒด ๋”ฐ๋ผ์„œ, ๐Ÿ”ป๊ฐ์ฒด ์„ค๊ณ„์‹œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋จผ์ € ๋ถ€์—ฌํ•˜๊ณ , ๊ทธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ตฌํ˜„ ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ ์—ญํ• ์ด ๊ตฌํ˜„๋ณด๋‹ค ์ค‘์š”ํ•˜๋‹ค!! ์ž๋ฐ” ์–ธ์–ด์˜ ๋‹คํ˜•์„ฑ์—์„œ..

Spring๐ŸŒฑ 2023. 6. 23. 09:35