오늘 배운 것
- 백엔드에서 이미지 처리 시 불편한 점, 고려할 점
- 이미지 모듈에서 있으면 좋을 것 같은 기능
백엔드에서 이미지 처리 시 불편한 점, 고려할 점
- 대용량 이미지 업로드, 다운로드 시 시간이 오래 걸림
- 여러 이미지를 차례로 업로드, 다운로드 하면 오래 걸림
- 업로드, 다운로드 시 중간에 오류 발생하면 전체 취소됨
- 업로드, 다운로드 시 중간에 오류 발생하면 취소된 곳부터 다시 하는 것이 어려움
- 이미지 조회 시 권한 체크를 고려해야 함
- 이미지를 resize해서 여러 size로 저장해야 함
- 이미지 메타데이터 정보를 고려해야 함
- 원본 이미지 이름은 그대로 넣지 않는 것이 좋음
- 확장자를 제한해서 받아야 함
- 이미지 업로드, 다운로드를 동기, 비동기로 처리할 것인지 고려해야 함
이미지 모듈에서 있으면 좋을 것 같은 기능
- 업로드, 다운로드 작업 진척도를 알려주는 기능
- 업로드, 다운로드 작업 완료 시 알려주는 기능
- 업로드, 다운로드 작업 중 오류 발생 시 어디에서 오류 났는지 알려주는 기능
- 업로드, 다운로드 작업 중 오류 발생 시 오류난 것부터 재개하는 기능
- 업로드, 다운로드 작업 중 오류 발생 시 성공, 실패한 이미지 알려주는 기능
- 지역 기반 CDN
- 이미지 외의 다른 것들 업로드, 다운로드 (ex: mp4, gif)
- 이미지 조회 시 메타데이터도 반환 기능
- 이미지 권한 공유 기능
필요 기능
위의 조사들을 바탕으로 개발하려는 이미지 모듈에서 필요한 기능들을 생각해 봤다.
주요 기능
- 대용량 업로드, 다운로드를 위한 비동기/배치 처리 기능
- 업로드, 다운로드 작업 진척도 알려주는 기능
- 업로드, 다운로드 작업 완료 및 실패 여부 알려주는 기능
- 업로드, 다운로드 작업 중 오류 발생 시 실패한 부분부터 retry 하는 기능 (오류 발생 시 fallback 로직)
- 이미지 사이즈별 resizing 하는 기능 (해상도, 사이즈 최적화 관련)
- 이미지 업로드 시 원본 이미지 정보 관련 처리 기능 (이름 등등)
- 파일 처리 관련 기능
- 메타 데이터 관련
- 확장자 관련
- client에게 serving하는 기능
- CDN
- cache
- S3 or minio
부가 기능
- 이미지 업데이트 여부에 따른 다른 캐싱 전략 적용 (업데이트 적은 이미지는 캐싱 시간 길게….)
- 추후 추가 예정...
정리
이러한 기능들을 생각해봤다.
아직 이미지 처리 관련된 것들을 잘 몰라서 보통 어떻게 처리하는지, 어떤 아키텍처로 진행이 되는지 알아보기로 했다.
또한 주요 기능들도 굉장히 복잡하고 어려울 것으로 생각되고 CDN에 관한 것도 잘 모르고 있다.
그렇기 때문에 주요 기능을 잘 구현하고 추가로 CDN 관련된 것도 해보려고 한다.
'TIL' 카테고리의 다른 글
24.11.15 TIL - 윈도우 WSL Ubuntu 저장 경로 이동 방법 (0) | 2024.11.15 |
---|---|
24.09.30 TIL - 이미지 모듈 시스템 설계도 (2) | 2024.10.01 |
24.09.26 TIL - 2차 프로젝트 trouble shooting (0) | 2024.09.27 |
24.09.12 TIL - 프로젝트 하면서 배운 팁 (3) | 2024.09.13 |
24.09.11 TIL - MSA Service 공통 처리 (1) | 2024.09.12 |