혼자서 개발한다면 프로젝트에 대해 자기가 다 알고 자기만 알면 된다. 코드를 수정했을 때 기능에 문제가 없는지 테스트도 조금의 귀찮음만 감수하면 문제없다.
그런데 두명 이상이 한 프로젝트에서 같이 개발할 때부터 문제가 생긴다. 마치 서버도 한대만 있으면 문제가 없지만 두 대 이상으로 가면 데이터 정합성 등 따져야할 문제가 많아져 복잡해지는 것처럼 느껴진다.
지금 내가 생각하는 문제는 다음과 같다.
1. 현재 코드에 문제가 없는지 확인하는 것을 개인 재량에 맡기면 문제가 생길 수 밖에 없다. 그리고 문제가 생겼을 때 책임이 개인에게 가기 때문에 개인에게 부담이 될 수 있다. 또한 사람은 까먹을 수 있기 때문에 항상 더블 체크가 필요하다.
2. 기능 테스트를 매뉴얼하게 하면 놓치는 부분이 생길 수 밖에 없다.
그래서 코드 품질을 유지하는 시스템이 갖춰져야 한다고 생각했다.
https://maestro.mobile.dev/
get started 보고 세팅한 다음
팀원이 작업하던걸 바톤 터치해서 마무리했다. 크크
작업 중 만났던 문제는
1. iOS를 테스트할 때 text를 기반으로 tapOn할 때 정규표현식으로 작성된 것을 정규표현식으로 인식하지 못하는 문제가 있었고 테스트 환경에서 언어를 한국어로 통일하는 것으로 해결했다.
2. iOS에서 모달에 있는 텍스트를 인식하지 못해 tapOn을 하지 못하는 문제가 발생했고, tapOn 해야하는 대상에 testID를 설정하는 것으로 해결했다.
아쉽게도 maestro를 github actions에 추가하려면 maestro cloud 서비스를 이용해야 한다. 그래서 대안으로 현재 PR 양식인
## What is this PR?
## Changes
## Screenshots
## Test Checklist
에서 Test Checklist에 maestro를 로컬에서 실행하고 그 스샷을 첨부하도록 하는 것을 생각했다.
그외 lint, prettier, tsc, android, ios 빌드 테스트는 gpt한테 물어보며 작성했다.
https://typicode.github.io/husky/
https://github.com/lint-staged/lint-staged
husky와 lint-staged에 대해 설명하는 블로그들이 많았는데 내용들이 옛날 내용이거나 그런 것들이 많아서 그냥 get started 보는게 나은 것 같다.
각각에 대해 시간이 난다면 별개의 포스트로 자세히 블로그에 적어보고 싶다...