본문 바로가기
개발/자동화와 AI

Convert To Webp 자동변환 폴더 만들기(Feat. Folder Actions)

by 핸디(Handy) 2025. 3. 15.

들어가며

나른한 주말오전, 집에서 쇼츠를 보고 있다가 맥북의 Folder Actions(폴더적용스크립트)에 대한 내용을 보았다.

최근에 프론트엔드 이미지를 최적화하면서 다운로드 받은 이미지를 webp로 변경하고 이를 다시 넣는 작업이 매우 귀찮았는데 이번에 하나를 만들어두면 좋겠다라는 생각에 짧게 만들어보게 되었다.

그럼 시작해보자. 잠깐 들어가기전에 결과물부터 보고 가자

Folder Actions이란?

Folder Actions은 특정 폴더에 파일이 추가, 제거, 수정될 때 자동으로 지정된 스크립트를 실행하는 macOS의 기능이다. 나온지는 꽤 된것같다.

즉, 폴더에 특정 파일이 들어오면 자동으로 어떤 작업을 수행하는 자동화 기능이라고 보면 될 것이다. 챗형한테 물어보기로는 다음과 같은 기능이 있다.

자 그럼 이제 만들어보자.

Folder Actions 만들기

절차는 다음과 같다.

  1. 액션을 적용할 폴더를 만든다.
  2. 폴더에 적용한 스크립트를 만든다.
  3. 변환이 완료되면 미리보기로 보여준다.

아주 간단한다.

액션을 적용할 폴더를 만든다.

우리의 목표는 이미지가 들어오면 Webp로 전환하는 기능을 만들 것이다.

따라서 나는 바탕화면에 "convertToWebp"라는 이름으로 폴더를 생성했다.

 

폴더에 적용한 스크립트를 만든다.

그 다음으로 폴더에 스크립트를 적용한다.

폴더 -> 우클릭 -> 서비스 -> 폴더 적용 스크립트 설정...를 누르면 된다.

누르고 나면 권한 체크가 뜬다.

나는 이미 스크립트를 만들어놓아서 왼쪽 스크립트에 있지만, 아무것도 없다면 빈칸으로 되어있을 것이다.

추가 버튼을 누르면 친절한 애플형님들이 만들어놓은 스크립트가 있을텐데, 우리가 원하는 목적에 부합하는것은 없어서 스크립트를 만들어야한다.

이제 "automator"를 검색하여 누르자.(나는 raycast를 사용해서 저렇게 뜬다)

다음으로는 

폴더 적용 스크립트를 선택해준다.

그다음으로는 스크립트를 적용할 폴더를 선택한다.

다음으로는 쉘 스크립트를 검색하여 드래그하여 가져온다.

이제 스크립트를 작성하면 되는데, webp로 변환하는 스크립트는 어떻게 생성하는가? 바로 챗형한테 물어보면 된다.

#!/bin/zsh

for file in "$@"
do
  # 파일 확장자 추출
  ext="${file##*.}"
  if [[ "$ext" =~ ^(jpg|jpeg|png|gif)$ ]]; then
    output="${file%.*}.webp"

    # WebP 변환
    /opt/homebrew/bin/cwebp -q 80 "$file" -o "$output"

    # 변환 성공 시 원본 삭제 후 출력 파일 전달
    if [[ -f "$output" ]]; then
      rm -f "$file"
      echo "$output"
    fi
  fi
done

추가로 cwebp로 변환하는 것이때문에 설치가 따로 필요할수 있다. 만약 which cwepb 했는데 없으면 설치해야한다.

brew install cwebp 같은거 입력하면 된다.

스크립트를 넣어주고 command+s로 저장하면 끝. 근데 필수로 해야할 것이 통과 입력에 꼭 인수로 바꿔줘야한다.

이제 여기까지 진행해보면 어떻게 될까?

짠~~ 시간이 대략 몇초가 지나고 나면 자동으로 png->webp 변환이 완료된 것을 확인할 수 있다.

변환이 완료되면 미리보기로 보여준다

이제 마지막으로 미리보기까지 연결해보자.

이제 결과를 최종적으로 확인해보자.

간단하다.

여기서 잠깐 미리보기에서 이미지 열기가 되는 이유는 셀 스크립트에서 echo를 통해 output를 전달했기 때문이다. 

마무리

요새 AI와 자동화에 신경쓰고 있는데, 뭔가 이미 많은 프로젝트나 서비스들이 우리 곁에 있었다는 생각이 든다. 다만 개발자인 우리뿐만 아니라 많은 사람들이 최근되서야 더 많이 신경쓰고 발굴하고 있는 느낌이다.

얼마전에 make라는 automation툴을 써볼일이 있었다. 비개발자가 쓰기엔 난해하지만 그렇다고 못할 레벨의 업무는 아니다. 우리에겐 챗형이 있지 않은가..

자동화의 길을 멀고도 험하지만, 막상 해보면 그리 어렵지 않다. 모든 지식을 적정 수준에 알고 있는 누군가(챗형)는 이렇게 많은 생산성을 가져다준다.

끝.

'개발 > 자동화와 AI' 카테고리의 다른 글

일일회고 커밋 리스트 스크립트 개발기  (0) 2025.02.18

댓글