“양질의 서비스를 제공하기 위해”
시클시클은 이용자들에게 양질의 서비스를 제공하기 위해 기업과 수업의 검증 절차를 만들었습니다.
시클시클의 관리자가 사용하는 admin 페이지를 통해 승인된 기업과 수업만 활성화 됩니다.
기업 승인 / 거부 기능
CP(Content Provider)쪽으로 회원가입을 신청하면 해당 CP 가입승인 페이지에 신청 목록이 나타납니다.
테이블에 있는 승인, 거부 버튼을 누르면 테이블이 리프레시 되면서 승인/거부 작업이 완료됩니다.
•
거부한 CP는 DB에서 ‘삭제’
◦
거부한 CP를 어떻게 처리해야 할지 고민했습니다.
◦
이메일이 같을 경우 재가입 신청이 어렵기 때문에 해당 CP 정보를 DB에서 완전히 삭제하는 방법을 선택했습니다.
◦
실제로 활동한 유저가 아니기 때문에 추후 데이터 활용에도 문제가 되지 않을 것이라 생각했습니다.
수업 승인 / 반려 기능
승인된 CP가 수업을 등록할 경우, 해당 수업승인 페이지에 수업신청 목록이 추가됩니다.
•
승인 클릭
◦
수업승인요청 테이블에서 request_status가 ‘approve’로 변합니다.
◦
수업 테이블의 status 칼럼이 ‘OPEN’으로 변해 수업이 노출됩니다.
•
반려 클릭 후 반려 사유를 입력
◦
수업승인요청 테이블에서 request_status가 ‘reject’로 변하며 반려사유가 저장됩니다.
◦
수업 테이블에서 해당 수업은 softDelete로 삭제됩니다.
Transaction
해당 수업 승인/반려 기능은 2개의 데이터베이스의 상태를 변경하고 있습니다.
테이블 | 칼럼 | 상태 |
수업승인 요청 | request_status | 승인/반려 |
수업 | status | OPEN 또는 삭제 |
수업승인 요청 칼럼이 승인으로 변경되었으나, 수업의 status가 OPEN이 되지 않아 노출되지 않는 경우,
수업승인 요청 칼럼이 반려로 변경되었으나, 수업이 삭제되지 않고 있는 경우 등의 상황을 방지하기 위해 트렌젝션을 도입하였습니다.
•
효과
◦
트랜잭션을 통해 수업 승인/반려 과정에서 발생할 수 있는 데이터 불일치 문제를 방지
◦
두 데이터베이스 간의 상태를 항상 일관되게 유지
이를 통해 시스템의 신뢰성을 높이고, 사용자에게 정확한 정보를 제공하며, 관리자가 승인/반려 작업을 안전하게 수행할 수 있도록 보장할 수 있게 되었습니다.