Swift 포맷터의 주요 기능
- Swift 코드의 들여쓰기, 간격 및 중괄호 **한 번의 클릭으로 정리**
- *들여쓰기 크기* 슬라이더를 통한 **구성 가능한 들여쓰기 크기** (1-8 공백)
- 긴 표현식을 선호하는 열 너비 내에 유지하는 **줄 바꿈/줄 길이** 제어
- 표준 `.swift` 소스 파일과 붙여넣은 코드 조각 지원
- **iOS, macOS, watchOS, tvOS 및 서버 측 Swift** 프로젝트에 적합
- SwiftFormat 스타일 엔진을 백엔드로 사용하여 관용적인 Swift 출력 생성
- 멱등성 포맷팅 – 여러 번 실행해도 동일한 출력 유지
- 계정 불필요 – 붙여넣기, 포맷팅, 정리된 결과 복사만으로 사용 가능
🛠️ Swift 포맷터 사용 방법 for swift-formatter
1. Swift 코드 붙여넣기 또는 업로드
📥 Swift 코드를 에디터에 직접 붙여넣거나 `.swift` 파일을 드래그 앤 드롭하세요. 이 도구는 일반적인 Xcode 스타일 Swift 소스에 최적화되어 있습니다.
2. 들여쓰기 및 줄 길이 설정
📏 **들여쓰기 크기** 슬라이더를 사용하여 각 들여쓰기 수준에 사용할 공백 수를 선택하고, **줄 바꿈 / 줄 길이**를 구성하여 긴 줄이 어디서 바뀔지 제어하세요(또는 `0`으로 설정하여 줄 바꿈 기반 포맷팅을 비활성화).
3. "포맷" 클릭
⚡ **포맷** 버튼을 눌러 SwiftFormat 스타일 규칙을 적용하세요. 포맷터는 들여쓰기, `:` 및 연산자 주변 공백을 정규화하고 설정에 따라 긴 줄을 바꿉니다.
4. 결과 검토 및 복사
🔍 원본과 포맷된 버전을 비교하세요. 결과에 만족하면 포맷된 Swift를 Xcode, Swift Playground 또는 Git 커밋으로 다시 복사하세요.
기술 사양
포맷팅 엔진 및 스타일
이 도구는 일반적인 SwiftFormat 규칙을 반영하여 파일과 기여자 간 코드베이스의 일관성을 유지합니다.
| 항목 | 동작 | 비고 |
|---|---|---|
| 언어 | Swift | Swift 5+ 소스 파일에서 가장 잘 작동합니다. |
| 들여쓰기 | 수준별 구성 가능한 공백 | **들여쓰기 크기** 옵션으로 제어(1–8). |
| 줄 바꿈 | 선택적 줄 바꿈 열 | **줄 바꿈 / 줄 길이**로 제어(0–120; `0` = 줄 바꿈 없음). |
| 공백 | `:` 및 연산자 주변 정규화 | 가독성과 코드 리뷰 간 일관성을 향상시킵니다. |
| 멱등성 출력 | 동일 입력 → 동일 출력 | 포맷팅이 변경되지 않고 여러 번 실행해도 안전합니다. |
지원 입력 및 제한
Apple 플랫폼 및 서버 측 Swift 프로젝트에서 사용되는 실제 Swift 소스 파일에 중점을 둡니다.
| 매개변수 | 값 / 동작 | 참고사항 |
|---|---|---|
| 파일 확장자 | .swift | 표준 Swift 소스 파일입니다. |
| MIME 유형 | text/x-swift | 에디터 및 드롭존 감지를 위해 내부적으로 사용됩니다. |
| 최대 입력 크기 | ≈ 2MB 소스 | 매우 큰 파일은 CI에서 로컬 SwiftFormat을 통해 포맷하는 것이 더 좋습니다. |
| 출력 확장자 | .swift | 포맷된 내용은 Swift 소스 파일로 저장하는 것이 가장 좋습니다. |
검증 및 오류
포맷터는 구문적으로 유효한 Swift를 기대합니다. 입력이 불완전하거나 주요 구문 오류가 포함된 경우, 포맷된 출력 대신 실패하거나 오류 메시지를 반환할 수 있습니다.
SwiftFormat을 사용한 명령줄 대안
Xcode, CI 또는 pre-commit 훅에서 동일한 스타일을 원하시나요? SwiftFormat을 직접 사용하세요:
macOS (Homebrew)
Homebrew를 통해 SwiftFormat 설치
brew install swiftformat시스템에 `swiftformat` CLI를 추가합니다.
단일 Swift 파일 포맷팅
swiftformat MyViewController.swift기본 SwiftFormat 규칙을 사용하여 파일을 제자리에서 다시 씁니다.
전체 Xcode 프로젝트 포맷팅
swiftformat .현재 디렉토리의 모든 `.swift` 파일을 재귀적으로 포맷합니다.
프로젝트 수준 구성
사용자 정의 구성 사용
swiftformat . --config .swiftformat`.swiftformat` 구성 파일에 저장된 팀별 규칙을 적용합니다.
Git pre-commit과 통합
swiftformat . && git commit각 커밋 전에 SwiftFormat을 실행하여 메인 브랜치를 깔끔하게 유지합니다.
Swift 포맷터의 실용적인 사용 사례
iOS 및 macOS 앱 개발
UIKit, SwiftUI 및 Combine 중심 코드를 기능 브랜치 간에 가독성 있고 일관성 있게 유지합니다.
- 코드 리뷰 전에 뷰 컨트롤러, 뷰 모델 및 서비스의 서식 지정을 표준화합니다.
- 스크래치패드 또는 프로토타입 Swift 코드를 프로덕션 대상에 복사하기 전에 정리합니다.
- 복잡한 SwiftUI 뷰 계층 구조의 들여쓰기 및 줄 바꿈을 정렬합니다.
struct ContentView: View {
var body: some View {
VStack {
Text("Hello")
Button("Tap me") {
print("Tapped")
}
}
}
}
서버 사이드 Swift (Vapor, Hummingbird 등)
API 핸들러 및 라우팅 코드를 더 쉽게 스캔하고 검토할 수 있도록 합니다.
- 복잡한 체인을 쉽게 따라갈 수 있도록 라우트 및 미들웨어 선언을 재포맷합니다.
- 긴 속성 목록을 가진 JSON 인코딩/디코딩 구조체를 정리합니다.
- Swift 코드 내에서 긴 SQL 또는 HTTP 클라이언트 호출의 일관된 줄 바꿈을 보장합니다.
app.get("hello") { req async throws -> String in
"Hello, world!"
}
Swift 교육 및 학습
학생들에게 관용적인 Swift 코드가 어떻게 보이는지 보여주고 연습 문제에서 '스타일 노이즈'를 줄입니다.
- 슬라이드나 문서에서 예제를 공유하기 전에 Swift 코드를 정규화합니다.
- 간격과 들여쓰기 대신 논리에 집중할 수 있도록 학생 제출물을 정리합니다.
- 좋은 서식 지정이 동작을 변경하지 않고 가독성을 어떻게 향상시키는지 보여줍니다.
func fibonacci(_ n: Int) -> Int {
if n < 2 { return n }
return fibonacci(n - 1) + fibonacci(n - 2)
}
❓ Frequently Asked Questions
❓이 Swift 포맷터는 실제로 무엇을 변경하나요?
📏줄 바꿈/줄 길이는 무엇을 선택해야 하나요?
🧹이것은 SwiftLint를 대체하나요?
🔒프로덕션 Swift 코드를 여기에 붙여넣어도 안전한가요?
⚡이 포맷터를 모든 커밋에서 자동으로 실행할 수 있나요?
Pro Tips
팀과 함께 **들여쓰기 크기**와 **줄 바꿈/길이**를 하나로 합의한 후, 이 도구와 `.swiftformat` 설정에서 해당 값을 동일하게 반영하세요.
풀 리퀘스트에 포매터를 실행하여 코드 리뷰가 간격 논쟁 대신 논리와 아키텍처에 집중되도록 하세요.
생성된 Swift 코드(예: 코드 생성 도구에서)에 포매터를 사용하여 손으로 작성한 코드만큼 깔끔하게 보이게 하세요.
빠른 로컬 조정을 위해 Xcode의 '들여쓰기 재설정'과 이 포매터를 함께 사용하고, 진정한 일관된 스타일을 유지하려면 CI에서 SwiftFormat을 사용하세요.
Additional Resources
Other Tools
- CSS 정리 도구
- HTML 정리 도구
- 자바스크립트 정리 도구
- PHP 정리 도구
- 색상 선택기
- 스프라이트 추출기
- Base64 디코더
- Base64 인코더
- C# 포맷터
- CSV 포맷터
- Dockerfile Formatter
- Elm 포맷터
- ENV 포맷터
- Go 포맷터
- GraphQL 포맷터
- HCL 포맷터
- INI 포맷터
- JSON 포맷터
- LaTeX 포맷터
- 마크다운 포맷터
- Objective-C 포맷터
- Php Formatter
- 프로토콜 버퍼 포맷터
- Python 포맷터
- Ruby 포맷터
- Rust 포맷터
- Scala 포맷터
- 셸 스크립트 포맷터
- SQL 포맷터
- SVG 포맷터
- TOML 포맷터
- Typescript Formatter
- XML 포맷터
- YAML 포맷터
- Yarn 포맷터
- CSS 압축기
- Html Minifier
- Javascript Minifier
- JSON 압축기
- XML 최소화 도구
- HTTP 헤더 뷰어
- PDF 텍스트 변환
- 정규식 테스터
- 검색 순위 확인기
- Whois 조회