Network
HTTP์ ์๋ต ์ฝ๋๋ 5๊ฐ์ ํด๋์ค(๋ถ๋ฅ)๋ก ๊ตฌ๋ถ๋๋ค. ์ฒซ ๋ฒ์งธ ์ซ์๋ก ์๋ต ํด๋์ค๊ฐ ๊ฒฐ์ ๋๋ค. 1xx (์ ๋ณด, Information) : ์์ฒญ์ ๋ฐ๊ณ , ํ๋ก์ธ์ค๋ฅผ ๊ณ์ํ๋ค. 2xx (์ฑ๊ณต, Successful) : ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐ๊ณ , ์ ์์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค. 3xx (๋ฆฌ๋ค์ด๋ ์
, Redirection) : ์์ฒญ์ ์๋ฃํ๊ธฐ ์ํด ์ถ๊ฐ ์์
์กฐ์น๊ฐ ํ์ํ๋ค. 4xx (ํด๋ผ์ด์ธํธ ์ค๋ฅ, Client Error) : ์์ฒญ์ ์๋ชป๋ ๋ฌธ๋ฒ ๋ฑ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค. 5xx (์๋ฒ ์ค๋ฅ, Server Error) : ์๋ฒ๊ฐ ์ ์ ์์ฒญ์ ์ฒ๋ฆฌํ์ง ๋ชปํ๋ค. [ 1xx (์กฐ๊ฑด๋ถ ์๋ต) ] ์์ฒญ์ ๋ฐ์์ผ๋ฉฐ ์์
์ ๊ณ์ํ๋ค. ์ค๋ฌด์์ ์ ์ฌ์ฉํ์ง ์๋๋ค. [ 2xx (์ฑ๊ณต) ] ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋์์ ์์ ํ์ฌ ์ดํดํ๊ณ ..
Network
HTTP๋ฅผ ๋ณด๊ธฐ ์ ์ ๋จผ์ ๊ฐ๋จํ URL์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. โURL์ ๋ฌธ๋ฒ scheme://[userinfo@]host[:port][/path][?query/[#fragment] ex ) https://www.google.com:433/search?q=hello&hl=ko ํ๋กํ ์ฝ, ํธ์คํธ๋ช
, ํฌํธ๋ฒํธ, ํจ์ค, ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ [ scheme ] ์ฃผ๋ก ํ๋กํ ์ฝ ์ฌ์ฉ (http, https ...) http๋ 80ํฌํธ, https๋ 433 ํฌํธ๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ, http์ https๋ ๋์ค์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ต๊ฐ๋ฅํ๋ค. โ https๋ http์ ๋ณด์์ด ์ถ๊ฐ๋ ๊ฒ์ด๋ค. โ ํ๋กํ ์ฝ์ด๋? ์ด๋ค ๋ฐฉ์์ผ๋ก ์์์ ์ ๊ทผํ ๊ฒ์ธ๊ฐ ํ๋ ์ฝ์ ๊ท์น์ด๋ค. [ userinfo ] URL์ ์ฌ์ฉ์์ ๋ณด๋ฅผ ํฌํจํด์ ์ธ..
Network
[ ์ธํฐ๋ท ๋คํธ์ํฌ ] IP (Internet Protocol) TCP, UDP PORT DNS ์ธํฐ๋ท์ ๋ณต์กํ ์ธํฐ๋ท ๋ง์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด์๋ ์ธํฐ๋ท ๋ง์ ๊ฑฐ์ณ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ณ , ๋ฐ์์ผ ํ๋ค. ๊ทธ๋์ ์๋ฒ๋ง๋ค IP์ฃผ์๋ฅผ ๋ถ์ฌํ๊ณ , ์ด IP์ฃผ์๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด IP( Internet Protocol)์ด๋ค. [ IP (Internet Protocol) ] โ IP์ ์ญํ ์ง์ ํ IP ์ฃผ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ํจํท(Packet)์ด๋ผ๋ ํต์ ๋จ์๋ก ๋ฐ์ดํฐ ์ ๋ฌ ๐ ํจํท ์ ๋ณด #์ถ๋ฐ์ง IP = ํด๋ผ์ด์ธํธ IP ๐ซ ์ ๋ฌ ๊ณผ์ IP์ฃผ์๊ฐ ๋ด๊ธด ํจํท์ ์ธํฐ๋ท๋ง์ ์ฌ๋ฌ ๋
ธ๋๋ฅผ ํตํด ์๋ฒ๋ก ์ ๋ฌํ๋ฉด, ์๋ฒ์์๋ ํ์ธํ๋ค๋ ์ ํธ๋ฅผ ๋ค์ ํด๋ผ์ด์ธํธ์ ๋๊ธด๋ค. ํ์ง๋ง ์ธํฐ..
Spring
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ปค๋ฅ์
ํ์ด๋, ๋คํธ์ํฌ ์์บฃ์ฒ๋ผ ์ ํ๋ฆฌ์ผ์ด์
์์ ์์ ์ ํ์ํ ์ฐ๊ฒฐ์ ๋ฏธ๋ฆฌ ํด๋๊ณ ์ ํ๋ฆฌ์ผ์ด์
์ข
๋ฃ ์์ ์ ์ฐ๊ฒฐ์ ๋ชจ๋ ์ข
๋ฃํ๋ ์์
์ ํ๋ ค๋ฉด ๊ฐ์ฒด์ ์ด๊ธฐํ์ ์ข
๋ฃ ์์
์ด ํ์ํ๋ค. [ ์คํ๋ง ๋น์ ์ด๋ฒคํธ ๋ผ์ดํ์ฌ์ดํด (์ฑ๊ธํค์ผ ๋) ] ์คํ๋ง ์ปจํ
์ด๋ ์์ฑ ์คํ๋ง ๋น ์์ฑ ์์กด๊ด๊ณ ์ฃผ์
์ด๊ธฐํ ์ฝ๋ฐฑ (๋น์ด ์์ฑ๋๊ณ , ๋น์ ์์กด๊ด๊ณ ์ฃผ์
์ด ์๋ฃ๋ ํ ํธ์ถ) ์ฌ์ฉ ์๋ฉธ์ ์ฝ๋ฐฑ (๋น์ด ์๋ฉธ๋๊ธฐ ์ง์ ์ ํธ์ถ) ์คํ๋ง ์ข
๋ฃ โ ๊ฐ์ฒด์ ์์ฑ๊ณผ ์ด๊ธฐํ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ข๋ค. ์์ฑ์๋ ํ์ ์ ๋ณด๋ ๋ฐ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ๋ฐ๋ฉด์ ์ด๊ธฐํ๋ ์์ฑ๋ ๊ฐ์ ํ์ฉํด์ ์ธ๋ถ ์ปค๋ฅ์
์ ์ฐ๊ฒฐํ๋ ์ญํ ์ ํ๋ค. ์์ฑ์ ์์์ ๋ฌด๊ฑฐ์ด ์์
์ ํ๋ ๊ฒ์ ์ ์ง๋ณด์๋ฉด์์ ์ข์ง ์๋ค. ์คํ๋ง์ 3๊ฐ์ง ๋ฐฉ๋ฒ..
Spring
์กฐํ ๋์์ ๋น์ด 2๊ฐ ์ด์์ผ ๋ ํด๊ฒฐ๋ฐฉ๋ฒ์ด 3๊ฐ์ง๊ฐ ์๋ค. @Autowired ํ๋ ๋ช
๋งค์นญ @Qualifier @Primary [ @Autowired ํ๋ ๋ช
๋งค์นญ ] @Autowired๋ ์ฒ์์ ํ์
๋งค์นญ์ ์์ํ๋ค. ํ ํ์
์ ์ฌ๋ฌ ๋น์ด ์กด์ฌํ ๊ฒฝ์ฐ์๋ ์ถฉ๋์ด ์ผ์ด๋์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค. ์ด๋๋ ํ๋ ๋ช
์ ๋ณ๊ฒฝํ๋ฉด ๋๋ค. @Autowired private DiscountPolicy discountPolicy // DiscountPolicy ์ rateDiscountPolicy์ fixDiscountPolicy๊ฐ ์กด์ฌํจ ์ด๋ฐ ์ฝ๋์์ ์ ํํ ํ๋๋ช
์ผ๋ก ์ง์ ํด์ค์ผ ํ๋ค. @Autowired private DiscountPolicy rateDiscountPolicy ์ด๋ ๊ฒ ์ฃผ์
ํด์ฃผ๋ฉด rateDisc..
์นดํ
๊ณ ๋ฆฌ ์์
์์กด๊ด๊ณ ์ฃผ์
ํ๋ ๋ฐฉ๋ฒ์ 4๊ฐ์ง๊ฐ ์๋ค. ์์ฑ์ ์ฃผ์
์์ ์ ์ฃผ์
( setter ์ฃผ์
) ํ๋ ์ฃผ์
์ผ๋ฐ ๋ฉ์๋ ์ฃผ์
[ ์์ฑ์ ์ฃผ์
] ์์ฑ์๋ฅผ ํตํด์ ์์กด๊ด๊ณ๋ฅผ ์ฃผ์
๋ฐ๋ ๋ฐฉ๋ฒ์ด๋ค. ์์ฑ์ ํธ์ถ์์ ์ 1๋ฒ๋ง ํธ์ถ๋๋ค. ๋ถ๋ณ, ํ์ ์์กด๊ด๊ณ ์ฌ์ฉ @Component public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolic..
Spring
@Bean๊ณผ xml์ ์ด์ฉํด์ ๋น์ ๋ฑ๋กํ ์ ์์์ง๋ง, ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ฑ๋กํด์ผ ํ ๋น์ด ๋ง์ ๋ ๋ฒ๊ฑฐ๋ก์ ์ง๋ค. @Conponent ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ๋น์ ๋ฑ๋กํ ์ ์๊ฒ ๋๋ค. โ ์์กด๊ด๊ณ๋ @Autowired ์ด๋
ธํ
์ด์
์ผ๋ก ํด๊ฒฐํ๋ค. [ @Component ์ ๋
ธํ
์ด์
์ถ๊ฐ ] @Configuration @ComponentScan public class AutoAppConfig {} ๋จผ์ AppConfig๋ฅผ ๋ง๋ค๊ณ , @Configuration๊ณผ @Component๋ฅผ ๋ถ์ฌ์ค๋ค. ์ค์ํ ๊ฑด ์ด ํด๋์ค๋ package hello.core; ์ ๋ง๋ค์ด์ผ ํ๋ค! ๋ง๋ ์์น์ ํ์ ํด๋๋ฅผ ๊ฒ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ ์ฌ์ง ์ฒ๋ผ ์ปดํฌ๋ํธ ์ค์บ ๋์์ด ๋์ด์ผ ํ ํด๋์ค์ ์ปดํฌ๋ํธ ์ ๋
ธํ
์ด์
์ ๋ถ์ฌ์ค๋ค..
Algorithm/PROGRAMMERS
https://programmers.co.kr/learn/courses/30/parts/12077 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr [ ๋ฌธ์ ] ์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช
์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค. ๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. [ ์ ํ์ฌํญ ] ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋ 1๋ช
์ด์ 100..
Spring
์น์ ๊ฒฝ์ฐ์๋ ๊ณ ๊ฐ์ด ์ฌ๋ฌ๋ช
์ด๊ธฐ ๋๋ฌธ์ ์์ฒญํ ๋๋ง๋ค ๊ฐ์ฒด๋ฅผ ์๋ก ์์ฑํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์ ๋ง์ ๋ง ์ฌํ๋ค! ๊ทธ๋์ ํด๊ฒฐ์ ํด์ค์ผ ํ๋ค. ๋ฐฉ๋ฒ์๋ ๋๊ฐ์ง๊ฐ ์กด์ฌํ๋ค. 1. ์ง์ ์ฑ๊ธํค ์์ฑ 2. ์ฑ๊ธํค ์ปจํ
์ด๋ ์ด์ฉ [ ์ง์ ์ฑ๊ธํค ์์ฑ ] ์ฑ๊ธํค ํจํด์ ์ ์ฉํ๋ฉด ๊ณ ๊ฐ์ ์์ฒญ์ด ์ฌ ๋๋ง๋ค ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ, ์ด๋ฏธ ๋ง๋ค์ด์ง ๊ฐ์ฒด๋ฅผ ๊ณต์ ํด์ ์ฌ์ฉํ๋ค. ํ์ง๋ง ์ง์ ๋ง๋๋ ๊ฒ์ ์ฌ๋ฌ ๋จ์ ์ด ์กด์ฌํ๋ค. ์์ฑํด์ผํ ์ฝ๋๊ฐ ๋ง์์ง๋ค. DIP๋ฅผ ์๋ฐํ๋ค. ( ํด๋ผ์ด์ธํธ๊ฐ ๊ตฌ์ฒดํด๋์ค๋ฅผ ์์กดํ๋ค) private static final SingletonService instance = new SingletonService(); DIP๋ฅผ ์๋ฐํ๋ฉด OCP๋ ์๋ฐํ ๊ฐ๋ฅ์ฑ์ด ๋ง๋ค. ๋ด๋ถ์์ฑ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ด๊ธฐํ ํ๊ธฐ ์ด๋ ต..
Spring
์คํ๋ง ๋น ์กฐํ๋ ์กฐํํ๋ ๋ฒ๋ง ๊ฐ๋จํ ์ ๋ฆฌํ๋ ์ฉ๋๋ก๋ง ํฌ์คํ
ํด์ผ๊ฒ ๋ค. [ ๋ชจ๋ ๋น ์ถ๋ ฅ ] โ applicationContext.getBeanDefinitionNames(); : ์คํ๋ง์ ๋ฑ๋ก๋ ๋ชจ๋ ๋น ์ด๋ฆ์ ์กฐํํ๋ค. โ applicationContext.getBean(); : ๋น ์ด๋ฆ์ผ๋ก ๋ ๋น ๊ฐ์ฒด๋ฅผ ์กฐํํ๋ค. [ ์ ํ๋ฆฌ์ผ์ด์
๋น ์ถ๋ ฅ ] โ .getRole()์ ์ฌ์ฉํ๋ฉด ์คํ๋ง ๋ด๋ถ์์ ์ด์ฉํ๋๊ฑด์ง ์ฌ์ฉ์๊ฐ ๋ฑ๋กํ ๋น์ธ์ง ํ์ธํด์ฃผ๋ ์ญํ ์ด๋ค. โ ROLE_APPLICATION : ์ฌ์ฉ์๊ฐ ์ ์ํ ๋น โ ROLE_INFRASTRUCTURE : ์คํ๋ง์ด ๋ด๋ถ์์ ์ฌ์ฉํ๋ ๋น ๐ Ex if(beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION..