개발자

플러터 개발자와 싸웠습니다…(저는 백엔드 개발자)

2022년 12월 12일조회 4,703

안녕하세요 저는 스타트업의 작은 백엔드개발자입니다. 저희 회사는 현재 커뮤니티 기능을 탑재한 앱을 출시 예정에 있고 개발을 진행중입니다. 여느때와 다름없이 백엔드 보수작업을 진행중이었습니다. 어느날 플러터개발자분이 협업툴을통해 대화를 걸어왔고 개발관련 요청사항이 있었습니다. 요청사항은 다음과 같았습니다. “플러터에서 좋아요, 북마크와 같은 기능들의 싱크를 맞추려면 백엔드에서 해당유저의 모든 좋아요, 북마크(게시물,댓글 포함) 한 정보를 줘야한다“ 입니다. 그 이유로는 인스타를 얘로들면 해당 유저의 게시물 -> 프로필 -> 다시 해당유저의 게시물 을 반복했을 때 해당 게시물에 좋아요를 누를 경우 이전에 쌓인 게시물의 좋아요 상태도 싱크가 맞아야하는데 현재 상태로는 힘들다고 합니다. 해당 요청을 들어줄 경우 좋아요 또는 북마크와 같이 해당 요청에 포함되어 전체 조회해야하는 테이블의 개수는 약 8개 이상으로 추측되고 있습니다. 참고로 현재상태는 게시물 리스트 및 상세조회를 할 때 게시물 데이터에 조회한 유저의 좋아요 유무를 담고있습니다. 저는 백엔드 관점에서 볼 때 해당 요청을 로그인 시 마다 8개 이상의 테이블을 전체 조회를 해야한다는게 시간이 지남에 따라 엄청난 서버의 부담이라고 생각이들어 반대하였고 웬만해서는 프론트쪽에서 해결하는게 맞지않나 생각드는데 현업에계신 백엔드 프론트엔드 선배님들의 의견을 듣고싶습니다,,,

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 5

김다은님의 프로필 사진

8개 테이블은 좀…. 심한데 …. 퍼블릭으로는 커밋하면 큰일날 코드네요…….

김상우님의 프로필 사진

회사에 프론트가 그 분 밖에 없나요? ㅠ 의논해볼 수 있는 다른 분이 없으신지? 상위 직급의 개발자 분이 계시면 같이 논의하시고 조율해보셔야 할 거 같아요 나중에 큰 문제로 돌아올 듯 합니다..

zoun님의 프로필 사진

프론트에서만 처리하기는 어려운 상황으로 보입니다. 내가 누른 좋아요, 스크랩 카운트만 띄우는 경우라면 몰라도 다른 유저가 누른 카운트도 싱크를 맞춰야하기때문에 백엔드에서 계속 데이터를 받아야 하는건 어쩔수 없을것 같아요. 게시글 1개의 카운트를 만드는데 8개의 테이블 조인이 필요하면 구조를 다시 한번 확인해볼 필요가 있을것 같습니다. 그리고 정확한건 구조를 확인해봐야 알겠지만 인덱스만 잘 걸려있다면 성능상 무리가 될 부분은 딱히 잘 모르겠네요. 느리다면 카운트할 때 마다 업데이트해서 캐싱해놓는 컬럼을 만들어놓는것도 방법이 되겠네요.

profile picture

익명

작성자

2022년 12월 15일

게시물, 댓글을 조회 시 좋아요 개수 및 조회유저의 좋아요 상태값도 반화하고 있습니다. 제 질문속 프론트측의 요구사항은 앱 접속 시 마다 접속한 유저의 모든 좋아요 및 북마크 정보(어떤 게시물, 댓글들을 좋아요 했는지 모든 id값들)를 조회할 수 있는 api가 필요하다는 것이었고 해당 요구사항에 조회가 필요한 테이블이 8개(게시물 좋아요, 북마크, 댓글 좋아요 등등) 입니다. 제 질문을 잘못 이해하신거같습니다.

오진석🌛님의 프로필 사진

플루터 개발자와 백엔드 개발자끼리 얘기해봤자 안될 듯 하고 화면기획자분하고도 얘기를 해야 될지 않을까 싶네요. 인터페이스 설계에 따라 플루터도 따라 갔을테고, 설계에 해당 기능을 맞추자니 백엔드쪽에 요청이 그렇게 간 것 같아보이네요... 백엔드 구성이 레디스같은 메모리 캐쉬 디비를 메인으로 하는 구성이고 서버성능이 튼튼하다면 해볼만 할 수 도 있을 듯 한데... 그렇다고 해도 한꺼번에 가져오는 건 부담일 수 밖에 없으니... 세분이 머리를 맞대고 조율해야 되지 않을까 싶네요.

커리어리 AI 봇님의 프로필 사진

안녕하세요 ! 제 생각으로는 해당 요청은 백엔드에서 해결하는 것이 좋은 방법입니다. 프론트엔드에서 해당 기능을 구현하려면 매번 해당 유저의 게시물, 프로필, 게시물에 대한 좋아요 상태를 모두 조회해야 하기 때문에 서버에 부하가 많이 가게 됩니다. 또한, 프론트엔드에서 해당 기능을 구현하더라도 유저의 기기나 브라우저에 따라 정확한 데이터를 보장할 수 없을 수도 있습니다. 따라서 백엔드에서 해당 요청에 필요한 데이터를 모두 조회해서 플러터 개발자에게 제공하는 것이 바람직한 방법이라고 생각합니다. 그리고 해당 요청이 서버에 부하를 줄 가능성이 있기 때문에 캐싱 등의 방법을 활용하여 최적화된 처리 방법을 고민해보는 것도 좋을 것 같습니다. 그리고 중요한 점은 팀원 간에 협력과 의사소통이 이루어져야 한다는 것입니다. 상황을 잘 이해하고 서로의 의견을 듣고 적절한 대안을 모색해야 팀의 업무가 원활하게 진행될 수 있습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!