# Mocco가 제공하는 것

Mocco는 코드를 제외하고 제품에 필요한 모든 것을 제공합니다. 팀이 제품을 출시하고, 운영하고, 사용자의 의견을 듣는 데 쓰는 도구입니다. 제품은 하는 일에 따라 **Release**, **Operate**, **Support**로 나뉩니다. 워크스페이스의 **Home**에서는 모든 제품에서 승인을 기다리는 항목을 한눈에 볼 수 있습니다. 모든 제품이 같은 워크스페이스, 멤버, 역할, 감사 로그를 공유하므로 승인자 역할을 한 번만 설정하면 모든 제품에 적용됩니다.

팀은 **워크스페이스**에서 일합니다. 워크스페이스 안에서 **프로젝트**는 앱과 저장소를 갖춘, 출시하는 제품 하나입니다. 배포 거버넌스, 알림, 감사 로그는 워크스페이스 단위로 동작하고, OTA, 기능 플래그, 상태 페이지, 메신저, 헬프 센터, API 키는 프로젝트 단위로 동작합니다. [워크스페이스와 프로젝트 설정하기](https://www.mocco.club/docs/ko/articles/iu3d9y-workspace-and-projects)에서 시작하세요.

제품은 워크스페이스의 **Products** 페이지에서 켜고 끕니다. 배포 거버넌스는 항상 켜져 있습니다.

![Products 페이지: Release와 Support 아래에 묶인 제품들. 배포 거버넌스는 항상 켜져 있고, 나머지에는 Turn on과 Turn off가 있으며, 아직 나오지 않은 제품은 On the roadmap 아래에 나열됩니다](https://fi-workers-mocco-storage.s3.ap-northeast-2.amazonaws.com/pub/w/93e11fe8-0494-4e3d-b1cb-fe4dffd3ee7e/p/d64785b8-9a23-4fa1-a81d-550af30e203a/helpcenter/d13baefb-e6a4-41ae-9b79-f336748e941d/products.png)

## Release

변경 사항을 프로덕션에 출시합니다. 위험이 따르는 변경은 적절한 사람이 승인합니다.

### 배포 거버넌스

배포 거버넌스는 "GitHub에 푸시할 수 있음"과 "프로덕션에 배포할 수 있음"을 별개의 권한으로 나눕니다. 저장소의 `.mocco.yml` 파일에 파이프라인을 기술합니다. CI에서 실행되는 단계와 그 사이의 게이트로 이루어집니다. 게이트는 알맞은 역할의 사람이 충분히 승인할 때까지 실행을 멈춥니다. 프로덕션 자격 증명이 필요한 단계는 게이트가 승인된 뒤에야 Mocco에서 자격 증명을 받습니다. [배포 거버넌스](https://www.mocco.club/docs/ko/articles/f48fys-overview)를 참고하세요.

### OTA와 강제 업데이트

모바일 앱을 위한 기능입니다. **Force update**는 스토어 앱마다 최소 버전과 권장 버전을 정해 오래된 빌드가 업데이트하도록 안내합니다. **Gated OTA publishing**은 지금 쓰는 OTA 도구(EAS Update, CodePush, hot-updater)를 그대로 쓰면서, 배포 토큰을 승인된 파이프라인에만 내줍니다. **Hosted OTA updates**는 React Native 앱의 업데이트를 Mocco에서 제공하며, 비율 기반 롤아웃, 보호된 채널, 즉시 롤백을 지원합니다. [OTA와 강제 업데이트](https://www.mocco.club/docs/ko/articles/x62axp-overview)를 참고하세요.

### 기능 플래그

타기팅 규칙, 세그먼트, 비율 기반 롤아웃을 갖춘 플래그를 [OpenFeature](https://openfeature.dev)로 평가합니다. 프로젝트마다 환경이 따로 있습니다. 보호된 환경은 모든 변경을 승인 대상으로 보내고, 킬 스위치는 플래그를 즉시 끕니다. [기능 플래그 빠른 시작](https://www.mocco.club/docs/ko/articles/f3cruw-quickstart)을 참고하세요.

## Operate

프로덕션에서 무슨 일이 일어나고 있는지, 무슨 일이 있었는지 파악합니다.

### 상태 페이지

사용자에게 서비스가 동작하는지 알립니다. 서비스의 각 부분을 컴포넌트로 나열하고, 인시던트를 선언하고, 해결될 때까지 업데이트를 게시합니다. 포스트모템을 작성하고, Mocco가 정시에 시작하고 끝내는 점검을 예약할 수도 있습니다. 각 컴포넌트에는 보고한 내용 중 가장 심각한 상태, 진행 중인 인시던트, 진행 중인 점검이 표시됩니다. [상태 페이지 운영하기](https://www.mocco.club/docs/ko/articles/dn83zy-status-page)을 참고하세요.

### 알림

Mocco는 이벤트를 Discord에 게시합니다. 승인을 기다리는 게이트 같은 Mocco 자체 이벤트와, Sentry, Vercel, GitHub의 웹훅이 대상입니다. 어떤 이벤트를 어느 채널로 보낼지는 직접 정합니다. [알림 개요](https://www.mocco.club/docs/ko/articles/f56ie6-overview)를 참고하세요.

**Audit** 페이지는 모든 제품의 승인, 프로덕션 변경, 자격 증명 발급을 변조를 감지할 수 있는 하나의 로그에 기록합니다. [감사 로그](https://www.mocco.club/docs/ko/articles/2yiscf-audit-log)를 참고하세요.

## Support

제품을 쓰는 사람들의 목소리를 듣습니다.

### 메신저

사용자를 위한 앱 내 "문의하기"입니다. 로그인한 사용자는 그대로, 로그인하지 않은 사용자는 남긴 이메일로 문의합니다. 사용자는 앱 안에서 원하면 스크린샷과 함께 글을 쓰고, 팀은 프로젝트의 **Inbox**에서 답합니다. 각 대화 옆에 사용자의 앱 버전과 플랫폼이 표시됩니다. 답장은 푸시 알림으로 앱에 전달됩니다. [Mocco Messenger로 앱 안에서 문의받기](https://www.mocco.club/docs/ko/articles/ky2kfv-contact-us)를 참고하세요.

### 헬프 센터

제품을 위한 공개 도움말 사이트입니다. 실시간 미리보기가 있는 Markdown으로 글을 쓰거나 기존 Mintlify 사이트를 가져옵니다. 글을 게시하고 다른 언어로도 제공할 수 있습니다. Mocco에서 번역을 켜 두었다면 자동으로 번역되고, 팀이 검수합니다. [헬프 센터 게시하기](https://www.mocco.club/docs/ko/articles/im56b3-help-center)를 참고하세요.

## API 키와 SDK

앱, 서버, CI는 프로젝트의 API 키로 Mocco와 통신합니다. 웹과 React Native 앱에는 **publishable** 키를, 서버와 CI에는 **secret** 키를 씁니다. SDK는 이 API를 플랫폼별로 감쌉니다. 브라우저용 `@mocco/js`, 서버용 `@mocco/node`, React Native 앱용 `@mocco/react-native`, 기능 플래그용 OpenFeature 프로바이더, CI에서 OTA 업데이트를 게시하는 `@mocco/cli`가 있습니다. [API 키](https://www.mocco.club/docs/ko/articles/avn27u-api-keys)를 참고하세요.

## 곧 제공될 기능

**Products** 페이지에는 아직 사용할 수 없는 제품도 **On the roadmap** 아래에 나열됩니다. 앱 리뷰, 피드백 보드, 포럼, 딥링크, 최종 사용자 ID입니다. 출시되기 전에는 켤 수 없습니다.
