티스토리 뷰

반응형

이번 글에서는 Line 에서 주로 사용하는 Armenia 에 대해 알아보고 그 장점에 대해 알아보려 합니다. 제가 참조한 글은 아래 링크에 있고, 제가 사용해본 경험은 없지만 상당히 흥미로운 기술인것 같아요!

https://engineering.linecorp.com/ko/blog/hello-armeria-bye-spring

 

LINE 개발자들이 Spring 대신 Armeria를 사용하는 이유

2022-LINE-engineering-site

engineering.linecorp.com


Armenia 의 장점 요약

본격적으로 위의 글을 참조해서 간단히 정리하자면 Armenia 는 Spring MVC에서 제공하는 쓰레드풀방식의 사용을 더 원활하게 사용하는 논블로킹 방식으로 운영하는 비동기방식입니다. JVM 환경에서 작동하는 Java 코드를 그대로 이용할 수 있고, 비동기방식으로 리액티브한 방식으로 작동하기 때문에 전용 스레드가 하나씩 필요하지 않고, 유휴 쓰레드가 대기 상태로 유지되고 있는 방식이 아닌 다른 일을 수행할 수 있는 방법입니다. 

 

Armenia 를 사용해서 얻은 이익

  1. OOM 방지 - Armenia는 주로 리액티브 방식을 사용하기 때문에 청크형태로 클라이언트에 전달하게 됩니다. 이렇게 되면 자연스럽게 메모리부족 현상이 방지됩니다. 
  2. 지연시간 감소 - 기존 Spring 을 사용할 때는 최대 0.9초인 반면 Armenia로 전환 후 최대 0.7초로 약 25%의 효과가 있다고 합니다.
  3. 코드 성능 개선 - Spring MVC를 사용했을 때 보다도 더 간단하고 짧은 코드를 사용한다고 합니다. 
  4. 스트리밍 서비스에서 더 효과적 - 라인 시스템은 주로 영상이라던지 미디어 파일을 주로 다루는데 리소스 소모를 많이 한다고 합니다. 영상이 문제가 없는지 체크하기 위해 서버의 리소스를 주로 사용하는데, 이런 미디어 컨텐츠들의 이동이 잦으면 스트리밍이 유리합니다.

 

사실 Armenia를 안쓰는 이유는 거의 없는 것 같네요. 실무에 직접 적용해볼만한 시스템을 갖춘 회사이면 한 번 도입해보는 것도 정말 좋을 방법인 것 같습니다. 아래의 영상은 실제 라인 개발자분들이 도입하며 만들어주신 영상입니다. 

 

 

반응형
댓글
공지사항