써드파티(3rd-party) 라이브러리
우리 회사가 개발하는 어플리케이션에서 외부 거래소의 API를 사용해야 하는 상황이다.
당연히 Documentation을 읽고 코드를 짜면 그만이다,
스프링 클라우드, 마이크로서비스를 적용한 김에, 어떻게 적용을 해야 좀 더 좋은 설계인지에 대해 고민해봤다.
- 외부 라이브러리와의 낮은 결합도
- 외부 라이브러리 코드를 직접 어플리캐이션에 넣어버리면 버전의 영향에 직격탄을 맞을 것이다. UI, crypto-service 두개의 프로젝트를 만들어서 UI에서는 crypto-service를 호출하고, crypto-service에서 외부 라이브러리를 사용하는게 좋을 것이다.
- 장점 1) UI에서 테스트코드를 작성하기 편함
- 장점 2) 거래소 API가 변경되었을 때 crypto-service만 고쳐주면 된다. 즉, 변경해야 할 곳이 명확해짐. - Reactive 마이크로서비스로 개발?
- 먼저 Reactive 마이크로서비스를 적용한 주문 서비스 예제를 살펴보자.
- 주문처리가 성공되었을 때 필요한 서비스들은 각자 독립적이다. 그렇기 때문에, 성공이벤트(Order Created Event)를 받으면, 각자 서비스가 실행되면 된다.
- 장점 1) 주문처리가 성공되고 나서 추가적인 서비스가 필요할 때 그냥 추가만 해주면 된다.
- 장점 2) 각자 서비스가 따로 실행되기 때문에 속도 측면에서의 장점
'기타개발' 카테고리의 다른 글
비대칭 키와 SSL 인증방식 그리고 handshake (0) | 2018.11.02 |
---|