소개
안녕하세요, 저는 와일리니볼니 - Capgo의 리드 소프트웨어 엔지니어입니다.
지난 8개월 동안, 저는 조직 시스템을 개발해 왔으며, 4월 14일부터는 시스템이 완성되었습니다 🎉 🎊
마침내, 8개월 만에 Capgo의 모든 부분이 조직 구성원에게 접근할 수 있습니다. 이에는:
- 애플리케이션
- statistic
- billing
- 전체 CLI 지원
- 그리고 더 많은 것들이 있습니다!
여기까지 오기에는 많은 노력이 필요했습니다. 시스템의 3대 주요 개편이 있었기 때문입니다.
Organizations v1
시작은 어려웠습니다... 프로젝트에 합류한 2주 후에 이 작업을 시작했습니다. 당시에는 코드베이스에 대한 지식이 거의 없고, 큰 아이디어도 없었기 때문입니다.
이로 인해 앱, 채널, 버전만 접근할 수 있는 가장 비정상적인 해결책을 구현했습니다. 초대된 사용자는statistic도 볼 수 없었습니다.
그 후에 Martin이 이 코드를 검토하라고 기다렸습니다. 그러나 아무런 변화도 없었고, 3개월 후에 다시 이 코드를 고치기로 결정했습니다. 또한 테스트를 진행했는데, 그 결과가 좋았습니다. 그러나 비정상적인 해결책은 완전히 실패했습니다. 그 순간, 모든 버그를 고치고 E2E 테스트를 작성하기로 결정했습니다. 이전의 나의 많은 잘못된 결정과 함께, 매우 부서진 code와 함께 2주간의 어려운 작업을 거쳐야만 작동했습니다.
그러나 완벽하지는 않았습니다. 조직의 소유자는 초대된 사용자보다도 더 많은 권한을 가지고 있었고, 사용자 경험도 매우 부족했습니다. 초대된 사용자는statistic을 볼 수 없었고, billing을 관리할 수 없었으며, CLI는 업로드만 가능했습니다.
그러나 Martin은 PR을 검토했고, 1주 후에 프로덕션에 푸시되었습니다.
Organizations v2
새로운 조직 시스템은 모든 어려움에도 불구하고 잘 작동하고 있었습니다. 사용자는 이를 사용하고 있었고, 이는 프로젝트 전체를 앞으로 밀어주었습니다. 그러나 여전히 해야 할 일들이 있었는데요.
- 수정해야 할 문제가 있었는데요. 행단위 보안
- CLI 전체에 대한 지원
- __CAPGO_KEEP_0__
After __CAPGO_KEEP_0__를 작성하는 것은 매우 지루했지만, 1주半 만에 전체 마이그레이션을 준비했습니다. with Martin, we decided that the best way to move forward was to rewrite the entire security rules and to move all the resource ownership to organizations and not users. This would allow for easier integration with the new organization system, and it would also remove a lot of legacy code.
RLS code을 새로 작성하는 것은 매우 지루했지만, 반 정도의 기간이 지난 후 전체 마이그레이션은 준비되었다.
급히 공포의 전화통화를 하였고, 나는 빠르게 프로덕션으로 변경을 푸시하고 잠을 청했습니다. 그러나,私の変更은 더 많은 문제를 만들었습니다.
마틴과 함께 3번의 매우详细한 통화를 통해, 마침내 프로덕션으로 푸시하고 잘 될 것이라는 희망을 가지고 있었습니다.
그러나… 사용자 등록이 깨졌고, 새로운 사용자는 계정을 만들 수 없었습니다.
나는 잠에서 깨어났을 때, 사용자가 많은 빈 조직이 있었다는 것을 발견했습니다. 이는 사용자당 1개의 조직만 허용되어야 하는데, 이것은 발생하지 않아야 한다는 것입니다. 모든 중복된 빈 조직을 제거하기 위해 몇 시간 동안 브레인스토밍을 하였지만, 그 외에는 변경 사항이 비교적MOOTH하게 진행되었습니다.
조직 v3
그것도 충분하지 않았습니다. 아직까지 billing에 대한 큰 구성 요소가 누락되어있었습니다.
현재까지는 소유주만 billing을 관리할 수 existed였습니다. 이것은 사용자가 조직을 구매한 것으로 생각했지만 실제로는 조직에 구매한 것이 아니었기 때문에, 사용자에게 몇 가지 흥미로운 문제가 발생했습니다. 이 문제를 수동으로 해결하였고, 이 문제가 불가하다고 결정하였습니다.
이전 버전인 V1과 V2와 비교하여, 이 마이그레이션은 비교적MOOTH하게 진행되었습니다. 1주일의 작업이 필요하였지만, 🚀
조직 v4 - 미래
이 모든 어려움을 겪고 나서, 이제는 다른 것을 집중할 때가 된 것 같습니다 😎
이것은 쉽지 않았지만, capgo는 매우 좋은 기능을 받았습니다. 이제는 레거시 함수를 deprecated하고, 웹 앱 사용자 경험을 개선하고, 버그를 모니터링해야 하지만, 이 시스템에 대한 주요 변경 사항은 없을 것입니다.
읽어주셔서 감사합니다 🚀
A brand new organization system으로 계속 가세요
현재 사용 중인 경우 새로운 조직 시스템 계획 대시보드와 API 운영을 계획하고 연결하세요. API 개요 API 개요의 구현 세부 정보를 위해 소개 소개의 구현 세부 정보를 위해 API 키 API 키의 구현 세부 정보를 위해 장치 context Bundles 장치의 구현 세부 정보를 위해, 그리고