자동 대문자화: 정의, 유형 및 UITextAutocapitalizationType

저자: IT Sectr 게시일: 2026-07-08 읽는 시간: 7 분

자동 대문자화는 특정 컨텍스트에서 입력된 텍스트의 첫 글자를 자동으로 대문자로 변환하는 iOS 메커니즘입니다. UIKit은 UITextInputTraits 프로토콜에서 autocapitalizationType 속성을 four 모드(none, words, sentences, allCharacters)로 제공합니다. Apple Text Programming Guide(2025)에 따르면 자동 대문자화의 올바른 설정은 사용자 경험을 개선하고 입력 중 수동 수정 횟수를 줄입니다. 대부분의 텍스트 필드에는 sentences 모드를, 사용자 이름과 비밀번호에는 none 모드를 사용하세요.

핵심 요약

  • 자동 대문자화는 UIKit 입력 필드에서 첫 글자를 자동으로 대문자로 변환하는 기능입니다
  • UITextAutocapitalizationType은 four 가지 모드를 포함합니다: none, words, sentences, allCharacters
  • sentences 모드가 가장 일반적이며 각 문장의 첫 글자를 대문자로 만듭니다
  • words 모드는 각 단어의 첫 글자를 대문자로 만들며 이름 및 성 필드에 편리합니다
  • none 모드는 비밀번호 필드, 이메일, 검색 쿼리 및 확인 코드에 필수입니다

자동 대문자화란?

자동 대문자화는 특정 조건이 충족될 때 텍스트의 첫 문자를 자동으로 대문자로 변환하는 iOS 운영 체제 기능입니다. 이 메커니즘은 UITextInputTraits 프로토콜을 구현하는 모든 요소(UITextField, UITextView, UISearchBar)에서 사용할 수 있는 autocapitalizationType 속성을 통해 제어됩니다.

이 기능은 iOS 텍스트 엔진 수준에서 작동하며 각 문자가 입력되는 순간 활성화됩니다. 시스템은 커서 위치와 주변 텍스트를 분석하여 현재 입력 문자를 대문자로 변환할지 결정합니다. 조건이 충족되면 iOS는 필드에 표시되기 전에 자동으로 소문자를 대문자로 대체합니다.

Apple Human Interface Guidelines(2025)에 따르면 자동 대문자화는 자동 수정 및 예측 텍스트 입력도 포함하는 광범위한 예측 입력 시스템의 일부입니다. 사용자는 시스템 설정(설정 > 일반 > 키보드)에서 이러한 모든 기능을 전역적으로 비활성화할 수 있지만 개발자는 개별 필드 수준에서도 제어할 수 있습니다.

자동 수정과 달리 자동 대문자화는 언어 모델을 사용하지 않습니다 — 간단한 규칙으로 작동합니다: 마침표와 공백 뒤, 텍스트 시작 부분, 줄 바꿈 문자 뒤입니다. 예외는 words 모드로, 컨텍스트에 관계없이 각 단어의 첫 글자가 대문자화됩니다.

자동 대문자화 모드

UITextAutocapitalizationType은 자동 대/소문자 변환 전략을 정의하는 네 값의 열거형입니다. 각 모드는 특정 유형의 텍스트 필드를 위해 설계되었으며 특정 사용자 경험 작업을 해결합니다.

None — 자동 대문자화 없음

.none 모드는 자동 대/소문자 변환을 완전히 비활성화합니다. 모든 문자는 사용자가 입력한 그대로 입력됩니다. 이 모드는 비밀번호 필드, 이메일 주소, 별명, 검색 쿼리 및 서버 측 데이터 처리에서 대/소문자가 중요한 모든 필드에 필수입니다.

Words — 각 단어 대문자

.words 모드는 입력된 각 단어의 첫 글자를 대문자로 만듭니다. 시스템은 공백으로 단어 경계를 결정하고 공백 뒤의 첫 문자를 대문자로 변환합니다. 이 모드는 이름, 성, 도시 이름, 거리 이름 등 각 단어가 대문자로 시작해야 하는 필드에 편리합니다.

Sentences — 문장 시작

.sentences 모드가 가장 일반적이며 대부분의 텍스트 필드에서 기본적으로 사용됩니다. 시스템은 마침표, 느낌표 또는 물음표 뒤에 공백이 오는 경우 첫 글자를 대문자로 만듭니다. 이 모드는 메모, 메시지, 댓글 및 기타 여러 줄 텍스트 필드에 이상적입니다.

All Characters — 모두 대문자

.allCharacters 모드는 입력된 모든 문자를 대문자로 변환합니다. 이 모드는 Caps Lock을 계속 누르고 있는 것과 동일하며 데이터가 대문자여야 하는 필드(우편 번호, 국가 코드, 약어, 주문 번호)에 사용됩니다. 대문자 텍스트는 읽기가 어렵기 때문에 주의해서 사용하세요.

모드설명입력 예권장 사항
.none변경 없음kim@mail.com이메일, 비밀번호, 검색
.words각 단어김철수이름, 주소, 도시
.sentences문장 시작안녕하세요. 어떻게 지내세요?메시지, 메모
.allCharacters모두 대문자ABC-123코드, 인덱스

자동 대문자의 작동 방식

자동 대문자화 메커니즘은 키 입력 처리 중, 문자가 화면에 표시되기 전에 활성화됩니다. 사용자가 키를 누르면 UITextInputTraits가 현재 커서 위치를 확인하고 설정된 autocapitalizationType에 따라 대/소문자 변환 규칙을 적용합니다.

.sentences 모드의 경우 시스템은 트리거 문자를 추적합니다: 마침표(.), 느낌표(!), 물음표(?) 및 활성화된 경우 줄 바꿈 문자( )입니다. 트리거 문자와 그 뒤의 공백을 감지하면 시스템은 다음 입력 문자에 대해 “대문자 예상” 플래그를 설정합니다.

.words 모드는 공백 문자를 트리거로 추적합니다. 각 공백 뒤에 시스템은 다음 단어에 대문자를 예상합니다. 그러나 예외가 있습니다: 하이픈, 아포스트로피 및 단어 내의 기타 구두점 뒤에는 대문자가 삽입되지 않습니다. 예를 들어 “O’Brien”은 올바르게 유지됩니다.

중요한 특징은 자동 대문자화가 단어의 첫 번째 문자에만 작동한다는 것입니다. 사용자가 중간에 대문자가 포함된 단어(예: iPhone 또는 macOS)를 입력하는 경우 시스템은 이를 변경하지 않습니다. 변환은 트리거 후 첫 번째 문자에만 적용되기 때문입니다. 즉, 비표준 대/소문자를 사용하는 브랜드 이름과 제품은 영향을 받지 않습니다.

자동 대문자화를 비활성화해야 하는 경우

자동 대문자화를 비활성화해야 합니다 올바른 데이터 처리를 위해 문자 대/소문자가 중요한 필드에서. 일반적인 경우: 이메일 주소 필드, 별명 및 사용자 이름, 비밀번호, 검색 쿼리, URL, 확인 코드, IMEI 및 일련 번호. 이러한 모든 경우에 자동 대/소문자 변경은 서버 측 처리 중 오류를 발생시킵니다.

검색 필드(UISearchBar)의 경우 자동 대문자화는 기본적으로 비활성화되어 있으며 이는 사용자 기대와 일치합니다. 검색 쿼리는 어떤 대/소문자로든 입력할 수 있으며 서버는 일반적으로 자체적으로 소문자로 변환합니다. 검색에 자동 대문자화가 활성화되면 사용자는 각 쿼리 시작 부분의 대문자를 수동으로 수정해야 합니다.

등록 양식에서 사용자 이름 또는 별명 필드는 .none 모드여야 합니다. 많은 시스템이 사용자 이름에서 대/소문자를 구분하기 때문입니다. 이메일 필드도 자동 대문자화 없이 있어야 합니다 — 도메인 이름은 대/소문자를 구분하지 않지만 이메일의 로컬 부분은 이론적으로 대/소문자를 구분할 수 있지만 실제로는 드뭅니다.

Apple Developer Documentation에 따르면 secureTextEntry(비밀번호)가 있는 필드는 개발자가 명시적으로 다른 값을 설정한 경우에도 자동으로 autocapitalizationType = .none을 상속합니다. 시스템은 보안 입력에 대해 최우선 순위를 가지며 비밀번호 필드에 대한 자동 대문자화 활성화 시도를 무시합니다.

Swift 설정 예제

Swift에서 자동 대문자화 설정은 autocapitalizationType 속성을 통해 수행됩니다. 이 속성은 UITextField, UITextView 및 UISearchBar에서 사용할 수 있습니다. 값은 코드와 Interface Builder의 속성 관리자에서 설정할 수 있으며, 이때 모드는 Capitalization이라고 합니다.

swift
let nameField = UITextField()
nameField.autocapitalizationType = .words

let emailField = UITextField()
emailField.autocapitalizationType = .none

연락처 양식의 경우 각 필드를 의미에 따라 설정합니다: 이름 — .words, 이메일 — .none, 메시지 — .sentences. 이 조합은 최상의 사용자 경험을 제공하고 수동 대/소문자 수정의 필요성을 최소화합니다.

swift
class ContactFormViewController: UIViewController {

    @IBOutlet var nameField: UITextField!
    @IBOutlet var emailField: UITextField!
    @IBOutlet var messageView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()
        nameField.autocapitalizationType = .words
        emailField.autocapitalizationType = .none
        messageView.autocapitalizationType = .sentences
    }
}

런타임에 프로그래매틱 모드 변경을 위해 UITextFieldDelegate 델리게이트를 사용합니다. 예를 들어 필드가 다른 컨텍스트에서 사용될 수 있는 경우 양식의 현재 작동 모드에 따라 textFieldDidBeginEditing 메서드에서 autocapitalizationType을 변경합니다.

swift
func textFieldDidBeginEditing(_ textField: UITextField) {
    if textField === codeField {
        textField.autocapitalizationType = .allCharacters
    }
}

현지화와 자동 대문자화

자동 대문자화는 사용자 키보드에 설정된 입력 언어에 따라 달라집니다. 언어마다 대/소문자 변환 규칙이 다를 수 있습니다. 예를 들어 터키어에서 문자 “i”는 대문자에서 “İ”(점 있음)가 되고 “I”는 소문자에서 “ı”(점 없음)가 됩니다. iOS는 이러한 특징을 자동으로 처리합니다.

러시아어의 경우 자동 대문자화는 영어와 동일한 규칙을 따릅니다: 마침표 뒤, 문장 시작 부분, 줄 바꿈 뒤에 대문자입니다. 문자 “yo”와 관련하여 문제가 발생할 수 있습니다 — 시스템 사전에 있지만 모든 키보드 레이아웃이 기본 레이어에 표시하는 것은 아니며 자동 대문자화는 “yo”를 “Yo”로 올바르게 변환합니다.

중국어, 일본어 및 한국어의 경우 이러한 언어에는 대/소문자 개념이 없으므로 자동 대문자화가 적용되지 않습니다. 해당 키보드를 사용할 때 시스템은 autocapitalizationType 모드를 무시하며 필드는 설정된 값에 관계없이 .none 모드와 동일하게 동작합니다.

아랍어와 히브리어의 경우 이러한 언어는 대문자와 소문자의 구분 없이 자체 문자 체계를 사용하므로 자동 대문자화도 적용되지 않습니다. iOS 시스템은 입력 언어를 올바르게 감지하고 이 개념이 존재하지 않는 언어에 대해서는 자동 대문자화 설정을 무시합니다.

자주 묻는 질문

자동 대문자화 모드를 동적으로 변경할 수 있나요?

네, autocapitalizationType 속성은 필드가 이미 활성화된 경우에도 언제든지 변경할 수 있습니다. 변경 사항은 다음 문자 입력 시 적용됩니다.

secureTextEntry가 자동 대문자화를 비활성화하나요?

네, isSecureTextEntry = true가 있는 필드의 경우 시스템이 자동으로 autocapitalizationType = .none을 설정합니다. 이 동작은 프로그래매틱 방식으로 변경할 수 없습니다.

UITextView에서 자동 대문자화가 작동하나요?

네, UITextView는 autocapitalizationType을 완전히 지원합니다. 이는 .sentences 모드가 가장 자연스럽게 작동하는 여러 줄 필드에 특히 유용합니다.

자동 대문자화가 비밀번호에 어떤 영향을 미치나요?

필드가 secureTextEntry로 표시되지 않았지만 비밀번호 입력에 사용되는 경우 자동 대문자화가 비밀번호를 변경할 수 있습니다. 대/소문자가 중요한 필드에서는 항상 비활성화하세요.

시뮬레이터와 실제 기기 간에 차이가 있나요?

시뮬레이터에서 자동 대문자화는 Mac 하드웨어 키보드를 통해 작동하며 다르게 동작할 수 있습니다. 올바른 동작을 위해 실제 기기에서 테스트하세요.

요약

  • 자동 대문자화는 iOS 입력 필드에서 첫 문자를 자동으로 대문자로 변환하는 기능입니다
  • 네 가지 모드의 UITextAutocapitalizationType: none, words, sentences, allCharacters
  • .sentences 모드는 대부분의 필드에 적합하며 마침표, !, ? 및 줄 바꿈 후 활성화됩니다
  • .none 모드는 이메일, 비밀번호, 검색 및 대/소문자 구분 필드에 필수입니다
  • .words 모드는 이름, 성, 도시 및 주소 필드에 최적입니다
  • 현지화 — 터키어는 문자 İ/ı에 대한 특별 규칙이 있습니다
  • 권장 사항 — 각 필드의 의미에 따라 자동 대문자화를 설정하세요

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기