책귀 디자인 시스템 — 마스터 문서
버전: 1.1.0
작성일: 2026-05-09
업데이트: 2026-05-09 — Flutter 스택 전환 (React Native + Expo → Flutter)
대상 독자: 메인 작업자 (Flutter 구현 세션)
1. 브랜드 정체성
앱 이름: 책귀 (冊-)
“책귀신”에서 온 말. 책을 너무 좋아해서 헤어나오지 못하는 사람.
영문 표기: Chaekgwi (또는 Bookworm 포지셔닝 — 결정 필요)
브랜드 톤 키워드 (7개, 우선순위 순)
- 정제된 (refined) — 모든 결정의 1순위 필터. “이게 충분히 정제됐나?”
- 진솔한 (sincere) — 꾸밈없이 좋은 문장 하나를 보여준다
- 지적인 (intellectual) — 책 읽는 사람에 대한 경의
- 따뜻한 (warm) — 차갑지 않게. 한국 문학의 온도
- 미니멀한 (minimal) — 인용구가 주인공. 나머지는 보조
- 한국적인 (Korean sensibility) — 한글 타이포그래피 우선, 한국 문학 감성
- 차분한 (calm) — 자극적이지 않게. 오래 봐도 피로하지 않게
피해야 할 것 (명시적 금지)
- 과한 그라데이션 (특히 보라-분홍 AI 슬롭 계열)
- 네온·형광 컬러
- 폰트 3종 이상 혼용
- 인스타 필터 느낌의 과포화
- “앱이 만들어준 티” 나는 레이아웃 패턴 (예: 중앙 정렬 + 아이콘 + 세 줄 설명)
- Goodreads 스타일 (구식 정보 밀도)
2. 브랜드 컬러 시스템
컬러 결정 근거
Primary — Ink (잉크 계열)
#1C1917 (거의 검정, warm black)
- 이유: 순수 검정(
#000000)보다 따뜻하다. 오래된 잉크처럼 갈색 기운이 돈다.
- 책의 활자 느낌. 디지털이지만 아날로그 질감을 연상시킨다.
- 참조: Medium, Substack, Bear App의 텍스트 컬러 계열
Secondary — Paper (종이 계열)
#FAFAF8 (따뜻한 흰색)
- 이유: 순백(
#FFFFFF)은 임상적이고 차갑다. 종이의 흰색은 약간 노르스름하다.
- 읽기에 가장 편안한 배경. 눈의 피로도 최소화.
- 참조: iA Writer, Bear, Notion의 배경색 계열
Accent — Copper (구리 계열)
#B87333
- 이유: “따뜻·지적” 두 키워드를 동시에 만족하는 희귀한 색.
- 금색(gold)보다 덜 화려하고, 주황(orange)보다 더 품위 있다.
- 오래된 도서관, 가죽 장정 책, 황동 북엔드를 연상시킨다.
- 한국 전통 칠기·공예품 색과도 결이 맞는다.
- 흰 배경(
#FAFAF8) 위에서 WCAG AA 대비 확인: 4.6:1 (통과)
- 검정 배경(
#1C1917) 위에서: 5.2:1 (통과)
왜 amber/terracotta 대신 copper인가?
- Amber: 너무 노랗다. “따뜻함” 과잉, “지적” 부족
- Terracotta (
#C4704F): 따뜻하지만 너무 흙색. 책보다 도자기를 연상
- Copper: 따뜻함과 금속성 정밀함이 공존. 출판·인쇄 산업의 역사적 금속
3. 타이포그래피 결정 근거
Noto Serif KR — 인용구 전용
선택 이유:
- 구글 폰트 오픈 라이선스 → 라이선스 비용 0원
- 한글 세리프 중 가장 완성도 높은 획 처리
- 긴 인용구(500자)도 읽기 편안한 행간 특성
- 세리프(serif)는 인쇄된 책 텍스트를 연상시켜 “인용구”라는 맥락과 완벽히 일치
- Noto 계열 특유의 중립성 → 책 장르(소설/에세이/자기계발) 가리지 않고 잘 맞음
피한 이유 — 고려했다가 제외한 폰트들:
- Spoqa Han Sans Neo: 산세리프라 인용구 감성 부족
- Gowun Batang: 개성 강함. 장르 편향 발생
- KoPubWorld 바탕: OFL 라이선스 체계 불명확 (상업용 재배포 주의)
Pretendard — UI/라벨 전용
선택 이유:
- 이미 팀이 결정한 스택
- Apple SD Gothic Neo 대체로 가장 많이 쓰이는 한국 산세리프
- 가독성, 자간, 굵기 체계 모두 우수
- Flutter에서
pubspec.yaml fonts 섹션에 weight별로 등록해 사용
Libre Baskerville — 영문 인용구 보조
선택 이유:
- 영문 책 인용구(영미 소설 등) 때 사용할 세리프 계열 보조
- Noto Serif KR와 획 두께·스타일 계열 맞음 (혼용 시 이질감 없음)
- 구글 폰트 무료 라이선스
4. 5개 템플릿이 만드는 결의 스펙트럼
차갑고 강함 ←————————————————→ 따뜻하고 부드러움
T3(모노) T1(미니멀) T2(따뜻) T4(표지발췌) T5(타이포)
▲ ▲ ▲ ▲ ▲
대비·힘 중립·여백 감성·온기 책의 색·감정 시·집중
중요한 설계 원칙: 5개가 각기 다른 극으로 당긴다. 모두 “예쁜” 방향은 같지만 도달하는 방법이 다르다. 사용자가 자신이 표현하고 싶은 감정에 따라 고른다.
템플릿 → 페르소나 정합성
| 템플릿 |
민지 (28, 마케터) |
한지영 (31, 디자이너) |
| T1 미니멀 |
“자연스럽다. 과하지 않아서 부담 없이 올릴 수 있다” |
“깔끔. 폰트 좋으면 쓸 만” |
| T2 따뜻 |
“인스타 스토리에 올리기 좋을 것 같다. 따뜻해 보여” |
“폰트·여백 조합이 핵심. 자칫 촌스럽다” |
| T3 모노 |
“강하다. 임팩트 있는 문장에 쓸 것 같다” |
“Co-Star 스타일. 요즘 감성. 마음에 든다” |
| T4 표지발췌 |
“책 표지가 배경이 된다? 신기하다” |
“이게 진짜. 책 컬러로 자동 팔레트 — 내가 원하던 것” |
| T5 타이포 |
“시처럼 되는 거? 짧은 문장에 쓸 것 같다” |
“대담한 시도. 폰트·행 배치가 전부” |
결론: T4가 한지영(디자이너) 최선호, T1이 민지(마케터) 기본 선택. T3는 Z세대 이수연(대학생) 계열에서 가장 많이 선택될 것으로 예측.
5. 공통 설계 원칙
5.1 인용구 길이별 자동 조정 시스템
세 기준점으로 선형 보간:
| 기준점 |
글자 수 |
인용구 폰트 크기 |
| Large |
≤ 50자 |
22px |
| Medium |
200자 |
15px |
| Small |
≥ 500자 |
11px |
보간 함수 (Dart — tokens.dart 참조):
double getQuoteFontSize(int charCount) {
if (charCount <= 50) return 22.0;
if (charCount >= 500) return 11.0;
if (charCount <= 200) {
// 50 → 200자 구간: 22px → 15px (선형)
return 22.0 - ((charCount - 50) / 150.0) * 7.0;
} else {
// 200 → 500자 구간: 15px → 11px (선형)
return 15.0 - ((charCount - 200) / 300.0) * 4.0;
}
}
행간(lineHeight) 연동 규칙 (Flutter TextStyle.height 값):
- 22px 기준: lineHeight = 1.8
- 15px 기준: lineHeight = 1.7
- 11px 기준: lineHeight = 1.6
- 보간:
lineHeight = 1.6 + ((fontSize - 11) / (22 - 11)) * 0.2
- Dart 함수:
getQuoteLineHeight(double quoteFontSize) — tokens.dart 참조
5.2 비율별 레이아웃 전환
| 비율 |
픽셀 |
공유 채널 |
자동 선택 트리거 |
| 9:16 |
1080×1920 |
인스타 스토리, 단톡방 |
인스타 스토리 공유 선택 시 |
| 1:1 |
1080×1080 |
인스타 피드 |
인스타 피드 공유 선택 시 |
| 4:5 |
1080×1350 |
인스타 포스트, 일반 다운로드 |
다운로드 메뉴에서 명시적 선택 |
편집기 기본 미리보기: 9:16 (인스타 스토리가 주 공유 채널)
5.3 워터마크 규칙
기본 모드 (minimal):
- 위치: 우하단
- 내용: “책귀” 텍스트 (Pretendard Regular)
- 크기: 9px
- 색: 배경색 대비 30% opacity (거의 안 보임)
- 이유: 페르소나 1(민지) “앱 생성물 티 싫다” 반영
강조 모드 (branded, 토글 ON):
- 위치: 하단 중앙
- 내용: 로고 아이콘 + “책귀” 텍스트
- 크기: 13px
- opacity: 70%
- 이유: 앱 인지도가 쌓이면 바이럴 기여 가능
6. 향후 확장 포인트 (V2 후보 템플릿)
T6 후보: 노트지 (Note Paper)
- 가로 줄이 그어진 노트 배경
- 손글씨 느낌 한글 폰트 (예: Gamja Flower)
- 대상: 학생, 독서 노트 공유 감성
- 기술 난이도: 낮음 (줄 그리기는 Flutter CustomPainter에서 Canvas.drawLine 몇 줄)
T7 후보: 액자 (Gallery)
- 흰 배경에 얇은 검정 테두리 — 미술관 레이블 스타일
- 책 표지가 위에 작게, 인용구가 레이블처럼 아래
- 대상: 미술·디자인·문화 에세이 읽는 사람
- 기술 난이도: 낮음
T8 후보: 필름 스트립 (Film)
- 상하에 필름 구멍 패턴
- 어두운 배경, Letterboxd 오마주
- 대상: 영화 원작 소설 인용 시 특히 어울림
- 기술 난이도: 중간 (커스텀 패턴 그리기)
T9 후보: 계절 (Season)
- 봄/여름/가을/겨울 4종 sub-theme
- 한국 자연 색 팔레트 (봄: 벚꽃분홍, 가을: 단풍갈색 등)
- 대상: 계절감 있는 문학 감성
- 기술 난이도: 낮음 (색 토큰만 변경)
7. 구현 우선순위 가이드
V1.0 필수:
T1 미니멀 → T4 표지발췌 → T3 모노 (이 순서로 구현)
V1.1 추가:
T2 따뜻 → T5 타이포
V2.0:
T6 노트지 → T7 액자 → 사용자 커스텀 색 선택
왜 이 순서인가?
- T1은 기술적으로 가장 단순하고 QA 기준선이 된다
- T4는 색 추출 알고리즘이 완성되면 자동으로 가장 인상적인 결과를 보여준다 → 바이럴 핵심
- T3는 어두운 배경 처리를 익히면 다른 템플릿에도 활용 가능
- T2, T5는 T1을 베이스로 확장하므로 이후에 와도 된다