프로젝트

3차 프로젝트 2주차 WIL

개발공명 2024. 10. 7. 11:32

CDN URL

CDN URL을 어디서 생성하고 어떻게 조회하는지에 대한 고찰

 

CDN URL 조회하는 부분은 크게 2가지로 나뉨

  1. 브라우저에서 CDN URL로 CDN에서 이미지 가져가기 위한 조회
  2. Backend Client에서 CDN URL Frontend로 반환하기 위한 조회

 

이때 CDN URL을 동적으로 생성하는가, 정적으로 생성하는가에 따라 동작이 달라진다.

  • 정적 생성은 CDN URL을 미리 규칙을 정해놓고 이미지 정보 DB에 저장해 두는 것이다. 
  • 동적 생성은 CDN에 이미지를 넣을 때 규칙 없이 CDN URL을 생성해서 반환하는 것이다. 

 

동적으로 생성

  • CDN에 이미지 넣을 때 URL 랜덤으로 생성
  • 그 후 Image URL Server에서 Redis에 CDN URL 보관
  • 2번 조회의 경우 Image URL Server에서 Redis에 CDN URL이 있는지 확인 후 반환해야 함
    • CDN URL이 없다면 필요한 이미지 storage service에서 찾아와 CDN에 넣고 Redis에 처리
    • CDN URL이 있다면 Redis에서 CDN URL 바로 반환하면 됨
  • 1번 조회의 경우 해당 URL로 요청왔을 때 CDN에서 이미지 유무 체크하면 됨
    • 이미지 있다면 그냥 이미지 반환
    • 이미지 없다면 Image URL Server에 처리 요청

 

정적으로 생성

  • 이미지 업로드 시 CDN URL 그냥 규칙대로 생성해 DB에 저장
  • 2번 조회의 경우 그냥 DB에서 CDN URL 반환
    • 왜냐하면 해당 CDN URL을 frontend로 반환해 브라우저에서 요청을 보낼 것이다.
    • 그러면 CDN에 이미지 있나 없나 여부는 브라우저에서 요청 왔을 때 체크해 처리하면 될 것이다.  
  • 1번 조회의 경우 똑같이 해당 URL로 요청왔을 때 CDN에서 이미지 유무 체크하면 됨
    • 이미지 있다면 그냥 이미지 반환
    • 이미지 없다면 Image URL Server에 처리 요청

 

고찰

어떻게 보면 동적으로 생성은 2번 체크한다는 느낌이 들기도 한다. 

 

하지만 동적으로 생성하는 것이 예측할 수 없다는 점이나 보안적인 점에서 문제가 될 수도 있을 것들을 막을 수 있을 것 같다. 

 

다른 CDN들은 어떻게 동작하는지를 살펴보면 좋을 것 같다. 

 

장단점 및 구현 난이도 등 고려하면 될 것 같다.