Study/ETC

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์™€ ๋‹ฌ๋ฆฌ ์†์„ฑ ์„ ์–ธ ์—†์Œ ..
YURI๐Ÿ•๐Ÿ“๐Ÿถ
'Study/ETC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก