백엔드 인턴 Day 02, 03

박영무·2024년 11월 27일

One Month Intern

목록 보기
2/3
post-thumbnail

I. 목표

  • 목표 1: 이미지 처리를 한 번에 최대 50장까지 가능하도록 제한하는 코드 추가
  • 목표 2: 한 번에 두 장 이상의 이미지 처리 시 zip 파일로 압축하는 코드 추가
  • 목표 3: 다중 이미지 처리 API 통합

II. 구현

목표 1

  • 이미지 처리를 한 번에 최대 50장까지 가능하도록 제한하는 코드 추가하는 것은 매우 간단하다.
  • 다만, 현재 보유하고 있는 이미지가 많지 않아서 임시로 로직을 최대 3장까지로 작성하였고
    Postman에서 form-data에 이미지 파일 4개를 한 번에 첨부하여 API를 호출하였을 때 에러를 정상적으로 반환하였다.

목표 2

  • 고려사항
    1) 이미지 처리 API 호출 시 이번에 처리한 이미지만 zip 파일로 변환해야 한다.
    2) 변환된 zip 파일의 이름은 항상 고유하게 식별되어야 한다.
  • 구현 1
    • 이미지 처리 함수를 통과한 results에서 filename을 추출한다.
    • image_routes.py
  • 구현 2
    • 원하는 경로에 고유한 파일명으로 압축하여 저장한다.
    • image_routes.py

    • file_utils.py

III. Trouble Shooting

목표 3

  • 단일 처리 API는 필요없기 때문에 /api/remove-bg/u2net-hp/single/api/remove-bg/u2net-hp/bulk/api/remove-bg/u2net-hp로 통합하고자 한다.
  • 구현
    • /api/remove-bg/u2net-hp/single을 지우고 /api/remove-bg/u2net-hp/bulk/api/remove-bg/u2net-hp로 변경하였다.
  • 원인 분석 1
    • console
    • 기존 코드
filenames = [result['processed_image']['filename'] for result in results]
  • 아쉽게도 이 내용만으로는 에러를 해결할 수 없을 것 같다.
  • 코드 수정
    • Metadata를 정의하는 함수에서 url_for() 함수의 첫 번째 argument를 수정한다.
    • metadata_utils.py
  • 결과 확인
    • 정상적으로 동작한다.
profile
시행착오는 성장의 밑거름입니다.

0개의 댓글