현명한 개발자는 자신의 코딩 결과물이 회사의 재무에 큰 차이를 만든다는 사실을 알고 있다. 용량이 큰 코드는 더 느리고 실행할 때 더 많은 클라우드 자원을 요구한다. 우수한 알고리즘을 선택하고 간결한 코드를 작성하는 일은 단순히 속도 이상의 의미를 가진다. 적절히 쓰여진 코드는 실행하는 데 비용이 덜 든다.
그러나 개발자가 비용을 계속 생각하기란 어렵다. 자신의 디바이스에서 코드를 작성하기는 쉽다. 디바이스를 구매할 때 RAM과 추가 디스크 공간도 같이 결제됐다. 디스크 공간이 2TB 정도라면, 코드가 얼마나 많은 공간을 소비하는 지 알아차리지 못할 수 있다. 새 알고리즘이 실행되는 데 2배 더 오랜 시간이 걸리더라도 자신의 디바이스에는 아무 영향도 없을 것이다. 몇 ms가 더 걸린다고 해도 누가 이를 감지할 수 있겠는가? 그러나 연산을 2배로 늘리면 클라우드 요금만큼은 확실히 더 늘어난다.
클라우드 개발자는 코드를 작성할 때 현명한 결정을 내릴 역량이 있음을 알고 있다. 프로파일러를 실행해 느린 부분을 식별하거나 불필요한 데이터 스토리지를 회피하며 메모리 풋프린트를 줄이는 것처럼 단순한 작업일 수도 있다. 코드를 간소화시켜 빠르면서도 비용을 줄이게 하는 12가지 방법을 소개한다.
더 빠른 코드의 작성
대다수 개발자는 코드를 최적화하는 데 그렇게 많은 시간을 쓰지 않는다. 자신의 노트북에서 순식간에 실행되기 때문이다. 시간이 지나면서 20%, 30%, 심지어 300% 더 느려지는 것을 실감하지 못한다. 프로그램은 여전히 빠르게 반응하는 것처럼 보인다.
그러나 서버 상에서 수백만 번 실행되면, 차이가 누적된다. 세심한 프로파일링은 느린 부분을 파악할 수 있다. 이들을 다시 작성하면 애플리케이션에 필요한 인스턴스의 수를 줄일 수 있다.
RAM 풋프린트 줄이기
RAM 사용량은 클라우드 인스턴스 가격에서 중요한 변수이다. 대개 RAM을 2배 늘리면 비용도 2배가 늘어난다. 데이터를 메모리에 유지하지 않는다면, RAM 풋프린트를 줄일 수 있다. 몇몇 스트리밍 알고리즘, 예를 들어 자바 스트림(Stream) 클래스는 대형 파일을 메모리로 로드하지 않은 채 작업할 수 있도록 설계된다. 아파치 데이터스케치스(Apache DataSketches) 프로젝트는 모든 메모리를 점유하지 않으면서 복잡한 빅데이터 통계에 대한 근사값을 생성한다.
신중한 RAM 소비는 알고리즘의 속도를 높이는 부가적인 혜택도 있다. 때때로 운영체제는 가상 메모리를 이용해 데이터를 디스크로 이동시킬 것이다. 충돌은 방지될지 몰라도 프로그램 실행 속도는 극적으로 낮아질 수 있다.
저해상도 이미지 및 영상 이용
저해상도 이미지 및 영상을 사용하면 여러 면에서 유리하다. 첫째, 저장 비용이 저렴하다. 둘째, 데이터 반출 요금이 더 저렴하다. 셋째, 애플리케이션이 사용자에게 더 빠르게 느껴진다.
모든 정적 이미지는 처음부터 최소화해야 한다. 그런데 어느 정도 최소화할 것인지는 까다로운 결정일 수 있다. 일정 수준에 이르면 시각 품질이 저하되기 때문이다. 적절한 선택은 일부 프로그래머가 내릴 수 없는 디자인 결정이다. 업로드 된 이미지를 사용하는 일부 애플리케이션은 이미지를 수신한 후 작은 썸네일과 해상도를 줄인 버전을 생성할 수 있다. 이미지매직(ImageMagik) 같은 툴킷과 Webp 같은 포맷이 이미지 최적화를 위해 개발된 기술이다.
불필요한 데이터 버리기
다수의 개발자가 미래에 필요할 지 모른다면서 정보를 잔뜩 저장한다. 끝없는 열로 표를 채우고 행을 삭제하는 법이 없다. 하드웨어를 소유하고 있고, 디스크 드라이브 용량이 크다면 아무 문제가 없다. 그러나 클라우드는 모든 것에 요금을 부과한다. 미래에 이들 데이터가 정말로 필요할까? 사용자가 그렇게 많은 세부 정보를 원하기는 할까? 오래된 데이터를 버린다면 데이터 스토리지 및 반출 비용을 절감할 수 있다.
디스크 스토리지 제한하기
클라우드 인스턴스 상에서 로컬 디스크를 사용하면 위험할 뿐 아니라 비용도 더 많이 들 수 있다. 로컬 디스크 공간은 운영체제를 효율적으로 실행할 수 있을 정도로 빠르게 설계된다. 대다수 개발자는 1TB 이상의 스토리지를 가진 개인 디바이스에서 코드를 생성한다.
하지만 클라우드 스토리지는 저렴하지도 않고 쉽게 이용하기도 어렵다. 흔히 클라우드는 크기에 따라 스토리지에 직접 과금한다. 따라서 가급적 적은 스토리지를 사용하는 것이 최선이다. 애플리케이션이 생성하는 임시 파일뿐 아니라 필수 시스템 라이브러리, 소프트웨어 패키지를 최소화할 방법을 고려할 필요가 있다.
함께 보면 좋은 콘텐츠
Sponsored
Surfshark
“유료 VPN, 분명한 가치 있다” VPN 선택 가이드
ⓒ Surfshark VPN(가상 사설 네트워크, Virtual Private Network)은 인터넷 사용자에게 개인 정보 보호와 보안을 제공하는 중요한 도구로 널리 인정받고 있다. VPN은 공공 와이파이 환경에서도 데이터를 안전하게 전송할 수 있고, 개인 정보를 보호하는 데 도움을 준다. VPN 서비스의 수요가 증가하는 것도 같은 이유에서다. 동시에 유료와 무료 중 어떤 VPN을 선택해야 할지 많은 관심을 가지고 살펴보는 사용자가 많다. 가장 먼저 사용자의 관심을 끄는 것은 별도의 예산 부담이 없는 무료 VPN이지만, 그만큼의 한계도 있다. 무료 VPN, 정말 괜찮을까? 무료 VPN 서비스는 편리하고 경제적 부담도 없지만 고려할 점이 아예 없는 것은 아니다. 보안 우려 대부분의 무료 VPN 서비스는 유료 서비스에 비해 보안 수준이 낮을 수 있다. 일부 무료 VPN은 사용자 데이터를 수집해 광고주나 서드파티 업체에 판매하는 경우도 있다. 이러한 상황에서 개인 정보가 유출될 우려가 있다. 속도와 대역폭 제한 무료 VPN 서비스는 종종 속도와 대역폭에 제한을 생긴다. 따라서 사용자는 느린 인터넷 속도를 경험할 수 있으며, 높은 대역폭이 필요한 작업을 수행하는 데 제약을 받을 수 있다. 서비스 제한 무료 VPN 서비스는 종종 서버 위치가 적거나 특정 서비스 또는 웹사이트에 액세스하지 못하는 경우가 생긴다. 또한 사용자 수가 늘어나 서버 부하가 증가하면 서비스의 안정성이 저하될 수 있다. 광고 및 추적 위험 일부 무료 VPN은 광고를 삽입하거나 사용자의 온라인 활동을 추적하여 광고주에게 판매할 수 있다. 이 경우 사용자가 광고를 보아야 하거나 개인 정보를 노출해야 할 수도 있다. 제한된 기능 무료 VPN은 유료 버전에 비해 기능이 제한될 수 있다. 예를 들어, 특정 프로토콜이나 고급 보안 기능을 지원하지 않는 경우가 그렇다. 유료 VPN의 필요성 최근 유행하는 로맨스 스캠은 인터넷 사기의 일종으로, 온라인 데이트나 소셜 미디어를 통해 가짜 프로필을 만들어 상대를 속이는 행위다. 이러한 상황에서 VPN은 사용자가 안전한 연결을 유지하고 사기 행위를 방지하는 데 도움이 된다. VPN을 통해 사용자는 상대방의 신원을 확인하고 의심스러운 활동을 감지할 수 있다. 서프샤크 VPN은 구독 요금제 가입 후 7일간의 무료 체험을 제공하고 있다. ⓒ Surfshark 그 외에도 유료 VPN만의 강점을 적극 이용해야 하는 이유는 다음 3가지로 요약할 수 있다. 보안 강화 해외 여행객이 증가함에 따라 공공 와이파이를 사용하는 경우가 늘어나고 있다. 그러나 공공 와이파이는 보안이 취약해 개인 정보를 노출할 위험이 있다. 따라서 VPN을 사용하여 데이터를 암호화하고 개인 정보를 보호하는 것이 중요하다. 서프샤크 VPN은 사용자의 개인 정보를 안전하게 유지하고 해킹을 방지하는 데 유용하다. 개인정보 보호 인터넷 사용자의 검색 기록과 콘텐츠 소비 패턴은 플랫폼에 의해 추적될 수 있다. VPN을 사용하면 사용자의 IP 주소와 로그를 숨길 수 있으며, 개인 정보를 보호할 수 있다. 또한 VPN은 사용자의 위치를 숨기고 인터넷 활동을 익명으로 유지하는 데 도움이 된다. 지역 제한 해제 해외 여행 중에도 한국에서 송금이 필요한 경우가 생길 수 있다. 그러나 IP가 해외 주소이므로 은행 앱에 접근하는 것이 제한될 수 있다. VPN을 사용하면 지역 제한을 해제해 해외에서도 한국 인터넷 서비스를 이용할 수 있다. 따라서 해외에서도 안전하고 편리하게 인터넷을 이용할 수 있다. 빠르고 안전한 유료 VPN, 서프샤크 VPN ⓒ Surfshark 뛰어난 보안 서프샤크 VPN은 강력한 암호화 기술을 사용하여 사용자의 인터넷 연결을 안전하게 보호한다. 이는 사용자의 개인 정보와 데이터를 보호하고 외부 공격으로부터 사용자를 보호하는 데 도움이 된다. 다양한 서버 위치 서프샤크 VPN은 전 세계 곳곳에 여러 서버가 위치하고 있어, 사용자가 지역 제한된 콘텐츠에 액세스할 수 있다. 해외에서도 로컬 콘텐츠에 손쉽게 접근할 수 있음은 물론이다. 속도와 대역폭 서프샤크 VPN은 빠른 속도와 무제한 대역폭을 제공하여 사용자가 원활한 인터넷 경험을 누릴 수 있도록 지원한다. 온라인 게임, 스트리밍, 다운로드 등 대역폭이 필요한 활동에 이상적이다. 다양한 플랫폼 지원 서프샤크 VPN은 다양한 플랫폼 및 디바이스에서 사용할 수 있다. 윈도우, 맥OS, iOS, 안드로이드 등 다양한 운영체제 및 디바이스에서 호환되어 사용자가 어디서나 안전한 인터넷을 즐길 수 있다. 디바이스 무제한 연결 서프샤크 VPN은 무제한 연결을 제공하여 사용자가 필요할 때 언제든지 디바이스의 갯수에 상관없이 VPN을 사용할 수 있다.