묻고 답하기

제목
Re:saas 개발 질문
작성자
담당자
작성일
2024-08-26 17:18
조회
11
답변완료

안녕하세요 클라우드 혁신센터입니다.
SaaS 회사와 일반 서비스 회사에서의 소프트웨어 엔지니어(SE) 역할은 기본적으로 소프트웨어 개발과 유지 보수를 포함하지만, 업무의 초점과 방식에서 차이가 있을 수 있습니다. 

1. 개발 환경 및 아키텍처

  • SaaS 회사:
    • 멀티테넌시: SaaS 환경에서는 하나의 애플리케이션이 여러 고객(테넌트)에게 동시에 제공되므로, 멀티테넌시 구조를 고려한 개발이 필요합니다. 이는 데이터 분리, 성능 최적화, 확장성 관리 등의 과제가 포함됩니다.
    • 지속적 배포(CI/CD): SaaS 제품은 지속적인 업데이트가 필수적이므로, SE는 CI/CD 파이프라인을 구성하고 유지보수하는 역할을 수행할 가능성이 큽니다.
    • 자동화 및 모니터링: SaaS는 24/7 가동을 요구하므로, 자동화된 테스트, 배포, 모니터링 시스템이 필수적입니다. SE는 이러한 자동화 툴과 모니터링 시스템의 개발과 유지보수에 참여할 수 있습니다.
  • 일반 서비스 회사:
    • 단일 테넌트 혹은 개별 시스템: 서비스 회사에서는 고객 맞춤형 솔루션을 제공할 수 있으며, 각 프로젝트마다 독립적인 시스템이 운영될 수 있습니다. 이 경우, 고객의 요구에 맞춘 설계와 개발이 중요합니다.
    • 프로젝트 기반 개발: 서비스 회사에서는 종종 특정 프로젝트 단위로 개발이 이루어지며, 프로젝트 완료 후 유지보수 단계에 진입하거나 다른 프로젝트로 넘어가는 방식으로 일합니다.
    • 고객 맞춤형 커스터마이징: SE는 고객의 특정 요구 사항을 반영한 맞춤형 솔루션을 개발할 수 있으며, 이 과정에서 요구사항 분석, 설계, 구현, 테스트 등을 수행합니다.

2. 업데이트 및 유지보수

  • SaaS 회사:
    • 정기적인 업데이트: SaaS는 사용자에게 일관된 소프트웨어 경험을 제공하기 위해 정기적인 기능 업데이트와 버그 수정을 진행합니다. SE는 이러한 업데이트를 개발하고 배포하는데 중요한 역할을 합니다.
    • 안정성 및 가용성: SaaS 서비스는 가동 중단이 최소화되어야 하므로, SE는 시스템의 안정성과 가용성을 보장하는 데 집중합니다. 이는 장애 복구 계획(DR)과 고가용성(HA) 구조 설계 등을 포함할 수 있습니다.
  • 일반 서비스 회사:
    • 고객 맞춤형 유지보수: 서비스 회사의 SE는 개별 고객의 시스템에 대한 유지보수를 담당할 수 있습니다. 이는 특정 기능 추가, 성능 개선, 버그 수정 등을 포함하며, 각 고객의 요구에 맞게 대응해야 합니다.
    • 프로젝트 종료 후 유지보수: 프로젝트 완료 후 일정 기간 동안 유지보수 계약을 맺고 지원하는 경우가 많으며, SE는 이 기간 동안 시스템 안정성을 관리하고 필요에 따라 개선 작업을 수행합니다.

3. 고객 및 사용자 상호작용

  • SaaS 회사:
    • 다수의 사용자 관리: SaaS SE는 여러 고객이 동시에 사용하는 시스템을 관리해야 하며, 사용자 피드백을 바탕으로 제품 개선을 지속적으로 추진합니다.
    • 유저 인터페이스와 경험: 다수의 사용자가 동일한 인터페이스를 사용하므로, 사용자 경험(UX) 개선과 인터페이스의 일관성이 중요합니다.
  • 일반 서비스 회사:
    • 개별 고객과의 밀접한 상호작용: 서비스 회사의 SE는 종종 특정 고객과 밀접하게 협력하며, 고객의 요구에 맞춘 솔루션을 개발합니다. 이 과정에서 고객 요구사항을 구체화하고, 이를 소프트웨어로 구현하는 것이 주요 역할입니다.
    • 맞춤형 솔루션 제공: 고객의 특정 비즈니스 요구에 맞춘 솔루션을 제공해야 하며, 고객의 피드백을 빠르게 반영하는 능력이 필요합니다.

4. 기술 스택 및 도구

  • SaaS 회사:
    • 클라우드 기반 개발: SaaS 회사는 클라우드 인프라를 적극적으로 활용하며, AWS, Azure, GCP 같은 클라우드 플랫폼을 사용해 인프라를 관리합니다. SE는 이러한 클라우드 환경에 익숙해야 하며, 관련 도구와 기술을 잘 다루어야 합니다.
    • 마이크로서비스 아키텍처: 많은 SaaS 회사들이 마이크로서비스 아키텍처를 채택하고 있으며, SE는 이러한 아키텍처에서의 개발 경험과 관련 도구(Git, Docker, Kubernetes 등) 사용 능력을 요구받을 수 있습니다.
  • 일반 서비스 회사:
    • 온프레미스 및 하이브리드 환경: 서비스 회사는 온프레미스(내부 서버)나 하이브리드 환경에서 작업할 수 있으며, 고객의 환경에 맞춘 기술 스택을 사용합니다.
    • 프로젝트별 기술 스택: 특정 프로젝트에 따라 사용하는 기술 스택이 달라질 수 있으며, SE는 다양한 언어와 프레임워크에 익숙해져야 할 수 있습니다.

결론

SaaS 회사의 SE는 주로 대규모 사용자 기반을 위한 시스템의 확장성, 가용성, 유지보수에 중점을 둔다면, 일반 서비스 회사의 SE는 개별 고객 맞춤형 솔루션 개발과 유지보수에 더 집중합니다. 두 경우 모두 소프트웨어 개발의 기본 원칙은 같지만, 적용 방식과 집중하는 영역이 다를 수 있습니다.


감사합니다.