Skip to content

gmelon/ttae-not-ddae

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

떄가아니라때

세상에 '떄' 라는 글자는 없다.

한글을 빠르게 치다 보면 Shift 가 모음까지 따라가서 떄·꺠·뺴·쨰 같은, 한국어에 존재할 수 없는 글자가 찍힙니다. 떄가아니라때 는 이 패턴을 입력되는 즉시 감지하고 올바른 글자로 교정하는 macOS 메뉴바 앱입니다.

랜딩: https://ttae.gmelon.dev 다운로드: https://github.com/gmelon/ttae-not-ddae/releases/latest

특징

  • 즉시 교정 — 잘못된 글자가 찍히는 순간 backspace + 올바른 글자가 자동으로 들어갑니다.
  • 한글 입력일 때만 동작 — 두벌식 한국어 입력 모드일 때만 작동, 영문이나 코드 작성 중에는 끼어들지 않습니다.
  • 메뉴바에 조용히 상주 — Dock 에 뜨지 않고, 메뉴바 아이콘도 숨길 수 있습니다.
  • 데이터 외부 전송 없음 — 모든 처리는 로컬에서만 일어나며, 코드 전체가 공개되어 있어 직접 검증 가능합니다.

교정 대상

쌍자음(ㄲ ㄸ ㅃ ㅆ ㅉ) 과 이중모음(ㅒ ㅖ) 결합 — 사전 어디에도 등장하지 않는 10개 글자.

잘못 → 올바른
떄 → 때, 뗴 → 떼
꺠 → 깨, 꼐 → 께
뺴 → 빼, 뼤 → 뻬
썌 → 쌔, 쎼 → 쎄
쨰 → 째, 쪠 → 쩨

그 외 글자는 절대 건드리지 않습니다.

시스템 요구사항

  • macOS 14 (Sonoma) 이상
  • 두벌식 한국어 입력 소스
  • 시스템 설정 > 개인 정보 보호 및 보안 > 손쉬운 사용 권한

설치

  1. 최신 릴리즈 에서 Ttae-X.Y.Z.dmg 다운로드
  2. 더블 클릭 후 Ttae.appApplications 폴더로 드래그
  3. 처음 실행 시 시스템 설정 > 개인 정보 보호 및 보안 > 손쉬운 사용 에서 권한 켜기

Apple Developer ID 로 서명되어 있어 Gatekeeper 경고 없이 설치됩니다.

개발

cd app

# Xcode 에서 열기
open Ttae.xcodeproj

# 또는 CLI 빌드
xcodebuild -project Ttae.xcodeproj -scheme Ttae -configuration Debug build

# 핵심 로직 단위 테스트
swift test

프로젝트 구조

디렉터리 내용
app/ macOS 앱 (Xcode 프로젝트)
app/Ttae/ 앱 소스 (SwiftUI + AppKit)
app/Sources/TtaeCore/ 한글 음절 분해/합성, 교정 룰 (SwiftPM 라이브러리)
app/Tests/TtaeCoreTests/ TtaeCore 단위 테스트
landing/ 랜딩 페이지 (Astro 6, Cloudflare Pages 로 배포)

app/Ttae.xcodeprojXcodeGen 으로 app/project.yml 에서 생성되며 리포에 함께 커밋됩니다. 구조적 변경(파일 추가·빌드 설정 등) 은 project.yml 수정 후 xcodegen generate 로 반영합니다. 단순 파일 편집은 Xcode 에서 직접 해도 됩니다.

브랜치 전략

  • develop — 기본 브랜치. 모든 기능 작업이 모이는 곳. PR 의 base
  • main — 릴리즈 브랜치. push 가 들어오면 GitHub Actions 가 서명·공증·릴리즈를 자동으로 만듭니다. 직접 작업하지 않음

릴리즈 절차

  1. app/project.ymlMARKETING_VERSION 을 새 버전(예: 1.0.1) 으로 bump
  2. develop → main PR 머지
  3. release.yml 이 자동 동작 — Xcode build → Developer ID 서명 → notary 공증 → .dmg + SHA-256 + vX.Y.Z 태그 + GitHub Release 업로드
  4. 같은 버전 태그가 이미 있으면 release.yml 은 스킵

CI / Release 워크플로

  • .github/workflows/ci.yml — PR 과 develop/main push 시 swift test + 미서명 xcodebuild 빌드
  • .github/workflows/release.yml — main push 시 MARKETING_VERSION 읽어서 build → 서명 → 공증 → DMG → Release. concurrency group 으로 직렬화

필요한 GitHub Secrets:

  • DEVELOPER_ID_CERTIFICATE_P12, DEVELOPER_ID_CERTIFICATE_PASSWORD — Apple Developer ID Application 인증서
  • KEYCHAIN_PASSWORD — 임시 빌드 키체인 패스워드
  • APP_STORE_CONNECT_KEY_P8, APP_STORE_CONNECT_KEY_ID, APP_STORE_CONNECT_ISSUER_ID — notarytool 용 App Store Connect API 키

랜딩 페이지

cd landing
npm install
npm run dev      # http://localhost:4321
npm run build

landing/src/pages/version.txt.ts 가 빌드 타임에 GitHub Releases API 를 조회해 dist/version.txt 로 최신 버전을 출력합니다. 앱은 안내 탭에서 이 엔드포인트를 fetch 해 업데이트 가능 여부를 표시합니다.

배포는 Cloudflare Pages — landing/ 디렉터리를 root 로 두고 main push 시 자동 배포 + PR 마다 preview URL 발급.

라이선스

MIT License.

Third-party

  • Mage Icons (Apache License 2.0) — 설정 UI 아이콘
  • Pretendard (SIL Open Font License 1.1) — 랜딩 페이지 폰트
  • Apple 로고 SVG (Font Awesome free, CC BY 4.0) — 랜딩 다운로드 버튼

About

세상에 떄 라는 글자는 없다 — 한글 입력 오타 자동 교정 macOS 앱

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors