필요할 때만 부르는 해결사 (Lambda)

문과생 성시은의 AWS 정복기

by 해내는 남자 민짱

RDS 도입이라는 심장 이식 수술을 성공적으로 마친 ‘이노베이트’의 사무실은 완전히 다른 곳이 되어 있었다.


공기부터가 달랐다. 이전에는 언제 터질지 모르는 시한폭탄 옆에서 일하는 듯한 초조함과 피로가 안개처럼 깔려 있었다면, 이제는 잘 정비된 시스템 위에서 미래를 설계하는 건축가들의 고요한 자신감이 그 자리를 채웠다.


특히 박서준의 변화가 가장 컸다. 그는 더 이상 새벽에 데이터베이스 알람을 받고 좀비처럼 깨어나는 일이 없었다. 백업과 패치, 성능 튜닝에 대한 걱정에서 완전히 해방된 그는, 지난 1년간 쌓아온 기술 부채라는 괴물을 사냥하는 전사가 되어 있었다.


그는 묵묵히, 하지만 즐겁게 기존 코드들을 리팩토링하며 시스템의 기초를 다졌다. 그의 키보드 소리는 더 이상 다급한 ‘타다다닥’이 아닌, 신중하고 리드미컬한 ‘도도독’ 소리를 냈다.


이철민은 그런 그를 존중하며, 자신의 넘치는 에너지를 새로운 기술을 탐구하고 프로토타입을 만드는 데 쏟아부었다.

그는 더 이상 ‘일단 되게만 하자’고 외치지 않았다. 대신 “형, 이 부분에 이런 패턴을 적용하면 나중에 확장하기 더 좋지 않을까요?”라며 박서준에게 먼저 의견을 구했다. 두 사람의 시너지는 폭발적이었다.


하지만 시장은 그들의 내실 다지기를 기다려주지 않았다. ‘알고리듬’의 AI 트렌드 예측 기능은 업계의 표준처럼 여겨지기 시작했고, ‘이노베이트’의 고객 이탈은 서서히, 하지만 분명하게 현실이 되고 있었다. 대시보드의 접속자 수는 정체되었고, 신규 가입자 그래프는 우상향을 멈추고 지루한 횡보를 시작했다.


“엔진을 바꿨으니, 이제 저 스포츠카를 따라잡아야죠.”


월요일 아침, 회의를 소집한 성시은이 단호하게 말했다. 그녀의 목소리에는 주말 내내 고민한 흔적이 역력했다. “우리도 AI 예측 기능을 만듭시다. ‘알고리듬’처럼 단순히 데이터를 보여주는 게 아니라, 우리만의 방식으로요. 더 깊이 있고, 더 인간적인 방식으로.”


회의실의 공기가 순간 무거워졌다. 박서준이 현실적인 문제를 제기했다.


“대표님, 마음은 알겠습니다. 하지만… 데이터 분석 시스템을 새로 구축하려면… RDS를 도입해서 DB 운영 부담이 줄었다고 해도, 이건 완전히 다른 차원의 문제입니다. 데이터를 모으는 파이프라인부터 새로 짜야 하고, 분석용 서버도 따로 구성해야 합니다. 최소… 두세 달은 꼬박 걸릴 겁니다.”


“두세 달이라….” 시은의 얼굴에 다시 그늘이 졌다. “그때가 되면 우린 이미 시장에서 잊혔을지도 몰라요. ‘행복한 동행’도 그때까지 기다려주지 않을 거고요.”


바로 그때, 화상 회의에 조용히 참여하고 있던 안민준이 입을 열었다. 그는 지난 주말의 사투를 모두 지켜봤다는 듯, 평온한 목소리로 물었다.


“성 대표님, 혹시 급하게 A4 용지 한 장만 복사하면 되는데, 사무실에 수천만 원짜리 대형 복사기를 새로 사실 겁니까?”


“아니요?” 시은은 영문을 몰라 되물었다. “그럴 리가요. 그냥 건물 1층에 있는 복사 가게에 가서 100원 내고 한 장만 복사하고 오겠죠.”


“바로 그겁니다.” 민준이 화면 너머에서 희미하게 웃었다. “지금 ‘알고리듬’은 ‘콘텐츠 예측’이라는 작업을 위해 ‘대형 복사기(고성능 서버)’를 여러 대 사서 사무실에 두고 24시간 켜놓고 있는 겁니다. 당연히 전기세도 많이 나오고, 토너 관리하고 종이 채워 넣을 직원도 따로 필요하죠. 하지만 우리는 어떻습니까? 우리는 딱 ‘복사 한 장(예측 한번)’이 필요할 때만, 잠깐 1층 복사 가게에 다녀오면 됩니다. 돈은? 딱 복사한 한 장 값, 100원만 내면 되고요.”


그가 화면에 새로운 키워드를 띄웠다. Lambda (λ).


“서버리스(Serverless) 컴퓨팅…!”


이철민의 눈이 별처럼 빛났다. 그는 이미 이 개념에 대해 알고 있었다. 하지만 그것이 지금 자신들의 문제에 대한 해답이 될 수 있다는 생각은 미처 하지 못했다.


“서버가 없다는 뜻이 아니라, 우리가 서버를 소유하거나 관리할 필요가 없다는 개념이죠. 그냥 코드만 올려놓으면, 특정 이벤트가 발생할 때만 코드가 마법처럼 실행되고, 실행된 시간만큼만, 100밀리초 단위로 비용을 내는…!”


“맞습니다.” 민준이 말을 이었다. “마치 필요할 때만 부르는 ‘우버’ 같은 거죠. 단 한 번 강남역에 가자고 자동차를 살 필요는 없잖아요? 필요할 때 앱으로 우버를 부르고, 목적지에 도착하면 내리고, 딱 그 요금만 내면 끝입니다. 보험료, 자동차세, 주차비 걱정은 우버 회사가 알아서 하겠죠.”


박서준의 머릿속에서, 두세 달이 걸린다던 복잡한 아키텍처가 눈 녹듯 단순하게 재구성되기 시작했다.


‘사용자가 예측 버튼을 누른다(이벤트 발생) -> 람다가 실행된다 -> S3에 저장된 데이터를 읽어와 분석하고 예측 결과를 만든다 -> 결과를 사용자에게 보여준다.’


이 모든 과정에 24시간 켜져 있어야 하는 EC2 서버는 단 한 대도 필요 없었다. 관리할 서버가 없으니, 보안 패치를 하거나, 장애가 날까 봐 걱정할 필요도 없었다. 구축하는 데 걸리는 시간도 획기적으로 줄어들 터였다.


“그런데… 사용자가 어떻게 그 우버를 부르죠? 전화번호 같은 게 있어야 하잖아요?” 시은이 핵심을 찔렀다.


“물론입니다.” 민준이 도식에 새로운 아이콘을 추가했다.


“그래서 우리에겐 ‘우버 호출 앱’이 필요합니다. 사용자가 ‘예측해주세요’라는 버튼을 누르면, 그 요청을 받아서 가장 가까운 람다라는 우버 기사에게 전달해주는 역할이죠. 그게 바로 ‘API 게이트웨이(API Gateway)’입니다. 람다라는 해결사를 부를 수 있는 유일한 공식 창구죠.”


“이거… 되겠는데요?”


박서준이 흥분된 목소리로 말했다. 그의 눈에는 더 이상 비관이 아닌, 새로운 가능성에 대한 희열이 가득했다.


“서버 구성하고, 운영체제 설치하고, 네트워크 설정하는 데 드는 시간을 전부 아낄 수 있습니다. 오직 예측 로직 개발에만 집중하면 되니까… 대표님, 일주일이면… 아니, 닷새면 프로토타입을 만들 수 있겠습니다.”


닷새. 6개월이 걸릴 거라던 작업이, 단 닷새로 줄어들었다. 이것은 단순한 속도의 차이가 아니었다. 사고방식의 전환, 패러다임의 변화였다. 인프라를 ‘소유’하는 시대에서 ‘소비’하는 시대로의 완전한 전환이었다.


그날부터 ‘이노베이트’는 ‘프로젝트 피닉스’라는 이름의 비밀 작전에 돌입했다. 박서준은 안정적이고 정확한 예측 알고리즘을 설계했고, 이철민은 그 알고리즘을 번개 같은 속도로 람다 함수로 구현해냈다. 두 사람은 처음으로 완벽한 한 팀이 되어 움직였다. 서준이 꼼꼼하게 설계도를 그리면, 철민이 그 위에서 화려한 묘기를 부렸다.


시은은 그들의 옆에서 ‘알고리듬’과는 다른, ‘이노베이트’만의 가치를 불어넣는 작업에 몰두했다. 그녀는 밤새워 경쟁사 분석 보고서를 읽고, 고객들의 피드백을 다시 훑어보았다.


“‘알고리듬’은 ‘어떤 키워드가 뜰 것이다’라는 차가운 사실(Fact)만 알려줘요. 하지만 사람의 마음을 움직이는 건 사실이 아니라 감성(Emotion)이에요. 우리는 ‘사람들이 왜 그 키워드에 열광하는지’, 그 안에 담긴 ‘기쁨, 슬픔, 분노, 기대’ 같은 감성까지 분석해서 보여줍시다. 그게 바로 우리가 할 수 있는 ‘인간적인’ 분석 아닐까요?”


닷새 뒤, ‘커넥트-AI’에는 ‘AI 감성 트렌드’라는 새로운 기능이 조용히 추가되었다. 그리고 시은은 ‘행복한 동행’의 담당 팀장에게 직접 전화를 걸어, 딱 10분만 시간을 내어달라고 간절하게 부탁했다.


화상 회의 화면 너머로 보이는 담당자의 표정은 여전히 차가웠다. 시은은 떨리지 않았다. 그녀는 ‘알고리듬’의 분석 화면과 자신들의 분석 화면을 나란히 띄워 보여주었다.


“팀장님, ‘알고리듬’은 다음 주에 ‘레트로’가 유행할 거라고 말합니다. 맞는 말입니다. 저희 데이터도 똑같이 말하고 있습니다. 하지만 저희는 한 걸음 더 들어갑니다.”


그녀는 마우스를 움직여 ‘이노베이트’의 분석 화면을 가리켰다.


“사람들이 ‘레트로’에 열광하는 이유는, 단순히 과거의 유행이 돌아와서가 아니라, ‘불확실한 미래에 대한 불안감 속에서, 안정감을 주었던 과거를 그리워하는 긍정적 감성’이 87%를 차지하기 때문이라고 분석합니다. 그렇다면 팀장님은 다음 후원 캠페인 문구를 ‘레트로 감성으로 추억을 되살리세요’라고 하시겠습니까, 아니면 ‘그 시절, 우리에게 힘이 되었던 따뜻한 마음을 다시 한번’이라고 하시겠습니까?”


화면 너머 담당자의 눈이 커지는 것이 보였다. 그의 입이 천천히 열렸다. “…후자입니다. 당연히.”


그날 오후, ‘이노베이트’의 사무실은 RDS 마이그레이션 성공 때와는 또 다른 종류의 축제 분위기에 휩싸였다. ‘행복한 동행’이 계약을 유지하기로 결정했을 뿐만 아니라, 새로운 ‘AI 감성 트렌드’ 기능에 대한 추가 컨설팅 계약까지 제안해온 것이다.


이철민과 박서준은 서로의 어깨를 얼싸안고 환호했다. 성시은은 조용히 슬랙을 열어 안민준에게 메시지를 보냈다.


[성시은] : 민준 님, 저희… 복사 한 장 아주 멋지게 하고 왔습니다.


잠시 후, 답장이 왔다.


[안민준] : 잘하셨습니다. 이제 사람들이 대표님 가게에 복사하러 줄을 서겠군요. 그 복사기(람다)가 사실은, 주인이 잠든 사이에도 수백, 수천 장을 동시에 복사할 수 있는 마법의 기계라는 건… 아직 모르시겠지만요.

시은은 그의 메시지를 보며 미소 지었다. 그녀는 이제 더 이상 구름이 두렵지 않았다. 구름은 그녀에게 무한한 가능성을 열어주는, 가장 강력하고 짜릿한 무기였다.


▶ 10화 기술 TIP

서버리스 컴퓨팅 (Serverless Computing): 개발자가 서버를 직접 프로비저닝하거나 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 컴퓨팅 모델입니다. 서버가 ‘없는(less)’ 것이 아니라, 서버 관리에 대한 걱정이 ‘없는’ 것에 가깝습니다. 클라우드 제공업체가 알아서 인프라를 관리하고, 코드가 실행될 때만 자원을 할당하고 비용을 부과합니다.


Lambda: AWS의 대표적인 서버리스 컴퓨팅 서비스입니다. 특정 이벤트에 대한 응답으로 코드를 실행할 수 있습니다. EC2처럼 24시간 켜져 있는 서버와 달리, 람다는 호출될 때만 실행되고 실행이 끝나면 사라집니다. 실행 시간(밀리초 단위)과 호출 횟수에 대해서만 비용을 지불하므로, 트래픽이 불규칙하거나 간헐적인 작업(예: 이미지 리사이징, 데이터 분석, 챗봇 응답 등)에 매우 비용 효율적입니다.


서버리스의 장점: 비용 효율성: 코드가 실행되지 않을 때는 비용이 발생하지 않습니다.

관리 부담 제로: 서버, 운영체제, 보안 패치 등 인프라 관리에 전혀 신경 쓸 필요가 없습니다.

엄청난 확장성: AWS가 트래픽 양에 따라 자동으로 람다 실행 환경을 수평으로 확장하거나 축소합니다. 수천 개의 요청이 동시에 들어와도 알아서 병렬로 처리합니다.

빠른 개발 및 배포: 개발자는 인프라 구성 대신 비즈니스 로직(코드) 개발에만 집중할 수 있어, 새로운 기능을 매우 빠르게 시장에 출시할 수 있습니다.


API Gateway: 개발자가 API를 손쉽게 생성, 게시, 유지 관리, 모니터링 및 보호할 수 있게 해주는 완전 관리형 서비스입니다. 람다 함수를 외부에서 호출할 수 있는 HTTP 엔드포인트(URL 주소)를 만들어주는 ‘공식 창구’ 또는 ‘전화기’ 역할을 합니다. API Gateway는 트래픽 관리, CORS 지원, 권한 부여 및 액세스 제어, 모니터링, API 버전 관리 등 수많은 부가 기능을 제공합니다.


이벤트 기반 아키텍처 (Event-Driven Architecture): 람다와 같은 서버리스 서비스는 이벤트 기반 아키텍처의 핵심 구성 요소입니다. ‘어떤 일이 발생하면(이벤트) -> 이 작업을 수행하라(함수)’는 방식으로 시스템이 작동하여, 구성 요소 간의 결합도를 낮추고 유연하고 확장성 있는 시스템을 구축할 수 있습니다.

월, 수, 금 연재