한국어 조사, 이제 걱정 끝!
헷갈리던 조사 선택을 대신 해드립니다.
"사과".kParticle(.을를)→"사과를"
문자열에 .kParticle(...) 메서드를 호출하면,
받침 유무와 특수 규칙(예: ㄹ 받침, 괄호 등)을 자동 판별하여
알맞은 한국어 조사를 붙여줍니다.
"학교)".kParticle(.으로로)→"학교로)"
"물".kParticle(.으로로)→"물로"(ㄹ 받침 예외 적용)
// 헷갈리는 조사들...
let message = userName + "이/가" + " " + itemName + "을/를" + " 획득했습니다!"
// 조건문으로 직접 처리...
let particle = hasJongseong(word) ? "을" : "를"
let result = word + particle
// ㄹ 받침 예외도 처리해야...
if word.last == "ㄹ" && particleType == "으로/로" {
// ...
}// 👇 잊지 말고!
import EunNeun
"사과".kParticle(.을를) // "사과를"
"책".kParticle(.을를) // "책을"
let message = "\(userName.kParticle(.이가)) \(itemName.kParticle(.을를)) 획득했습니다!"
// 예: "철수가 검을 획득했습니다!"- 정확성
- 유니코드 기반 받침 분석
- ㄹ(리을) 받침 예외 자동 처리
- 종성 계산 로직 → 빠르고 정확함
- 편의성
.kParticle(.을를)처럼 직관적인 API- 공백, 개행, 괄호, 따옴표도 자동 정리
- 메서드 체이닝 친화적
- 실용성
- 게임, 채팅, 알림 등에 즉시 사용 가능
- Swift 스타일 가이드에 맞춘 구현
- SPM으로 간편 설치
// Package.swift
// swift-tools-version:5.7
dependencies: [
.package(url: "https://github.com/halococo/EunNeun", from: "1.0.2")
]- File → Add Package Dependencies →
https://github.com/halococo/EunNeun
Swift 5.7+, Xcode 14.0+ 환경 권장
import EunNeun
"사과".kParticle(.을를) // "사과를"
"책".kParticle(.이가) // "책이"
"철수".kParticle(.아야) // "철수야"
"학교".kParticle(.으로로) // "학교로"
let user = "지영"
let item = "포도"
print("\(user.kParticle(.이가)) \(item.kParticle(.을를)) 맛있어요")
// → "지영이 포도를 맛있어요"func showReward(item: String, count: Int) -> String {
"\(item.kParticle(.을를)) \(count)개 획득하셨습니다!"
}func createGreeting(name: String) -> String {
let isMorning = Calendar.current.component(.hour, from: Date()) < 12
return "\(name.kParticle(.이가)) \(isMorning ? "좋은 아침" : "안녕하세요")!"
}func createNotification(friend: String, action: String) -> String {
"\(friend.kParticle(.이가)) 회원님의 게시물에 \(action)습니다."
}| 조사 | 예시 |
|---|---|
.을를 |
"책".kParticle(.을를) → "책을" |
.이가 |
"사과".kParticle(.이가) → "사과가" |
.은는 |
"고양이".kParticle(.은는) → "고양이는" |
.과와 |
"친구".kParticle(.과와) → "친구와" |
.아야 |
"민수".kParticle(.아야) → "민수야" |
.으로로 |
"물".kParticle(.으로로) → "물로" / "집".kParticle(.으로로) → "집으로" |
"물".kParticle(.으로로) // "물로"
"길".kParticle(.으로로) // "길로"
"집".kParticle(.으로로) // "집으로""\"사과\"".kParticle(.을를) // "\"사과\"를"
"(책)".kParticle(.이가) // "(책)이"
"학교)".kParticle(.으로로) // "학교로)"
"카페.... )".kParticle(.을를) // "카페를.... )"
"사과 \n".kParticle(.을를) // "사과를 \n"- 유니코드 한글 범위: U+AC00 ~ U+D7A3
- 종성(받침) 판별 공식:
let offset = unicodeScalar - 0xAC00
let hasFinalConsonant = (offset % 28) != 0
let isRieul = (offset % 28) == 8- Swift 5.7+
- iOS 13.0+, macOS 10.15+, watchOS 6.0+, tvOS 13.0+
- Xcode 14.0+ (권장)
- “마지막 단어” 기준으로 조사 판별
- 한글 외 문자열은 받침 없는 것으로 간주
"Apple".kParticle(.이가)→"Apple가"
- 괄호, 따옴표 등은 적절히 밖/안 구분하여 조사 붙임
- 기능 제안: GitHub Discussions
- 버그 제보: GitHub Issues