오늘은 개발의 마무리 단계인 출시와 배포, QA
를 공부했다.
개발이 완료되면 개발자들은 코드리뷰를 진행한다. 코드 리뷰는 디버깅이 완료된 코드를 개발자간에 서로 크로스 채킹을 하는 과정을 말한다. 개발팀 특유의 상호 소통 방식이라고 할 수 있다.
코드리뷰를 마친 이후에도 테스트 절차를 거친다. 개발은 항상 완벽할 수 없기 때문에, 테스트 서버를 두고 항상 테스트한다. 이를 통해 실제 배포 시에 생길 수 있는 문제를 사전에 검토하고, 특히 서버 없이 로컬에서 구현되는 프론트앤드와 프론트 연동 없이 개발되는 백엔드의 경우에는 테스트 서버에 배포해 연동되는지 테스트 해야한다.
위 과정을 거치면 안정적으로 배포할 수 있다. 배포는 고객에게 제품이 전달되는 과정이다. 이때 배포 실패는 곧 서비스 중지를 의미하기 때문에 제품 책임자인 PM은 배포과정에 직접적으로 관여해아한다.
QA는 단순한 테스트를 넘어, 제품의 품질을 안정화하고, 유지보수, 개선과 관련된 모든 업무를 아우르는 상위 개념이다. QA에서 진행하는 업무 다음과 같다.
기획 문서 리뷰 - QA 담당자가 작성된 기획서를 리뷰하면서, 기획의 문제점이나 버그 발생의 요소는 없는지 등을 검토
테스트 케이스 작성 - QA 담당자는 기획서를 기반으로 테스트 케이스를 정리
내부 리뷰 - PM, 개발자, QA 등 프로덕트 팀이 테스트 케이스를 점검하며 문제가 없는지 확인
테스트 케이스 수행 - 테스트 케이스 기반으로 QA 담당자들이 수행하며 Pass/Fail 여부를 확인
7주차 개발지식을 배우기 전인 W6D1에 카카오뱅크의 개발적인 면을 살펴보는 과제를 진행했었다. 아래와 같다.
이체 과정을 그린 Flow Chart다. 여기서 주목할 점은 데이터가 입력되고 데이터를 확인하고, 데이터를 출력하는 과정이다.
우선 사용자는 이체 과저에서 계좌번호, 이체 금액을 입력한다. 이를 서버에서 처리하여 유효한 계좌번호인지 확인한 후, 유효하다면 이체를 완료한다. 만약 유효한 계좌번호가 아니라면, 유효하지 않은 계좌번호임을 출력한 후 다시 계좌번호를 입력하는 프로세스부터 진행하도록한다.
이 Flow Chart는 이체과정을 매우 축약한 다이어그램이지만, 각 단계에서 클라이언트, 서버, DB가 해야하는 역할이 나뉜다. 각 단위에서 어떤 과정이 이루어지는지 구체적으로 알아보자!
위의 Flow Chart를 UI, 클라이언트, 서버, DB 각 단계에서 어떻게 처리 되는지 유추하여 다이어그램으로 제작했다.
간략히 정리하자면, 클라이언트는 사용자가 UI를 통해 시도하는 모든 과정을 담아낸다. 예를들면, 계좌번호를 입력하거나, 이체를 시도하는 작업들을 처리하고 있는 것을 볼 수 있다. 이렇게 입력된 데이터는 서버로 넘어가 처리된다. 클라이언트에서 이체를 요청하면, 클라이언트에서 입력된 데이터가 이체 요청에 유효한 데이터인지 판단하여 결과를 전달한다. 이때 데이터가 유효한지 파악하기 위해 DB에 저장된 데이터를 불러와 비교한다.
W6D1에도 이체 과정 플로우 차트와 더불어, Technical Flow Chart를 작성했었다. 여기에 덧붙여 사용자, 클라이언트, 서버, DB 각각의 데이터와 과정을 자세히 작성해봤다.
사용자
클라이언트
클라이언트 → 사용자
클라이언트 → 서버
서버
서버 → 클라이언트
서버 → DB
DB
DB → 서버
오늘 과제는 개발 지식을 배우기 이전에, 개발과정을 유추해 작성해본 W6D1 과제를 리뷰해보는 과정이었다. 개인적으로는 DB, 서버, 클라이언트와 협업해본 경험이 있어 W6D1 과제 부터 Technical Flow Chart 작성해 오늘 과제에 덧붙인게 많지는 않았다.
하지만, PMB의 'PM이 알아야할 개발 지식'을 통해 전반적인 개발과정을 이해해, 각각의 단계에서 PM이 해야하는 것들을 짚어볼 수 있는 시간이었다.