WELLPPS 백엔드 개발 이야기
데이터 심(eSIM, USIM 모두 판매중)
WELLPPS는 판매점이 해외 출국 고객에게 데이터 심을 판매하고, 국내 선불폰 개통과 충전 업무를 함께 처리할 수 있는 플랫폼입니다.
판매점은 여행 국가와 데이터 이용 조건에 따라 상품을 검색하고, 주문부터 예치금 결제와 발급까지 온라인으로 처리할 수 있습니다. 단일 국가와 다중 국가 상품, 로밍망과 현지망 등 다양한 조건의 상품을 제공하며, 지원되는 상품에 한해 충전 기능도 지원합니다.
또한 구매 내역과 환불 요청 및 처리 상태를 확인할 수 있으며, 국내 선불폰 개통 신청과 요금 충전, 정산 등 판매점 운영에 필요한 업무를 한곳에서 관리할 수 있습니다.
WELLPPS는 여러 업무가 연결되는 플랫폼인 만큼 각 기능의 안정적인 처리와 데이터의 정확한 관리가 중요합니다.
이번 글에서는 WELLPPS의 백엔드 기술 스택과 개발 환경, 그리고 서비스를 개발할 때 중요하게 생각하는 부분을 소개합니다.
우리가 사용하는 기술 스택
WELLPPS 백엔드는 Java와 Spring Boot를 기반으로 개발하고 있으며, 데이터베이스는 MySQL, 데이터 관리에는 Redis를 활용하고 있습니다.
인프라는 AWS(EC2, RDS, S3)를 기반으로 Docker와 Nginx를 사용하며, GitHub Actions로 빌드와 배포를 관리하고 있습니다.
서비스 모니터링에는 Prometheus와 Grafana를 활용하여 안정적인 운영을 지원하고 있습니다.

우리가 지키는 코드 컨벤션
API 결과는 공통 응답 객체로 전달하고, 예외는 전역 예외 처리기에서 일관된 형식으로 응답합니다.
컨트롤러는 요청과 응답을 담당하고, 업무 로직은 서비스에 배치합니다. 요청과 응답에는 엔티티 대신 DTO를 사용하며 메서드에 접근 권한을 명시합니다. 반복되는 코드는 Lombok으로 줄이고 있습니다.
테스트는 JUnit과 Spring Security Test를 사용하며, Testcontainers로 MySQL 환경을 구성해 검증합니다.
WELLPPS 백엔드 개발에서 중요하게 생각하는 것
1. 다양한 업무의 흐름을 이해하는 것
WELLPPS는 데이터 심 상품 관리부터 주문과 결제, 발급, 정산까지 여러 업무가 연결된 서비스입니다.
각 기능은 서로 다른 역할을 담당하지만, 실제 판매점에서는 이러한 기능을 하나의 업무 흐름 안에서 사용합니다.
따라서 새로운 기능을 개발할 때도 해당 기능이 어떤 업무와 연결되는지, 기존 기능에는 어떤 영향을 미치는지 함께 살펴보는 과정이 필요합니다.
단순히 전달받은 기능을 구현하는 것에서 끝나지 않고, 판매점이 실제로 어떤 과정을 거쳐 업무를 처리하는지 이해하는 자세가 중요하다고 생각합니다.
업무에 대한 이해가 높아질수록 필요한 기능을 더 정확하게 파악하고, 기존 서비스와 자연스럽게 연결되는 방향을 고민할 수 있습니다.
2. 변화하는 요구사항에 대응할 수 있는 구조
서비스를 운영하다 보면 새로운 기능이 추가되거나 기존 업무 방식이 변경되는 경우가 있습니다.
WELLPPS 역시 다양한 상품과 판매점 업무를 지원하고 있기 때문에 새로운 요구사항에 대응할 수 있는 구조가 필요합니다.
현재 필요한 기능을 구현하는 것뿐만 아니라 이후 변경이 발생했을 때 수정하기 쉬운 구조인지, 다른 기능에 불필요한 영향을 주지는 않는지 함께 고려해야 합니다.
처음부터 모든 변화를 예상할 수는 없지만, 기능의 역할을 명확하게 구분하고 기존 구조를 이해하며 개발하는 것은 변화에 대응하는 데 도움이 됩니다.
복잡한 구조를 만드는 것보다는 현재 서비스에 적합하면서도 유지보수하기 좋은 방향을 찾는 것이 중요합니다.
3. 외부 시스템과의 안정적인 연동
WELLPPS는 다양한 데이터 심 상품을 제공하기 위해 외부 공급사 시스템과 연동하고 있습니다.
외부 시스템은 내부에서 직접 제어하기 어려운 영역이기 때문에 응답 지연이나 일시적인 오류처럼 예상하지 못한 상황이 발생할 수 있습니다.
따라서 외부 시스템이 정상적으로 동작하는 상황뿐만 아니라 문제가 발생했을 때 서비스에 어떤 영향을 미칠 수 있는지도 고려해야 합니다.
외부 API를 연결하는 것 자체보다 여러 시스템이 함께 동작하는 환경을 이해하고, 다양한 상황에서 안정적으로 서비스를 운영할 수 있는 방법을 고민하는 것이 중요합니다.
함께 일하는 개발자에게 기대하는 역량
기술뿐만 아니라 서비스에 관심을 갖는 태도
백엔드 개발에는 Java, Spring Boot, 데이터베이스 등 다양한 기술에 대한 이해가 필요합니다.
하지만 기술을 잘 사용하는 것만큼 해당 기술이 어떤 문제를 해결하기 위해 사용되는지 이해하는 것도 중요합니다.
WELLPPS는 일반 소비자가 아닌 판매점의 업무를 지원하는 서비스입니다. 따라서 개발 과정에서는 기술적인 요구사항뿐만 아니라 판매점이 어떤 업무를 수행하고, 어떤 상황에서 기능을 이용하는지 관심을 가질 필요가 있습니다.
서비스의 목적과 업무 흐름을 이해하려는 태도는 더 적합한 해결 방법을 찾는 데 도움이 됩니다.
여러 가능성을 고려하며 문제를 해결하는 자세
개발 과정에서 마주하는 문제에는 하나의 정답만 존재하지 않을 수 있습니다.
특히 여러 기능과 외부 시스템이 연결되는 환경에서는 문제의 원인을 파악하기 위해 다양한 가능성을 살펴봐야 하는 경우가 있습니다.
익숙한 해결 방법을 바로 적용하기보다 현재 상황을 충분히 이해하고, 각 방법의 장단점을 비교하는 과정이 필요합니다.
새로운 문제를 만났을 때 스스로 원인을 찾아보고, 필요한 기술을 학습하며 해결 방법을 고민하는 자세를 중요하게 생각합니다.
마무리
WELLPPS는 데이터 심 판매부터 선불폰 개통과 충전까지 판매점 운영에 필요한 다양한 기능을 제공하는 플랫폼입니다.
여러 업무가 하나의 서비스에서 연결되는 만큼, 각 기능의 안정적인 동작과 외부 시스템과의 원활한 연동이 중요합니다. 또한 서비스 운영 과정에서 발생하는 문제를 파악하고, 변화하는 요구사항에 유연하게 대응할 수 있도록 지속적인 개선이 필요합니다.
웰네트웍스는 서비스에 대한 이해를 바탕으로 적합한 기술과 개발 방식을 고민하며 안정적인 서비스 운영을 위한 개발 환경을 지속적으로 개선해 나가고자 합니다.