[Swap(), 그 회고] 7. 프론트엔드 개발자는 DB를 몰라...

Soye Park·2023년 3월 2일
0
post-thumbnail

이 포스팅은 사이드 프로젝트를 진행하며 생겼던 여러 일들에 대해서 기록을 겸하여 작성한 글입니다. 주기적으로 작성하고자 노력은 하지만 블로그 포스팅 한번 하려고 하면 머릿속에서 나만의 언어로 정리도 하면서 작성하다가 몇시간은 사용하는 지라 주기적이지 않을 가능성이 농후합니다. 아자아자...


프로젝트 (중간) 회고

백엔드를 모르는 프론트엔드 개발자는 서글퍼...

프론트엔드 4인으로 구성된 사이드 프로젝트이므로 파이어베이스를 사용해 서버를 꾸렸다.
파이어베이스는 정말 많은 기능을 제공했고 이를 통해 CRUD를 비롯해 인증, storage 까지 많은 것들을 백엔드 지식없이 구현할 수 있었다.
하지만 서버를 제공하는 것만으로 모든게 끝나는 게 아니기 때문에 꽤나 금방 문제에 봉착했다.

DB설계는 쉬운 게 아니구나...ㅠ?

데이터베이스는 말그대로 데이터가 저장 및 보관되는 장소인 줄만 알았다. 백엔드적인 지식이 없다보니 생기는 무지였는데, DB를 설계할 때도 어떤 상황에서 어떻게 쓰일 것이며 데이터의 값을 "효율적인 어떤 것"으로 하지 않으면 데이터를 가공하는 것도 사용하는 것도 힘들다라는 사실을 이번 사이드 프로젝트를 통해서야 꺠달았다.

몇가지 고민 지점이 생겼는데,

1. post의 id

일단 첫째로 문제였던 것은 post ID 였다.
게시글이 1,2,3,4 처럼 순차적인 숫자를 주고 싶었는데 이를 프론트엔드 단에서 주려면 params를 활용하거나 데이터arr의 index를 활용하면 될 것 같았다. 하지만 여기서 발생하는 문제가 있었는데, 그 파일이 삭제가 되면? ... 중복되는 값이 발생하게 되는 것 아닌가...? 결국 이거 생각한다고 끙끙거리다가 준 값은 current date 였다. 밀리세컨드 단위의 시간을 id로 부여한다면 당장에 error가 발생할 일 없으니까.. 임시 방편이었다.

근데 지금 작성하면서 문득 생각난 건데
파일을 삭제하게되면 DB에서 완전히 삭제하지말고 invisual 같은 키를 하나 만들어서 이 키의 value가 true면 리스트에 노출을/ false면 리스트에 노출이 안되고 url로 들어갔을 때 빈페이지를 보여주거나 하면 되지 않을까..?

그러면 교환완료가 된 글을 표시할 때도 Completion 이라는 키의 boolean 값을 기준으로 모달창하나 띄워주면 되지 않을까...? ㅇㅎㅇㅎㅇㅎ 만들게 되면 포스팅하겠다!


2. 스토리지에 저장되는 파일명

파일명의 경우에는 중복되면 기존 파일은 삭제가 되어 동일한 이름의 사진을 올린 포스트 전체가 사진이 바뀌는... 버그가 발생하게됐다. 이때문에 유니크한 값을 줘야할 필요가 있다고 생각했고 파일 업로드 시 파일이름을 현재시간(밀리세컨드 단위의) 나누기 닉네임의 길이를 해서 저장했다. 이거 더 효율적인 방법이 있을텐데....

이것 역시 적으면서 생각하다가 현재시간_닉네임 으로 파일명 주면 되는 거 아닌가..? 어..? 고쳐야지


+@ 검색기능..? 어케 하누...

그럼 이렇게 포스트로 만들어진 게시글을 검색하는 기능은 어떻게 해야할까?
일일이 선형탐색하게 되면 수만개의 포스팅을 검색하는 게 말그대로 지옥의 로딩일텐데...?
이건 내가 조금 더 공부를 해서 구현을 해보던가 해봐야겠다...ㅠ


마치며....

짧게 백엔드 지식이 필요하구나를 회고로 작성하고 싶어서 작성했는데, 프론트엔드 개발자라는게 결국은 이것저것 다른 분야의 지식도 많이 알고 있어야한다는 생각을 다시금 하게 된다.

백엔드를 직접 다루는 일이 당장에 많이 없겠지만 백엔드 개발자와 소통을 하며 개발에 더 효율적인, 능률 높은 작업을 하려면 기본적인 지식은 필요하고, 디자인 지식 역시도 서비스가 출시되기 직전까지 개발을 하고 있어야하는 프론트엔드 개발자의 숙명 답게 UI/UX에 대한 최종 필터일 것이기 떄문에 모른다면 소비자에게 좋은 UX를 선사할 수 없을테니까...

profile
응애FE개발자/ 블로그 이전 : https://soyeah-log.vercel.app/

0개의 댓글