Raw_email 게시물 필드에 이미지가 Base64 문자열로 저장됨

안녕하세요,

CDN(Stackpath)을 변경할 계획을 세우고 있고, Discourse가 링크에 CDN URL을 동적으로 설정한다는 점을 알고 있습니다. 그럼에도 불구하고 포럼 게시물에서 “stackpath” 문자열을 검색하여 해당 문자열이 얼마나 많이 나타나는지 확인해 보았습니다.

그 결과 300~400개의 게시물이 반환되었습니다.

데이터를 다운로드했는데, 파일 크기가 거의 100MB에 달해 놀랐습니다.

사유는 이메일로 전송된 게시물에 포함된 이미지가 raw_email 필드에 base64 문자열로 존재하는 것 때문인 것으로 보입니다.

그래서… 제 생각에는 실제로 큰 문제가 되지 않는 것 같지만, 이 부분에 대해 몇 가지 설명을 듣고 싶습니다.

왜 raw_email 필드에 이미지가 이런 방식으로 저장되는 것일까요? 더 나은 방법이 없는 것일까요?
성능에 어떤 영향을 미칠 수 있을까요? 많은 사용자가 이메일로 답글을 보내고 이미지가 포함된 경우를 생각해 보면, 정보량은 많지 않은데 공간 점유량이 과도한 것은 아닌지 우려됩니다.

이와 관련된 설명이나 추가 정보가 있다면 알려 주시면 감사하겠습니다. :slight_smile:

조금 단순화된 설명이 될 수 있지만, 이메일로 이미지가 전송되는 방식이 바로 그런 것입니다. 그리고 우리는 raw_email을 저장하고 있으므로… 저장되는 것이 바로 그것입니다.

100MB짜리 받은 편지함이라고 생각해 보세요. 대부분의 사이트에는 그 정도는 아무것도 아닙니다.

저장 크기는 다음으로 확인할 수 있습니다:

select sum(pg_column_size(raw_email)) / 1048576 as raw_email_MB from posts;

그 경우 raw_email을 더 이상 저장하지 않게 될 것입니다… 아마도 특정 기간이 지난 raw_email에서 큰 base64 콘텐츠를 제거해야 한다는 논리가 있을 수 있겠습니다…

그렇지는 않을 것입니다; 디스크에 머물러 있지만, 직접 보지 않는 한 참조되지 않아야 합니다.

:thinking:

자세한 답변 감사합니다 :slight_smile: