12월 4일 리액트와 스프링 부트 환경 구축 이후 아무런 포스팅을 올리지 못하였다.

프로젝트를 진행하면서 동시에 포스팅을 진행하고자 했지만, 마음처럼 되지 않았던 점이 많았다.

같은 실수를 반복하지 않기 위해 정리를 해보고자 한다.

 

나의 실수

 

첫째. 리액트의 진입장벽

이번 프로젝트에서 WebRTC를 사용하고자 리액트를 학습하기 시작하였다.

그런데 단순히 WebRTC 라이브러리 사용 외에도, 리액트에 대한 근본적인 학습이 필요했다.

리액트 공부를 하면 할수록 프로젝트의 방향이 잘못되어감을 느꼈고, 배보다 배꼽이 커지는 것처럼 느껴졌다.

 

 

둘째. 미디어 서버를 직접 구축하려고 했던 점

나는 프론트단에서 webRTC를 통해 받아온 실시간 영상 정보를 서버에서 직접 컨트롤 하고 싶었다.

그러나 react와 spring 간 데이터 통신이 쉽지 않음을 느꼈다.

이즈음 나는 쿠렌토 미디어 서버(KMS)를 활용하면 프로젝트를 쉽게 구현할 수 있다고 생각했지만, 직접 구현하고자 하는 욕심이 많아 외면했다.

 

셋째. 설계의 부재

내가 프로젝트에서 얻고자 했던 것은 실시간 영상 송출 기술을 사용해본 경험이다.

그렇다보니 기본적인 로그인, 회원가입 기능이나, DB를 붙인다는 생각조차 하지 않고 프로젝트를 진행했다.

 

하지만 이러한 설계가 없이 프로젝트를 진행하다 보니 막히는 부분이 많았고, 역방향으로 개발이 진행되어 어려움을 겪었다.

 

 

나는 어떻게 극복했는가.

 

 

첫째. 팀원을 구했다.

리액트까지 내가 직접 구현하는 것이 맞는가에 대한 고민이 지속되던 중, 회사일이 너무 바빠지면서 시간을 더 이상 여유있게 할애하지 못하게 되었다.

이러다가 지지부진하게 프로젝트를 마무리 할 것 같아. 리액트를 사용할 줄 아는 프론트엔트 팀원을 구했다.

프론트와 백을 구분하여 개발을 진행하니 속도도 빨라지고, 부담도 적어졌다.

또한 팀원분과의 케미가 잘맞아 개발에 흥미를 더할 수 있었다.

 

둘째, KMS를 사용했다.

팀원과의 회의를 통해 미디어 서버를 직접 구축하는 방식은 시간이 너무 오래걸릴거라 생각하고 KMS를 적극 활용하기로 했다.

막상 KMS를 커스터마이징하여 사용하는 것 또한 쉽진 않았지만, 여러가지를 배울 수 있었다.

 

셋째, 기획과 설계를 했다.

단순히 기능 구현에 그치지 않고, 라이브 커머스 서비스를 구축한다는 가정하게 기획을 진행했다.

전체 프로세스를 상정하고, 디테일한 설계를 진행했으며, 서비스 업데이트의 방향성을 정했다.

 

 

그래서 현재 상황은?

 

프론트분과의 첫 만남이 12월 12일이었고, 프로젝트 진행 3주차를 지나고 있다.

우리는 회원가입, 로그인, 라이브 스트리밍 방 생성, 실시간 채팅까지 서비스의 기본적인 기능을 모두 구축하였다.

 

원래는 블로그에 하나하나 정리하면서 프로젝트를 진행하고 싶었다.

하지만 개발에 속도가 붙으면서 너무 재밌는 바람에 정신없이 개발을 진행했다.

기본적인 기능을 만들긴 했지만, 아직 서비스에 허점이 많아 이 부분을 보완하고, 서비스 확장을 위한 여러가지 고민을 좀 해보고자 한다.

 

일단 어느정도 숨을 고르기 위해, 프로젝트 기술 정리를 하면서 하나하나 또 진행해보고자 한다.

 

개발 소스는 아래의 링크에서 확인 할 수 있다.

 

https://github.com/SELL-BOX/sellbox-backend

+ Recent posts