저번 포스팅에 이어서, 소프트웨어별로 중요한 리소스가 무엇일까 에 대해 이야기 해보려고 한다.


1. CPU
CPU는 멀티태스킹이나 복잡한 계산을 자주 수행하는 소프트웨어에서 중요한 역할을 한다.

특히 단일 스레드 성능과 멀티코어 성능이 중요한 소프트웨어들이 CPU의 성능에 많이 의존한다.

예를 들어, 동영상 편집 프로그램이나 코드를 빌드하는 과정에서 많은 연산을 요구하는 컴파일러 등

CPU를 많이 사용하는 소프트웨어일수록 다른 리소스보다 CPU가 우세한지 확인해야 한다.

 

2. 메모리
메모리는 임시 저장소로서, 현재 실행 중인 프로그램과 데이터를 저장하는 역할을 하는데,

대용량 데이터를 다루는 소프트웨어에서 메모리 용량과 속도가 소프트웨어의 성능을 좌지우지한다.

 

예를 들어 VMware 이나 VircualBox와 같은 가상머신 혹은 크롬, edge 같은 웹 브라우저를 들 수 있는데

웹 브라우저 여러 탭을 동시에 열었을 때 효율적으로 메모리를 관리하는 지 등을 판단해야 한다.

 

그 밖에도 대용량 데이터 처리 프로그램이나 고해상도 영상 처리, 편집 소프트웨어 등을 예시로 들 수 있다.

 

3. 저장 장치 ( HDD/SSD )
저장장치는 데이터를 읽고 쓰는 속도에 따라 성능 차이가 날 수 있다.

 

특히 HDD와 SSD는 데이터 전송 속도가 크게 다르기 때문에 대용량 데이터 처리가 필요하거나

빈번한 데이터 읽기/쓰기가 발생하는 소프트웨어에서 중요하게 확인해야 하는 리소스다.

네이버 클라우드, 구글 클라우드 등 많은 데이터를 동시에 읽고 쓰는 도구를 예시로 들 수 있고

그 밖에 Mysql이나 PostgreSQL과 같은 데이터베이스 관리 시스템도 포함된다.

 

4. GPU
GPU는 병렬 처리가 뛰어난 하드웨어 장치로, 많은 데이터를 동시에 처리하는 데 강점을 보인다.

특히 대량의 그래픽 계산, 영상 렌더링, AI/ML 모델 학습 등에 사용되기 때문에

특히 고사양의 3D게임이나 3D 디자인 소프트웨어, AI/머신러닝 소프트웨어에서 중요성이 높다.


5. 네트워크 사용량
마지막으로 네트워크 대역폭은 온라인 상의 데이터 전송 속도에 큰 영향을 미친다.

 

그렇다 보니 Youtube나 Netflix 와 같은 스트리밍 서비스에서도 중요성이 높고,

LOL과 같이 여러 유저들이 동시에 플레이하는 온라인 게임 혹은 파일 백업 시스템에서도 중요하다.

 

특히 네트워크의 경우 데이터 전송 속도에 따른 Latency, 즉 지연 시간이 있는데 쉽게 이야기 하자면

라이브 스트리밍의 경우 녹화하는 타이밍과 출력하는 타이밍의 지연을 이야기 할 수 있다.

 

이 때문에 네트워크 사용량 뿐 아니라 데이터 전송 속도 등도 판단하여 우세인지 열세인지 판단해야 한다.


이렇게 CPU, 메모리, 저장장치, GPU, 네트워크를 중요하게 생각하는 소프트웨어에 대해 이야기해봤는데,

각기 다른 종류의 소프트웨어에 적합한 성능 요구사항이 다르고, 우선순위 또한 달라진다.

 

때문에 각각의 하드웨어 특징을 고려하여 최적의 성능을 발휘할 수 있도록 설계하는 것이 중요하다.

 

또 동일한 소프트웨어라고 하더라도 어떤 기능을 사용하느냐에 따라 중요성이 달라질 수 있는데,

유튜브를 예시로 들자면, 고해상도의 영상을 볼 때, CPU, GPU, 인터넷 대역폭을 중요하게 볼 수 있지만,

저해상도에서는 GPU가 중요하게 비교할 리소스가 아니기 때문에 비교적 열세여도 괜찮다.


마지막으로 정리하자면 CPU가 중요한 소프트웨어는 주로 연산 중심의 작업이나 연산을 많이 하는 소프트웨어.
메모리는 대용량 데이터나 멀티태스킹을 효율적으로 처리하는 소프트웨어에서 중요한 역할을 한다.

 

GPU가 중요한 소프트웨어는 그래픽 처리나 병렬 연산이 중요한 분야에서 주로 사용되고.
HDD/SSD는 대용량 데이터 처리에서, 네트워크는 데이터 전송이 중요한 소프트웨어에서 우세할 수 있다.


이렇게 각 하드웨어 리소스가 무슨 역할을 하는지, 그리고 어떤 소프트웨어에서 중요한 역할을 하는지

이야기 해봤는데, 다시한 번 언급하지만 비기능 평가에서는 리소스 효율성이 중요한 역할을 한다.

 

그렇기 때문에 소프트웨어 특성에 맞춰 우세하게 작용하도록 최적화하는 것이 중요하다는 것을 잊지 말자.