최근에 개발자가 된지 만 2년이 되어 경력기술서를 업데이트하게 되었다.
근데 작성하다보니 성과에 대한 정량적인 데이터가 매우 부족하다는 것을 깨달았다.
여태까지 성능을 측정하고 개선하는 것이 아닌 그저 기능 구현에 초점을 맞춰왔던 것이다.
개발자로서의 가치를 높이기 위해서는 그저 기능 구현만 하는 것이 아닌,
내가 만든 기능을 어떻게 안정적이고 빠르게 동작할 수 있도록 만들 수 있는지에 대해 고민하여야 한다.
그리고 이러한 고민은 정량적인 수치를 바탕으로 이루어져야 한다.
그래서 이번 포스팅에서는 백엔드 개발자로서 어떤 것에 집중하여야 하고
어떻게 백엔드 서버의 성능을 측정할 수 있는가에 대해 정리해보려 한다.
백엔드 서버는 클라이언트의 요청에 따라 비즈니스 로직을 처리하고
보이지 않는 곳에서 서비스가 원활하게 작동하도록 만드는 역할을 한다.
백엔드 서버의 주요 목표는 다음과 같다.
1. 신뢰성
2. 성능
3. 가용성
사용자의 예상대로 매번 정확하고 일관적으로 동작하는가?
예상치 못한 상황에서도 안정적으로 동작하는가?
금융 서비스, 커머스와 같은 서비스는 높은 신뢰성을 요구한다.
클라이언트의 요청을 얼마나 효율적이고 신속하게 처리할 수 있는가?
주어진 자원 내에서 얼마나 시스템이 빠르고 효율적으로 동작하는가?
스트리밍 서비스, 검색 엔진, 온라인 게임과 같은 서비스는 높은 성능을 요구한다.
사용자가 필요할 때 언제든지 사용할 수 있는 상태인가?
클라우드 서비스, 응급 서비스와 같은 서비스는 높은 가용성을 요구한다.
이번 포스팅에서는 백엔드 개발자가 고려해야하는 점과
신뢰성/성능/가용성의 측정 지표에 대해 알아보았다.
앞으로는 이러한 지표들을 측정하고 이를 기반으로 개선하는 경험을 늘려보고자 한다.
[인프런 수강후기] 스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판 (1) | 2025.04.30 |
---|---|
[Kafka] MSA에서 Kafka가 필요한 이유 | 구조, 동작방식, 장단점 (0) | 2025.04.17 |
RAM을 내주고 성능을 얻는 Redis에 대하여.. | 레디스의 특징 및 단점 (0) | 2025.04.15 |
인덱스 만들었다고 안심하면 안되는 이유 | 페이징 쿼리 성능 개선 (0) | 2025.04.02 |
[시스템 아키텍처] Monolithic Architecture vs MSA(Microservice Architecture) (0) | 2025.03.25 |