얼마 전에 서버리스에 대해서 포스트했습니다.

 

ServerLess 서버리스… 직역하면 서버의 부재. 서버 없이 서버 역할.

굉장히 표면적인 이야기만 진행 하였는데, 그게 한참 얕은 생각 이었음을 깨닫게 되었습니다.

실제로 서버리스를 구성 하던 도중 저의 뇌를 두들기던 한 단어가 있었으니…

 

Micro  Service 마이크로 서비스.

 

네. 서버리스의 진면모는 서버를 사용하지 않음이 아니라, 오히려 마이크로 서비스의 구현화된 모습이 서버리스인 셈입니다.

 

마이크로 서비스?

마이크로 서비스는 하나의 작은 단위의 프로세스를 만들어서 사용 한다는 의미입니다.

가령 제품 리스트를 나타낸다고 치죠.

그럼 제품리스트 하나만 사용 하는 함수를 만드는 겁니다.

그리고 그것만 실행하는 작은 단위의 서버를 구성 하는 것이죠.

 

음? 서버를 만들고 페이지를 만들고 함수를 넣어서 호출 하는 거랑 뭐가 달라?

 

다릅니다.

 

예를 들어보죠.

가장 흔한 상황은 바로 서버 이원화 입니다.

 

테스트 서버에 api 함수를 하나 만들었습니다.

이번에는 해당 함수를 실제 서버로 올려야 합니다.

그런데 테스트서버와 실제 서버는 사용하는 데이터베이스가 다릅니다.

 

보통 이런경우 이런저런 조건을 걸고 자동으로 테스트 서버와 실제서버를 스위칭 해서 접근 하게 만듭니다.

 

뭐 좋아요. 근데 이번엔 동일한 기능인데 아예 다른 서버에 접속 해야합니다.

db 테이블명이 다른게 아니라 다른 접속이에요!

 

최근엔 프레임워크를 넣고 작업 하는게 흔하다 보니, 이럴려면 좀더 복잡한 설정이 들어가야합니다.

.htaccess 으로 구분을 지어 준다든지, 가상 서버를 돌린다든지 라우터를 설정 한다든지.

아무튼 복잡합니다.

 

그런데 마이크로 서비스 이잖아요?

동일한 함수에 주소만 다르게 해서 소스 압축하고 배포 하면 됩니다.

 

아파치 설정이고 뭐고 다 필요없고 db 접속 정보랑 해당 요청 함수만 넣고 배포하면

요청 api 주소가 띵! 하고 나옵니다.

 

 

“이거 비슷한데 다르게 취급 하는게 필요한데…”

 

이런 요상한 요청 한두번쯤은 받아 봤을겁니다.

같은 건데 상품 가격만 다른게 라든지.

 

그럴때 그냥 고민 하지 말고 마이크로 서비스 하나 따서 요청 타입만 바꾸면 끝입니다.

 

대신 이 마이크로 서비스는 심플 하면서도 다재다능 해야 합니다.

그리고 코어가 변화해서는 안됩니다.

하나 바꾸기 시작하면 연계로 모든 마이크로 서비스를 변경하면 안된다는 말입니다.

오직 심플하고 전처후무한 서비스를 만들어서 계속 응용해서 사용 하는게 중요합니다.

 

서버리스? 아니요. 마이크로 서비스 입니다.

severless? no! Micro Service!

답글 남기기