개발일지

    플러터 프로젝트에 코드매직으로 CICD 도입하기

    플러터 프로젝트에 코드매직으로 CICD 도입하기

    진행하고 있는 앱 서비스의 규모가 커지고 이해관계자가 다양해지고 많아짐에 따라 그동안 수동으로 진행했던 배포를 자동화해야 하는 필요성을 느꼈습니다. 회사 내부에서 파이어베이스 배포 서비스를 이용하여 내부 테스터들에게 앱을 배포하고 있는데 잦은 빌드 잦은 배포로 인해 업무의 효율성이 낮아졌기 때문이지요. 사내에서는 프로젝트 원격 저장소로 빗버킷을 이용하고 있기에 CI/CD 구축을 위해 빗버킷에서 제공하는 파이프라인을 사용할 수 있었지만 파이프라인은 리눅스 환경에서 돌아가기 때문에 iOS 앱을 빌드할 수 없었습니다. 따라서 남은 선택지는 1. macos 빌드 환경을 자체 구축한다 2. 외부 CICD 서비스를 이용한다 였고, 빠르게 구축하기 위해 돈을 주고 외부 CICD 서비스를 이용하기로 결정하였습니다. 저..

    배포는 미리미리

    배포는 미리미리

    플레이스토어에 앱을 배포하면서 처음으로 고통을 받았습니다. 원래라면 공개/비공개 테스트에서 검토를 한번 받고 프로덕션으로 트랙을 변경해서 빠르게 올리는게 배포 전략이었는데, 검토 기간이 예상 외로 길어지면서 일이 꼬이고 말았죠. 사업부에서는 업데이트 언제 되냐고 계속 물어보시고.. 저는 처음 겪는 일이라 일단 구글에 문의를 해보겠다 조금만 기달려달라고만 대답했습니다. '혹시 다시 새 버전으로 출시하면 심사 대기열의 앞 쪽으로 배치받지 않을까?' 라는 잘못된 판단으로 새 버전을 계속해서 올렸고 그 결과는 참담했습니다.. 알고보니까 이전에 심사가 완료되지 않은 것이 있다면 이전 것은 제쳐두고 마지막 제출된 사항으로 다시 재검토를 시작한다고 하더군요.. 구글에 문의한 답변을 읽고 처음 알았습니다. 어쨋든 러프..

    애플 앱 스토어 앱 출시 거부 - 안전성(Safety)

    애플 앱 스토어 앱 출시 거부 - 안전성(Safety)

    앱스토어에 커뮤니티 앱을 출시하려고 심사 요청을 했더니 다음과 같은 사유로 거부되었습니다. 대충 해석해보자면 가이드라인 1.2 - 안전성 - 사용자가 생성한 콘텐츠(Guideline 1.2 - Safety - User Generated Content) 항목에 위반되어 심사가 거부되었다는 것인데요. 위 항목에서 심사 거부를 받지 않으려면 다음과 같은 기능을 추가해야만 했습니다. 커뮤니티 사용자 이용 약관 제공하기 제가 개발한 어플같은 경우 따로 회원가입은 없고 OAuth 로그인을 할 수 있도록 해놔서 따로 유저들의 상태를 관리하지 않았습니다. 보통 회원가입이 있는 어플들은 회원가입할 때, 이용 약관의 동의를 구하기 때문에 상관없는데 소규모 어플같은 경우에는 커뮤니티를 이용하기 전에 반드시 이용 약관의 동의..