Win-9 / Focus

0 stars 0 forks source link

Book Main Page 설계 #18

Open Win-9 opened 3 months ago

Win-9 commented 3 months ago
Win-9 commented 3 months ago

이미지 호스팅 하기

토이프로젝트를 진행하면서 S3를 사용하면 무수한 장점도 있지만 아주 큼지막한 단점이 있다.
첫번째는 비용에 대한 부담이다.
프리티어로도 가능하지만 프리티어의 한계가 있다.
또한 S3에 너무 의존적이게된다는 문제점 또한 있다.

그렇다고 이미지를 그대로 보내기에는 문제가 있다.
이미지를 인코딩해서 저장해야 하는데, 인코딩시 크기가 커지기 때문에 통신시 지연이 생긴다.
또한 인코딩한 데이터 자체를 DB에 저장하면 무결성과 크기가 커진다는 문제또한 발생한다.

그렇다면 이미지 저장은 경로를 나타내면 되지 않을까???
맞는 말이다. 그러나 어플리케이션에 이미지가 의존적이게 되므로 이미지 증가시 어플리케이션이 무거워질 수 있다.
따라서 이미지를 호스팅하는 스프링 서버를 만들어서 통신을 하게 하는 것이 목표이다.

Focus어플리케이션은 따로 만든 이미지 호스팅 서버와 통신하도록 구축한다.
이미지 호스팅은 S3와 비슷하게 단순한 링크 접근만으로 이미지를 보여줄 수 있도록 한다.

저장되는 이미지는 크게 2가지이다.

  1. 책 커버
  2. 페이지 이미지

정적 리소스파일을 이용하여 url로 접근이 가능하도록 만든다.
파일 이름은 위 두개로 구분짓고, title에 대한 경로를 따로 만들어서 저장이 가능하도록 한다.

String fileName;
        if (request.getForm().equals("bookCover")) {
            fileName = request.getTitle() + "bookCover." + request.getExtension();
        } else {
            fileName = request.getTitle() + "thumbnail." + request.getPage() + request.getExtension();
        }
image

위와같이 이미지 접근이 가능해 진다는 것을 알 수 있다.

후에는 도커를 도입하여 두가지 어플리케이션을 띄워 MSA구조처럼 동작하도록 하는 것이 목표이다.