- 이번 주 항해 취업 리부트코스에서 내가 구현한 기능은 무엇인가요?
- 모놀리틱서비스를 msa로 전환하기 위한 기술을 공부하고 서버를 나누는 중입니다.
- 해당 기능을 구현하기 위해, 어떤 기술적 의사결정을 거쳤나요?
- 고민한 기술의 종류들에는 무엇이 있나요?
- spring cloud gateway로 라우팅을 설정해서 각 msa로 api를 전달하는 과정을 블로킹방식을 사용할지 논블로킹방식을 사용할지 고민했습니다.
- 서비스간 통신을 위해 resttemplate, webclient, open feign 중 어떤 것이 내 프로젝트와 적합할지 고민했습니다.
- 위 기술들별로 각각의 장단점이 있다면 무엇인가요?
- API GATEWAY는 모든 요청이 통과하는 곳이기 때문에 성능적인 측면이 매우 중요합니다. 그래서 기존의 1THREAD / 1REQUEST 방식인 SPRING MVC를 사용할 경우 성능적인 이슈가 발생할 수 있습니다. 때문에 비동기 방식인 Netty를 사용해 1THREAD / MANY REQUESTS 방식으로 기존 방식보다 더 많은 요청을 처리할 수 있는 장점을 가지고 있지만 비동기 방식인 netty를 사용하면 spring Webflux학습이 따로 필요해서 일단 srping mvc로 구현하기로 했습니다.
- RestTemplate은 동기적인 방식으로 요청을 처리하고, WebClient는 비동기 및 반응형 방식으로 요청을 처리하며, OpenFeign은 선언적 방식으로 RESTful 서비스 간의 통신을 단순화하여 구현합니다. OpenFeign의 경우 msa관점안에서 많이 구현해놓은 라이브러리라 OpenFeign을 사용하기로 했습니다.
- 이번 주 겪은 트러블 슈팅이 있다면 무엇인가요?
- 문제와 원인은 무엇이었나요?
- 해당 문제를 해결하기 위해 어떤 고민과 시도가 있었나요?
- 어떤 방법으로 트러블 슈팅을 해결했나요?
- 이번 주 진행된 개인 프로젝트에서 얻은 인사이트는 무엇인가요?
- MA를 MSA로 전환하면서 새로운 기술들을 배우고 적용하는 과정에서 많은 인사이트를 얻었습니다.
항해 개발자 취업 리부트 코스를 수강하고 작성한 콘텐츠 입니다.
https://hanghae99.spartacodingclub.kr/reboot