Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
개발자 / 클라우드

개발자가 알아야 할 클라우드 비용 절감 팁 12가지

Peter Wayner | InfoWorld 2022.06.09
일부 개발자는 컴퓨팅 비용의 관리를 데브옵스팀의 책임이라고 생각한다. 소프트웨어를 코딩하고 배포하지만 비용은 걱정하지 않는 것이다. 잘못된 생각이다.

현명한 개발자는 자신의 코딩 결과물이 회사의 재무에 큰 차이를 만든다는 사실을 알고 있다. 용량이 큰 코드는 더 느리고 실행할 때 더 많은 클라우드 자원을 요구한다. 우수한 알고리즘을 선택하고 간결한 코드를 작성하는 일은 단순히 속도 이상의 의미를 가진다. 적절히 쓰여진 코드는 실행하는 데 비용이 덜 든다.

그러나 개발자가 비용을 계속 생각하기란 어렵다. 자신의 디바이스에서 코드를 작성하기는 쉽다. 디바이스를 구매할 때 RAM과 추가 디스크 공간도 같이 결제됐다. 디스크 공간이 2TB 정도라면, 코드가 얼마나 많은 공간을 소비하는 지 알아차리지 못할 수 있다. 새 알고리즘이 실행되는 데 2배 더 오랜 시간이 걸리더라도 자신의 디바이스에는 아무 영향도 없을 것이다. 몇 ms가 더 걸린다고 해도 누가 이를 감지할 수 있겠는가? 그러나 연산을 2배로 늘리면 클라우드 요금만큼은 확실히 더 늘어난다.

클라우드 개발자는 코드를 작성할 때 현명한 결정을 내릴 역량이 있음을 알고 있다. 프로파일러를 실행해 느린 부분을 식별하거나 불필요한 데이터 스토리지를 회피하며 메모리 풋프린트를 줄이는 것처럼 단순한 작업일 수도 있다. 코드를 간소화시켜 빠르면서도 비용을 줄이게 하는 12가지 방법을 소개한다. 
 
ⓒ Getty Images Bank


더 빠른 코드의 작성 
대다수 개발자는 코드를 최적화하는 데 그렇게 많은 시간을 쓰지 않는다. 자신의 노트북에서 순식간에 실행되기 때문이다. 시간이 지나면서 20%, 30%, 심지어 300% 더 느려지는 것을 실감하지 못한다. 프로그램은 여전히 빠르게 반응하는 것처럼 보인다. 

그러나 서버 상에서 수백만 번 실행되면, 차이가 누적된다. 세심한 프로파일링은 느린 부분을 파악할 수 있다. 이들을 다시 작성하면 애플리케이션에 필요한 인스턴스의 수를 줄일 수 있다.

RAM 풋프린트 줄이기 
RAM 사용량은 클라우드 인스턴스 가격에서 중요한 변수이다. 대개 RAM을 2배 늘리면 비용도 2배가 늘어난다. 데이터를 메모리에 유지하지 않는다면, RAM 풋프린트를 줄일 수 있다. 몇몇 스트리밍 알고리즘, 예를 들어 자바 스트림(Stream) 클래스는 대형 파일을 메모리로 로드하지 않은 채 작업할 수 있도록 설계된다. 아파치 데이터스케치스(Apache DataSketches) 프로젝트는 모든 메모리를 점유하지 않으면서 복잡한 빅데이터 통계에 대한 근사값을 생성한다. 

신중한 RAM 소비는 알고리즘의 속도를 높이는 부가적인 혜택도 있다. 때때로 운영체제는 가상 메모리를 이용해 데이터를 디스크로 이동시킬 것이다. 충돌은 방지될지 몰라도 프로그램 실행 속도는 극적으로 낮아질 수 있다.

저해상도 이미지 및 영상 이용 
저해상도 이미지 및 영상을 사용하면 여러 면에서 유리하다. 첫째, 저장 비용이 저렴하다. 둘째, 데이터 반출 요금이 더 저렴하다. 셋째, 애플리케이션이 사용자에게 더 빠르게 느껴진다.

모든 정적 이미지는 처음부터 최소화해야 한다. 그런데 어느 정도 최소화할 것인지는 까다로운 결정일 수 있다. 일정 수준에 이르면 시각 품질이 저하되기 때문이다. 적절한 선택은 일부 프로그래머가 내릴 수 없는 디자인 결정이다. 업로드 된 이미지를 사용하는 일부 애플리케이션은 이미지를 수신한 후 작은 썸네일과 해상도를 줄인 버전을 생성할 수 있다. 이미지매직(ImageMagik) 같은 툴킷과 Webp 같은 포맷이 이미지 최적화를 위해 개발된 기술이다.

불필요한 데이터 버리기 
다수의 개발자가 미래에 필요할 지 모른다면서 정보를 잔뜩 저장한다. 끝없는 열로 표를 채우고 행을 삭제하는 법이 없다. 하드웨어를 소유하고 있고, 디스크 드라이브 용량이 크다면 아무 문제가 없다. 그러나 클라우드는 모든 것에 요금을 부과한다. 미래에 이들 데이터가 정말로 필요할까? 사용자가 그렇게 많은 세부 정보를 원하기는 할까? 오래된 데이터를 버린다면 데이터 스토리지 및 반출 비용을 절감할 수 있다.

디스크 스토리지 제한하기 
클라우드 인스턴스 상에서 로컬 디스크를 사용하면 위험할 뿐 아니라 비용도 더 많이 들 수 있다. 로컬 디스크 공간은 운영체제를 효율적으로 실행할 수 있을 정도로 빠르게 설계된다. 대다수 개발자는 1TB 이상의 스토리지를 가진 개인 디바이스에서 코드를 생성한다.

하지만 클라우드 스토리지는 저렴하지도 않고 쉽게 이용하기도 어렵다. 흔히 클라우드는 크기에 따라 스토리지에 직접 과금한다. 따라서 가급적 적은 스토리지를 사용하는 것이 최선이다. 애플리케이션이 생성하는 임시 파일뿐 아니라 필수 시스템 라이브러리, 소프트웨어 패키지를 최소화할 방법을 고려할 필요가 있다.

 Tags 클라우드 비용 코딩 프로그래머 개발자
IDG 설문조사

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

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

Copyright © 2022 International Data Group. All rights reserved.