QCalc
생산성과 접근성을 위한 다목적 계산기 — 표준 · 단위 · 통화 · 진법 · 수식
키보드 우선, 스크린리더 친화, 10개 언어. 데스크톱(Linux · Windows)과 Android.
English
---

## QCalc을 선택하는 이유
QCalc은 **5가지 전문 계산기(표준, 단위, 통화, 진법, 수식)**와 **10개 언어(한국어, English, 日本語, 中文, हिन्दी, Deutsch, Español, Français, Português, Русский)** 지원을 하나의 깔끔하고 키보드 친화적인 앱에 담았습니다. 일상적인 계산, 단위 변환, 환율 확인, 16진수/2진수 작업, 수학 수식 계산까지 — 탭 하나로 전환할 수 있습니다.
- **기술 스택** — Vue 3 + Quasar + TypeScript + Tauri 2(데스크톱) + Capacitor(Android) — 기존 Electron 타겟은 전환기 동안 유지
- **지원 플랫폼** — Windows (NSIS 설치파일), Linux (deb / rpm / AppImage / Snap / Flatpak), Android
---
## 주요 기능
### 5가지 계산기 모드
| 모드 | 설명 | 접근 |
| ------------- | --------------------------------------------------------------------- | -------- |
| **표준** | 사칙연산, 백분율, 삼각함수, 거듭제곱, 제곱근, 팩토리얼 | `Ctrl+1` |
| **단위 변환** | 15개 이상 카테고리 — 길이, 무게, 면적, 부피, 각도 등 | `Ctrl+2` |
| **통화 변환** | 340개 통화(법정, 암호화폐, 귀금속) — API 키 불필요 | `Ctrl+3` |
| **진법 변환** | 2/8/10/16진수 변환, AND, OR, XOR, NOT, 시프트 연산 | `Ctrl+4` |
| **수식** | [mathjs](https://mathjs.org/) 문법으로 수학 수식을 직접 입력하여 계산 | `Ctrl+5` |
### 수식 계산기 주요 기능
- `sqrt(2) * pi`, `sin(45 deg)`, `log(1000)` 같은 수식 입력
- `@`로 현재 계산값, `$`로 메모리 값 참조
- 인라인 편집기(Space 또는 빈 수식에서 Enter)로 자유로운 수식 편집
- **히스토리 탐색** — 편집 모드에서 ↑/↓ 화살표 키로 이전 수식 탐색 및 재사용
- **수식 불러오기** — 계산 기록에서 수식 우클릭 → "수식 필드에 불러오기"
- 사용 가능한 함수, 상수, mathjs 문서 링크가 포함된 내장 도움말
- 전체 수식이 결과 필드에 표시되고 기록에 저장
### 생산성 도구
- **계산 기록** — 검색, 메모 추가, CSV로 내보내기/불러오기
- **메모리 연산** — MC, MR, MS, M+, M−, M×, M÷
- **설정 동기화** — 모든 설정을 JSON으로 내보내기/불러오기
- **계산기별 숫자 형식** — 모드별 독립적인 묶음 표시, 소수점 자릿수
- **64자리 정밀도** — mathjs BigNumber 기반
### 사용자 경험
- **테마** — 다크/라이트를 넘어 다양한 색상 테마
- **적응형 레이아웃** — 넓은 화면에서 기록 패널 자동 표시
- **접근성** — ARIA 레이블, 계산 결과 스크린리더 낭독(Linux는 AT-SPI announcement, 그 외는 aria-live), WCAG AA 대비, 키보드 포커스 표시, 모션 감소 지원
- **키보드 우선** — 모든 기능에 단축키 지원
- **모바일** — 스와이프로 모드 전환, 햅틱 피드백
- **항상 위** — 다른 창 위에 계산기 고정 (네이티브 Linux Wayland 세션에서는 미동작, `QCALC_FORCE_XWAYLAND=1`로 옵트인)
- **10개 언어** — 한국어, 영어, 일본어, 중국어, 힌디어, 독일어, 스페인어, 프랑스어, 포르투갈어, 러시아어
- **자동 업데이트** — Windows 설치파일, Linux AppImage 자동 업데이트 (deb/rpm은 수동, Snap/Flatpak은 스토어 업데이트)
> 한국어를 제외한 번역은 AI로 생성되었습니다. 오류나 더 나은 표현이 있다면 [Issues](https://github.com/from104/qcalc/issues)로 알려주세요.
---
## 키보드 단축키
> **범례**: `C` = Ctrl, `S` = Shift, `A` = Alt
### 공통
| 키 | 기능 |
| ----------- | ----------- |
| `0-9` `.` | 숫자 입력 |
| `+ - * /` | 사칙연산 |
| `Enter` `=` | 계산 |
| `Backspace` | 마지막 삭제 |
| `Delete` | 전체 초기화 |
| `u` `i` | x² / √x |
| `j` | 부호 변경 ± |
| `k` `%` | 퍼센트 |
| `l` | 역수 1/x |
| `'` | 시프트 모드 |
### 시프트 모드 (표준)
| 키 | 기능 |
| ----------- | ---------------- |
| `r` `t` | xⁿ / ⁿ√x |
| `f` | 10ⁿ |
| `g` | 나머지 |
| `h` | 팩토리얼 x! |
| `q` `w` `e` | sin / cos / tan |
| `z` `x` `c` | π / φ / e |
| `a` `s` `d` | π/2 / ln10 / ln2 |
| `v` `b` | 정수부 / 소수부 |
### 메모리
| 키 | 기능 |
| ------------- | ----------- |
| `C-Enter` | 저장 (MS) |
| `C-Backspace` | 호출 (MR) |
| `C-Delete` | 초기화 (MC) |
| `C-+` `C--` | M+ / M− |
| `C-*` `C-/` | M× / M÷ |
### 단위 / 통화 (시프트 모드)
| 키 | 기능 |
| ----------- | ------------------------- |
| `a` `s` `d` | ×10 / ×100 / ×1000 |
| `z` `x` `c` | ÷10 / ÷100 / ÷1000 |
| `f` `g` `h` | ×2/×3/×5 또는 +5/+10/+100 |
| `q` `w` `e` | ÷2/÷3/÷5 또는 −5/−10/−100 |
| `\` | 원본 ↔ 대상 교환 |
| `A-\` | 기호 표시 토글 |
### 프로그래머 (진법)
| 키 | 기능 |
| ----------------------- | ------------------ |
| `z` `x` `c` `a` `s` `d` | 16진수 A–F |
| `j` `k` `l` | AND / OR / XOR |
| `h` | NOT |
| `r` `t` | ±1비트 시프트 |
| `f` `g` | ±4비트 시프트 |
| `u` `i` | ±N비트 시프트 |
| `q` `w` `e` | NAND / NOR / XNOR |
| `\` | 원본 ↔ 대상 교환 |
| `A-\` | 진법 표시 토글 |
| `A-C-\` | 접두사/접미사 전환 |
### 수식 (편집 모드)
| 키 | 기능 |
| -------- | ------------------------------------- |
| `Space` | 편집 모드 진입 |
| `Enter` | 수식 평가 (비어있으면 편집 모드 진입) |
| `Escape` | 수식 지우고 편집 모드 종료 |
| `↑` `↓` | 이전 수식 히스토리 탐색 |
| `=` | 수식 평가 |
### 내비게이션 & UI
| 키 | 기능 |
| ------------- | -------------------------------- |
| `F1`–`F5` | 도움말 / 정보 / 설정 / 기록 / 팁 |
| `C-Tab` `→` | 다음 탭 |
| `C-S-Tab` `←` | 이전 탭 |
| `C-1`–`C-5` | 탭 이동 |
| `Escape` | 패널 닫기 |
| `A-t` | 항상 위 |
| `A-d` | 다크 모드 |
| `A-n` | 계산기별 숫자 형식 |
| `A-p` | 햅틱 피드백 |
| `,` | 묶음 표시 토글 |
| `A-,` | 묶음 단위 (3/4) |
| `[` `]` | 소수점 자릿수 (∞–16) |
| `;` | 추가 기능 토글 |
### 클립보드
| 키 | 기능 |
| ------- | --------------- |
| `C-c` | 메인 패널 복사 |
| `S-C-c` | 보조 패널 복사 |
| `C-v` | 메인에 붙여넣기 |
| `S-C-v` | 보조에 붙여넣기 |
### 기록 패널
| 키 | 기능 |
| ------------- | --------------- |
| `↑` `↓` | 스크롤 |
| `PgUp` `PgDn` | 빠른 스크롤 |
| `Home` `End` | 맨 위 / 맨 아래 |
| `C-f` | 검색 |
| `C-[` `C-]` | 폰트 크기 −/+ |
---
## 설치
| 플랫폼 | 방법 |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Windows** | [Releases](https://github.com/from104/qcalc/releases)에서 NSIS 설치 파일 다운로드 (자동 업데이트 지원) |
| **Linux** | [Releases](https://github.com/from104/qcalc/releases)에서 `.deb` / `.rpm` / AppImage 다운로드 (AppImage는 자동 업데이트), Snap (`snap install qcalc`), 또는 자체 저장소의 Flatpak: `flatpak install --user https://from104.github.io/qcalc/flatpak/qcalc.flatpakref` (자동 업데이트) |
| **Android** | [Releases](https://github.com/from104/qcalc/releases)에서 APK 다운로드 |
> **Linux 패키지 호환성**: `.deb`는 Ubuntu 22.04 이상 / Debian 12 이상(Mint 21+, Pop!\_OS 22.04+ 등 파생판 포함), `.rpm`은 Fedora 37 이상과 openSUSE Leap 15.6+/Tumbleweed를 지원합니다. RHEL/Alma/Rocky 9 계열과 구형 Debian/Ubuntu는 glibc/WebKitGTK가 낡아 이 패키지들로는 지원되지 않습니다 — 런타임을 내장한 AppImage(glibc 2.35 이상 배포판), Flatpak, Snap을 사용하세요.
> **Linux에서 스크린리더를 사용하신다면** `.deb`·`.rpm`·AppImage를 사용하세요. Flatpak 샌드박스 안에서는 WebKit UI가 보조기술에 노출되지 않는 문제가 있습니다(업스트림 한계, [#113](https://github.com/from104/qcalc/issues/113)).
> macOS / iOS 빌드는 현재 제공되지 않습니다.
> **0.12.x 이하(Electron)에서 올라오는 경우** Windows와 AppImage는 구버전 앱의 업데이트 확인으로 0.13.1을 받아 설치할 수 있고, Windows에서는 그 과정에서 예전 설치가 함께 제거됩니다. 나머지 패키지(`.deb`·`.rpm`·Snap·Flatpak)는 직접 내려받아 설치해야 합니다. 어느 쪽이든 구버전에서 기록(CSV)과 설정(JSON)을 내보내고 새 앱의 첫 실행 화면(또는 설정)에서 가져오세요.
>
> 0.13.0 자체는 구버전 업데이터가 읽는 파일 없이 배포됐습니다. 따라서 아직 0.12.x를 쓰고 계시다면 0.13.1부터 안내를 받게 됩니다.
---
## 기여하기
번역 및 기여 가이드는 [CONTRIBUTING-ko.md](CONTRIBUTING-ko.md)를 참조하세요.
## 개발
빌드 및 개발 환경 설정은 [DEVELOP-ko.md](DEVELOP-ko.md)를 참조하세요.