์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- C
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ 3ํ
- ํ์ด์ฝ ์ถ์ฒ์ธ
- php ํ๋ก๊ทธ๋๋ฐ
- ์คํ๋ง
- ํ๋ฌํฐ ๊ฐ๋ฐํ๊ฒฝ ์ค์
- ํ์ด์ฝ ์น๊ตฌ์ฝ๋
- php
- ์ต๋จ ๊ฒฝ๋ก
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ๋ฌธ์ ํ์ด
- JAVA SPRING
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ์ฐ์ต๋ฌธ์
- ๋ฐฑ์ค
- spring
- ํ๋ฌํฐ
- Java
- ํ์ด์ฝ ์ถ์ฒ์ธ์ฝ๋
- ํ์ด์ฌ
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ์์
- programmers
- Flutter
- ํ์ ๋ถ๊ธฐ
- ์๋ฐ ์คํ๋ง
- ํ์ด์ฝ ์ด๋์ฝ๋
- C์ธ์ด
- php ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ ์๋ฃจ์
- ์๋ฐ
- SWEA
- ๋ฐฐ์ด
- Today
- Total
๋ชฉ๋ก์คํ๋ง (61)
์ฌ๋ฅ์ด๐ป
[Java Spring] 2-50. ์๋, ์๋์ ์ฌ๋ฐ๋ฅธ ์ค๋ฌด ์ด์ ๊ธฐ์ค ํธ๋ฆฌํ ์๋ ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ์ ๊ทธ๋ฌ๋ฉด ์ด๋ค ๊ฒฝ์ฐ์ ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์ฃผ์ ์ ์ฌ์ฉํ๊ณ , ์ด๋ค ๊ฒฝ์ฐ์ ์ค์ ์ ๋ณด๋ฅผ ํตํด์ ์๋์ผ๋ก ๋น์ ๋ฑ๋กํ๊ณ , ์์กด๊ด๊ณ๋ ์๋์ผ๋ก ์ฃผ์ ํด์ผ ํ ๊น? ๊ฒฐ๋ก ๋ถํฐ ์ด์ผ๊ธฐํ๋ฉด, ์คํ๋ง์ด ๋์ค๊ณ ์๊ฐ์ด ๊ฐ ์๋ก ์ ์ ์๋์ ์ ํธํ๋ ์ถ์ธ๋ค. ์คํ๋ง์ @Component ๋ฟ๋ง ์๋๋ผ @Controller , @Service , @Repository ์ฒ๋ผ ๊ณ์ธต์ ๋ง์ถ์ด ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์๋์ผ๋ก ์ค์บํ ์ ์๋๋ก ์ง์ํ๋ค. ๊ฑฐ๊ธฐ์ ๋ํด์ ์ต๊ทผ ์คํ๋ง ๋ถํธ๋ ์ปดํฌ๋ํธ ์ค์บ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๊ณ , ์คํ๋ง ๋ถํธ์ ๋ค์ํ ์คํ๋ง ๋น๋ค๋ ์กฐ๊ฑด์ด ๋ง์ผ๋ฉด ์๋์ผ๋ก ๋ฑ๋กํ๋๋ก ์ค๊ณํ๋ค. ์ค์ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ..
[Java Spring] 2-49. ์กฐํํ ๋น์ด ๋ชจ๋ ํ์ํ ๋, List, Map ์๋์ ์ผ๋ก ์ ๋ง ํด๋น ํ์ ์ ์คํ๋ง ๋น์ด ๋ค ํ์ํ ๊ฒฝ์ฐ๋ ์๋ค. ์๋ฅผ ๋ค์ด์ ํ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํ๋๋ฐ, ํด๋ผ์ด์ธํธ๊ฐ ํ ์ธ์ ์ข ๋ฅ(rate, fix)๋ฅผ ์ ํํ ์ ์๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์คํ๋ง์ ์ฌ์ฉํ๋ฉด ์์ ๋งํ๋ ์ ๋ต ํจํด์ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์๋ค. ์ฝ๋๋ก ๋ฐ๋ก ์ค๋ช ํ๊ฒ ๋ค. package hello.core.autowired; import hello.core.AutoAppConfig; import hello.core.discount.DiscountPolicy; import hello.core.member.Grade; import hello.core.member.Member; import org.assertj.cor..
[Java Spring] 2-48. ์ ๋ ธํ ์ด์ ์ง์ ๋ง๋ค๊ธฐ @Qualifier("mainDiscountPolicy") ์ด๋ ๊ฒ ๋ฌธ์๋ฅผ ์ ์ผ๋ฉด ์ปดํ์ผ์ ํ์ ์ฒดํฌ๊ฐ ์๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ ๋ ธํ ์ด์ ์ ๋ง๋ค์ด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. package hello.core.annotataion; import org.springframework.beans.factory.annotation.Qualifier; import java.lang.annotation.*; @Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE, ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolic..
[Java Spring] 2-47. @Autowired ํ๋ ๋ช , @Qualifier, @Primary ํด๊ฒฐ ๋ฐฉ๋ฒ์ ํ๋์ฉ ์์๋ณด์. ์กฐํ ๋์ ๋น์ด 2๊ฐ ์ด์์ผ ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ @Autowired ํ๋ ๋ช ๋งค์นญ @Qualifier -> @Qualifier๋ผ๋ฆฌ ๋งค์นญ -> ๋น ์ด๋ฆ ๋งค์นญ @Primary ์ฌ์ฉ @Autowired ํ๋ ๋ช ๋งค์นญ @Autowired ๋ ํ์ ๋งค์นญ์ ์๋ํ๊ณ , ์ด๋ ์ฌ๋ฌ ๋น์ด ์์ผ๋ฉด ํ๋ ์ด๋ฆ, ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ผ๋ก ๋น ์ด๋ฆ์ ์ถ๊ฐ ๋งค์นญํ๋ค. ๊ธฐ์กด ์ฝ๋ @Autowired private DiscountPolicy discountPolicy ํ๋ ๋ช ์ ๋น ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝ @Autowired private DiscountPolicy rateDiscountPolicy ํ๋ ๋ช ์ด rateDis..
[Java Spring] 2-46. ์กฐํ ๋น์ด 2๊ฐ ์ด์ - ๋ฌธ์ @Autowired ๋ ํ์ (Type)์ผ๋ก ์กฐํํ๋ค. @Autowired private DiscountPolicy discountPolicy ํ์ ์ผ๋ก ์กฐํํ๊ธฐ ๋๋ฌธ์, ๋ง์น ๋ค์ ์ฝ๋์ ์ ์ฌํ๊ฒ ๋์ํ๋ค. (์ค์ ๋ก๋ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.) ac.getBean(DiscountPolicy.class) ์คํ๋ง ๋น ์กฐํ์์ ํ์ตํ๋ฏ์ด ํ์ ์ผ๋ก ์กฐํํ๋ฉด ์ ํ๋ ๋น์ด 2๊ฐ ์ด์์ผ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. DiscountPolicy ์ ํ์ ํ์ ์ธ FixDiscountPolicy , RateDiscountPolicy ๋๋ค ์คํ๋ง ๋น์ผ๋ก ์ ์ธํด๋ณด์. @Component public class FixDiscountPolicy implements Disc..
[Java Spring] 2-45. ๋กฌ๋ณต๊ณผ ์ต์ ํธ๋๋ ๋ง์ ๊ฐ๋ฐ์ ํด๋ณด๋ฉด, ๋๋ถ๋ถ์ด ๋ค ๋ถ๋ณ์ด๊ณ , ๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ด ํ๋์ final ํค์๋๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์์ฑ์๋ ๋ง๋ค์ด์ผ ํ๊ณ , ์ฃผ์ ๋ฐ์ ๊ฐ์ ๋์ ํ๋ ์ฝ๋๋ ๋ง๋ค์ด์ผ ํ๊ณ … ํ๋ ์ฃผ์ ์ฒ๋ผ ์ข ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๊น? ์ญ์ ๊ฐ๋ฐ์๋ ๊ท์ฐฎ์ ๊ฒ์ ๋ชป ์ฐธ๋๋ค! ๋ค์ ๊ธฐ๋ณธ ์ฝ๋๋ฅผ ์ต์ ํํด๋ณด์. ๊ธฐ๋ณธ ์ฝ๋ @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderSer..
[Java Spring] 2-44. ์์ฑ์ ์ฃผ์ ์ ์ ํํด๋ผ! ๊ณผ๊ฑฐ์๋ ์์ ์ ์ฃผ์ ๊ณผ ํ๋ ์ฃผ์ ์ ๋ง์ด ์ฌ์ฉํ์ง๋ง, ์ต๊ทผ์๋ ์คํ๋ง์ ํฌํจํ DI ํ๋ ์์ํฌ ๋๋ถ๋ถ์ด ์์ฑ์ ์ฃผ์ ์ ๊ถ์ฅํ๋ค. ๊ทธ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค. ๋ถ๋ณ ๋๋ถ๋ถ์ ์์กด๊ด๊ณ ์ฃผ์ ์ ํ๋ฒ ์ผ์ด๋๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ์์ ๊น์ง ์์กด๊ด๊ณ๋ฅผ ๋ณ๊ฒฝํ ์ผ์ด ์๋ค. ์คํ๋ ค ๋๋ถ๋ถ์ ์์กด๊ด๊ณ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ ์ ๊น์ง ๋ณํ๋ฉด ์๋๋ค.(๋ถ๋ณํด์ผ ํ๋ค.) ์์ ์ ์ฃผ์ ์ ์ฌ์ฉํ๋ฉด, setXxx ๋ฉ์๋๋ฅผ public์ผ๋ก ์ด์ด๋์ด์ผ ํ๋ค. ๋๊ตฐ๊ฐ ์ค์๋ก ๋ณ๊ฒฝํ ์ ๋ ์๊ณ , ๋ณ๊ฒฝํ๋ฉด ์๋๋ ๋ฉ์๋๋ฅผ ์ด์ด๋๋ ๊ฒ์ ์ข์ ์ค๊ณ ๋ฐฉ๋ฒ์ด ์๋๋ค. ์์ฑ์ ์ฃผ์ ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๋ฑ 1๋ฒ๋ง ํธ์ถ๋๋ฏ๋ก ์ดํ์ ํธ์ถ๋๋ ์ผ์ด ์๋ค. ๋ฐ๋ผ์ ๋ถ๋ณํ๊ฒ ์ค๊ณํ ์ ์๋ค. ๋๋ฝ ํ๋ ์์..
[Java Spring] 2-43. ์ต์ ์ฒ๋ฆฌ ์ฃผ์ ํ ์คํ๋ง ๋น์ด ์์ด๋ ๋์ํด์ผ ํ ๋๊ฐ ์๋ค. ๊ทธ๋ฐ๋ฐ @Autowired ๋ง ์ฌ์ฉํ๋ฉด required ์ต์ ์ ๊ธฐ๋ณธ๊ฐ์ด true ๋ก ๋์ด ์์ด์ ์๋ ์ฃผ์ ๋์์ด ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ์๋ ์ฃผ์ ๋์์ ์ต์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. @Autowired(required=false) : ์๋ ์ฃผ์ ํ ๋์์ด ์์ผ๋ฉด ์์ ์ ๋ฉ์๋ ์์ฒด๊ฐ ํธ์ถ ์๋จ org.springframework.lang.@Nullable : ์๋ ์ฃผ์ ํ ๋์์ด ์์ผ๋ฉด null์ด ์ ๋ ฅ๋๋ค. Optional : ์๋ ์ฃผ์ ํ ๋์์ด ์์ผ๋ฉด Optional.empty ๊ฐ ์ ๋ ฅ๋๋ค. ์์ ๋ก ํ์ธํด๋ณด์. package hello.core.autowired; import hello.core..
[Java Spring] 2-42. ๋ค์ํ ์์กด๊ด๊ณ ์ฃผ์ ๋ฐฉ๋ฒ 1. ์์กด๊ด๊ณ ์ฃผ์ ์ ํฌ๊ฒ 4๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ์์ฑ์ ์ฃผ์ ์์ ์ ์ฃผ์ (setter ์ฃผ์ ) ํ๋ ์ฃผ์ ์ผ๋ฐ ๋ฉ์๋ ์ฃผ์ 2. ์์ฑ์ ์ฃผ์ ์ด๋ฆ ๊ทธ๋๋ก ์์ฑ์๋ฅผ ํตํด์ ์์กด ๊ด๊ณ๋ฅผ ์ฃผ์ ๋ฐ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ง๊ธ๊น์ง ์ฐ๋ฆฌ๊ฐ ์งํํ๋ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก ์์ฑ์ ์ฃผ์ ์ด๋ค. ํน์ง ์์ฑ์ ํธ์ถ์์ ์ ๋ฑ 1๋ฒ๋ง ํธ์ถ๋๋ ๊ฒ์ด ๋ณด์ฅ๋๋ค. ๋ถ๋ณ, ํ์ ์์กด๊ด๊ณ์ ์ฌ์ฉ @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowire..
[Java Spring] 2-41. ์ค๋ณต ๋ฑ๋ก๊ณผ ์ถฉ๋ ์ปดํฌ๋ํธ ์ค์บ์์ ๊ฐ์ ๋น ์ด๋ฆ์ ๋ฑ๋กํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น? ๋ค์ ๋๊ฐ์ง ์ํฉ์ด ์๋ค. ์๋ ๋น ๋ฑ๋ก vs ์๋ ๋น ๋ฑ๋ก ์๋ ๋น ๋ฑ๋ก vs ์๋ ๋น ๋ฑ๋ก 1. ์๋ ๋น ๋ฑ๋ก vs ์๋ ๋น ๋ฑ๋ก ์ปดํฌ๋ํธ ์ค์บ์ ์ํด ์๋์ผ๋ก ์คํ๋ง ๋น์ด ๋ฑ๋ก๋๋๋ฐ, ๊ทธ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ ์คํ๋ง์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํจ๋ค. ConflictingBeanDefinitionException ์์ธ ๋ฐ์ 2. ์๋ ๋น ๋ฑ๋ก vs ์๋ ๋น ๋ฑ๋ก ๋ง์ฝ ์๋ ๋น ๋ฑ๋ก๊ณผ ์๋ ๋น ๋ฑ๋ก์์ ๋น ์ด๋ฆ์ด ์ถฉ๋๋๋ฉด ์ด๋ป๊ฒ ๋ ๊น? @Component public class MemoryMemberRepository implements MemberRepository {} @Configuration @Comp..