spring43 Spring - ๋กฌ๋ณต(lombok) ๋กฌ๋ณต : ์๋ฐ ๊ฐ๋ฐ์๋ค์ ์ํ ์คํ ์์ค ํ๋ก์ ํธ ๊ฐ๋ฐ์๊ฐ ๋ฐ๋ณต์ ์ด๊ณ ์ง๋ฃจํ ์์ ์ ์ค์ด๊ณ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ด๊ธฐ ์ํด ๊ฐ๋ฐ๋จ ์ฃผ๋ก ์๋ฐ์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ฌ์ฉ๋๋ฉฐ, ๊ฐ๋ฐ์๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์์ฑํด์ผ ํ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํจ. ๋กฌ๋ณต์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ getter ๋ฐ setter ๋ฉ์๋, ์์ฑ์, equals ๋ฐ hashCode ๋ฉ์๋ ๋ฑ๊ณผ ๊ฐ์ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋(์ผ๋ฐ์ ์ผ๋ก ๋ฐ๋ณต ์์ฑ๋๋ ์ฝ๋)๋ฅผ ์ง์ ์์ฑํ์ง ์์๋ ๋จ. ๋กฌ๋ณต์ ์ฃผ์์ ํตํด ์ด๋ ธํ ์ด์ (annotation)์ ์ ๊ณตํ๊ณ , ์ปดํ์ผ ์์ ์ ๋กฌ๋ณต์ด ์ด ์ด๋ ธํ ์ด์ ์ ๋ถ์ํ์ฌ ์๋์ผ๋ก ํ์ํ ์ฝ๋๋ฅผ ์์ฑํจ. ์ด๋ฅผ ํตํด ๋กฌ๋ณต์ ๊ฐ๋ฐ์์ ์์ฐ์ฑ์ ํฅ์์ํค๊ณ , ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ฌ์ค. ์ฝ๋๋ฅผ ๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์์ผ๋ฉฐ, ์์ฑํด์ผ ํ ๋ฐ๋ณต์ ์ธ .. 2023. 7. 14. Spring - ์์ฑ์ ์ฃผ์ ์ ์ ํ ์ต๊ทผ์๋ ์คํ๋ง์ ํฌํจํ DI ํ๋ ์์ํฌ ๋๋ถ๋ถ์ด ์์ฑ์ ์ฃผ์ ์ ๊ถ์ฅํ๋ค. ์์ฑ์ ์ฃผ์ ์ ํน์ง๊ณผ ์ฅ์ !! ๋ถ๋ณ ๋๋ถ๋ถ์ ์์กด๊ด๊ณ ์ฃผ์ ์ ํ๋ฒ ์ผ์ด๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ์์ ๊น์ง ์์กด๊ด๊ณ๋ฅผ ๋ณ๊ฒฝํ ์ผ์ด ์๋ค. ์คํ๋ ค ๋๋ถ๋ถ์ ์์กด๊ด๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ ์ ๊น์ง ๋ณํ๋ฉด ์๋๋ค.(๋ถ๋ณํด์ผ ํ๋ค.) ์์ ์ ์ฃผ์ ์ ์ฌ์ฉํ๋ฉด, setXxx ๋ฉ์๋๋ฅผ public์ผ๋ก ์ด์ด๋์ด์ผ ํ๋ค. ๋๊ตฐ๊ฐ ์ค์๋ก ๋ณ๊ฒฝํ ์ ๋ ์๊ณ , ๋ณ๊ฒฝํ๋ฉด ์๋๋ ๋ฉ์๋๋ฅผ ์ด์ด๋๋ ๊ฒ์ ์ข์ ์ค๊ณ ๋ฐฉ๋ฒ์ด ์๋๋ค. ์์ฑ์ ์ฃผ์ ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๋ฑ 1๋ฒ๋ง ํธ์ถ๋๋ฏ๋ก ์ดํ์ ํธ์ถ๋๋ ์ผ์ด ์๋ค. ๋ฐ๋ผ์ ๋ถ๋ณํ๊ฒ ์ค๊ณํ ์ ์๋ค. ๋๋ฝ ํ๋ ์์ํฌ ์์ด ์์ ์๋ฐ ์ฝ๋๋ก ๋จ์ ํ ์คํธ ํ๋ ๊ฒฝ์ฐ, ์์ ์ ์์กด๊ด๊ณ๋ฅผ ์ด์ฉํ๋ฉด NPE(Null Point E.. 2023. 7. 14. Spring - ์ต์ ์ฒ๋ฆฌ ์ฃผ์ ํ ์คํ๋ง ๋น์ด ์์ด๋ ๋์ํด์ผ ํ ๋๊ฐ ์๋ค. ๊ทธ๋ฐ๋ฐ @Autowired ๋ง ์ฌ์ฉํ๋ฉด required ์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ด true ๋ก ๋์ด ์์ด์ ์๋ ์ฃผ์ ๋์์ด ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์๋ ์ฃผ์ ๋์์ ์ต์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. @Autowired(required=false) : ์๋ ์ฃผ์ ํ ๋์์ด ์์ผ๋ฉด ์์ ์ ๋ฉ์๋ ์์ฒด๊ฐ ํธ์ถ ์๋จ org.springframework.lang.@Nullable : ์๋ ์ฃผ์ ํ ๋์์ด ์์ผ๋ฉด null์ด ์ ๋ ฅ๋๋ค. Optional : ์๋ ์ฃผ์ ํ ๋์์ด ์์ผ๋ฉด Optional.empty ๊ฐ ์ ๋ ฅ๋๋ค. setNoBean1() ์ @Autowired(required=false) ์ด๋ฏ๋ก ํธ์ถ ์์ฒด๊ฐ ์๋๋ค. ์ฐธ๊ณ : @Nullable, Optional์ ์ค.. 2023. 7. 14. Spring - ๋ค์ํ ์์กด๊ด๊ณ ์ฃผ์ ๋ฐฉ๋ฒ 1. ์์ฑ์ ์ฃผ์ ์ด๋ฆ ๊ทธ๋๋ก ์์ฑ์๋ฅผ ํตํด์ ์์กด ๊ด๊ณ๋ฅผ ์ฃผ์ ๋ฐ๋ ๋ฐฉ๋ฒ ํน์ง ์์ฑ์ ํธ์ถ์์ ์ ๋ฑ 1๋ฒ๋ง ํธ์ถ๋๋ ๊ฒ์ด ๋ณด์ฅ๋๋ค. ๋ถ๋ณ, ํ์ ์์กด๊ด๊ณ์ ์ฌ์ฉ @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; t.. 2023. 7. 12. ์ด์ 1 2 3 4 5 6 7 ยทยทยท 11 ๋ค์