[Spring] Feign Client๋ž€?

ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค Spring ์„œ๋ฒ„์—์„œ ์™ธ๋ถ€ API์™€ ํ†ต์‹ ํ•˜๋Š” ์„œ๋ฒ„ to ์„œ๋ฒ„ ํ†ต์‹ ์„ ํ•˜๊ฒŒ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Feign Client์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Feign Client ๋ž€? Feign Client๋ฅผ ํ•œ๋งˆ๋””๋กœ ์ •๋ฆฌํ•˜์ž๋ฉด Netflix์—์„œ ๊ฐœ๋ฐœ๋œ Http Client Binder์ž…๋‹ˆ๋‹ค. Spring Boot ํ™˜๊ฒฝ์—์„œ ๋‹ค๋ฅธ ์„œ๋ฒ„์˜ Api๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹จ์ˆœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค. ์žฅ์  HTTP API๋ฅผ ๊ท ์ผํ•˜๊ฒŒ ๋ฐ”์ธ๋”ฉํ•˜์—ฌ ๋ณต์žก์„ฑ์„ ์ค„์ž„ RestTemplate๋ฐฉ์‹๊ณผ WebClient๋ฐฉ์‹๋ณด๋‹ค ๋‹จ์ˆœ ์›น ์„œ๋น„์Šค ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ Interface๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Annotaion์„ ์„ ์–ธํ•˜๋ฉด ..

Java 2023. 11. 3. 14:09
[๋„คํŠธ์›Œํฌ] TCP ์—ฐ๊ฒฐ/ํ•ด์ œ ๊ณผ์ •(3 way handshake & 4 way handshake)

TCP๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ• ๋•Œ, ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์—ฐ๊ฒฐ ์„ฑ๋ฆฝ๊ณผ ์—ฐ๊ฒฐ ํ•ด์ œ ๊ณผ์ •์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. https://j-su2.tistory.com/15 [๋„คํŠธ์›Œํฌ] TCP์™€ UDP TCP์™€ UDP๋Š” ์ „์†ก ๊ณ„์ธต์—์„œ ํ†ต์‹  ํ™œ์„ฑํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. TCP : ์‹ ๋ขฐ์„ฑ, ์—ฐ๊ฒฐ ์ง€ํ–ฅ์  UDP : ๋น„์‹ ๋ขฐ์„ฑ, ๋น„์—ฐ๊ฒฐ์„ฑ, ์‹ค์‹œ๊ฐ„ ํ”„๋กœํ† ์ฝœ์ด๋ž€? ํ†ต์‹  ๊ทœ์•ฝ์œผ๋กœ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ, ๋˜๋Š” ์ปดํ“จํ„ฐ j-su2.tistory.com 3 way handshake TCP๋Š” ์—ฐ๊ฒฐ์„ ์œ„ํ•ด์„œ 3๋ฒˆ์˜ ๊ณผ์ •์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—๊ฒŒ SYN ํŒจํ‚ท์„ ๋ณด๋ƒ„ (sequence: X) ์„œ๋ฒ„๊ฐ€ SYN(X)์„ ๋ฐ›๊ณ , ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ›์•˜๋‹ค๋Š” ์‹ ํ˜ธ์ธ ACK์™€ SYNํŒจํ‚ท์„ ๋ณด๋ƒ„ (sequence: Y / ACK: X+1) ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ..

CS/Network 2023. 10. 29. 15:56
[๋„คํŠธ์›Œํฌ] OSI 7 ๊ณ„์ธต

OSI 7 ๊ณ„์ธต์ด๋ž€? ์˜๋ฏธ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ 7๋‹จ๊ณ„๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์œผ๋กœ, ๊ตญ์ œํ‘œ์ค€ํ™”๊ธฐ๊ตฌ(ISO)์—์„œ ๋„คํŠธ์›ŒํŠธ ๊ฐ„์˜ ํ˜ธํ™˜์„ ์œ„ํ•ด์„œ ๋งŒ๋“  ๊ฐœ๋ฐฉํ˜• ์‹œ์Šคํ…œ ์ƒํ˜ธ ์—ฐ๊ฒฐ ๋ชจ๋ธ์˜ ํ‘œ์ค€์ธ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ ์‹ค์ œ ์ธํ„ฐ๋„ท์—์„œ ์‚ฌ์šฉ๋˜๋Š” TCP/IP ๋Š” OSI ์ฐธ์กฐ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์—…์ ์ด๊ณ  ์‹ค๋ฌด์ ์œผ๋กœ ์ด์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ๋‹จ์ˆœํ™” https://j-su2.tistory.com/134 [๋„คํŠธ์›Œํฌ] TCP/IP 4๊ณ„์ธต TCP/IP(Transmission Control Protocal / Internet Protocal)๋ž€? ํ˜„์žฌ ์ˆ˜๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์ธํ„ฐ๋„ท์œผ๋กœ ํ†ต์‹ ํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ฐ€์žฅ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ ์‹ค์ œ ๋Œ€๋‹ค์ˆ˜ ํ”„๋กœ๊ทธ๋žจ์€ TCP์™€ IP๋กœ ํ†ต์‹ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, j-su2.tistory.com ๋ฌผ๋ฆฌ → ๋ฐ์ดํ„ฐ ๋งํฌ → ๋„คํŠธ..

CS/Network 2023. 10. 25. 23:20
[AWS] CI/CD๋ž€?

์ตœ๊ทผ์— ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ์— ๋“ค์–ด๊ฐ€๋ฉฐ, AWS CodePipeline์„ ํ™œ์šฉํ•ด ๋นŒ๋“œ/๋ฐฐํฌ ์ž๋™ํ™” ํ™˜๊ฒฝ์„ ์…‹ํŒ…ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ฐธ์— CI/CD ๊ฐœ๋…์„ ์ž์„ธํžˆ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•ด๋‹น ๊ธ€์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CI/CD ๋ž€? ์ง€์†์  ํ†ตํ•ฉ(Continuous Integration, CI)๊ณผ ์ง€์†์  ์ œ๊ณต&๋ฐฐํฌ(Continuous Delivery&Continuous Deployment, CD)์˜ ์•ฝ์ž๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋”์šฑ ์งง์€ ์ฃผ๊ธฐ๋กœ ๊ณ ๊ฐ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. DevOps ์—”์ง€๋‹ˆ์–ด์˜ ํ•ต์‹ฌ ์—…๋ฌด๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•˜๋Š” CI/CD๋Š” ํ†ตํ•ฉ๊ณผ ์ œ๊ณต์„ ์ž๋™ํ™”ํ•จ์œผ๋กœ์จ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœํŒ€์ด ์ฝ”๋“œ ํ’ˆ์งˆ๊ณผ ์†Œํ”„ํŠธ์›จ์–ด ๋ณด์•ˆ์„ ๋ณด์žฅํ•˜๋Š” ๋™์‹œ์— ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. CI/..

AWS 2023. 6. 11. 16:59
[ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„] SOLID๋ž€?

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)์ด๋ž€? *๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ํ‘œํ˜„ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ๊ฐ์ฒด ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๋Š” *ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ ์ถ”์ƒํ™”, ์บก์Šํ™”, ์ƒ์†์„ฑ, ๋‹คํ˜•์„ฑ์ด๋ผ๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง•๋“ค๋กœ ์ธํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์œ ์—ฐํ•˜๊ณ  ๋ณ€๊ฒฝ์ด ์šฉ์ดํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๊ทœ๋ชจ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. *ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋ž€? https://j-su2.tistory.com/127 [ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„(Programming Paradigm)์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ด€์ ์„ ๊ฐ–๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ํ”„๋กœ๊ทธ๋žจ์„ ์ƒ j-..

CS/Design Pattern 2023. 5. 23. 21:56
[Spring] Mockito๋ž€?

๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ž€? ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์„ ๊ธฐ์ค€์œผ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์„œ ๊ฐ ๋‹จ์œ„๊ฐ€ ์ •ํ™•ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์ •ํ™•ํ•˜๊ฒŒ ์–ด๋Š ๋ถ€๋ถ„์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์บ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒฝ์šฐ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Service ๊ณ„์ธต์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ณดํ†ต ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค๊ณผ ์˜์กด ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, Bean Container์— ์ฃผ์ž…๋œ ์‹ค์ œ ๊ฐ์ฒด๋“ค์„ ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ณ , Mockito ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์„ ํ™œ์šฉํ•ด Mock ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. Mockito..

Java 2023. 5. 21. 20:47
[Server] gRPC๋ž€?

gRPC(Google Remote Procedure Call)๋ž€? gRPC๋Š” Google์—์„œ ๋งŒ๋“  RPC๋กœ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— "A high performance, open source universal RPC framework"๋ผ๊ณ  ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ง์—ญํ•˜์ž๋ฉด "๊ณ ์„ฑ๋Šฅ ์˜คํ”ˆ ์†Œ์Šค ๋ฒ”์šฉ RPC ํ”„๋ ˆ์ž„์›Œํฌ"์ž…๋‹ˆ๋‹ค. ์šฐ์„  gRPC๋“ฑ์žฅ ์ด์ „์˜ RPC์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. RPC(Remote Procedure Call)๋ž€? ์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ(RPC)๋Š” ๋ณ„๋„์˜ ์›๊ฒฉ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์ฝ”๋”ฉ ์—†์ด ๋‹ค๋ฅธ ์ฃผ์†Œ ๊ณต๊ฐ„์—์„œ ํ•จ์ˆ˜๋‚˜ ํ”„๋กœ์‹œ์ €๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹  ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ฆ‰, RPC๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์–ด๋””์„œ๋“  ์›ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RPC๋Š” *IPC ๊ธฐ๋ฒ• ์ค‘ 1๊ฐœ๋กœ ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„..

Server 2023. 1. 7. 18:57
[๋„คํŠธ์›Œํฌ] TCP/IP 4๊ณ„์ธต

TCP/IP(Transmission Control Protocal / Internet Protocal)๋ž€? ํ˜„์žฌ ์ˆ˜๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์ธํ„ฐ๋„ท์œผ๋กœ ํ†ต์‹ ํ•˜๋Š”๋ฐ ์žˆ์–ด ๊ฐ€์žฅ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ ์‹ค์ œ ๋Œ€๋‹ค์ˆ˜ ํ”„๋กœ๊ทธ๋žจ์€ TCP์™€ IP๋กœ ํ†ต์‹ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์ฃผ๋กœ TCP์™€ IP๋ฅผ ์ด์šฉํ•ด์„œ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ๋ฐ์ดํ„ฐ์„ ๋ณด๋‚ผ ๋•Œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด TCP/IP 4๊ณ„์ธต์„ ํ†ตํ•ด ๊ฐ ๊ณ„์ธต๋งˆ๋‹ค ์ฑ…์ž„์ด ๋ถ€์—ฌ๋˜์–ด ๊ณ„์ธต์„ ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด๋‚ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. OSI 7๊ณ„์ธต VS TCP/IP 4๊ณ„์ธต OSI 7๊ณ„์ธต ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ 7๋‹จ๊ณ„๋กœ ๋‚˜๋ˆˆ ๊ฒƒ ๊ตญ์ œํ‘œ์ค€ํ™”๊ธฐ๊ตฌ(ISO)์—์„œ ๋„คํŠธ์›ŒํŠธ ๊ฐ„์˜ ํ˜ธํ™˜์„ ์œ„ํ•ด์„œ ๋งŒ๋“  ๊ฐœ๋ฐฉํ˜• ์‹œ์Šคํ…œ ์ƒํ˜ธ ์—ฐ๊ฒฐ ๋ชจ๋ธ์˜ ํ‘œ์ค€์ธ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ TCP..

CS/Network 2022. 11. 3. 16:59