네트워크 엔지니어를 위한 API 혁신: 기술 동향과 핵심 역량
네트워크 엔지니어로서 네트워크와 직업 목표와 관련된 기술 동향에도 주시해야 합니다. 여기서 애플리케이션 인터페이스(API)가 등장합니다. API 는 자동화와 여러 데이터 저장소로부터의 신속한 정보 제공을 통해 업무를 보다 쉽게 만들어주는 것으로 알려져 있습니다. API 는 네트워크 엔지니어들이 일상적인 관리부터 네트워크 아키텍처 결정까지 업무를 생각하는 방식을 바꾸고 있습니다. 이미 바쁜 일정으로 인해 시간이 부족한 상태에서 이러한 기술을 배우는 데에는 어디서부터 시작해야 할까요?
만약 20년 이상 기업 네트워크를 구축하고 유지하는 데 시간을 보낸 분이라면, 제가 말하려는 내용은 놀라우리라고 생각합니다. 네트워크 엔지니어로서 할당받는 작업들은 정말 어렵게 만들 수 있습니다. 프로젝트와 팀 미팅에 참석해야 하고, 글로벌 네트워크를 지원해야 하며, 라우터와 스위치를 구성해야 합니다. 그만큼의 “공급업체 중립(vendor-neutral)” 환경과 그들만의 세세한 특징과 Command Line Interface(CLI)도 있죠. 이는 전문적인 시간을 필요로 하는 일이며, 인프라의 안정성에 따라서는 근무 시간 이후와 주말에도 시간을 할애해야 할 수도 있습니다.
목차
1. 프로그래밍 언어
2. API 호출하기 위해 패킷을 사용하지 마십시오
3. 어딘가에서 시작해야 합니다
1. 프로그래밍 언어
API 는 본질적으로 애플리케이션이 서로 통신하는 방법입니다. 안드로이드 폰의 날씨 앱을 확인하거나 테이블의 터치 스크린을 사용하여 저녁 식사 주문을 하는 등 간단한 작업에서부터, 소프트웨어에 의해 주도되는 상호작용은 API 호출을 사용합니다. 네트워크 분야에서는 아마도 SOAP, RPC, REST(또는 RESTful) API 에 대해 들어보았을 것입니다. 따라서 개념 자체는 새로운 것이 아닐 것입니다. 다만, 이제는 API 에 대해 생각하는 방식이 달라져야 합니다.
네트워크 엔지니어로서 API 프로시저를 반드시 작성할 필요는 없습니다. (단, NetDevOps 역할에 종사하는 경우는 제외합니다.) 하지만 API 가 어떻게 동작하고, API 호출이 왜 중요한지를 이해하는 것은 필수입니다. 네트워크 엔지니어의 역할은 애플리케이션 접근을 제공하고 데이터를 최적의 방법으로 전 세계로 이동시키는 것입니다. 이는 특히 실시간 API 를 다룰 때 더욱 중요해집니다.
이름에서 알 수 있듯이, API 가 호출되면 백엔드에서 여러 플랫폼으로부터 데이터를 가져와서 응답을 밀리초(ms) 내에 배포해야 합니다. 매우 익숙한 예시는 라이드 쉐어링 애플리케이션입니다. 동적으로 생성된 지도, 교통 체증 정보, 운전자와 승객 정보, 현재 위치의 실시간 추적 등 모든 이동 요소들 사이의 복잡한 상호작용을 고려할 때, 시스템이 이렇게 잘 작동한다는 사실에 놀라게 될 수 있습니다. 이 모든 것은 실시간 API 호출에 의해 지원되며, 이러한 API 호출이 최종 사용자의 기대를 충족하는 데에 매우 중요합니다. 이러한 API 호출 없이는 운전자와 승객이 서로 마주치지 못하고 같은 블록에 있음에도 불구하고 서로를 놓칠 수 있습니다.
2. API 호출하기 위해 패킷을 사용하지 마십시오
이러한 유형의 애플리케이션 기능을 사용하여 얼마나 복잡하고 엄격하게 제어되는 네트워크 서비스가 필요한지 고려하십시오. 인터넷 및 회사 네트워크 경로를 포함한 네트워크 전체의 대기 시간이 점점 더 중요해지고 있습니다. 네트워크 엔지니어와 설계자는 API 가 즉시 처리되고 배포될 수 있도록 지연 및 수렴 시간을 최소화하도록 data 및 control plane을 설계해야 합니다.
NGINXSTORE는 블로그에 API 통합의 어려움에 대해 잘 정리된 글을 제공했습니다. 실시간 데이터 검색에 대한 비즈니스 요구에 따라서, API 호출 처리 시간이 50-60ms로도 충분할 수 있지만, 애플리케이션이 40ms를 필요로 한다면 어떻게 요구 사항을 충족시킬 수 있을까요? 이러한 요구 사항을 충족하기 위해 네트워크 엔지니어로서 해야 할 도전은 (a) 비즈니스 부서와 협력하여 애플리케이션 시스템, 놓치기 쉬운 API 를 포함한 지연 시간 요구 사항을 파악하고, (b) 해당 데이터를 반복 가능하고 지원 가능하며 모니터링 가능한 방식으로 최대한 빠르게 이동시키는 것입니다.
이는 API controller와 Gateway와 같은 기술에 익숙해져야만 API 가 어떻게 동작하는지 파악할 수 있다는 뜻입니다. 컨트롤러는 API 인프라의 다양한 구성 요소를 보안, 분석, 보고 등을 통해 관리합니다. API Gateway를 활용하여 컨트롤러는 프로그래밍 방식의 호출을 온프레미스 데이터 센터부터 멀티 클라우드 가용 영역까지 다양한 시설로 이동시킬 수 있습니다.
만약 API를 사용하는 비즈니스 애플리케이션을 개발하기 시작하는 환경에서 일하고, 이 기술에 익숙하지 않다면, 지금 배우기 시작할 때입니다. 그러나 어디서부터 배우고 이미 바쁜 일정에서 시간을 절약하는 방법은 무엇일까요?
3. 어딘가에서 시작해야 합니다
API를 사용해 본 적이 없다면, 일단 손으로 직접 실험을 시작해보세요. 현대적인 네트워크 업체들은 프로그래밍적으로 데이터를 가져오고 전송할 수 있는 인터페이스를 포함하고 있습니다. Postman과 같은 도구를 사용하여 비즈니스 부서에 지원하는 기술을 직접 경험하면서 배워보세요. 프로덕션 데이터베이스에 PUT 호출을 하는 것은 권하지 않지만, GET 호출을 통해 기대하는 값이 반환될 때 성취감을 느낄 수 있습니다. 더 나아가서, “이력서 작성” 이벤트에 연루되는 것을 피하고 싶다면 랩 환경에서 시스템을 모의 구축해보는 것도 좋습니다.
다음으로는, 개발자들의 언어에 깊이 몰두해보세요. 꼭 Python을 배워야 하는 것은 아니지만, 일반적인 언어들에서 사용되는 용어들을 배우는 것이 중요합니다. 외국 여행을 가기 전에 해당 나라의 언어를 배우는 것과 마찬가지로, 이렇게 하면 숙련자들과 원활하게 소통할 수 있게 됩니다. 질문을 하고 동료들에게 자신이 자신의 일을 더 잘하기 위해 그들의 일을 이해하려는 의지를 보일 수 있을 것입니다.
마지막으로, 해당 주제에 대해 가능한 모든 공급업체의 문서를 읽어보세요. 모든 기업이 어느 정도의 수준으로 “하이테크”로 전환되고 있다는 사실이 잘 알려져 있습니다. 예전에는 분개된 항목이었던 것이 이제는 증가하는 사용자 요구를 충족하기 위해 지속적으로 발전하는 시스템, 네트워크, 그리고 애플리케이션들을 필요로 합니다. 공급업체의 논문들은 여러분에게 개념을 소개하고 적절한 배치에 대한 이해를 제공할 수 있으며, 준비되었을 때 고급 기술로 진출하는데 도움이 될 수 있습니다. 이는 반 정도 무료 교육이라고 생각할 수 있습니다. 이것은 OEM(원자재 프로덕션 업체)이 고객이 제품을 이해하길 원하기 때문에 무료지만, 시간과 학습 의지가 필요하기 때문에 완전히 무료는 아닙니다.
이 글의 앞부분에서 시간 제약에 대해 언급했습니다. 네트워크 엔지니어뿐만 아니라 IT 운영 전반에 걸친 거대한 압박은 당장 해결되기 어려운 실제적인 문제입니다. 모든 사람들이 뭔가를 하기에는 시간이 없다고 불평하기 쉽습니다. 과거에 저도 “쳇, 이미 오피스에서 하루 종일 일했는데 지금 또 다른 컴퓨터나 컴퓨터 관련 책을 보기 좋은 상태는 아니야”라는 핑계를 사용했던 적이 있습니다. 하지만 시각을 바꿔서, 핑계들이 포기하라고 소리쳐도 학습에 투자할 시간을 확보하는 것이 중요합니다. 시간과 노력을 투자하여 초기에 열심히 배워두면, 이해를 통해 부담을 줄일 수 있고, 나중에는 몇 가지 스크립트를 사용하여 더 가벼운 작업을 할 수 있을 것입니다.
이 포스트는 API와 앱 모던화의 다른 트렌드에 관한 시리즈의 일부로, 업계 전문가들에 의해 특별히 NetOps 엔지니어를 위해 작성되고 Gestalt IT와의 협력으로 발행되었습니다.
NGINX Plus를 직접 사용해 보시려면 30일 무료 평가판을 신청하거나 NGINX STORE에 연락하여 문의하십시오.
아래 뉴스레터를 구독하고 NGINX의 최신 정보들을 빠르게 전달받아보세요.