[Sequence] Front는 서버 개발이 끝난 다음에 하자

상황

  • AI노트 기능 리팩토링
  • 기존의 로직: DB에 임의값을 저장해서 키값을 받아오고, 그 키값으로 Audio파일을 SST처리를 위해서 다시 다른 서버에 요청을 하고, 그 결과를 다시 DB에 저장하는 로직인데, 애초에 중복으로 서버에 요청을 하기도 하고 기획과 달리 쓰지 않는 부분의 로직도 있어서 전면 재수정을 함
  • 변경된 로직: Front에서 audio 파일을 다글로 서버에 보내면 그 서버에서 STT결과 등을 반환해주고, audio파일을 별도의 DB에 저장하고 그 저장된 URL을 주면 그걸로 음성재생을 할 수 있도록 함
  • Front에서는 audio 파일을 서버로 보낼 때 FormData로 userId와 audio 파일만 보내기로 함
  • 그런데, 반환받은 데이터를 가공해서 다시 DB에 넣는 것에 대해서는 서로 얘기를 하지 않음

문제 발생

  • 서버쪽 개발자도 아직 개발 덜 끝난 상태였고, 최종으로 SST와 요약 처리 등을 한 데이터를 우리쪽 DB에 넣는 것에 대해서는 얘기를 하지 않아서 당연히 자기가 넣는 것으로 생각했나봄
  • 나도 음성 녹음이 끝나면 당연히 처리한 데이터를 DB에 넣는 것인데, 그래서 결국 ID값이 서로 다르게 두 번 Insert를 하는 문제 발생
  • 심지어 이번에 더 당연하게 서버쪽을 생각 못했던 건, 처음 Front쪽 로직 수정을 시작할 때 이미 개발쪽의 큰 틀은 끝난 것으로 생각을 하고 있어서 중복 데이터들이 갑자기 발생하기 시작했을 때 Front로직에서 중복으로 API를 호출하는 것인가에 대해서 먼저 의심을 했고, 그 이후 서버 개발자와 의사소통이 잘못됐던 것이 난 서버에 변경사항이 있는지를 물어봤는데, 서버 개발자는 중복 데이터가 발생하는 것이 서버에 원인이 있는 것이냐는 것으로 알아들었던 것 같음

해결

  • 결국 서버 개발자는 중복데이터를 본인 쪽은 아니다.. 라고만 답했고, 난 계속 Front쪽과 다른 부분 로직을 찾다가, Postman으로 API요청만 다시 했는데도 데이터가 들어가는 것을 확인하고, Front와 다글로 쪽 서버에서 각 한번씩 Insert하는 것이라는 것을 발견함

교훈

  • Front 로직 리팩토링은 Server개발이 완전히 끝난 다음에,
  • Front의 로직을 웬만큼 다 분석한 다음에 하자
  • 의사소통을 분명히 하자

예시

  • 데이터가 중복으로 들어가는데, 이거 혹시 서버에서 넣는 거 맞아요? (X)
  • Front쪽에서 기존에 Insert하는 로직이 있는데, 혹시 서버에서도 별도로 DB에 Insert하는 로직이 있어요? (O)

Categories:

Updated:

Leave a comment