__CAPGO_KEEP_0__ 로고
이야기

새로운 조직 시스템

capgo 팀이 새로운 조직 시스템을 추가한 배경 이야기

WcaleNieWolny

WcaleNieWolny

콘텐츠 마케터

새로운 조직 시스템

소개

안녕하세요, 저는 WcaleNieWolny - Capgo의 리드 소프트웨어 엔지니어입니다.

지난 8개월 동안, 나는 "__CAPGO_KEEP_0__" 시스템을 개발해 왔습니다. "__CAPGO_KEEP_0__" 시스템4월 14일 현재, 시스템이 완성되었습니다. 🎉 🎊

8개월 동안의 노력 끝에, 모든 Capgo 기능이 조직 구성원에게 사용 가능합니다. 이에는:

  • 통계
  • 결제
  • CLI 전체 지원
  • 그리고 더 많은 기능이 있습니다!

이곳에 오기까지는 쉽지 않았습니다. 시스템의 3대 버전이 개정되었습니다.

"__CAPGO_KEEP_0__" v1

시작은 어려웠습니다... 처음에는 2주 만에 이 프로젝트에 참여했습니다. 당시에는 코드베이스나 큰 아이디어에 대한 지식이 거의 없었습니다.

이것은 앱, 채널 및 버전만 접근할 수 있는 가장 비정상적인 해결책을 구현하는 데로 이어졌습니다. 이것은 초대된 사용자가 통계를 접근할 수 없도록도 했습니다.

그리고 나서 Martin이 이 것을 검토해 주기를 기다렸습니다. 기다리고 기다렸지만, 정말로 아무것도 일어나지 않았습니다. 3개월 후에, 나는 이 것을 다시 돌아와 merge conflict를 해결하고, 테스트를 하기로 결정했습니다. 그리고 나서, 이것이 정말로 좋은 생각이었음을 알게되었습니다. 비정상적인 해결책이 완전히 실패했다는 것을 알게되었습니다. 그 순간, 나는 모든 버그를 고치고, 광범위한 E2E 테스트를 작성하기로 결정했습니다. 과거의 나의 많은 나쁜 결정과 매우 깨진 code와 함께, 나는 2주간의 어려운 작업 끝에, 그것이 작동하는 것을 얻었습니다.

그러나, 그것은 완벽하지는 않았습니다. 조직의 소유자는 초대된 사용자보다도 더 많은 접근 권한을 가지고 있었으며, 사용자 경험도 매우 부족했습니다. 초대된 사용자는 애플리케이션 통계를 볼 수 없으며, 청구를 관리할 수 없었습니다. 또한 CLI는 업로드만 가능했습니다.

그것은 모든 이러한 어려움에도 불구하고, Martin이 PR을 검토했으며, 1주 후에, 그것이 프로덕션으로 푸시되었습니다.

조직 v2

조직 시스템은 모든 어려움에도 불구하고, 잘 작동하고 있었습니다. 사용자는 그것을 사용하고 있었으며, 그것은 전체 프로젝트를 앞서가게했습니다. 그러나, 나는 여전히 해야 할 일들이 많았습니다.

  • fix the mess made in row level security
  • 전체 CLI를 지원하기
  • 관리자 사용자가 소유자와 동일한 접근 권한을 가지고 있도록 하기

After 많은 토론 후에 Martin과 함께, 우리는 앞으로 진행하기에 가장 좋은 방법이 전체 보안 규칙을 다시 작성하고 모든 자원 소유권을 조직과 사용자 대신 조직으로 옮기는 것이었다. 이러한 조직 시스템과 새로운 조직 시스템과 쉽게 통합할 수 있도록 하며, 또한 많은 code의 유산을 제거할 수 있었다.

새로운 RLS code를 작성하는 것은 매우 지루했지만, 1주半만에 전체 마이그레이션을 준비할 수 있었다.

이번에는 E2E 테스트를 작성하지 않기로 결정했는데, 이는 수동으로 테스트해야 한다는 것을 의미했다. Martin과 함께 3번의 매우详细한 통화를 하면서, 마침내 Martin과 나는 프로덕션에 푸시하고 잘 될 것이라는 희망을 가지고 push를 결정했다 🙏

그러나… 사용자 등록이 깨졌고, 새로운 사용자는 계정을 만들 수 없었다 😅

빠른 공포의 통화 후, 나는 즉시 프로덕션에 변경 사항을 푸시하고 잠을 청했다. 그러나,私の変更은 더 많은 문제를만들었다 😰

내가 잠에서 깨어났을 때, 사용자는 많은 빈 조직을 가지고 있었다. 사용자는 1개의 조직만 허용되어야 하는데, 이것은 발생하지 않아야 한다. 빈 조직을 제거하기 위해 몇 시간 동안 브레인스토밍을 하였지만, 그 외에는 변경 사항은 비교적MOOTH하게 진행되었다.

조직 v3

이것도 충분하지 않았다. 아직도 하나의 거대한 구성 요소가 빠져 있었다 - 청구.

이미까지는 소유주만이 청구 관리를 할 수 있었다. 이로 인해 사용자가 조직을 위해 구매한 계획을 생각했지만 실제로는 사용자가 구매한 경우가 있었다. 이 문제를 해결하기 위해 우리는 즉시 수동으로 문제를 해결했으며 이 문제가 불가하다고 결정한 시점이 바로 이때였다.

업그레이드가 비교적 smooth했다. V1과 V2와 비교했을 때 정말로 어려운 것이 아니었다. 🚀

조직 v4 - 미래

이 모든 어려운 노력 끝에 이제는 다른 것에 집중할 때가 된 것 같다 😎

쉽지 않았지만 많은 것을 배웠고 capgo은 매우 좋은 기능을 받았다 이 시스템에 대한 주요 변경이 없도록 하기 위해 아직은 레거시 함수를 deprecated하고 웹 앱 사용자 경험을 개선하고 버그를 모니터링해야 한다.


읽어주셔서 감사합니다 🚀

Capacitor 앱에 대한 실시간 업데이트

Capgo을 통해 웹-layer 버그가 생긴 경우, 앱 스토어 승인까지 며칠 기다리지 않고 바로修정해줍니다. 사용자는 배경에서 업데이트를 받으며, 네이티브 변경은 일반적인 리뷰 경로를 유지합니다.

시작하기

블로그에서 최신 뉴스

Capgo은 전문적인 모바일 앱을 만들기 위해 필요한 최고의 통찰력을 제공합니다.