런로그 트러블 슈팅 04 : Xcode Code Template

김도연·2025년 4월 23일

iOS

목록 보기
8/8

원문 보러가기 -> 런로그 위키

🚨 문제 발생

  • UIKit으로 프로젝트를 하게 되면서, MVC를 가져갈지 MVVM을 유지할지 고민이 많았다.
  • 현재 팀 내에서 Combine을 공부하고 있기 때문에, 그리고 Combine을 쓰면 action 코드가 훨씬 단축되어서 Combine을 쓰기로 결정했는데, 팀원 모두가 익숙한 MVVM에 Combine을 쓰려면, Input-Output 패턴으로 데이터를 관리하는 게 UIkit에서 잘 활용하는 방법인 것 같아서 이를 우리 컨벤션으로 정했다.
  • 하지만! UIKit에 익숙하지 않은 몇몇의 팀원들을 위해,, 그리고 Combine이 익숙하지 않은 우리 팀을 위해서
  • 그리고 1차 프로젝트 때, 각자의 코드 스타일이 너~무 달라서 코드 리뷰를 하는데 시간 소요가 생각보다 많이 걸렸어서 이번에는 Xcode의 템플릿을 활용해보면 어떨까?하고 생각하게 되었다.
  • 그리고 제안자(=나)가 환경 세팅을 시작했다…

🧐 원인 분석 (Root Cause Analysis)

  • 다양한 레퍼런스를 보면서 원하는 코드 템플릿을 만들고자 시도했는데,
  • cocoa touch class 파일처럼 만들고 싶었으나 완전히 동일하게 만들지는 못했다.

💡 해결 과정

1. 템플릿 만들기

먼저 Empty Template을 복사해서, 원하는 템플릿을 만들어준다.

하나의 코드 템플릿에는 하나의 코드 템플릿 폴더가 필요하다. 그리고 해당 폴더 안에는 사용할 코드 템플릿 파일(.swift), 코드 템플릿에 대한 정보 파일(.plist), 코드 템플릿 아이콘(.png)로 이루어져있다.

아이콘의 경우, 필수는 아니나, empty template과 동일한 아이콘을 사용하거나 프로젝트마다 다른 템플릿 파일을 사용한다면 가장 쉽게 구분할 수 있는게 아이콘이므로 프로젝트 별로 아이콘을 통일하면 템플릿을 고를 때 가독성이 올라간다!

  • 코드 템플릿 파일(.swift)

Swift로 작성하면 되서 크게 어렵지는 않다. 템플릿 내용을 채우는 건 어렵지 않은데, 이제 plist 파일에서 설정하는 변수를 이 파일에 적용시키기 위해서 특수하게 사용하는 문구가 있는데 empty template을 참고하면서 동일하게 작성하면 된다. 이미 애플에서 제공하는 코드 템플릿이 많으므로 cocoa touch template 등을 참고해서 작성하면 쉽다.

  • 정보 파일(.plist)

이 파일이야 말로 우리가 커스텀할 부분이 가장 많은 파일이다. 템플릿을 고르는 화면에서 우리의 커스텀 템플릿을 어디에 보여줄건지(우선순위), 파일 이름을 자동 완성 시켜줄건지 등 다양한 옵션을 지정해줄 수 있다. runlog에서는 ~View, ~ViewModel, ~ViewController 등으로 파일 이름을 통일시키기 때문에 이를 좀 더 손쉽게 적용할 수 있도록 앞의 이름만 작성하면 고른 템플릿에 따라서 자동으로 파일 suffix가 지정되도록 옵션을 정해주었다. 그리고 이를 입력할 때도 생성될 파일의 이름을 미리 보여주는 옵션도 추가해주었다.

사실 원래 목표했던 것은 템플릿도 하나만 고르면 그 안에서 View, VM, VC 중에서 타입을 고르게하고 싶었지만, 시간 관계 상,, 그리고 별로 중요한 기능이 아니었어서 이정도로 마무리했다.

  • 아이콘 파일(.png)

프로젝트 로고나 아이콘,, 아무거나 설정하시길. 다만 아이콘 파일 이름을 통일해줘야 적용된다.(TemplateIcon.png)

2. 템플릿 파일 적용하기

만든 템플릿을 Xcode 하위 폴더로 이동시킨다
Xcode 폴더는 다음의 경로에 위치해있다. Finder에서 cmd+shift+G를 누르면 폴더 경로를 직접 입력할 수 있는데, 거기에 하단의 경로를 입력하면 된다.

/Users/(본인사용자명)/Library/Developer/Xcode

3. Xcode에서 템플릿 사용하기

Xcode를 완전히 종료한 뒤, 실행한다.

cmd+N을 통해 새 파일을 만들어보면 템플릿이 잘 적용된 모습을 확인할 수 있다.

  • 만든 템플릿이 보이지 않을 때, 시도할 수 있는 방법
    아래는 실제로 적용했을 때 성공했던 시도를 작성해보았다. 템플릿 양식을 만들면서 수도 없이 xcode를 완전히 종료하고 템플릿을 확인하기 위해 cmd+N을 눌렀다…

    반드시 단계별로 실행해야한다…!

  1. xcode 완전 종료 : cmd+Q
  2. 캐시 삭제 명령어 사용
    rm -rf ~/Library/Caches/com.apple.dt.Xcode
    rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Templates
  1. Xcode 다시 시작하기
  • 템플릿 파일은 Xcode 프로그램 세팅에 포함되는 항목이므로, 프로젝트마다 설정할 수 없고, 깃허브로 공유되지도 않는다.(애초에 .git이 관리하는 폴더에 들어가지 않음 ㅎㅎ) 그렇기 때문에, 팀원들에게 공유할 때는 zip폴더로 공유한 뒤, Xcode 하위 폴더 경로에 압축을 해제하면 적용된다.

🎯 결과 및 교훈

  • 프로젝트 환경 세팅이 잘 되어있을 수록, 이 코드 템플릿의 활용도가 높아진다. 모듈화를 해두었다면, 파일 타입에 맞게 미리 모듈을 import 해둘 수도 있고, baseViewcontroller와 같이 공용 프로토콜을 사용한다면 미리 채택해두고, 필수 함수까지 미리 만들어 놓을 수 있다.
  • 코드 컨벤션과 파일 컨벤션을 한번에 관리할 수 있기 때문에 아주 유용하다.
  • 그리고 귀여운 아이콘을 설정해둔다면, 파일을 새로 만들 때마다 아주 기분이 좋아진다! 행복한 코딩 시간,,

🔗 참고 자료 (선택 사항)

profile
Kirby-like iOS developer

0개의 댓글