feign Feign์ ์คํ์์ค ์น ์๋น์ค ํด๋ผ์ด์ธํธ์
๋๋ค. (like RestTemlate..) HTTP ํต์ ์ ์ํด ์ฌ์ฉํ๋ค๊ณ ์๊ฐํ์๋ฉด ์ฝ์ต๋๋ค. ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ค๋ฅธ Feign์ ์ฅ์ ์ api ํธ์ถ ์ค์ ์ ๊ฐ์ํํ์ฌ interface ์ ์ธ๋ง์ผ๋ก API ํธ์ถ์ ํ ์ ์์ต๋๋ค(์ ์ธ์ ์น ์๋น์ค ํด๋ผ์ด์ธํธ) Feign์ Netflix๊ฐ ์ฒ์ ๋ง๋ค์์ง๋ง, ์ดํ Netflix๊ฐ feign์ ์ฌ์ฉํ์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ๊ฒ ๋๋ฉด์ ํ์ฌ๋ OpenFeign์ผ๋ก ๊ด๋ฆฌ๋๊ณ ์์ต๋๋ค. ๋ฌธ์ ์ ์์ ํ๊ฒฝ : spring-cloud-openfeign 2.2.9 Spring Boot ํ๊ฒฝ์์ application.yml ํ์ผ์ feign ๊ด๋ จ ์ค์ ์ ์์ฑํด feign์ ์ค์ ๊ฐ๋ค์ ์ธํ
ํ ์ ์์ต๋๋ค. (๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์์) ..
1๋จ๊ณ. ๋จ์ผ ์๋ฒ ์น ์ฑ, ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์ ๋ฑ ์ ๋ถ ๋ชจ๋ ์๋ฒ ํ ๋์ ๊ตฌ์ถํ๋ค. ์ฌ์ฉ์ ์์ฒญ ํ๋ฆ ์ฌ์ฉ์๋ ๋๋ฉ์ธ ์ด๋ฆ์ ์ด์ฉํด(www.naver.com) ์น์ฌ์ดํธ์ ์ ์ํ๋ค. ์ด ์ ์์ ์ํด์๋ DNS์ ์ง์ํด ๋๋ฉ์ธ ์ด๋ฆ์ IP ์ฃผ์๋ก ๋ณํํ๋ ๊ณผ์ ์ด ํ์ํ๋ค. (๋ณดํต thired party ์ฌ์ฉ) DNS ์ง์ ๊ฒฐ๊ณผ๋ก IP ์ฃผ์๊ฐ ๋ฐํ๋๋ค. ํด๋น IP์ฃผ์๋ก HTTP ์์ฒญ์ด ์ ๋ฌ ๋๋ค. ์์ฒญ์ ๋ฐ์ ์น ์๋ฒ๋ HTML ํ์ด์ง๋ JSON ํํ์ ์๋ต์ ๋ฐํํ๋ค. 2๋จ๊ณ. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ ๋ถ๋ฆฌ ์น ๊ณ์ธต๊ณผ ๋ฐ์ดํฐ ๊ณ์ธต์ผ๋ก ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ๋ค. ๊ฐ๊ฐ์ ๋
๋ฆฝ์ ์ผ๋ก ํ์ฅํด ๋๊ฐ ์ ์๊ฒ ๋๋ค. ์ด๋ค ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ๊ฐ RDBMS vs NoSQL ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฐ๋์งํ ์ ..
read() -> send() ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์ read()๋ฅผ ์์ฒญํ๋ฉด ๋์คํฌ์ ์๋ ํ์ผ์ด ์ปค๋ Read Buffer์ ๋ณต์ฌ๋๋ค. Application์ด ์ปค๋๋จ์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ Application Buffer์๋ ๋ณต์ฌ๋๋ค. send()๋ฅผ ์์ฒญํ๋ฉด ์ปค๋ Socet Buffer์ ํ์ผ์ด ๋ณต์ฌ๋๋ค. NIC ๋ฒํผ๋ก ๋ณต์ฌ๋๋ค. ์ปจํ
์คํธ ์ค์์นญ ๋ค๋ ๋ฐ์ ์ฌ์ฉ์๊ฐ transferTo() ๋ฉ์๋๋ฅผ ์ด์ฉํด ํ์ผ ์ ์ก์ ์์ฒญํ๋ค. read()์ send() ํจ์๊ฐ ํ๋๋ก ํฉ์ณ์ง ํํ์ ์์คํ
์ฝ์ด๋ค. ๋์คํฌ์ ์๋ ํ์ผ์ด ์ปค๋ Read Buffer์ ๋ณต์ฌ๋๋ค. ์ปค๋ ๋ชจ๋์์ ์ ์ ๋ชจ๋๋ก ์ปจํ
์คํธ ์ค์์นญํ์ง ์๊ณ ๋ฐ๋ก Socket buffer๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ๋ค. Socket buffer์ ๋ณต์ฌ๋ ๋ฐ์ดํฐ๋ฅผ D..
Python๋ก ํฌ๋กค๋งํด์ ์๋์ผ๋ก ๊ธ ์
๋ ฅํ๊ธฐ ์ต๊ทผ ํ์ฌ์์ ์ผํ๋ ์ค, HTML ๋ด์ฉ์ ํฌ๋กค๋งํด ํ์ฌ ๋ด ์์คํ
๋ด์ ๋ฒ์ ๋ณ๋ก ๋ฑ๋กํด์ผ ํ๋ ์
๋ฌด๋ฅผ ์ํํด์ผ ํ๋ ์ผ์ด ์๊ฒผ๋ค. ์ฌ์ค ๋ณต๋ถํด๋ ๋๋ ์ผ์ด๊ธด ํ์ง๋ง, ์๊ทผ ๋ณต๋ถํด์ผ ํ๋ ์์ด ๋ง์๊ธฐ ๋๋ฌธ์ "๋ด๊ฐ ๊ฐ๋ฐ์์ธ๋ฐ..! ๋จ์๋ฐ๋ณต์ ํ ์ ์์ง!" ์๋ก ๋ง์์ด ๋ค์ด (ใ
ใ
ใ
์์์๋ ๋ง์) ๊ทธ๋ฅ ๋๋ฑ ๋ง๋ค์๋ค. ๋ถ๋ช
ํ์ด์ฌ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ๋ ํ์๋๋ฐ 2๋
์ ์ด๋ผ ๊ธฐ์ต์ด ํ๋๋ ๋์ง ์๋๋ผ ๐ง ๋ถ๋ช
ํ์ด์ฌ ์ ๋ฆฌ๋ ํ๋ ๊ฑฐ ๊ฐ์๋ฐ.. ๋ค ์ด๋๊ฐ์ง.. ใ
ใ
์๋ฌดํผ, ๊ทธ๋์ ์ด๋ฒ์ ๋ค์์ ๊ณ ์ํ ๋๋ฅผ ์ํด ๊ธ์ ๋จ๊ฒจ๋๊ธฐ๋ก ํ๋ค. ๊ธ์ ์์ํ๊ธฐ์ ์, ์ฐธ๊ณ ๋ก ์ ๋ Python ๊ฐ๋ฐ์๋ ์๋๊ณ 2๋
์ ์ ๋ฐฐ์ ๋ ๊ธฐ์ต + 2์๊ฐ๋ง์ ๊ฐ๋ฐํ ๋ด์ฉ์ด์ฌ์.. ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ..
JUnit5 Annotation ๋๋ณด๊ธฐ ํํ๊ณ ์ ๊ตฌ๊ธ์ ๋์ํ์ง๋ง ์ค์ญ์ด ์์ ์ ์์ต๋๋ค. ์์ด ์๋ฌธ๋ ๊ฐ์ด ๋ด์ฃผ์๊ธธ ๋ฐ๋๋๋ค. โบ๏ธ @Test Denotes that a method is a test method. Unlike JUnit 4’s @Test annotation, this annotation does not declare any attributes, since test extensions in JUnit Jupiter operate based on their own dedicated annotations. Such methods are inherited unless they are overridden. - ํด๋น ๋ฉ์๋๊ฐ ํ
์คํธ ๋ฉ์๋์์ ๋ํ๋. - JUnit 4์ ๋ฌ๋ฆฌ ์์ฑ ์ ์ธ ์์ ..