네 대부분 그렇게 하는 거로 알고 있습니다. 본문처럼 base64로 하면 디코딩/인코딩하는 데 시간도 오래 걸리고 병목이 만만치않을겁니다
ㅍㅅㅍ(210.123)2022-06-05 12:22
답글
프론트에서 인코딩?한 텍스트를 서버로 보내는거니까
저장할때 base64 텍스트를 그대로 텍스트 파일로 만들어서 저장하면 되나요?
아니면 이미지로 변경하고 저장해야 되나요?
익명(hipasstraffic)2022-06-05 12:30
답글
저라면 이미지로 변경하고 저장하겠습니다. 그 다음 프론트에서 그 이미지를 요구할 때는 그 이미지 경로만 image 태그 달아서 보내주면 되는거죠
ㅍㅅㅍ(210.123)2022-06-05 13:32
답글
태그만 달아도 결국 데이터가 전송되는거 아닌가요?
익명(hipasstraffic)2022-06-05 14:02
답글
네, 데이터가 전송되는 게 문제라고 한 적은 없습니다. 애초에 이미지를 base64로 바꾸는 게 json에서 일반 스트링으로 보내려고 하는 건데... 제가 처음에 그렇게 말한 건 이미지를 base64로 디코딩/인코딩하는 오버헤드가 있고, 무엇보다 base64로 바꾸면 용량을 33%정도 더 먹기 때문에 병목이 생길 것이라는 뜻이었습니다.
저도 문제라고 한적은 없는데요.. 그냥 몰라서 물어본건데..ㅎㅎ 그럼 이미지 파일형태로 보내면 보내지는 건가요? 영어몰라서 봐도 몰라요
익명(hipasstraffic)2022-06-05 16:51
답글
음... HTML, CSS, JS, 이미지 파일을 포함해서, 웹 사이트를 구성하는 데 모든 데이터는 서버 측에서 유저 측으로 전송됩니다. 이미지를 Base64로 바꾸는 것은, HTML 또는 JSON에 포함시킬 수 있는 아스키 형태의 문자열로 이미지를 바꿔서 보낸다는 건데요, 이미지가 HTML과 함께 전송되기 때문에 작은 이미지의 경우 (보통 1KB보다 작은) 괜찮은 선택일 수 있지만, 조금이라도 이미지가 커지면 권장되지 않는 방법입니다. 이미지를 리소스로 처리하면 (즉, image tag 안에 src로 경로를 지정하면), 브라우저는 비동기적으로 이미지를 가져오게 되므로, 네트워크 속도로 인해 렌더링이 중지될 염려도 없고 캐싱 또한 가능해집니다.
ㅍㅅㅍ(210.123)2022-06-05 17:05
답글
앱에서 보내려고 하고있는데요 알려주신대로 저장은 폴더에하고 디비는 폴더 파일명으로 저장하고
궁굼한것은 이미지를 서로 전송할때 어떻게 전송하는건가요? 글자를 보내는게 맞는거죠? base64가 아니면 뭐로 전송하는건가요?
익명(hipasstraffic)2022-06-05 17:53
답글
아뇨, base64로 보내는 경우는 거의 없습니다. 일반 HTTP로 전송됩니다.
ㅍㅅㅍ(210.123)2022-06-05 20:40
답글
컴퓨터에 저장되거나 주고받는 모든 데이터는 결국 이진법 숫자에 불과합니다. 이미지라고 다를 것은 없습니다. base64로 이미지를 바꿔서 보낼 필요는 반드시 "읽을 수 있는 문자열"로 보내야할 때를 제외하고는 사실상 없다고 보시면 됩니다.
보통 이미지 경로만 저장하지 않나요?
그럼 이미지는 어디에 저장하나요?
파일 시스템...
서버에 디렉토리 만들고 거기에 저장하면 되나요?
네 대부분 그렇게 하는 거로 알고 있습니다. 본문처럼 base64로 하면 디코딩/인코딩하는 데 시간도 오래 걸리고 병목이 만만치않을겁니다
프론트에서 인코딩?한 텍스트를 서버로 보내는거니까 저장할때 base64 텍스트를 그대로 텍스트 파일로 만들어서 저장하면 되나요? 아니면 이미지로 변경하고 저장해야 되나요?
저라면 이미지로 변경하고 저장하겠습니다. 그 다음 프론트에서 그 이미지를 요구할 때는 그 이미지 경로만 image 태그 달아서 보내주면 되는거죠
태그만 달아도 결국 데이터가 전송되는거 아닌가요?
네, 데이터가 전송되는 게 문제라고 한 적은 없습니다. 애초에 이미지를 base64로 바꾸는 게 json에서 일반 스트링으로 보내려고 하는 건데... 제가 처음에 그렇게 말한 건 이미지를 base64로 디코딩/인코딩하는 오버헤드가 있고, 무엇보다 base64로 바꾸면 용량을 33%정도 더 먹기 때문에 병목이 생길 것이라는 뜻이었습니다.
StackOverflow의 다음 질문글도 참조하시면 좋을 듯 합니다:
https://stackoverflow.com/questions/9722603/storing-image-in-database-directly-or-as-base64-data
저도 문제라고 한적은 없는데요.. 그냥 몰라서 물어본건데..ㅎㅎ 그럼 이미지 파일형태로 보내면 보내지는 건가요? 영어몰라서 봐도 몰라요
음... HTML, CSS, JS, 이미지 파일을 포함해서, 웹 사이트를 구성하는 데 모든 데이터는 서버 측에서 유저 측으로 전송됩니다. 이미지를 Base64로 바꾸는 것은, HTML 또는 JSON에 포함시킬 수 있는 아스키 형태의 문자열로 이미지를 바꿔서 보낸다는 건데요, 이미지가 HTML과 함께 전송되기 때문에 작은 이미지의 경우 (보통 1KB보다 작은) 괜찮은 선택일 수 있지만, 조금이라도 이미지가 커지면 권장되지 않는 방법입니다. 이미지를 리소스로 처리하면 (즉, image tag 안에 src로 경로를 지정하면), 브라우저는 비동기적으로 이미지를 가져오게 되므로, 네트워크 속도로 인해 렌더링이 중지될 염려도 없고 캐싱 또한 가능해집니다.
앱에서 보내려고 하고있는데요 알려주신대로 저장은 폴더에하고 디비는 폴더 파일명으로 저장하고 궁굼한것은 이미지를 서로 전송할때 어떻게 전송하는건가요? 글자를 보내는게 맞는거죠? base64가 아니면 뭐로 전송하는건가요?
아뇨, base64로 보내는 경우는 거의 없습니다. 일반 HTTP로 전송됩니다.
컴퓨터에 저장되거나 주고받는 모든 데이터는 결국 이진법 숫자에 불과합니다. 이미지라고 다를 것은 없습니다. base64로 이미지를 바꿔서 보낼 필요는 반드시 "읽을 수 있는 문자열"로 보내야할 때를 제외하고는 사실상 없다고 보시면 됩니다.