CDN URL
CDN URL을 어디서 생성하고 어떻게 조회하는지에 대한 고찰
CDN URL 조회하는 부분은 크게 2가지로 나뉨
- 브라우저에서 CDN URL로 CDN에서 이미지 가져가기 위한 조회
- 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들은 어떻게 동작하는지를 살펴보면 좋을 것 같다.
장단점 및 구현 난이도 등 고려하면 될 것 같다.
'프로젝트' 카테고리의 다른 글
최종 프로젝트 회고 (3) | 2024.11.13 |
---|---|
3차 프로젝트 3주차 WIL (4) | 2024.10.14 |
대규모 AI 시스템 설계 프로젝트 회고 (3) | 2024.09.25 |
스프링 심화 대규모 AI 시스템 설계 프로젝트 - Starting Assignments (0) | 2024.09.25 |
AI 검증 비즈니스 프로젝트 회고 (0) | 2024.09.25 |