개발현황

크레플의 R&D를 소개합니다.

R&D

개발현황

서비스 인프라 구성 : 유예솔 연구원

  • 관리자
  • 2025.07.14

개발 후 배포, 그 다음은? - 서비스 인프라 구성과 운영을 위한 도구들

서비스를 잘 개발하는 것도 중요하지만, 이를 안정적으로 운영하기 위해서는 모니터링, 배포 자동화, 테스트 등 다양한 인프라 구성 요소가 뒷받침되어야 합니다. 또한 내부 도구 제작, API 테스트 등 개발 생산성을 높여주는 도구들도 함께 갖춰야, 더 빠르고 안정적인 서비스 구축이 가능합니다. 아직 경험이 많지 않은 신입 개발자나 스타트업 팀이라면, 이런 도구들을 직접 다루어본 경험이 없거나 생소하게 느껴질 수 있습니다.

이 글에서는 우리가 EQ0 서비스를 운영하며 실제로 사용해본 서비스 운영 인프라와 개발에 도움이 된 도구들을 소개하고자 합니다.

인프라란?

'사회 활동의 기반을 이루는 기초적인 시설 및 시스템'이라는 일반적인 의미를 가지고 있습니다.

IT에서의 인프라란?

서비스가 잘 돌아가기 위해 필요한 ‘기초 시스템’과 ‘운영 도구들’을 통틀어 이르는 말

구체적으로 말하면?

서비스를 만들고 운영하는 데 있어 기반이 되는 기술적 요소들을 말합니다. 예를 들어:

  • 서버 / 클라우드 인프라: AWS, Azure, GCP 같은 클라우드 플랫폼, 또는 물리 서버
  • 네트워크 / 보안 구성: 로드 밸런서, 방화벽, 인증 시스템 등
  • CI/CD 도구: 자동 배포 시스템 (예: GitHub Actions, Jenkins, BuddyWorks 등)
  • 모니터링 / 로깅 도구: Sentry, Grafana, Prometheus 등
  • API 게이트웨이 / 메시지 큐 / 데이터베이스 관리 도구 등

쉽게 비유하면?

“인프라는 건물의 기초공사”입니다. 앱이나 웹사이트가 ‘건물’이라면, 인프라는 그걸 버티고, 유지하고, 수리할 수 있게 해주는 기반입니다.

왜 중요할까?

  • 장애 발생 시 빨리 대응할 수 있음
  • 여러 명이 개발할 때 협업이 쉬워짐
  • 테스트/배포를 자동화하여 생산성 향상
  • 시스템의 안정성과 확장성 보장

EQ0에서 사용한 서비스 인프라와 도구들

EQ0 서비스를 진행하면서 보다 안정적이고 효율적으로 하기 위해 여러 가지 인프라 도구들을 도입했습니다. 스타트업처럼 작은 인원으로도 빠르게 제품을 만들고 운영해야 하는 환경에서는 이런 도구들이 곧 개발 생산성과 서비스 품질을 높이는 핵심 자산이 됩니다. 이제부터, EQ0 서비스에서 실제로 사용했던 도구들을 하나씩 소개해보려 합니다.

인하우스 툴 제작 - ILLA Cloud와 ToolJet

EQ0 서비스에서는 내부용 관리 도구를 빠르게 구축해야 하는 상황에서 로우코드 플랫폼을 도입했습니다. 그 결과, 프론트엔드 개발 리소스 없이도 실용적인 관리자 화면을 단기간에 구현할 수 있었으며, 데이터베이스 연동, CRUD 기능 등을 시각적으로 구성하여 운영에 필요한 화면을 신속하게 완성할 수 있었습니다

초기에는 ILLA Cloud를 사용해 내부 도구를 구성했지만, 프로젝트가 진행되면서 시각적으로 나타낼 수 있는 '캘린더 뷰' 기능이 필요해졌고, 이 기능을 지원하는 ToolJet으로 전환하게 되었습니다.

ILLA Cloud와 ToolJet

ILLA와 ToolJet은 모두 비개발자도 쉽게 사용할 수 있는 오픈소스 기반 로우코드 플랫폼입니다. 복잡한 코딩 없이도 UI 컴포넌트를 조립하듯 구성할 수 있으며, 다양한 데이터 소스와의 연동을 지원해 내부 운영 툴이나 관리자 페이지를 빠르게 제작할 수 있다는 공통된 장점이 있습니다.

주요 특징

  • 다양한 데이터 소스 연결
    • PostgreSQL, MySQL, MongoDB, REST API, GraphQL, Firebase, Redis 등은 물론 Hugging Face, AWS S3, Google Sheets, Airtable, Salesforce, Stripe 등 외부 SaaS 및 클라우드 리소스도 쉽게 연결할 수 있습니다.
  • 빠른 프로토타이핑
    • UI는 드래그 앤 드롭 방식으로 구성되며, 복잡한 코드 없이도 직관적인 인터페이스를 빠르게 만들 수 있습니다.
  • 다양한 UI 컴포넌트 제공
    • 버튼, 입력창, 테이블, 드롭다운, 차트, 파일 업로더 등 운영 도구 제작에 필요한 컴포넌트가 기본 제공되며, 비개발자도 쉽게 사용할 수 있는 직관적인 편집 환경을 갖추고 있습니다.
  • JavaScript 기반 로직 작성 지원
    • 각 컴포넌트, 쿼리, 이벤트 처리에 JavaScript를 삽입할 수 있어 단순한 조건 분기부터 복잡한 데이터 처리 로직까지 자유롭게 사용자 정의할 수 있습니다.
  • 자체 호스팅 및 커스터마이징 가능
    • 두 플랫폼 모두 오픈소스로 제공되며, 자체 서버에 설치해 운영하거나 커스터마이징할 수 있어 보안이 중요한 환경에서도 안정적으로 사용할 수 있습니다.

API 테스트를 위한 도구 - Postman과 Hoppscotch

서비스를 개발하면서 백엔드 API를 테스트하고 문서화하는 작업은 필수적인 단계입니다. API 테스트 도구를 활용하면 빠르고 직관적으로 서비스의 기능이 제대로 작동하는지 확인할 수 있으며, 요청/응답 데이터의 흐름을 시각적으로 파악해 디버깅과 협업 효율을 높일 수 있습니다.

Postman

Postman은 가장 널리 사용되는 API 개발 및 테스트 플랫폼으로, 단순한 API 호출 테스트를 넘어 다음과 같은 기능을 제공합니다.

  • 테스트 자동화: 요청 후 응답 값을 기반으로 한 테스트 스크립트를 작성할 수 있어, 반복 테스트를 자동화할 수 있습니다.
  • 환경 구성: 개발/스테이징/운영 환경에 맞춰 변수 세트를 구성할 수 있어 요청 주소와 인증 토큰 등을 쉽게 전환할 수 있습니다.
  • 문서화 및 공유: API 요청을 문서화하고, 팀원과 쉽게 공유할 수 있어 백엔드 스펙 소통에 유리합니다.
  • 협업 기능: 팀 단위로 워크스페이스를 구성하고 컬렉션을 공유해 효율적인 협업이 가능합니다.

초기에는 Postman을 활용해 API를 테스트하고 스펙을 공유하여 개발을 진행하였으며 팀원이 늘어나면서 협업 기능 중심의 유료 플랜이 필요해졌습니다.

Hoppscotch

이후 우리는 운영 유연성과 장기적인 확장성을 고려하여, 자체 호스팅이 가능한 오픈소스 API 테스트 도구인 Hoppscotch로 전환하게 되었습니다.

Hoppscotch는 가볍고 빠르며, 설치 없이 웹에서 바로 사용할 수 있는 오픈소스 기반 API 테스트 도구입니다.

  • 브라우저 기반 사용: 별도의 설치 없이 웹 브라우저에서 바로 사용할 수 있어 진입장벽이 낮습니다.
  • 반응 속도 빠름: 가볍고 빠른 UI 덕분에 단순 요청 테스트에 유리합니다.
  • 자체 호스팅 가능: 오픈소스 프로젝트로 제공되기 때문에, 사내 서버에 직접 배포해 내부 네트워크 환경에서도 안정적으로 사용할 수 있습니다.

현재는 외부 의존 없이 내부에서 안전하게 테스트 환경을 구축할 수 있는 Hoppscotch를 자체 서버에 호스팅하여 사용하고 있습니다. 운영 비용 측면에서도 효율적일 뿐만 아니라, 팀 전체가 자유롭게 접근하고 활용할 수 있는 테스트 환경을 갖추게 되었습니다.

코드 품질 관리 도구 – SonarQube

서비스의 규모가 커질수록 코드 품질 유지는 선택이 아닌 필수가 됩니다. 코드의 가독성과 유지보수성을 높이고, 배포 전 버그나 보안 취약점을 사전에 발견하기 위해서는 정적 분석 도구를 활용한 자동화된 코드 검토 프로세스가 매우 효과적입니다.

EQ0 서비스에서는 이러한 코드 품질 관리를 위해 SonarQube를 도입하여 운영하고 있습니다.

SonarQube

SonarQube는 코드에 대한 정적 분석(static analysis)을 수행하여 잠재적인 버그, 코드 스멜(Code Smell), 보안 취약점, 중복 코드 등 다양한 문제를 자동으로 진단해주는 도구입니다.

다양한 품질 지표 제공

SonarQube는 다음과 같은 코드 품질 관련 지표를 시각적으로 제공합니다:

  • 코드 에러 및 버그
  • 코드 스멜 (불필요하거나 비효율적인 코드)
  • 보안 취약점
  • 중복 코드 비율
  • 코드 커버리지 (테스트 커버리지) 이러한 지표들은 리팩토링 우선순위를 빠르게 파악하는 데 유용하며, 전체 프로젝트의 코드 건강 상태를 시각적으로 모니터링할 수 있도록 도와줍니다.

주요 활용 방식

  • GitHub Actions와의 연동

    • SonarQube는 GitHub 저장소와 연동되어 있어, 코드가 푸시될 때마다 GitHub Actions를 통해 자동으로 분석이 수행됩니다. 이를 통해 코드가 머지되기 전에 품질 상태를 확인할 수 있으며, 문제가 있을 경우 즉시 피드백을 받을 수 있습니다.
  • 품질 게이트 설정

    • 프로젝트 내 품질 기준을 설정하여 일정 수준 이하일 경우 머지를 차단할 수 있습니다. 예를 들어, 코드 커버리지가 80% 미만이거나, 보안 취약점이 존재하면 PR을 병합할 수 없도록 설정할 수 있어, 팀 전체의 코드 품질 기준을 일관되게 유지하는 데 도움이 됩니다.

SonarQube를 통해 기술 부채를 사전에 줄이고, 새로운 코드가 기존 코드베이스의 품질을 해치지 않도록 자동화된 품질 관리 체계를 구축하고 있습니다. 이를 통해 개발 속도는 유지하면서도, 신뢰할 수 있는 코드 기반을 점진적으로 만들어가고 있습니다.

DevOps 도구 – BuddyWorks

지속적인 통합(Continuous Integration)과 지속적인 배포(Continuous Deployment)를 자동화하는 CI/CD 파이프라인은 서비스 개발과 운영을 빠르게 반복하는 데 필수적인 요소입니다. EQ0 서비스에서는 BuddyWorks를 사용해 CI/CD 파이프라인을 구축하고, 배포 효율성과 안정성을 높였습니다.

BuddyWorks

BuddyWorks는 직관적인 시각화 기반의 DevOps 플랫폼으로, 코드를 푸시하거나 PR을 생성했을 때 자동으로 테스트, 빌드, 배포 작업을 실행할 수 있는 파이프라인을 손쉽게 구성할 수 있습니다.

주요 특징 및 활용 방식

  • GitHub 연동을 통한 자동화 트리거
    • BuddyWorks는 GitHub 저장소와 연동되어 있어, 코드 푸시, 브랜치 병합, PR 생성 등의 이벤트를 트리거로 지정하여 자동화된 워크플로우를 실행할 수 있습니다.
  • 시각화된 파이프라인 구성
    • 복잡한 스크립트 없이 드래그 앤 드롭 방식으로 빌드·테스트·배포 단계를 구성할 수 있어 DevOps 경험이 적은 팀도 손쉽게 자동화 환경을 구축할 수 있습니다.
  • 환경별 분기 설정
    • 브랜치 조건이나 커밋 메시지를 기준으로 개발/스테이징/운영 환경에 맞춘 분기 배포가 가능합니다.
  • 다양한 언어와 클라우드 지원
    • Docker, Node.js, Python, Flutter 등 다양한 빌드 환경을 지원하며, AWS, GCP, Firebase 등 주요 클라우드 플랫폼과도 연동이 가능합니다.

GitHub에 일정 조건을 트리거로 BuddyWorks가 자동으로 빌드 및 배포를 수행하도록 설정하여 수동 작업 없이 안정적이고 일관된 배포 프로세스를 유지하고 있습니다. 이를 통해 배포 속도는 빨라지고, 사람이 개입하는 실수는 줄어들어 운영 안정성을 확보할 수 있었습니다.

에러 모니터링 도구 – Sentry

서비스를 운영하다 보면 에러는 언제든지 발생할 수 있습니다. 중요한 것은 에러가 발생했을 때 얼마나 빠르게 인지하고, 어디서 어떤 문제였는지를 정확히 파악해 대응할 수 있느냐입니다. EQ0에서는 이러한 요구를 해결하기 위해 Sentry를 에러 모니터링 도구로 도입했습니다.

Sentry

Sentry는 다양한 플랫폼에서 발생하는 에러를 실시간으로 수집하고, 에러의 원인을 빠르게 파악할 수 있도록 도와주는 오픈소스 기반의 에러 추적 도구입니다.

주요 기능 및 활용 방식

  • 실시간 알림

    • 에러가 발생하면 즉시 Slack, 이메일 등으로 알림을 받아 빠르게 대응할 수 있습니다. 서비스 장애나 사용자의 주요 이탈 지점을 놓치지 않고 파악할 수 있습니다.
  • 에러 원인 추적

    • 발생한 에러에 대해 스택 트레이스, 발생 위치, 실행 중이던 코드, 오류 메시지 등을 상세히 제공해 어디서 왜 문제가 생겼는지 직관적으로 파악할 수 있습니다.
  • 디버깅 정보 자동 수집

    • 브라우저 정보, 디바이스 정보, 사용자 ID 등 에러 발생 당시의 실행 환경을 함께 수집하여 재현이 어려운 버그도 빠르게 추적할 수 있도록 돕습니다.

EQ0 점검 모바일 앱, 관리자 웹 어플리케이션 및 백엔드 모두에 Sentry를 적용하여, 배포 이후 예상치 못한 예외 상황이 발생했을 때도 사전에 인지하고 빠르게 대응할 수 있는 구조를 마련했습니다.

작업 자동화 및 스케줄링 도구 – Rundeck

서비스를 운영하다 보면 주기적으로 반복해야 하는 작업들이 생기기 마련입니다. 예를 들어, 일일 리포트 생성, 통계 데이터 생성 등은 사람이 매번 수동으로 처리하기보다, 자동화된 스케줄링 시스템을 통해 관리하는 것이 훨씬 효율적이고 안정적입니다.

Rundeck

Rundeck은 다양한 작업을 사전에 정의하고, 정해진 시점에 자동으로 실행되도록 설정할 수 있는 오픈소스 작업 자동화 도구입니다.

주요 기능 및 활용 방식

  • 정기 작업 스케줄링
    • 특정 시간이나 주기(매일, 매주, 매월 등)에 맞춰 자동으로 작업을 실행할 수 있습니다. 예를 들어, 매일 아침 9시에 전날의 점검 리포트를 생성하고 저장하는 작업을 자동화할 수 있습니다.
  • 직관적인 UI와 Job 관리
    • 웹 기반 UI를 통해 작업(Job)을 등록하고, 실행 로그를 확인하거나 실행 이력을 추적할 수 있어 운영자가 손쉽게 자동화 프로세스를 관리할 수 있습니다.
  • 스크립트 실행 및 외부 시스템 연동
    • 쉘 스크립트, Python, API 호출 등 다양한 형식의 작업을 실행할 수 있으며, 외부 시스템이나 데이터베이스와도 연동이 가능해 활용도가 높습니다.

EQ0에서는 정기 리포트 생성 및 통계 계산 작업을 Rundeck으로 자동화하여, 수작업으로 처리하던 반복 업무를 줄이고 신뢰성과 작업 누락 방지를 동시에 달성할 수 있었습니다. 이러한 자동화는 서비스의 운영 효율성과 정확성 모두를 높이는 데 중요한 역할을 했습니다.

마치며

서비스를 안정적으로 운영하고, 개발 생산성을 높이기 위해서는 다양한 인프라 도구와 자동화 시스템이 필수적입니다. 이러한 도구들은 단순히 개발 속도를 높이는 것을 넘어, 서비스의 품질과 안정성을 확보하는 데 중요한 역할을 합니다.

이번 글에서는 EQ0 서비스를 운영하면서 실제로 활용한 로우코드 플랫폼, API 테스트 도구, 코드 품질 관리 도구, CI/CD 시스템, 에러 모니터링 및 작업 자동화 도구 등 다양한 인프라 구성 요소들을 소개했습니다. 프로젝트의 규모, 팀 구성, 기술 스택에 따라 적합한 도구는 얼마든지 달라질 수 있으며, 이 글이 신입 개발자나 스타트업 팀에게 인프라 구성과 활용 방법에 대한 실질적인 참고자료가 되어 팀 환경에 적절한 도구를 선택하고 활용하는데 도움이 되기를 바랍니다.

앞으로도 EQ0 서비스는 지속적으로 인프라 도구를 개선하고, 새로운 기술을 도입하여 더 나은 개발 환경과 운영 체계를 구축해 나갈 예정입니다.