본문 바로가기

기타개발

써드파티 라이브러리를 적용하면서

써드파티(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) 각자 서비스가 따로 실행되기 때문에 속도 측면에서의 장점