top of page

API 와 마이크로서비스 (Microservices) 의 다른 점은?

개발자로서 일을 하다 보면 API와 마이크로서비스 (Microservice)라는 단어를 접하게 되는 경우가 생기게 됩니다. 많은 사람들이 이 두 단어를 같이 사용을 하는 걸 볼 수 있는데요, 사실 이 두 단어는 다른 기술입니다. 설계구조가 다르게 되어있고 쓰는 경우도 다르죠. 이 부분에 대해서 좀 더 알아보겠습니다.



 

API 란?


API (Application Programming Interface)는 두 개의 애플리케이션이 서로 데이터 통신을 하게 도와줍니다. API는 인터페이스를 만들어서 프로그램들이 접속과 데이터를 공유할 수 있도록 하죠. 이는 HTTP 같은 인터넷 프로토콜을 이용하여 백엔드 데이터를 액세스 할 수 있도록 설계가 되어 있습니다. 아래의 예제는 간단한 API의 설계 구조를 보여드리고 있습니다.


image
간단한 API 구조
 

API를 쓰는 이유는?


API는 여러 방면의 애플리케이션에 많이 쓰이고 있습니다. 많이 쓰이는 이유는 기존의 소프트웨어에 필요한 데이터 통신코드가 반복이 되어서 만들어지는 것을 줄일 수가 있기 때문이죠. 예를 들어서 트위터의 API를 이용하여 트위터 피드를 프로그램에 첨가할 수 있습니다. 또는 날씨 API를 이용하여 개발하는 애플리케이션에 기상정보를 첨가시킬 수도 있죠. 이들의 API를 이용함으로써 새로운 API를 만들 필요가 없을뿐더러 개발 시간도 단축이 됩니다. 그리고 API를 이용하여 불러오는 데이터를 우리의 니즈에 따라 데이터 변형도 할 수 있는 이점이 있습니다.


그래서 API를 이용하는 애플리케이션은 모든 부분을 자체적으로 만든 애플리케이션에 비해 변화에 유연적이게 됩니다. 그러므로 더 많은 유저들을 유입할 수 있죠.


간단하게 한마디로 말하면 API는 데이터 액세스와 통신 역할의 모듈이라고 생각하시면 됩니다.

 

마이크로서비스 (Microservice) 란?


마이크로서비스는 하나의 큰 애플리케이션 안의 한 구성원 애플리케이션입니다. 요즘 개발은 거의 다 이런 식으로 만들어지고 있죠. 거대한 (monolithic) 애플리케이션 구조에서 여러 구성원이 하나의 애플리케이션이 되는 식으로 개발 방식이 변하였습니다. 각 구성원이 API를 이용하여 자기 임무를 완수하는 것이죠. 구성원들은 각자 다른 임무를 맡고 있습니다. 아래는 간단한 예제입니다. Application 2 에는 여러 가지 마이크로서비스가 구성되어 있고 각자 API를 이용하여 구동이 되죠. 그 마이크로서비스들이 하나의 큰 애플리케이션이 됩니다.


image
마이크로서비스
 

마이크로서비스 (Microservice)를 이용하는 이유는?


마이크로서비스가 존재하기 전에는 모든 애플리케이션이 하나의 거대한 구조로 되어 있었습니다. 만약에 하나의 기능이 오류가 나서 다운이 된다면 애플리케이션 전체가 다운이 되죠. 그리고 수정을 하거나 확장을 하는 것이 아주 어렵습니다. 이런 이유로 마이크로서비스는 아주 큰 이점이 있습니다. 스케일이 작은 구성원들로 만들어진 애플리케이션은 수정이나 확장은 작은 마이크로서비스를 업데이트하는 방식으로 쉽게 되죠. 그리고 각기 다른 마이크로서비스를 개발할 수 있으므로, 개발자들 간의 협업이 가능하게 만들어 줍니다. 그리고 새로 영입된 개발자는 전체적인 애플리케이션을 이해를 못 하여도 마이크로서비스의 개발이 가능하죠. 게다가 하나의 마이크로서비스가 다운이 된다 하여도 전체 애플리케이션이 다운되는 문제점도 없어지게 됩니다. 마이크로서비스를 이용하여 개발과 확장의 유연성이 생기게 되는 거죠

 

위의 글을 통하여 다른 점을 아셨겠지만 다시 한번 요약을 하겠습니다. API는 데이터 통신과 액세스용도의 모듈 (완전한 애플리케이션과는 동떨어진 점으로 모듈이라고 씀)이라고 할 수 있고, 마이크로서비스는 API를 이용하는 큰 완전체 애플리케이션 속의 하나의 작은 구성원 애플리케이션입니다. 그러므로 API와 마이크로서비스는 다른 의미이죠.

pngegg (11)_result.webp

<Raank:랑크 /> 구독 하기 : Subscribe

감사합니다! : Thanks for submitting!

bottom of page