OOOOO에서 7주간 6명(프론트 3명, 백엔드 3명)이 개발하였던 'WebRTC 기반 비대면 단체 클립 촬영 사이트'에 백엔드 및 인프라 담당으로 참여하였습니다.
실시간으로 참여자들의 배경을 제거하여 WebRTC를 통해 전송 및 합성하여, 클립을 촬영할 수 있다는 아이디어를 MVP를 진행/확인하여, Openvidu를 이용하여 인프라를 구축하였습니다. 개발 과정 중, MVP에서는 정상 동작하였으나 투명으로 제거한 배경이 WebRTC에서는 표준상 투명을 지원하지 않아 큰 어려움을 겪어, MVP에서 고려할 부분이 많다는 것을 배우게 되었습니다.
Spring와 JPA를 사용하여 백엔드 개발 중 팀원과 가장 신경 썼던 부분은 Review였습니다. Stacked Commit을 사용하여 서로 코드를 확인하여 어떤 개발을 진행하고 있는지 인지하고, 더 효율적으로 짤 수 있는가와 발생할 수 있는 문제는 없을까에 초점을 맞추었습니다. 활발한 리뷰 과정을 통하여 JPA에서 발생할 수 있는 N+1 문제, 양방향 매핑 문제 등을 사전에 방지하였습니다. 이런 리뷰 과정은 OOOOO 내에서 컨설턴트님과 코치님께 좋은 평가를 받았으며, 코드 리뷰를 활발하게 이끈 점을 인정받아 프로젝트 협업 베스트 멤버에 선정되었습니다.
프로젝트에서 라이브러리를 사용하던 중, 라이브러리 내에서 Reflection을 통해 참조하는 다른 라이브러리의 종속성에 관한 문제들을 맞닥뜨리고 큰 어려움을 겪었습니다. 시간과 노력을 들였을 때 각각 Reflection을 통해 사용하는 라이브러리의 버전이 잘못 추가되었거나 추가되지 않은 부분을 확인하여, 라이브러리를 사용하는 데 있어서 신경 쓸 부분이 많다는 것을 알 수 있었습니다.
프로젝트는 성공적으로 마무리되어 우수상(분반 2등)을 수여 받고 주변에서 큰 찬사를 받았으나, 문제 해결에 따른 시간이 부족하여 사용자 친화적 UI/UX를 구성하지 못하였고, 시큐어코딩까지 완벽하게 적용하지 못하여 이후 프로젝트에서 고려 및 시간 분배를 잘해야 함을 배우게 되었습니다.