썸네일 이미지를 따로 저장해서 관리하기가 너무 힘들어서 자동으로 사용할 수 있을까 하는 고민을 계속하고 있었다.
문득 생각난것이 URL 파라메터로 사이즈값을 넣으면 리사이즈된 리이지로 제공해주는 서비스가 있다는것이 생각났다.

그래서 리사이즈 이미지를 제공해주는 서비스를 만들어 운영하는게 좋지 않을까 싶었다. 이게 가장 좋은 방법인듯..

데이터베이스는 심플하게 사용할 수 있는걸로 쓰는게 좋을지도... SQLite가 좋을지도..

작동과정

  • 클라이언트에서 이미지 주소를 호출한다.
    ex) https://image.redgoose.me/?url=https://goose.redgoose.me/data/image.jpg&t=crop&w=320&h=240
  • 이미지가 저장되어 있는지 검사한다. (데이터베이스에서 검사하는게 좋을거 같다. url과 저장되어 있는 패스를 어딘가에 기록해둬야 하기 때문에.. 그리고 url만으로 곧장 이미지 패스를 얻어오지 못할것이다.)
  • 저장되어있는 이미지가 없다면 이미지 리사이즈를 하고 서버에 이미지 저장하고, 데이터베이스에 정보를 기록한다. (url에 이미지를 불러오지 못하면 404 오류)
  • 저장되어있는 이미지가 있다면 이미지 패스를 가져와서 출력한다.

필요한 옵션

  • url: 이미지 주소
  • type: 리사이즈 방식 (cover,contain)
  • width: 가로사이즈
  • height: 세로사이즈

필요하거나 관련기술

참고

메타데이터

조회수
389
좋아요
0

2개의 댓글

만약 데이터베이스 사용이 부담스럽다면 aaa.jpg?w=400 형식으로 저장해서 가져오면 될거같지만 규칙이 상당히 빠듯할 것이다.
그리고 한 디렉토리에 몰리는 현상을 방지하기 위하여 월별이나 년도별로 서브 디렉토리를 만들어 보관할텐데 파일이 있는지 여러번 탐색해야 할것이다.

그래도 데이터베이스보다 비용이 싸겠지..

같은 서비스에서 사용한다면 사용해볼만 할것이다.

일단 redgoose 서비스에서만 사용하는게 어떨까 싶다.
그렇다면 goose-api 프로젝트에서 만드는게 어떨까??

URL 경로를 전부 사용할 필요는 없어지고 어짜피 외부의 주소를 사용할일이 없을거같아 보인다.
그럼 files 모듈에서 확장할 수 있어 보인다.