최근에 다시 게시판을 만들던 중에 이런 생각이 들었다.
붙힘파일 이나 대표사진 같은건 create시에 파일을 저장하면 되는데,
본문에 저장되는 파일 같은 경우에는 어떻게 처리 할까 라는 고찰이였다.
티스토리를 확인해보니, 본문에 이미지를 올리면 서버에 올라가는것 같았다.(나도 여기까지는 했다.)
이후 처리가 궁금한데, 만약 저장하지 않고 넘어가면, 해당 파일이 어떻게 사라지냐는 것이였다.
내가 생각한 방법은,
1. 처음에는 서버에 저장하지 말고, 브라우저의 로컬 스토리지에 먼저 저장
위 사진과 같은 공간에 base64로 파일을 저장하면 된다고 한다.
해당한곳에 저장하는것 까진 성공했는데, 불러오기가 잘 안되서 관뒀는데, 생각해보니
모든 사용자가 브라우저의 로컬 스토리지를 사용할 수 있는 브라우저를 쓰는지도 의문이고, 만약에 로컬 스토리지의
용량보다 더 많은 이미지가 올라간다면 아예 동작을 안하니, 안 될거 같다는 생각이 들었다.
그래서 다시
2. 먼저 서버에 저장하고 지운다.
음 일단 내가 생각해본건 userID(익명이라면 식별할 수 있는 ip같은 것들)에 각각에 다른 서버 storage 공간이 있을테고,
거기에 맞는 각 게시물마다의 경로가 있고, 보통 게시물을 만드는 순간 게시물의 번호가 생성되기 때문에,
일단 temp 폴더 같은 임시 폴더에다가 본문의 게시물을 먼저 저장을 해놓고, 게시물 create시에 temp의 파일을 지우고
각각의 게시물의 경로에 저장하는 방법이였다.
근데 여기서 이제 서버 자체에서 올라가져 있는 파일 이동으로 욺직이게끔 코딩을 하느냐 아니면
현재 작성시에 올라가져있는 파일을 객체로 묶어서 create시에 api server에 요청하느냐 이 차이인 것 같은데,
사실 이제 이건 비용문제로 가는거 같은데, 좀 대용량이라면 이미 올라가 있는 파일을 옮기는게
비용(업로드시에 드는 네트워크 패킷 비용)이 덜 들것이고, 아마 storage안에서 이동을 해주면 가장 편할거 같은데,
아마 백엔드 코드로 하면 가능할 것 같다고 생각이 들었다.
글을 쓰다 보니, 온프레미스 환경이라면 걱정할 거 없고(송수신에 대한 비용),
클라우드 환경이라면 걱정해야 할 수 도 있다고 생각했다.
혹시 그리고 또 궁금했던건 만약에 게시물을 create하기전에 페이지를 나가거나 뒤로 가거나, 브라우저를 끄거나 했을
경우에 본문에 올라가 있는 파일에 대한 처리인데,
티스토리 같은경우에는 일단 글을 작성하는 순간부터 자동 저장이 되는것 같았다.
그래서 다시 재작성하면 이전에 작성하던 글을 불러오는것 같았고, 만약에 내가 취소를 누르고 새로운 글을 발행을 하면,
기존에 있던 파일 및 저장된 글들을 삭제하는 기능을 하는것 같았다.
그러면서 배치잡 같은걸 돌리면서 혹시라도 저장 안 된 파일들의 temp폴더를 관리해주는거일 수 도 있다고 생각하였다.
그래서 결론은,
일단 temp폴더(임시폴더)에 저장해놓고 파일 객체로 본문에 있는 이미지를 다 땡겨와서 한번에 다시 해당 아이디에 대한
경로로 저장하는것이 더 좋을거라고 생각했다.(스토리지안에서 이동보다는 시간은 더 걸리겠지만)
아마 근데, 많은 데이터(많은 유저)를 처리하게 되면 해당 방법은 별로 일것 같고, 스토리지 안에서 옮기는것이 더 속도가
빠를거같고, 배치잡도 돌아가면서 해당 폴더를 처리해줘야 할거 같다.
일단 2번째와 같은 방법으로 만들다가 또 막히는게 있으면 정리하러 와야겠다.
더 좋은방법이 있으면 좋을거 같다.
(아마 근데 게시물 발행시에 임시폴더 클리어를 때리고, 한번에 여러 게시물을 작성할 수 없게 만들면 되지 않을까나...)
'Back-End > ETC' 카테고리의 다른 글
게시판 이미지에 대한 고찰?(2) (0) | 2022.11.10 |
---|---|
외부에서 API SERVER 접근 가능한가? (0) | 2022.10.20 |
댓글