Spring
์กฐํ ๋์์ ๋น์ด 2๊ฐ ์ด์์ผ ๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ด 3๊ฐ์ง๊ฐ ์๋ค. @Autowired ํ๋ ๋ช
๋งค์นญ @Qualifier @Primary [ @Autowired ํ๋ ๋ช
๋งค์นญ ] @Autowired๋ ์ฒ์์ ํ์
๋งค์นญ์ ์์ํ๋ค. ํ ํ์
์ ์ฌ๋ฌ ๋น์ด ์กด์ฌํ ๊ฒฝ์ฐ์๋ ์ถฉ๋์ด ์ผ์ด๋์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. ์ด๋๋ ํ๋ ๋ช
์ ๋ณ๊ฒฝํ๋ฉด ๋๋ค. @Autowired private DiscountPolicy discountPolicy // DiscountPolicy ์ rateDiscountPolicy์ fixDiscountPolicy๊ฐ ์กด์ฌํจ ์ด๋ฐ ์ฝ๋์์ ์ ํํ ํ๋๋ช
์ผ๋ก ์ง์ ํด์ค์ผ ํ๋ค. @Autowired private DiscountPolicy rateDiscountPolicy ์ด๋ ๊ฒ ์ฃผ์
ํด์ฃผ๋ฉด rateDisc..
Spring
์น์ ๊ฒฝ์ฐ์๋ ๊ณ ๊ฐ์ด ์ฌ๋ฌ๋ช
์ด๊ธฐ ๋๋ฌธ์ ์์ฒญํ ๋๋ง๋ค ๊ฐ์ฒด๋ฅผ ์๋ก ์์ฑํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ ๋ง์ ๋ง ์ฌํ๋ค! ๊ทธ๋์ ํด๊ฒฐ์ ํด์ค์ผ ํ๋ค. ๋ฐฉ๋ฒ์๋ ๋๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. 1. ์ง์ ์ฑ๊ธํค ์์ฑ 2. ์ฑ๊ธํค ์ปจํ
์ด๋ ์ด์ฉ [ ์ง์ ์ฑ๊ธํค ์์ฑ ] ์ฑ๊ธํค ํจํด์ ์ ์ฉํ๋ฉด ๊ณ ๊ฐ์ ์์ฒญ์ด ์ฌ ๋๋ง๋ค ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ, ์ด๋ฏธ ๋ง๋ค์ด์ง ๊ฐ์ฒด๋ฅผ ๊ณต์ ํด์ ์ฌ์ฉํ๋ค. ํ์ง๋ง ์ง์ ๋ง๋๋ ๊ฒ์ ์ฌ๋ฌ ๋จ์ ์ด ์กด์ฌํ๋ค. ์์ฑํด์ผํ ์ฝ๋๊ฐ ๋ง์์ง๋ค. DIP๋ฅผ ์๋ฐํ๋ค. ( ํด๋ผ์ด์ธํธ๊ฐ ๊ตฌ์ฒดํด๋์ค๋ฅผ ์์กดํ๋ค) private static final SingletonService instance = new SingletonService(); DIP๋ฅผ ์๋ฐํ๋ฉด OCP๋ ์๋ฐํ ๊ฐ๋ฅ์ฑ์ด ๋ง๋ค. ๋ด๋ถ์์ฑ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ด๊ธฐํ ํ๊ธฐ ์ด๋ ต..
Spring
์ง๊ธ๊น์ง ์์ฑํ ์ฝ๋ ์ค๋ช
ํ์๊ฐ์
์ ํ๊ณ , ์กฐํํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๋ฌผ๊ฑด์ ๊ตฌ์
ํ ๋ ํ ์ธ ์ ์ฑ
์ ๋ง๋ค๊ณ ์ถ์ด์ ๊ณ ์ ๋ ํ ์ธ๊ธ์ก์ ํ ์ธํด์ฃผ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ธฐ์
์์ ๊ณ ์ ๋ ํ ์ธ๊ธ์ก์ด ์๋๋ผ ํผ์ผํธ๋ก ํ ์ธํด์ฃผ๊ณ ์ถ๋ค๊ณ ํ๋ฉด ์ฝ๋๋ฅผ ๋ฐ๊ฟ์ผํ๋ค. package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy { private int discountPercent = 10; @Override public int discount(Member member, int price) { if (membe..
Spring
๊ทธ๋์ ์์ฑํ ์ฝ๋๋ฅผ ํ ๋๋ก ํ์์ ๋ฑ๋กํ๊ณ , ์กฐํํ๋ ์ค์ต์ ์ค๋ ํ๋ค!!! ์ฌ์ค ์๋
์ ์ ๊ณต์์
๋ค์ผ๋ฉด์ ๋ค ํ๋ ๊ณผ์ ์ธ๋ฐ ๊ทธ๋ ๋๋ฌด ๋นจ๋์ด์ ์์ ๋ฐ๋ผ๊ฐ์ง ๋ชปํ์๋,,,, ๊ทธ๋ผ ์ ๋ฆฌ ํฌ์คํ
์์ูฉฬ(ห•อ ๊ด •อห)ู 1. HomeContoller ์์ฑ package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") // ๋ก์ปฌํธ์คํธ์ ๋ค์ด์ค๋ฉด public String home(){ return "h..
Spring
์ด๋ฒ์ ๋ฐฐ์ด ๊ฑด ์ข ์ด๋ ต๋ค...๊ทธ๋๋ ์ด์ฌํ ๋ค์ด์ผ๊ฒ ๋คเน๏ฝฅฬโก๏ฝฅฬเน ์์ง ๊ธฐ์ด๊ณต๋ถํ๊ณ ์๋๋ฐ๋ ์๋ฐ ๊ณต๋ถ์ ๋ถ์กฑํจ์ด ํ์คํ ๋๊ปด์ง๋คใ
ใ
๋ด์ผ๋ถํฐ ๋ค์ ์๋ฐ ๊ณต๋ถ๋ฅผ ํด์ผ๊ฒ ๋ค ๊ทธ๋์ ์ ์๋๋๋ intelliJ๊ฐ ๊ฐ์๊ธฐ side-by-side์๋ฌ๊ฐ ๋ฌ๋ค...visual c++ ๋ค์ ๊น๊ณ ๊ทธ๋๋ ์๋ผ์ ์ธํ
๋ฆฌ์ ์ด ์ง์ฐ๊ณ ๋ค์ ๊น์๋๋ ์์ฃผ ์ ์๋ ๋๋ค...๋ค์ ์ด๋ฐ ์ผ ๋ง๋ค์ง ๋ง์๋ผ (๊ฆ°๊ซ°) ์ด๋ฒ์ ๋ฐฐ์ด ๊ฑด ํ์ ๊ด๋ฆฌ ์์ ์ด๋ค! ํ์๊ฐ์
์ ํ๊ณ , ์ค๋ณต๋ ์ด๋ฆ์ ์ฌ์ฉํ์ง ๋ชปํ๋๋ก ๊ด๋ฆฌํด์ผํ๋ค! ์ปจํธ๋กค๋ฌ : ์น MVC์ ์ปจํธ๋กค๋ฌ ์ญํ ์๋น์ค : ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง ๊ตฌํ ๋ฆฌํฌ์งํ ๋ฆฌ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผ. ๋๋ฉ์ธ ๊ฐ์ฒด๋ฅผ DB์ ์ ์ฅํ๊ณ ๊ด๋ฆฌ ๋๋ฉ์ธ : ๋น์ฆ๋์ค ๋๋ฉ์ธ ๊ฐ์ฒด 1. ..
Spring
์ ๋ฒ์ ์ด์ด์ ์ค๋๋ ๊ธฐ์ด๋ฅผ ๋ฐฐ์ ๋ค! ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ์ ์ ์ปจํ
์ธ , MVC, api์ ๊ด๋ จ๋ ๋ด์ฉ์ด๋ค. ์์ฃผ ์คํ๋ง ๊ฑธ์๋ง๋ฅผ ์ค๋นํ๋ ๊ฒ ๊ฐ์ ๊ธฐ๋ถ๋๋ค ํงํ
(เนหฬตแดหฬต)ู โก 1. ์ ์ ์ปจํ
์ธ ์ ์ ์ปจํ
์ธ ๋ ๊ทธ๋ฅ ํ์ผ์ ๊ทธ๋๋ก ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ด๋ค. resources์ staticํ์ผ์ hello-static.html ํ์ผ์ ๋ง๋ค์๋ค. ์ ์ ์ปจํ
์ธ ์
๋๋ค. ์ด๊ฑธ ์น๋ธ๋ผ์ฐ์ ์ ์คํ์์ผ๋ณด๋ฉด body๋ฌธ์ ์จ ์๋ ๋ฌธ์ฅ์ด ๊ทธ๋๋ก ๋์ค๊ฒ ๋๋ค. ์คํ๊ณผ์ - ์น๋ธ๋ผ์ฐ์ ์์ localhlost:8080/hello-static.html ์ฃผ์๋ฅผ ํฐ์บฃ ์๋ฒ์ ๋ณด๋ธ๋ค. - ํฐ์บฃ ์๋ฒ๋ ์คํ๋ง์๊ฒ ๋ณด๋ด๊ณ , ์คํ๋ง์์๋ hello-static ๊ด๋ จ ์ปจํธ๋กค๋ฌ๋ฅผ ๋จผ์ ์ฐพ๊ณ ์์ผ๋ฉด, resources์ ์๋ html์ ์ฐพ๋๋ค. (์ปจํธ๋กค๋ฌ..
Spring
๋ด๊ฐ ๋ฌด์์ ๊ฐ๋ฐํ ์ง ๊ฒฐ์ ํ๊ธฐ ์ํด์ ๋จผ์ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ๊ณต๋ถํด๋ณด๊ธฐ๋ก ํ๋ค! ( ํ๋ ๊ณต๋ถํ๋ค๊ฐ ์ ์ฑ์ ์๋ง์ผ๋ฉด ๋ค๋ฅธ๊ฑฐ ๊ณต๋ถํด๋ด์ผ์ง!) ๊ณต๋ถํ๋ฉด์ ๋งํ๋ ๊ฒ, ์ค๋ ๊ณต๋ถํ ๊ฒ์ ๋ณต์ตํ๋ ์ฐจ์์์ ๋ธ๋ก๊ทธ๋ฅผ ์ธ ๊ฒ์ด๋คโฆโฟโฆ ์ด์ฌํ ์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉฐ... ๊ทธ๋์ ์ฒ์ ๊ณต๋ถํ๊ธฐ๋ก ํ ๊ฑด spring! ๋ด๊ฐ ํ๋์ ๊ณต๋ถํ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์ธํ๋ฐ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ๊ณต๋ถํ ๊ฒ์ด๋ค. ์์ง ์์์ ๋ถ๊ณผํ์ง๋ง ๊ฐ์ฌ๋ ๋๋ฌด ์ ๊ฐ๋ฅด์น๋ ๊ฒ ๊ฐ์ ๋ง์กฑ ์ค(เนหฬตแดหฬต)ู ์์ง ๋ง์ด ๋ฐฐ์ฐ์ง ์์ ์
์ฅ์์ ์ฐ๋ ค๋๊น ๋ถ์กฑํ ๊ฒ์ด ๋ง์ ๊ฒ ๊ฐ๋คใ
ใ
๋์ค์ ๋ณธ๋ค๋ฉด '์ด๋ ์ด๋ฐ ๊ฒ๋ ๋ชฐ๋๋ค๋! '๋ผ๊ณ ์๊ฐํ๋ ๋ ์ด ์ค๊ฒ ์ง? ใ
ใ
์ฝ๋ฉ์ ํ๊ธฐ ์ํด์ IntelliJ๋ผ๋ ํ๋ก๊ทธ๋จ์ ๊น์๋ค! ์๋ฐ๋ ์ด๋ฏธ ๊น๋ ค์์์ง๋ง, 8๋ฒ์ ์ด์ด์ 11๋ฒ์ ์ผ๋ก..