Offcanvas

How To / 개발자 / 모바일 / 애플리케이션 / 클라우드

클라우드에서 애플리케이션을 개발할 때 고려할 10가지 원칙

2024.03.28 Bob Violino   |  InfoWorld
클라우드에서 소프트웨어를 개발하면 유연성과 안정성 향상, 효율성 증대, 비용 절감 등의 이점을 적극 활용할 수 있다. 그러나 문제도 많다. 애플리케이션과 개발에 드는 노력을 보호하려면 어떤 점을 주의해야 할지를 파악하는 것이 첫 번째 단계다. 클라우드 개발 전에 고려해야 할 10가지 함정을 차례대로 살펴보자.
 

성능 및 지연 시간

클라우드 서비스는 가용성과 성능 면에서 보통은 안정적이지만, 서비스 중단이나 성능 문제가 발생하면 개발 작업이 악영향을 받기 마련이다.

엔드포인트 보안 기업 태니엄 CIO인 에릭 가스톤은 “안타깝게도 클라우드 애플리케이션은 네트워크 혼잡, 멀티 테넌트 환경의 공유 자원, 사용자와 클라우드 데이터센터 간 지리적 거리 등으로 성능 문제를 겪는 경우가 많다. 이 문제를 해결하려면 개발자는 애플리케이션 코드 최적화 여부를 확인하고, CDN으로 최종 사용자에게 더 가까운 곳에 콘텐츠를 캐시해야 한다”라고 말했다.

성능을 개선하는 다른 방법으로는 엣지 컴퓨팅처럼 지연 시간이 짧은 클라우드 컴퓨팅 서비스에 가입하는 것도 있다. 가스톤은 “어떤 방법을 택하든 클라우드에서의 애플리케이션 성능은 설계와 구축, 그 이상의 의미를 가지며 고려할 요소가 많다”라고 말했다.

SaaS 번역 플랫폼 업체인 로컬라이즐리(Localizely) CTO인 알렉사 크르스틱은 지연 시간을 줄이기 위해 데이터센터나 지역에 분산된 클라우드 서비스 사용을 고려할 수도 있다고 제안했다.
 
ⓒ Getty Images Bank
 

사이버 보안 및 데이터 보호 위협

다른 IT 분야와 마찬가지로 보안 및 데이터 프라이버시는 클라우드 개발 이니셔티브의 주요 관심사다. 특히 공격의 종류와 발생률이 증가하면서 더욱 해결 방법이 까다롭다.

병원과 의사를 환자와 연결하는 미국 의료 플랫폼 클리닉스팟(Clinicspots)의 소프트웨어 개발자 프라샤란 싱은 “클라우드 개발에는 민감한 데이터와 애플리케이션을 무단 액세스와 사이버 위협에서 보호하는 엄격한 보안 프로토콜이 필요하다. 클라우드 서비스의 공유형 온디맨드 특성 때문에 강력한 보안 관행을 유지하는 과정이 더욱 복잡해진다”라고 설명했다.

싱은 보안 위험 완화 방법으로 데이터 암호화, 액세스 제어 메커니즘 구현, 정기적 보안 프로토콜 업데이트가 있다며 “클라우드 서비스 업체를 철저히 조사해 업계 규정을 준수하는지 확인하는 것도 필수 과정”이라고 말했다.

맞춤형 LED 네온 조명과 간판 제조∙소매업체인 커스텀 네온(Custom Neon) CTO 맷 에어드는 클라우드 컴퓨팅의 공유 책임 모델 때문에 “인프라는 클라우드 업체가 보호해도 일반적으로 애플리케이션 수준의 보안을 책임지는 것은 기업”이라고 정의했다. 에어드는 “커스텀 네온은 엄격한 보안 절차를 마련하고 보안 감사를 자주 수행하며 지침과 규정을 준수해 문제를 해결하고 있다”라고 설명했다.
 

공급업체 종속

클라우드는 보통 엄청난 유연성을 제공한다. 그렇다고 개발과 테스트 환경에서도 선택의 폭이 무한하다는 뜻은 아니다.

가스톤은 “특정 공급업체에 종속돼 이탈이나 마이그레이션 시 큰 비용을 각오해야 한다는 것이 가장 큰 우려”라고 짚었다. 가스톤은 “한 업체에 종속되면 많은 문제를 야기하지만, 클라우드에 구애받지 않는 아키텍처를 채택하고 최대한 명확한 표준을 수립하면 도움이 된다”라고 조언했다.

크르스틱은 “적절한 클라우드 추상화 계층을 구현하고 표준화된 인터페이스를 준수하면 공급업체 종속이라는 위험을 완화할 수 있을 것”이라고 덧붙였다.
 

비용 급증

클라우드 서비스에는 비용이 숨겨져 있다. 소프트웨어 개발과 테스트 운영도 마찬가지다.

가스톤은 “클라우드가 처음 등장하자 모두들 확장된 멀티 테넌트 환경이 비용을 절감할 것이라 생각했다. 그러나 시간이 지나자 그렇지 않은 것으로 밝혀졌고, 지금도 그렇다. 계약 내용을 제대로 모니터링하고 관리하지 않는다면 클라우드 비용이 빠르게 통제 불능에 빠질 수 있다”라고 경고했다.

가스톤은 비효율적인 리소스 배포, 잘못된 사용량 예측, 리소스 할당 관리 실패가 모두 계약 초과와 예상치 못한 비용 발생에 직접적인 영향을 미친다며 “개발자는 클라우드 개발 및 운영의 재무적 측면을 잘 이해하고 있어야 한다”라고 조언했다.

모니터링 도구로 자원 사용량을 추적하고, 자동 확장 솔루션을 구현하고, 주기적으로 구성을 검토∙최적화해 비용을 통제하는 것도 여기에 포함된다.

클라우드의 확장성도 비용 관리를 어렵게 하는 주범이다. 에어드는 예상치 못한 사용량이 늘어나면 비용도 치솟을 수 있다며 “필요한 만큼만 사용하고 비용을 지불하려면, 자원 사용을 최적화하고 예상치 못한 활동에는 알람을 설정하고, 평소에도 사용량을 주의 깊게 살펴봐야 한다”라고 말했다.
 

규정 준수 요구 사항

클라우드 인프라의 위치에 따라 클라우드의 데이터가 여러 지역과 국가에 혼재할 수 있다. 클라우드에서 호스팅되는 애플리케이션이 특정한 규정과 법적 요건을 준수하는지를 확인해야 하는 개발자는 규정 준수 문제를 고려해야만 한다.

크르스틱은 “규정 준수 인증이 내장된 클라우드 서비스 업체를 선택하고, 법률 및 규정 준수 전문가와 긴밀히 협력하면 관련 규정을 이해하고 따르는 데 도움이 된다”라고 제안했다.

싱은 클라우드에 저장된 데이터에는 데이터센터가 있는 국가 법률이 적용되기 때문에 데이터 주권 및 현지 규정 준수와 관련한 법적 복잡성이 발생할 가능성이 있다고 지적했다.

싱은 “데이터 관리 정책을 사용하고 공급업체가 관련 규정을 따라야 한다. 하이브리드 또는 멀티 클라우드 전략을 사용하면 데이터 저장 위치를 잘 제어할 수 있다”라고 말했다.

개발팀 역시 규제 변화에 대한 정보를 지속적으로 파악하고 필요한 제어 장치를 마련해야 한다.
 

호환성 및 통합

싱은 클라우드 환경을 위해 설계된 소프트웨어가 인프라와 플랫폼 서비스의 차이 때문에 다른 클라우드 서비스에서 잘 작동하지 않는 문제를 고려해야 한다고 말한다. 싱은 “이 경우 여러 플랫폼에서의 호환성을 보장하기 위해 추가 개발이 필요할 수도 있다”라고 지적했다.

해결 방법의 하나는 컨테이너를 채택하고 오케스트레이션 도구를 사용해 다양한 클라우드 서비스에서 호환성을 관리하고 배포를 용이하게 하는 것이다.

개발자는 클라우드에서 복잡한 통합 작업에 직면할 수도 있다. 싱은 “클라우드 기반 애플리케이션을 기존 온프레미스 시스템과 통합하는 것은 어려운 과제다. 레거시 인프라나 소프트웨어를 처리해야 하는 경우가 많기 때문이다. 사용되는 기술의 차이 역시 통합 프로세스를 복잡하게 만드는 원인이 될 수 있다”라고 말했다.

한 가지 해결 방법은 미들웨어나 API 관리 도구로 통합 프로세스를 간소화해 클라우드와 온프레미스 시스템 간의 원활한 커뮤니케이션을 보장하는 것이다.

에어드는 “클라우드 앱을 현재의 온프레미스 시스템과 통합하는 것은 어렵다”라며 현재 API로 구동하는 모듈식 앱 개발에 집중하고, 원활한 통합을 위해 미들웨어 기술을 사용한다고 말했다. “특히 방대한 데이터를 처리할 때는 데이터를 효과적으로 관리하고 클라우드로 마이그레이션하는 것이 어렵다. 직원이 클라우드 네이티브 데이터 관리 기술을 잘 알고 있는지 확인하고, 클라우드 공급업체가 제공하는 데이터 마이그레이션 도구와 서비스를 사용한다.”
 

확장성 요구

클라우드 서비스의 가장 큰 이점은 필요에 따라 용량을 늘리고 줄일 수 있다는 것이다. 그러나 개발팀은 클라우드에서 소프트웨어를 생성, 테스트, 배포할 때 확장 문제에 직면할 수 있다.

대규모 클라우드 배포용 확장 가능 시스템을 설계하는 얼스웹(Earthweb)의 사이버 보안 전문가 마리아 오프레는 “경험상 가장 중요한 것은 느슨한 결합, 구성요소의 독립성, 모듈식 접근 방식을 강조해 확장성을 고려한 아키텍처를 설계하는 것이었다”라고 말했다.

오프레는 “이러한 원칙 하에 설계된 마이크로서비스 아키텍처는 매우 효과적인 것으로 입증됐다. 각 개별 서비스는 수요에 따라 독립적으로 확장할 수 있고, 오류를 격리할 수 있다. 따라서 소프트웨어가 자동으로 확장 및 축소할 수 있다”라고 설명했다.

오프레는 컨테이너와 구성 관리를 통해 변경불가능한 인프라와 자동화를 배포하는 것도 좋은 방법이라며 “선언적이고 일회성인 인프라를 만들면 확장 과정에서 발생하는 마찰을 없앨 수 있다”라고 조언했다.

문제가 발생한 다음 사후적으로 확장하는 것이 아니라 병목 현상이 나타나기 이전에 선제적으로 확장하려면, 성능과 사용량을 효과적으로 모니터링할 수 있어야 한다는 것이 오프레의 의견이다. 오프레는 “설계 초기 단계부터 ‘스케일 업이 아닌 스케일 아웃’이라는 사고방식을 취한 결과 고객사를 위해 대규모로 확장할 수 있는 시스템이 구축됐다”라고 말했다.
 

분산된 협업 및 커뮤니케이션

소프트웨어 개발팀에게는 효과적인 커뮤니케이션과 협업 능력이 필수적이다. 그렇지 않으면 팀원이 개발 프로세스의 진행 상황을 파악하기가 몹시 어려워진다.

하지만 소프트웨어 업체 텍스트드립(Textdrip)의 CEO 필 포트먼은 클라우드에서 작업하는 분산된 개발팀 간의 효과적인 협업을 촉진하는 것은 어려운 일이라고 말했다. 포트먼은 팀이 “협업 도구를 채택하고 애자일 방법론을 구현하며 정기적인 스탠드업 회의와 문서화를 통해 명확한 의사소통을 장려해야 한다”라고 주장했다.
 

테스트 및 배포라는 과제

애플리케이션의 테스트 및 배포에도 나름의 어려움이 있을 수 있다.

IT 서비스 및 컨설팅 업체 베어스데브(BairesDev)의 솔루션 아키텍트 후안 나시프는 "클라우드 기반 시스템을 테스트하는 것은 특히 복잡하고 분산되어 있다면 더욱 어렵다"라고 말했다. 나시프는 "테스트 도구와 프로세스로 클라우드 기반 시스템을 테스트할 수 있다. 또한 자동화 도구를 사용해 테스트 프로세스를 자동화할 수도 있다”라고 제안했다.

싱은 클라우드 애플리케이션을 테스트하려면 클라우드 서비스의 분산된 특성으로 인해 기존 소프트웨어와는 다른 접근 방식이 필요하다며 "여러 환경과 구성을 다룰 때는 배포도 어려워진다"라고 말했다.

이때 지속적 통합/지속적 배포(CI/CD) 파이프라인을 구현하면 테스트나 배포 프로세스를 간소화하고 여러 환경에서 일관성을 유지할 수 있다.
 

글로벌 시장을 위한 개발

전 세계 시장을 겨냥한 클라우드 애플리케이션을 설계하는 전문 지식이나 자원이 부족할 때가 있다.

CSA 리서치 이사 레베카 레이는 클라우드 애플리케이션을 설계하는 디자이너, 제품 관리자, 기술 담당자는 제품의 전 세계적 성공에 대한 책임을 지고 있으면서도 필요한 자원이 부족하거나 해외 경험이 거의 없는 경우가 많다고 말했다.

이때의 해결책은 여러 단계에서 현지화 팀과 협력해 제품 설계가 전 세계에서 통용되도록 하는 것이다. 레이는 아이디어 도출, 제품 요구사항의 우선 순위 지정, 사용자 인터페이스 디자인을 예로 들었다.

레이는 “아무리 작은 요구사항이나 애자일 프로세스라도 모든 클라우드 릴리즈에 포함하기에는 항상 기능이 너무 많기 마련이다. 현지화 전문가는 국제적 사용례, 현지 비즈니스 관행, 국내 규제 환경 및 다양한 경쟁 환경을 기반으로 가중치를 부여하는 기준을 개발하는 전문성을 갖췄다”라고 설명했다.
editor@itworld.co.kr 
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.