사용자 화면 · 회원가입/로그인

로그인 진입 화면

LOG-001 · 2026. 03. 20

화면 이름 로그인 진입 화면
화면 위치 기능 클릭 > 로그인 진입 화면
화면 ID LOG-001
작성일 2026. 03. 20
LOG-001
Description
0 화면 접근 조건
  • 비회원 사용자가 앱 실행 시 진입
  • 로그인 완료 사용자는 본 화면 재진입 불가
  • 로그인 상태에서 접근 시 메인 화면으로 이동
1 헤더
  • Back 버튼
    • Back 버튼 클릭 시, 로그인 진입 직전 화면으로 이동
2 카피 영역
  • 메인 카피 : 사용 목적 안내 문구 노출
  • 서브 카피 : 서비스 정책 안내 문구 노출
  • CTA 없음
3 이미지 영역
  • 단일 이미지 영역
    • 이미지 : 브랜드 톤앤 매너 반영한 대표 이미지 노출
    • CTA 없음
4 로그인 버튼
  • 소셜 로그인
    • 메인 로그인 수단으로 사용
    • 지원 로그인 수단: 소셜 로그인
    • 동작
      • 소셜 로그인 버튼 클릭 시 해당 소셜 인증 진행
      • 기존 가입 사용자일 경우 로그인 처리
      • 최초 사용자일 경우 추가 정보 입력 없이 자동 가입 처리
      • 최초 가입/로그인 사용자일 경우 온보딩 화면(LOG-007)으로 이동
      • 소셜 인증 실패 시 LOG-009 소셜 로그인 실패 모달 노출
      • 네트워크 오류 발생 시 LOG-009 네트워크 오류 모달 노출
    • 기존 이메일 회원 전용 로그인 경로
    • 신규 이메일 회원가입 기능은 제공하지 않음
    • 버튼 클릭 시 이메일 로그인 바텀시트(LOG-003) 노출
  • 최근 로그인 표시
    • 마지막 성공한 로그인 방식 기준으로 최근 로그인 배지 노출
    • 마지막 성공 이력이 없는 경우 미노출
    • 해당 계정 식별값이 정지 상태인 경우 로그인 차단
      • 제재 안내 문구 노출
      • “탈퇴 후 5일이 지나야 가입 가능합니다.” 토스트 노출
    • 탈퇴 후 5일이 지난 경우 동일 식별값으로 다시 로그인/가입 가능
  • 공통 규칙
    • 비회원은 열람 및 화면 진입은 가능
    • 저장·요청·설정 변경·문의·알림 관련 개인 액션은 로그인 후 가능
    • 로그인/가입 관련 주요 이벤트는 로그 기록 대상
5 최근 로그인 표시
  • 노출 조건
    • 사용자가 이전에 로그인에 성공한 이력이 있는 경우
    • 단말 기준으로 마지막 로그인에 사용된 소셜 로그인 버튼에 노출
    • 해당 소셜 로그인 버튼에 ‘최근 로그인’ 텍스트 배지 노출
    • 단순 안내용 UI로 버튼 기능에는 영향 없음
  • 동작
    • ‘최근 로그인' 표시가 된 버트 클릭 시
      • 해당 소셜 로그인 방식으로 바로 인증 진행
6 비고
  • 재로그인/세션 만료 처리
    • 인증 토큰 만료 시
      • 현재 액션 중단
      • 인증 토큰 만료 토스트 메시지 노출 후, 로그인 화면 이동
        • 로그인을 재시도해주세요.
    • "정지된 계정입니다. 문의사항은
    • cs@chaart.co
    • 로 부탁드립니다"
    • “탈퇴 계정입니다. 5일 후, 재가입 가능합니다.”

Design Output

UI 디자인 산출물

위 스토리보드 기획을 CHAART OS 디자인 토큰으로 변환한 결과물. 실제 구현 시 참조할 최종 디자인.

9:41

차트로 시작하기.

나를 위한 단 하나의 차트.
지금 바로 로그인하고 시작해 보세요.

카카오톡으로 시작하기
Google로 시작하기
Apple로 계속하기 최근 로그인
Naver로 시작하기

또는

개발 구현 가이드 — LOG-001 로그인 진입 화면
디자인 상태
완료
최종 승인
류우상 ✅
승인일
2026-03-27

Update History

2026-03-26 01:30구현 가이드 최신화 검증 — Description(0~6) 전수 대조 누락 0건, 토큰 섹션 통합 확인, 디자인 산출물 동기화 완료
2026.03.25구현 가이드 코드 동기화 확인 — 실제 코드와 가이드 내용 일치 검증 완료. 추가 변경 사항 없음.
2026.03.20PM Description 3/20 최신 반영 — 접근조건·자동가입·LOG-007 온보딩·LOG-009 참조·차단규칙·cs@chaart.co 수정
2026.03.17잔여 불일치 수정 — text-secondary hex #555555 보정, 말풍선 배지 색상 출처 명확화, 소셜 취소 토스트 타입 error로 통일
2026.03.17구현 가이드 ↔ 디자인 산출물 불일치 수정
2026.03.16구현 가이드 최신화 — Applied Design Tokens 통합, Description/디자인 산출물 기준 전면 재작성
2026.03.13개발 구현 가이드 신규 작성, Design Description 섹션 통합
2026.03.09"최근 로그인" 뱃지 → 말풍선(speech bubble) 스타일로 개선 · Design Description 추가
2026.03.09예외 케이스 인터랙티브 테스트 패널 추가 (토큰 만료 · 정지 계정 · 탈퇴 계정 · 소셜 취소)
2026.03.03초기 디자인 작성
Implementation Specification

1. 화면 구조 개요

  • LOG-001은 앱에서 사용자 인증이 필요한 기능 클릭 시 진입하는 로그인 진입 화면이다.
  • 접근 조건: 비회원 사용자가 앱 실행 시 진입. 로그인 완료 사용자는 본 화면 재진입 불가. 로그인 상태에서 접근 시 메인 화면으로 이동.
  • 전체 화면(852px) 레이아웃. 상단에 히어로 카피 영역, 하단에 소셜 로그인 버튼 4종(카카오/Google/Apple/Naver) + 이메일 로그인 버튼이 고정 배치된다.
  • 히어로 이미지는 삭제되었으며(2026.03.09), 타이틀 카피("차트로 시작하기.")와 서브 카피만 남아 있다.
  • "최근 로그인" 말풍선 배지가 마지막 로그인 소셜 버튼 상단에 floating 애니메이션으로 노출된다.
  • Back 버튼(chevron-left)으로 로그인 직전 화면으로 복귀할 수 있다.
  • 공통 규칙: 비회원은 열람 및 화면 진입 가능. 저장·요청·설정 변경·문의·알림 등 개인 액션은 로그인 후 가능. 로그인/가입 관련 주요 이벤트는 로그 기록 대상.

2. 레이어 구조 + 치수

# 영역 높이/위치 세부 치수
1 Status Bar 48px, 상단 고정 시스템 상태바. 시간 9:41, 통신/와이파이/배터리 아이콘
2 헤더 (Nav Bar) 48px Back chevron-left 아이콘 20x20px, stroke: --charcoal #1A1A1A, 1.5px. 클릭 시 로그인 직전 화면으로 복귀
3 카피 영역 margin-top: 24px 메인 카피: --sans Pretendard / 30px / 700 / "차트" --red-brand #961E23. 서브 카피: 17px / line-height:1.6 / --text-secondary #555555. 좌우 padding: 32px
4 이미지 영역 (삭제됨 2026.03.09) PM Description에는 브랜드 톤앤매너 대표 이미지가 있으나, 디자인 산출물에서 삭제 확정
5 소셜 로그인 버튼 그룹 position: absolute; bottom: 60px 4종 버튼 스택 (카카오/Google/Apple/Naver). gap: 10px (--space-3). 좌우 padding: 32px. 버튼 높이 50px
6 "또는" 구분선 버튼 그룹과 이메일 사이 텍스트 구분선, --text-muted #888888
7 이메일 로그인 버튼 버튼 그룹 하단 50px 높이. --charcoal #1A1A1A border + mail SVG 아이콘. Secondary action 스타일 (transparent bg). 좌우 padding: 32px
8 Home Indicator 하단 8px padding iOS safe area indicator

3. 핵심 인터랙션

  • 소셜 로그인 버튼 클릭: 해당 플랫폼 OAuth 인증 페이지로 이동
    • 기존 가입 사용자 → 인증 완료 후 로그인 처리, 서비스 진입
    • 최초 사용자 → 추가 정보 입력 없이 자동 가입 처리
    • 최초 가입/로그인 사용자 → 온보딩 화면(LOG-007)으로 이동
    • 소셜 인증 실패 시 LOG-009 소셜 로그인 실패 모달 노출
    • 네트워크 오류 발생 시 LOG-009 네트워크 오류 모달 노출
  • 이메일 로그인 버튼 클릭: LOG-003 (이메일 ID/PW 입력 바텀시트) 이동
  • Back 버튼 클릭: 로그인 진입 직전 화면으로 복귀

4. 상태 변화

  • "최근 로그인" 말풍선 배지: 단말 기준 마지막 로그인 소셜 버튼 상단 중앙에 노출
    • 배경: CSS 하드코딩 #B22A30 (sb-dp-badge 클래스), 텍스트: #fff, --sans Pretendard / 11px / 600
    • 하단 삼각 화살표: ::after pseudo-element (border trick), #B22A30
    • box-shadow: 0 2px 8px rgba(178,42,48,0.25)
    • floating 애니메이션: badgeFloat 2s ease-in-out infinite, translateY(0 ↔ -3px)
    • 말풍선 있는 버튼은 margin-top: 18px
    • 안내용 UI -- 버튼 기능에 영향 없음. 버튼 4종 중 1개에만 노출
  • 로그인 성공: "로그인되었습니다" 정보 토스트 노출 → 원래 화면 복귀
  • 로그인 실패: 오류 메시지 토스트 또는 팝업 노출 (LOG-009)

5. 네비게이션 플로우

  • 진입: 앱 내 인증 필요 기능 클릭 → LOG-001
  • 소셜 로그인 (최초): LOG-001 → OAuth 인증 → 자동 가입 → 온보딩(LOG-007)
  • 소셜 로그인 (기존): LOG-001 → OAuth 인증 → 서비스 진입 (원래 화면)
  • 소셜 인증 실패: LOG-001 → LOG-009 (소셜 로그인 실패 모달)
  • 네트워크 오류: LOG-001 → LOG-009 (네트워크 오류 모달)
  • 이메일 로그인: LOG-001 → LOG-003 (이메일 ID/PW 입력 바텀시트)
  • Back: LOG-001 → 로그인 직전 화면
  • 로그인 성공: LOG-001 → 원래 화면 (로그인 요청 발생 시점)
  • 로그인 실패: LOG-001 → LOG-009 (오류)

6. 에러/예외 처리

  • 소셜 인증 취소: 사용자가 OAuth 인증 도중 취소 → 에러 토스트 "로그인이 취소됐습니다" → LOG-001 화면 유지
  • 네트워크 오류: 에러 토스트 "네트워크 연결을 확인해주세요" → 화면 유지
  • 인증 토큰 만료: 현재 액션 중단 → 에러 토스트 "로그인을 재시도해주세요." → LOG-001로 이동 → 로그인 완료 후 원래 화면 복귀
  • 정지 계정: 에러 토스트 "정지된 계정입니다. 문의사항은 cs@chaart.co로 부탁드립니다"
  • 탈퇴 계정 (5일 이내): 에러 토스트 "탈퇴 계정입니다. 5일 후, 재가입 가능합니다." — 탈퇴 후 5일이 지난 경우 동일 식별값으로 다시 로그인/가입 가능

7. 모션 스펙

요소 Duration Easing Property
토스트 등장 300ms ease opacity 0→1, translateY(20px→0)
토스트 퇴장 300ms ease opacity 1→0, translateY(0→20px). 3000ms 후 자동 dismiss
말풍선 float 2000ms ease-in-out, infinite translateY(0 ↔ -3px) (badgeFloat keyframes)

8. 여백·간격 요약

위치 비고
좌우 콘텐츠 패딩 32px iPhone 14 Pro 기준 컨텐츠 마진
카피 영역 상단 마진 24px Nav Bar 아래 → 카피 영역
로그인 버튼 스택 gap 10px (--space-3) 소셜 로그인 버튼 간 세로 간격
버튼 스택 하단 위치 bottom: 60px 화면 하단 기준 absolute 고정
버튼 높이 50px 터치 타겟 44px 이상 충족
토스트 하단 위치 bottom: 24px, 중앙 정렬 폰 내부 기준
토스트 패딩 10px 20px --sans / 12px / 500 / white-space: nowrap
말풍선 margin-top 18px 말풍선 있는 버튼에만 적용

9. 적용 디자인 토큰

  • 타이틀: --sans / 30px / 700 → Pretendard Variable, Bold. "차트" → --red-brand
  • 서브타이틀: --text-secondary / 17px / line-height 1.6 → #555555
  • 히어로 영역: --paper #F0EDE6 + linen 텍스처 (삭제됨 2026.03.09)
  • 카카오 버튼: Platform / #FEE500 → 카카오 브랜드 가이드
  • Google 버튼: Platform / #FFFFFF + border → Google Identity 가이드
  • Apple 버튼: Platform / #000000 → Apple HIG 가이드
  • Naver 버튼: Platform / #03C75A → 네이버 브랜드 가이드
  • 이메일 버튼: --charcoal border / 시스템 아이콘 mail → Secondary action
  • 최근 로그인 말풍선: CSS 하드코딩 #B22A30 bg (sb-dp-badge 클래스) / #fff / --sans / 11px / 600, 말풍선 + 하단 화살표, floating 애니메이션
  • 버튼 높이: 50px → 터치 타겟 최소 48px 이상 충족
  • 버튼 간격: --space-3 (10px) → btn-stack gap
  • 좌우 패딩: 32px → iPhone 14 Pro 기준 컨텐츠 마진
  • 토스트: --sans / 12px / 500 / padding: 10px 20px → error: #D32F2F / info: --charcoal / bottom 24px / 라운드 없음
최근 로그인 배지 — 적용 케이스

단말 기준 마지막 로그인에 사용된 소셜 로그인 버튼에 "최근 로그인" 말풍선이 노출됩니다.

Case — Kakao

카카오톡으로 계속하기 최근 로그인
Google로 시작하기
Apple로 시작하기
Naver로 시작하기

Case — Google

카카오톡으로 시작하기
Google로 계속하기 최근 로그인
Apple로 시작하기
Naver로 시작하기

Case — Apple

카카오톡으로 시작하기
Google로 시작하기
Apple로 계속하기 최근 로그인
Naver로 시작하기

Case — Naver

카카오톡으로 시작하기
Google로 시작하기
Apple로 시작하기
Naver로 계속하기 최근 로그인
Exception Case Test

Interactive Case Demo — 각 케이스 버튼 클릭 시 위 폰 목업에서 시뮬레이션됩니다

← 이전 화면: HOM-005 다음 화면: LOG-002 →