Docs: UBGitea introduction deck (pptx, pdf, html slides, screenshots)

Agent: main (opus)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
최민영 2026-10-23 14:11:47 +09:00
parent d9450eedb6
commit f5fd8925fc
107 changed files with 630 additions and 0 deletions

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,238 @@
# UBGitea 소개 PPT 생성 (PowerPoint COM). 사용: powershell -File docs\presentation\build-pptx.ps1
# 좌표는 HTML 슬라이드와 같은 1920x1080 px 기준, 0.5배 해서 pt로 넣는다.
$ErrorActionPreference = 'Stop'
Add-Type -AssemblyName System.Drawing
$root = Split-Path -Parent $MyInvocation.MyCommand.Path
$img = Join-Path $root 'images'
$out = Join-Path $root 'UBGitea_소개.pptx'
$pdf = Join-Path $root 'UBGitea_소개.pdf'
$KR = '맑은 고딕'; $MONO = 'Consolas'
$BR = [string][char]11
function C($hex) { $r=[Convert]::ToInt32($hex.Substring(0,2),16); $g=[Convert]::ToInt32($hex.Substring(2,2),16); $b=[Convert]::ToInt32($hex.Substring(4,2),16); return $r + $g*256 + $b*65536 }
function P($v) { return [double]$v * 0.5 }
function T($s, $x, $y, $w, $h, $text, $size, $color, $bold=$false, $font=$KR, $align=1, $spacing=1.15) {
$b = $s.Shapes.AddTextbox(1, (P $x), (P $y), (P $w), (P $h))
$tf = $b.TextFrame; $tf.WordWrap = -1; $tf.AutoSize = 0
$tf.MarginLeft = 0; $tf.MarginRight = 0; $tf.MarginTop = 0; $tf.MarginBottom = 0
$r = $tf.TextRange; $r.Text = $text
$r.Font.Name = $font; $r.Font.NameFarEast = $KR; $r.Font.Size = (P $size)
$r.Font.Color.RGB = (C $color); $r.Font.Bold = $(if ($bold) { -1 } else { 0 })
$r.ParagraphFormat.Alignment = $align
$r.ParagraphFormat.LineRuleWithin = -1; $r.ParagraphFormat.SpaceWithin = $spacing
return $b
}
function B($s, $x, $y, $w, $h, $items, $size=26, $color='3E5068') {
$b = T $s $x $y $w $h ($items -join "`r") $size $color $false $KR 1 1.3
$pf = $b.TextFrame.TextRange.ParagraphFormat
$pf.Bullet.Visible = -1; $pf.Bullet.Character = 8226
$pf.LineRuleAfter = 0; $pf.SpaceAfter = 6
$b.TextFrame.Ruler.Levels.Item(1).FirstMargin = 0
$b.TextFrame.Ruler.Levels.Item(1).LeftMargin = 14
return $b
}
function Box($s, $x, $y, $w, $h, $fill, $line=$null, $round=$false) {
$shape = $s.Shapes.AddShape($(if ($round) { 5 } else { 1 }), (P $x), (P $y), (P $w), (P $h))
if ($round) { $shape.Adjustments.Item(1) = 0.06 }
$shape.Fill.ForeColor.RGB = (C $fill)
if ($line) { $shape.Line.ForeColor.RGB = (C $line); $shape.Line.Weight = 1 } else { $shape.Line.Visible = 0 }
$shape.Shadow.Visible = 0
return $shape
}
function I($s, $name, $x, $y, $w, $h, $border='C9DCF2') {
$path = Join-Path $img "$name.png"
$im = [System.Drawing.Image]::FromFile($path); $iw = $im.Width; $ih = $im.Height; $im.Dispose()
$k = [Math]::Min($w / $iw, $h / $ih); $pw = $iw * $k; $ph = $ih * $k
$px = $x + ($w - $pw) / 2; $py = $y + ($h - $ph) / 2
$p = $s.Shapes.AddPicture($path, 0, -1, (P $px), (P $py), (P $pw), (P $ph))
if ($border) { $p.Line.Visible = -1; $p.Line.ForeColor.RGB = (C $border); $p.Line.Weight = 1 }
return $p
}
function NewSlide($bg, $notes) {
$s = $pres.Slides.Add($pres.Slides.Count + 1, 12)
$s.FollowMasterBackground = 0; $s.Background.Fill.Solid(); $s.Background.Fill.ForeColor.RGB = (C $bg)
$s.NotesPage.Shapes.Placeholders.Item(2).TextFrame.TextRange.Text = $notes
return $s
}
function Eyebrow($s, $x, $y, $text, $color='1565C0', $size=26) { T $s $x $y 900 40 $text $size $color $true $MONO | Out-Null }
function H2($s, $x, $y, $w, $h, $text, $size=56, $color='10243F') { T $s $x $y $w $h $text $size $color $true $KR 1 1.1 | Out-Null }
# 왼쪽 글 + 오른쪽 폰 화면 3장
function ThreeShots($bg, $eyebrow, $title, $bullets, $shots, $notes) {
$s = NewSlide $bg $notes
Eyebrow $s 128 250 $eyebrow
H2 $s 128 296 440 160 $title
B $s 128 480 440 420 $bullets | Out-Null
$x = 648
foreach ($sh in $shots) {
I $s $sh[0] $x 130 360 760 | Out-Null
T $s $x 906 360 40 $sh[1] 24 '3E5068' $false $KR 2 | Out-Null
$x += 392
}
}
# 왼쪽 글 + 오른쪽 펼친 화면 1장
function WideShot($bg, $eyebrow, $title, $bullets, $shot, $notes) {
$s = NewSlide $bg $notes
Eyebrow $s 128 280 $eyebrow
H2 $s 128 326 760 160 $title
B $s 128 500 760 420 $bullets | Out-Null
I $s $shot 968 130 824 821 | Out-Null
}
$app = New-Object -ComObject PowerPoint.Application
$pres = $app.Presentations.Add(0)
$pres.PageSetup.SlideWidth = 960; $pres.PageSetup.SlideHeight = 540
# 1 표지
$s = NewSlide 'F4F8FD' '회사 Gitea 서버 조회용 안드로이드 앱. 순서: 개발 배경 → 주요 화면 → 기술 · 개발 방식 → 현황.'
Box $s 1180 0 740 1080 'DCEAF9' | Out-Null
I $s 'logo' 128 250 300 90 $null | Out-Null
$s.Shapes.Item($s.Shapes.Count).Left = (P 128)
Eyebrow $s 128 384 'UBGitea · Android · v0.2.6' '1565C0' 28
T $s 128 444 960 230 ("사내 Gitea" + $BR + "모바일 앱") 96 '10243F' $true $KR 1 1.0 | Out-Null
T $s 128 700 900 60 '팀 활동 · 코드 · 변경 내용 모바일 조회용 사내 Git 앱' 32 '3E5068' | Out-Null
T $s 128 790 900 40 '2026년 10월 · 사내 공유용' 24 '5A6B80' | Out-Null
I $s 'home' 1340 96 420 887 'B9D3F0' | Out-Null
# 2 개발 배경
$s = NewSlide '10243F' '웹 기능 전체 이식 아님. 1순위 팀 활동 확인, 2순위 코드 · 변경 내용 조회. 소스 수정 · 병합 · 삭제 기능 의도적 제외.'
Eyebrow $s 128 128 '개발 배경' '7DB9F5'
H2 $s 128 176 1500 180 ("목적: 이석 중에도" + $BR + "팀 작업 현황 모바일 확인") 64 'F4F8FD'
$cards = @(
@('팀 활동 우선', 'Push 이력 · 열린 PR · 이슈 · 내 확인 필요 항목 첫 화면 표시', '4FA3F7'),
@('필요 부분만 코드 조회', '목차 · 클래스 · 함수 단위 이동, 두 파일 좌우 비교. 팀 주력 언어 C# · C++ 기준', '4FA3F7'),
@('읽기 중심 · 보안', '회사 Gitea 계정 로그인. 쓰기 기능은 저장소 즐겨찾기(별표)만 허용', 'F0A04B'))
$x = 128
foreach ($c in $cards) {
Box $s $x 620 533 332 '1A3558' | Out-Null
Box $s $x 620 533 6 $c[2] | Out-Null
T $s ($x+40) 666 453 50 $c[0] 34 'F4F8FD' $true | Out-Null
T $s ($x+40) 736 453 190 $c[1] 26 'D3E2F4' $false $KR 1 1.4 | Out-Null
$x += 565
}
# 3 탭 구성
$s = NewSlide 'F4F8FD' '우측: Z Fold 펼친 화면. 넓은 화면에서 탭은 좌측 레일로 이동, 홈은 팀 활동 · 타임라인 2단 표시.'
Eyebrow $s 128 220 '화면 구성'
H2 $s 128 266 760 80 '탭 4개 구성'
$rows = @(@('홈','오늘의 팀 활동과 타임라인, 내 확인이 필요한 항목'), @('저장소','전체·즐겨찾기 저장소, 브랜치, 파일, 커밋'), @('작업','팀 전체·리뷰 요청·나에게 할당된 이슈와 PR'), @('알림','Gitea 알림과 즐겨찾기 저장소의 Push 알림'))
$y = 380
foreach ($r in $rows) {
Box $s 128 $y 760 2 'C9DCF2' | Out-Null
T $s 128 ($y+26) 150 50 $r[0] 34 '1565C0' $true | Out-Null
T $s 306 ($y+32) 582 80 $r[1] 26 '3E5068' | Out-Null
$y += 104
}
Box $s 128 $y 760 2 'C9DCF2' | Out-Null
T $s 128 ($y+36) 760 40 '접은 화면: 하단 탭 / 펼친 화면 · 가로 화면: 좌측 레일' 24 '5A6B80' | Out-Null
I $s 'home_wide' 968 130 824 821 | Out-Null
# 4 홈
$s = NewSlide 'FBFCFE' '상단 숫자: 당일 Push, 열린 PR, 신규 이슈. 즐겨찾기 선택 시 별표 저장소 활동만 표시. 하단 타임라인: Push · PR · 이슈 시간순.'
Eyebrow $s 128 250 '홈 · 팀 활동'
H2 $s 128 296 1178 160 ("첫 화면:" + $BR + "당일 팀 활동 요약")
$stats = @(@('Push','당일 커밋'), @('PR','열린 요청'), @('이슈','신규 이슈'))
$x = 128
foreach ($st in $stats) {
Box $s $x 486 368 150 'E6F0FB' $null $true | Out-Null
T $s ($x+28) 508 320 60 $st[0] 44 '1565C0' $true | Out-Null
T $s ($x+28) 582 320 40 $st[1] 24 '3E5068' | Out-Null
$x += 392
}
B $s 128 676 1178 240 @('조회 범위: 내 피드 · 즐겨찾기 · 조직별 (선택 범위 저장)', '활동 저장소별 최근 브랜치 · 활동량 그래프', '타임라인: 작성자 · 브랜치 · Push 내용') 28 | Out-Null
I $s 'home' 1402 128 390 824 | Out-Null
# 5 저장소
ThreeShots 'F4F8FD' '저장소' ("저장소 조회 ·" + $BR + "즐겨찾기") @('조직별 저장소 목록', '별표 저장소: 즐겨찾기 탭 · 홈에 표시', '브랜치 · 태그 목록', '저장소 목록 기기 저장, 오프라인 조회') @(@('repos','전체 저장소'), @('favorites','즐겨찾기'), @('branch','브랜치 · 태그')) '계정 접근 가능 저장소 조직별 표시. 별표는 Gitea 별표와 동기화. 앱 내 유일한 쓰기 작업.'
# 6 코드 보기
ThreeShots 'F4F8FD' '코드 보기' ("함수 단위" + $BR + "빠른 탐색") @('Visual Studio 기본 색상 기준 C# · C++ 강조', '.h 선언 / .cpp 구현 탭 전환', '목차에서 함수 선택 후 이동', '폴더 구조 · 클래스 · 함수 옆 창 표시') @(@('code','코드 · 선언/구현 탭'), @('outline','목차'), @('side_pane','폴더 · 클래스 옆 창')) '파일 전체 열람보다 함수 탐색 위주 설계. 하단 도구 막대: 검색, 목차, 줄바꿈, 글자 크기, 복사, 탭 저장, 비교.'
# 7 펼친 화면 코드
WideShot 'FBFCFE' '펼친 화면 · 코드' ("펼친 화면:" + $BR + "구조 · 코드 동시 표시") @('Z Fold 펼침 · 가로 화면 대응', '좌측: 폴더 구조 · 클래스 · 함수 목록 / 우측: 코드', '옆 창 파일 선택 시 즉시 열림', '클래스 · 함수 선택 시 해당 줄 이동', '두 칸 위아래 순서 변경') 'code_wide' '펼친 화면에서 옆 창 상시 표시. 예시: C# 파일.'
# 8 파일 비교
WideShot 'F4F8FD' '파일 비교' ("저장소 간" + $BR + "동일 파일 비교") @('다른 저장소 · 브랜치 파일 간 좌우 비교', '예시: OC6 PRI 저장소(main) ↔ OC6 저장소(SubMain)', '차이 개수 표시, 이전 · 다음 차이 이동', '추가 · 삭제 · 변경 줄 색상 구분') 'compare_repos' '동일 장비 PRI 저장소 · 현장 저장소의 WeldingRecipeManager.cs 비교. 차이 5곳 중 첫 번째 위치. 사용 순서: 파일에서 비교 → 왼쪽 배치 → 다른 파일에서 비교 실행.'
# 9 커밋
ThreeShots 'FBFCFE' '커밋' ("커밋별 변경 내용" + $BR + "줄 단위 확인") @('브랜치별 커밋 목록', '커밋 선택: 변경 파일 · 추가/삭제 줄 수', '파일 선택: 변경 내용 표시') @(@('commits','커밋 목록'), @('commit_detail','바뀐 파일'), @('diff','변경 내용')) '이동 중 팀원 커밋 즉시 확인. 접은 화면: 상하 배치 / 펼친 화면: 좌우 배치.'
# 10 펼친 화면 변경 내용
WideShot 'F4F8FD' '펼친 화면 · 변경 내용' ("펼친 화면:" + $BR + "변경 전 · 후 좌우 비교") @('PC 비교 도구 방식: 좌측 변경 전 / 우측 변경 후', '삭제: 빨강 / 추가: 초록', '코드 화면과 동일한 문법 강조') 'diff_wide' '코드 리뷰 요청 시 PC 없이 변경 내용 확인 가능.'
# 11 작업 · 알림
ThreeShots 'FBFCFE' '작업 · 알림' ("이슈 · PR ·" + $BR + "알림 통합 조회") @('필터: 팀 전체 · 리뷰 요청 · 나에게 할당 · 내가 작성', '상태 배지: 열림 · 병합됨 · 닫힘', '이슈 · PR 본문 및 댓글 조회', 'Gitea 알림: 읽지 않음 · 전체') @(@('work','작업 탭'), @('issue_detail','이슈 상세'), @('notifications','알림')) '리뷰 요청 · 할당 업무 일괄 확인. 읽기 전용으로 댓글 작성 · 병합은 PC Gitea에서 처리.'
# 12 파일 보기
ThreeShots 'F4F8FD' '파일 보기' ("코드 외" + $BR + "파일 조회") @('이미지', 'CSV 표', 'PDF 문서', '별도 앱 없이 앱 내 열람') @(@('image','이미지'), @('csv','CSV 표'), @('pdf','PDF')) '장비 문서 · 설정 표 등 코드와 함께 관리하는 파일 모바일 확인.'
# 13 설정
$s = NewSlide 'FBFCFE' '신규 버전은 팀 Gitea 릴리스 기준. 업데이트 알림 시 설정에서 바로 설치.'
Eyebrow $s 128 320 '설정'
H2 $s 128 366 772 80 '설정 항목'
B $s 128 470 772 420 @('테마: 시스템 · 라이트 · 다크', '코드 자동 줄바꿈, 글자 크기 11–16sp', '즐겨찾기 저장소 Push 알림', '인증 실패 시 재시도', '팀 Gitea 기반 앱 업데이트') | Out-Null
I $s 'settings' 980 104 390 824 | Out-Null
T $s 980 940 390 40 '설정' 24 '3E5068' $false $KR 2 | Out-Null
I $s 'dark_home' 1402 104 390 824 | Out-Null
T $s 1402 940 390 40 '다크 테마' 24 '3E5068' $false $KR 2 | Out-Null
# 14 기술 · 보안
$s = NewSlide 'F4F8FD' '로그인은 브라우저에서 Gitea 직접 인증, 앱은 발급 토큰만 보관. 저장소 목록 기기 저장으로 오프라인 조회 가능.'
Eyebrow $s 128 128 '기술 · 보안'
H2 $s 128 176 1664 80 '회사 계정 인증 · 읽기 중심 설계'
$rows = @(@('로그인','팀 Gitea OAuth 2.0 + PKCE. 앱 내 비밀번호 입력 없음'), @('토큰 보관','Android Keystore 암호화, 기기 내 저장'), @('권한','읽기 전용. 쓰기는 즐겨찾기 별표만'), @('만든 기술','Kotlin · Jetpack Compose · Material 3'), @('지원 기기','Android 9 (API 28) 이상, 폴더블 · 가로 화면 대응'), @('배포','팀 Gitea 릴리스 배포, 앱 내 업데이트'))
$y = 310
foreach ($r in $rows) {
Box $s 128 $y 1664 2 'C9DCF2' | Out-Null
T $s 128 ($y+24) 320 50 $r[0] 30 '1565C0' $true | Out-Null
$f = $(if ($r[0] -eq '만든 기술') { $MONO } else { $KR })
T $s 488 ($y+28) 1304 50 $r[1] 26 '3E5068' $false $f | Out-Null
$y += 96
}
Box $s 128 $y 1664 2 'C9DCF2' | Out-Null
# 15 개발 방식
$s = NewSlide '10243F' '작업별 완료 기준 파일 선작성 → AI 에이전트 구현 → 별도 세션 리뷰. 전 과정 docs/development-log.md 기록.'
Eyebrow $s 128 128 '만든 방법' 'F0A04B'
H2 $s 128 176 1664 80 'AI 에이전트 활용 개발 · 7주' 56 'FFFFFF'
$stats = @(@('77','작업 (TASK-001 → 077)'), @('7주','2026-08-25 ~ 10-12'), @('104','개발 기록 항목'), @('0.2.6','현재 버전'))
$x = 128
foreach ($st in $stats) {
Box $s $x 320 392 190 '1A3558' $null $true | Out-Null
T $s ($x+32) 346 340 90 $st[0] 60 'F0A04B' $true $MONO | Out-Null
T $s ($x+32) 448 340 40 $st[1] 24 'C9DCF2' | Out-Null
$x += 424
}
$steps = @(@('1','작업 정의','완료 기준 선작성'), @('2','AI 구현','Codex · Claude'), @('3','별도 세션 리뷰','구현과 별도 에이전트'), @('4','빌드 · 테스트','실기기 확인'), @('5','배포','팀 Gitea 릴리스'))
$x = 128
foreach ($st in $steps) {
Box $s $x 600 320 4 'F0A04B' | Out-Null
T $s $x 626 320 34 $st[0] 22 'F0A04B' $false $MONO | Out-Null
T $s $x 670 320 40 $st[1] 26 'FFFFFF' $true | Out-Null
T $s $x 716 320 36 $st[2] 22 'C9DCF2' | Out-Null
$x += 336
}
# 16 현황
$s = NewSlide 'F4F8FD' '개발 완료, 현재 버전 0.2.6. 설치 파일 팀 Gitea 릴리스 제공, 이후 신규 버전 앱 내 알림.'
Eyebrow $s 128 370 '현황'
H2 $s 128 418 640 170 ("개발 완료 ·" + $BR + "사내 배포") 64
T $s 128 610 640 50 '현재 버전 v0.2.6' 28 '3E5068' | Out-Null
$items = @(@('설치','팀 Gitea 릴리스 설치 파일'), @('로그인','회사 Gitea 계정'), @('업데이트','신규 버전 앱 내 알림'))
$y = 330
foreach ($it in $items) {
Box $s 864 $y 928 116 'FFFFFF' 'C9DCF2' $true | Out-Null
T $s 896 ($y+36) 160 50 $it[0] 30 '1565C0' $true | Out-Null
T $s 1084 ($y+36) 680 50 $it[1] 30 '10243F' | Out-Null
$y += 140
}
$pres.SaveAs($out, 24)
$pres.SaveAs($pdf, 32)
$n = $pres.Slides.Count
$pres.Close(); $app.Quit()
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($app) | Out-Null
"slides=$n"
"pptx=$out"
"pdf=$pdf"

View File

@ -0,0 +1 @@
{"v":4,"createdOnFiles":{"v":1,"at":"2026-10-23T02:50:00Z"},"lists":"css","title":"Ubisam MobileGit 소개","cover":"cover","order":["cover","why","tabs","home","repos","code","code-wide","compare","commits","diff-wide","work","viewers","settings","tech","process","next"],"sections":{"s1":{"description":"앱이 무엇이고 왜 만들었는지","start":"cover"},"s2":{"description":"화면별 기능 둘러보기","start":"tabs"},"s3":{"description":"기술 구성과 개발 과정","start":"tech"},"s4":{"description":"앞으로의 계획","start":"next"}},"faces":{"noto-sans-kr":{"family":"Noto Sans KR","href":"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700;900&display=swap"},"jetbrains-mono":{"family":"JetBrains Mono","href":"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap"}},"designSystems":[]}

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

View File

@ -0,0 +1,15 @@
<section id="code-wide" data-transition="fade" style="background:#FBFCFE;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:760px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">펼친 화면 · 코드</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">펼친 화면:<br>구조 · 코드 동시 표시</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>Z Fold 펼침 · 가로 화면 대응</li>
<li>좌측: 폴더 구조 · 클래스 · 함수 목록 / 우측: 코드</li>
<li>옆 창 파일 선택 시 즉시 열림</li>
<li>클래스 · 함수 선택 시 해당 줄 이동</li>
<li>두 칸 위아래 순서 변경</li>
</ul>
</div>
<img src="/_blob/730a729a1b7d696585858ac1735d4be5" alt="펼친 화면의 코드 보기" style="width:824px;height:821px;object-fit:contain;border-radius:20px;border:2px solid #C9DCF2">
<aside>펼친 화면에서 옆 창 상시 표시. 예시: C# 파일.</aside>
</section>

View File

@ -0,0 +1,27 @@
<section id="code" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:440px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">코드 보기</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">함수 단위<br>빠른 탐색</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>Visual Studio 기본 색상 기준 C# · C++ 강조</li>
<li>.h 선언 / .cpp 구현 탭 전환</li>
<li>목차에서 함수 선택 후 이동</li>
<li>폴더 구조 · 클래스 · 함수 옆 창 표시</li>
</ul>
</div>
<div style="display:flex;gap:32px">
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/36e901e0ae3129fb5576b8ebdb0b1b2c" alt="코드 화면" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">코드 · 선언/구현 탭</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/e474acfca2d99125d40ac0edb31a50ed" alt="목차" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">목차</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/48ba2939bf36bad0d28163717701ff65" alt="옆 창" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">폴더 · 클래스 옆 창</p>
</div>
</div>
<aside>파일 전체 열람보다 함수 탐색 위주 설계. 하단 도구 막대: 검색, 목차, 줄바꿈, 글자 크기, 복사, 탭 저장, 비교.</aside>
</section>

View File

@ -0,0 +1,26 @@
<section id="commits" data-transition="fade" style="background:#FBFCFE;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:440px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">커밋</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">커밋별 변경 내용<br>줄 단위 확인</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>브랜치별 커밋 목록</li>
<li>커밋 선택: 변경 파일 · 추가/삭제 줄 수</li>
<li>파일 선택: 변경 내용 표시</li>
</ul>
</div>
<div style="display:flex;gap:32px">
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/d8a779bf6dab6d3ae1123e1bc3ed1b81" alt="커밋 목록" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">커밋 목록</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/278d8060b16432b58b4b2fb42f75750e" alt="커밋 상세" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">바뀐 파일</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/67e2f7b85af42a0a066dd0f36744ff67" alt="변경 내용" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">변경 내용</p>
</div>
</div>
<aside>이동 중 팀원 커밋 즉시 확인. 접은 화면: 상하 배치 / 펼친 화면: 좌우 배치.</aside>
</section>

View File

@ -0,0 +1,14 @@
<section id="compare" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:760px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">파일 비교</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">저장소 간<br>동일 파일 비교</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>다른 저장소 · 브랜치 파일 간 좌우 비교</li>
<li>예시: OC6 PRI 저장소(main) ↔ OC6 저장소(SubMain)</li>
<li>차이 개수 표시, 이전 · 다음 차이 이동</li>
<li>추가 · 삭제 · 변경 줄 색상 구분</li>
</ul>
</div>
<img src="/_blob/60f40e9bfa3e5bc9ca7b0cc2049e3d64" alt="두 저장소의 같은 파일 비교" style="width:824px;height:821px;object-fit:contain;border-radius:20px;border:2px solid #C9DCF2">
<aside>동일 장비 PRI 저장소 · 현장 저장소의 WeldingRecipeManager.cs 비교. 차이 5곳 중 첫 번째 위치. 사용 순서: 파일에서 비교 → 왼쪽 배치 → 다른 파일에서 비교 실행.</aside>
</section>

View File

@ -0,0 +1,10 @@
<section id="cover" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;flex-direction:column;justify-content:center;gap:40px">
<div style="position:absolute;left:1180px;top:0px;width:740px;height:1080px;background:#DCEAF9"></div>
<img src="/_blob/6665b44659b7d10b3b3a59de844442d7" alt="UbiSam 로고" style="width:300px;height:90px;object-fit:contain;object-position:left center">
<p style="font-family:'JetBrains Mono', monospace;font-size:28px;color:#1565C0;font-weight:600">UBGitea · Android · v0.2.6</p>
<h1 style="font-size:96px;font-weight:900;line-height:1.1;width:960px">사내 Gitea<br>모바일 앱</h1>
<p style="font-size:32px;line-height:1.5;color:#3E5068;width:900px">팀 활동 · 코드 · 변경 내용 모바일 조회용 사내 Git 앱</p>
<p style="font-size:24px;color:#5A6B80">2026년 10월 · 사내 공유용</p>
<img src="/_blob/e19d53017df2baea0d1cb8eceff2d401" alt="앱 홈 화면" style="position:absolute;left:1340px;top:96px;width:420px;height:887px;object-fit:contain;border-radius:28px;border:2px solid #B9D3F0">
<aside>회사 Gitea 서버 조회용 안드로이드 앱. 순서: 개발 배경 → 주요 화면 → 기술 · 개발 방식 → 현황.</aside>
</section>

View File

@ -0,0 +1,13 @@
<section id="diff-wide" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:760px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">펼친 화면 · 변경 내용</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">펼친 화면:<br>변경 전 · 후 좌우 비교</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>PC 비교 도구 방식: 좌측 변경 전 / 우측 변경 후</li>
<li>삭제: 빨강 / 추가: 초록</li>
<li>코드 화면과 동일한 문법 강조</li>
</ul>
</div>
<img src="/_blob/c92d360ee4ff5d506d68b95062203bdc" alt="좌우 비교 변경 내용" style="width:824px;height:821px;object-fit:contain;border-radius:20px;border:2px solid #C9DCF2">
<aside>코드 리뷰 요청 시 PC 없이 변경 내용 확인 가능.</aside>
</section>

View File

@ -0,0 +1,29 @@
<section id="home" data-transition="fade" style="background:#FBFCFE;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:96px;align-items:center">
<div style="flex:1;display:flex;flex-direction:column;gap:36px">
<div style="display:flex;flex-direction:column;gap:16px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">홈 · 팀 활동</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">첫 화면:<br>당일 팀 활동 요약</h2>
</div>
<div style="display:flex;gap:24px">
<div style="flex:1;display:flex;flex-direction:column;gap:8px;background:#E6F0FB;padding:28px;border-radius:16px">
<p style="font-size:44px;font-weight:900;color:#1565C0">Push</p>
<p style="font-size:24px;color:#3E5068">당일 커밋</p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;background:#E6F0FB;padding:28px;border-radius:16px">
<p style="font-size:44px;font-weight:900;color:#1565C0">PR</p>
<p style="font-size:24px;color:#3E5068">열린 요청</p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;background:#E6F0FB;padding:28px;border-radius:16px">
<p style="font-size:44px;font-weight:900;color:#1565C0">이슈</p>
<p style="font-size:24px;color:#3E5068">신규 이슈</p>
</div>
</div>
<ul style="font-size:28px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:8px">
<li>조회 범위: 내 피드 · 즐겨찾기 · 조직별 (선택 범위 저장)</li>
<li>활동 저장소별 최근 브랜치 · 활동량 그래프</li>
<li>타임라인: 작성자 · 브랜치 · Push 내용</li>
</ul>
</div>
<img src="/_blob/e19d53017df2baea0d1cb8eceff2d401" alt="홈 화면" style="width:390px;height:824px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<aside>상단 숫자: 당일 Push, 열린 PR, 신규 이슈. 즐겨찾기 선택 시 별표 저장소 활동만 표시. 하단 타임라인: Push · PR · 이슈 시간순.</aside>
</section>

View File

@ -0,0 +1,22 @@
<section id="next" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:96px;align-items:center">
<div style="width:640px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">현황</p>
<h2 style="font-size:64px;font-weight:700;line-height:1.2">개발 완료 ·<br>사내 배포</h2>
<p style="font-size:28px;line-height:1.6;color:#3E5068">현재 버전 v0.2.6</p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:24px">
<div style="display:flex;gap:28px;align-items:baseline;background:#FFFFFF;padding:32px;border-radius:16px;border:2px solid #C9DCF2">
<p style="width:160px;font-size:30px;font-weight:700;color:#1565C0">설치</p>
<p style="flex:1;font-size:30px;line-height:1.5">팀 Gitea 릴리스 설치 파일</p>
</div>
<div style="display:flex;gap:28px;align-items:baseline;background:#FFFFFF;padding:32px;border-radius:16px;border:2px solid #C9DCF2">
<p style="width:160px;font-size:30px;font-weight:700;color:#1565C0">로그인</p>
<p style="flex:1;font-size:30px;line-height:1.5">회사 Gitea 계정</p>
</div>
<div style="display:flex;gap:28px;align-items:baseline;background:#FFFFFF;padding:32px;border-radius:16px;border:2px solid #C9DCF2">
<p style="width:160px;font-size:30px;font-weight:700;color:#1565C0">업데이트</p>
<p style="flex:1;font-size:30px;line-height:1.5">신규 버전 앱 내 알림</p>
</div>
</div>
<aside>개발 완료, 현재 버전 0.2.6. 설치 파일 팀 Gitea 릴리스 제공, 이후 신규 버전 앱 내 알림.</aside>
</section>

View File

@ -0,0 +1,47 @@
<section id="process" data-transition="fade" style="background:#10243F;color:#FFFFFF;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;flex-direction:column;gap:64px">
<div style="display:flex;flex-direction:column;gap:16px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#F0A04B;font-weight:600">만든 방법</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">AI 에이전트 활용 개발 · 7주</h2>
</div>
<div style="display:flex;gap:32px">
<div style="flex:1;display:flex;flex-direction:column;gap:8px;background:#1A3558;padding:32px;border-radius:16px">
<p style="font-size:60px;font-weight:900;color:#F0A04B;font-family:'JetBrains Mono', monospace">77</p>
<p style="font-size:24px;color:#C9DCF2">작업 (TASK-001 → 077)</p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;background:#1A3558;padding:32px;border-radius:16px">
<p style="font-size:60px;font-weight:900;color:#F0A04B;font-family:'JetBrains Mono', monospace">7주</p>
<p style="font-size:24px;color:#C9DCF2">2026-08-25 ~ 10-12</p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;background:#1A3558;padding:32px;border-radius:16px">
<p style="font-size:60px;font-weight:900;color:#F0A04B;font-family:'JetBrains Mono', monospace">104</p>
<p style="font-size:24px;color:#C9DCF2">개발 기록 항목</p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;background:#1A3558;padding:32px;border-radius:16px">
<p style="font-size:60px;font-weight:900;color:#F0A04B;font-family:'JetBrains Mono', monospace">0.2.6</p>
<p style="font-size:24px;color:#C9DCF2">현재 버전</p>
</div>
</div>
<div style="display:flex;gap:16px;align-items:stretch">
<div style="flex:1;display:flex;flex-direction:column;gap:8px;border-top:4px solid #F0A04B;padding-top:20px">
<p style="font-size:22px;color:#F0A04B;font-family:'JetBrains Mono', monospace">1</p>
<p style="font-size:26px;line-height:1.4">작업 정의<br><span style="color:#C9DCF2;font-size:22px">완료 기준 선작성</span></p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;border-top:4px solid #F0A04B;padding-top:20px">
<p style="font-size:22px;color:#F0A04B;font-family:'JetBrains Mono', monospace">2</p>
<p style="font-size:26px;line-height:1.4">AI 구현<br><span style="color:#C9DCF2;font-size:22px">Codex · Claude</span></p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;border-top:4px solid #F0A04B;padding-top:20px">
<p style="font-size:22px;color:#F0A04B;font-family:'JetBrains Mono', monospace">3</p>
<p style="font-size:26px;line-height:1.4">별도 세션 리뷰<br><span style="color:#C9DCF2;font-size:22px">구현과 별도 에이전트</span></p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;border-top:4px solid #F0A04B;padding-top:20px">
<p style="font-size:22px;color:#F0A04B;font-family:'JetBrains Mono', monospace">4</p>
<p style="font-size:26px;line-height:1.4">빌드 · 테스트<br><span style="color:#C9DCF2;font-size:22px">실기기 확인</span></p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:8px;border-top:4px solid #F0A04B;padding-top:20px">
<p style="font-size:22px;color:#F0A04B;font-family:'JetBrains Mono', monospace">5</p>
<p style="font-size:26px;line-height:1.4">배포<br><span style="color:#C9DCF2;font-size:22px">팀 Gitea 릴리스</span></p>
</div>
</div>
<aside>작업별 완료 기준 파일 선작성 → AI 에이전트 구현 → 별도 세션 리뷰. 전 과정 docs/development-log.md 기록.</aside>
</section>

View File

@ -0,0 +1,27 @@
<section id="repos" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:440px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">저장소</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">저장소 조회 ·<br>즐겨찾기</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>조직별 저장소 목록</li>
<li>별표 저장소: 즐겨찾기 탭 · 홈에 표시</li>
<li>브랜치 · 태그 목록</li>
<li>저장소 목록 기기 저장, 오프라인 조회</li>
</ul>
</div>
<div style="display:flex;gap:32px">
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/9f59221b23d9481c5cbc3f734326f7f5" alt="전체 저장소" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">전체 저장소</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/5ce04b02c5053aa58526f1091955b52f" alt="즐겨찾기" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">즐겨찾기</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/8cbaadf4ad677fee0fd7721ca822f591" alt="브랜치와 태그" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">브랜치 · 태그</p>
</div>
</div>
<aside>계정 접근 가능 저장소 조직별 표시. 별표는 Gitea 별표와 동기화. 앱 내 유일한 쓰기 작업.</aside>
</section>

View File

@ -0,0 +1,24 @@
<section id="settings" data-transition="fade" style="background:#FBFCFE;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="flex:1;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">설정</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">설정 항목</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>테마: 시스템 · 라이트 · 다크</li>
<li>코드 자동 줄바꿈, 글자 크기 11–16sp</li>
<li>즐겨찾기 저장소 Push 알림</li>
<li>인증 실패 시 재시도</li>
<li>팀 Gitea 기반 앱 업데이트</li>
</ul>
</div>
<div style="display:flex;gap:32px">
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/74781dcac02de740a49dde1af8afec1f" alt="설정 화면" style="width:390px;height:824px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">설정</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/22009263fd699070732a7f0137d27e74" alt="다크 테마 홈" style="width:390px;height:824px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">다크 테마</p>
</div>
</div>
<aside>신규 버전은 팀 Gitea 릴리스 기준. 업데이트 알림 시 설정에서 바로 설치.</aside>
</section>

View File

@ -0,0 +1,29 @@
<section id="tabs" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:760px;display:flex;flex-direction:column;gap:36px">
<div style="display:flex;flex-direction:column;gap:16px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">화면 구성</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">탭 4개 구성</h2>
</div>
<div style="display:flex;flex-direction:column">
<div style="display:flex;gap:28px;align-items:baseline;padding:24px 0px;border-top:2px solid #C9DCF2">
<h3 style="width:150px;font-size:34px;font-weight:700;color:#1565C0">홈</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">오늘의 팀 활동과 타임라인, 내 확인이 필요한 항목</p>
</div>
<div style="display:flex;gap:28px;align-items:baseline;padding:24px 0px;border-top:2px solid #C9DCF2">
<h3 style="width:150px;font-size:34px;font-weight:700;color:#1565C0">저장소</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">전체·즐겨찾기 저장소, 브랜치, 파일, 커밋</p>
</div>
<div style="display:flex;gap:28px;align-items:baseline;padding:24px 0px;border-top:2px solid #C9DCF2">
<h3 style="width:150px;font-size:34px;font-weight:700;color:#1565C0">작업</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">팀 전체·리뷰 요청·나에게 할당된 이슈와 PR</p>
</div>
<div style="display:flex;gap:28px;align-items:baseline;padding:24px 0px;border-top:2px solid #C9DCF2;border-bottom:2px solid #C9DCF2">
<h3 style="width:150px;font-size:34px;font-weight:700;color:#1565C0">알림</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">Gitea 알림과 즐겨찾기 저장소의 Push 알림</p>
</div>
</div>
<p style="font-size:24px;color:#5A6B80;line-height:1.5">접은 화면: 하단 탭 / 펼친 화면 · 가로 화면: 좌측 레일</p>
</div>
<img src="/_blob/d4ad73add3b6d1f7dbd3d60396bd2f9d" alt="펼친 화면의 홈" style="width:824px;height:821px;object-fit:contain;border-radius:20px;border:2px solid #C9DCF2">
<aside>우측: Z Fold 펼친 화면. 넓은 화면에서 탭은 좌측 레일로 이동, 홈은 팀 활동 · 타임라인 2단 표시.</aside>
</section>

View File

@ -0,0 +1,33 @@
<section id="tech" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;flex-direction:column;gap:56px">
<div style="display:flex;flex-direction:column;gap:16px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">기술 · 보안</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">회사 계정 인증 · 읽기 중심 설계</h2>
</div>
<div style="display:flex;flex-direction:column">
<div style="display:flex;gap:40px;align-items:baseline;padding:22px 0px;border-top:2px solid #C9DCF2">
<h3 style="width:320px;font-size:30px;font-weight:700;color:#1565C0">로그인</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">팀 Gitea OAuth 2.0 + PKCE. 앱 내 비밀번호 입력 없음</p>
</div>
<div style="display:flex;gap:40px;align-items:baseline;padding:22px 0px;border-top:2px solid #C9DCF2">
<h3 style="width:320px;font-size:30px;font-weight:700;color:#1565C0">토큰 보관</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">Android Keystore 암호화, 기기 내 저장</p>
</div>
<div style="display:flex;gap:40px;align-items:baseline;padding:22px 0px;border-top:2px solid #C9DCF2">
<h3 style="width:320px;font-size:30px;font-weight:700;color:#1565C0">권한</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">읽기 전용. 쓰기는 즐겨찾기 별표만</p>
</div>
<div style="display:flex;gap:40px;align-items:baseline;padding:22px 0px;border-top:2px solid #C9DCF2">
<h3 style="width:320px;font-size:30px;font-weight:700;color:#1565C0">만든 기술</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068;font-family:'JetBrains Mono', monospace">Kotlin · Jetpack Compose · Material 3</p>
</div>
<div style="display:flex;gap:40px;align-items:baseline;padding:22px 0px;border-top:2px solid #C9DCF2">
<h3 style="width:320px;font-size:30px;font-weight:700;color:#1565C0">지원 기기</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">Android 9 (API 28) 이상, 폴더블 · 가로 화면 대응</p>
</div>
<div style="display:flex;gap:40px;align-items:baseline;padding:22px 0px;border-top:2px solid #C9DCF2;border-bottom:2px solid #C9DCF2">
<h3 style="width:320px;font-size:30px;font-weight:700;color:#1565C0">배포</h3>
<p style="flex:1;font-size:26px;line-height:1.5;color:#3E5068">팀 Gitea 릴리스 배포, 앱 내 업데이트</p>
</div>
</div>
<aside>로그인은 브라우저에서 Gitea 직접 인증, 앱은 발급 토큰만 보관. 저장소 목록 기기 저장으로 오프라인 조회 가능.</aside>
</section>

View File

@ -0,0 +1,27 @@
<section id="viewers" data-transition="fade" style="background:#F4F8FD;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:440px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">파일 보기</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">코드 외<br>파일 조회</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>이미지</li>
<li>CSV 표</li>
<li>PDF 문서</li>
<li>별도 앱 없이 앱 내 열람</li>
</ul>
</div>
<div style="display:flex;gap:32px">
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/0fdd9c24c72a39f64405c82d9a7c4126" alt="이미지 보기" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">이미지</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/9b05403447553673b039d49ae9837361" alt="CSV 표" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">CSV 표</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/c8c20d082f3668bd6102db67421d713f" alt="PDF" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">PDF</p>
</div>
</div>
<aside>장비 문서 · 설정 표 등 코드와 함께 관리하는 파일 모바일 확인.</aside>
</section>

View File

@ -0,0 +1,21 @@
<section id="why" data-transition="fade" style="background:#10243F;color:#F4F8FD;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;flex-direction:column;justify-content:space-between;gap:56px">
<div style="display:flex;flex-direction:column;gap:24px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#7DB9F5;font-weight:600">개발 배경</p>
<h2 style="font-size:64px;font-weight:700;line-height:1.25;width:1500px">목적: 이석 중에도<br>팀 작업 현황 모바일 확인</h2>
</div>
<div style="display:flex;gap:32px">
<div style="flex:1;display:flex;flex-direction:column;gap:16px;background:#1A3558;padding:40px;border-radius:20px;border-top:6px solid #4FA3F7">
<h3 style="font-size:34px;font-weight:700">팀 활동 우선</h3>
<p style="font-size:26px;line-height:1.55;color:#D3E2F4">Push 이력 · 열린 PR · 이슈 · 내 확인 필요 항목 첫 화면 표시</p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:16px;background:#1A3558;padding:40px;border-radius:20px;border-top:6px solid #4FA3F7">
<h3 style="font-size:34px;font-weight:700">필요 부분만 코드 조회</h3>
<p style="font-size:26px;line-height:1.55;color:#D3E2F4">목차 · 클래스 · 함수 단위 이동, 두 파일 좌우 비교. 팀 주력 언어 C# · C++ 기준</p>
</div>
<div style="flex:1;display:flex;flex-direction:column;gap:16px;background:#1A3558;padding:40px;border-radius:20px;border-top:6px solid #F0A04B">
<h3 style="font-size:34px;font-weight:700">읽기 중심 · 보안</h3>
<p style="font-size:26px;line-height:1.55;color:#D3E2F4">회사 Gitea 계정 로그인. 쓰기 기능은 저장소 즐겨찾기(별표)만 허용</p>
</div>
</div>
<aside>웹 기능 전체 이식 아님. 1순위 팀 활동 확인, 2순위 코드 · 변경 내용 조회. 소스 수정 · 병합 · 삭제 기능 의도적 제외.</aside>
</section>

View File

@ -0,0 +1,27 @@
<section id="work" data-transition="fade" style="background:#FBFCFE;color:#10243F;font-family:'Noto Sans KR', sans-serif;padding:128px;display:flex;gap:80px;align-items:center">
<div style="width:440px;display:flex;flex-direction:column;gap:32px">
<p style="font-family:'JetBrains Mono', monospace;font-size:26px;color:#1565C0;font-weight:600">작업 · 알림</p>
<h2 style="font-size:56px;font-weight:700;line-height:1.2">이슈 · PR ·<br>알림 통합 조회</h2>
<ul style="font-size:26px;line-height:1.6;color:#3E5068;display:flex;flex-direction:column;gap:10px">
<li>필터: 팀 전체 · 리뷰 요청 · 나에게 할당 · 내가 작성</li>
<li>상태 배지: 열림 · 병합됨 · 닫힘</li>
<li>이슈 · PR 본문 및 댓글 조회</li>
<li>Gitea 알림: 읽지 않음 · 전체</li>
</ul>
</div>
<div style="display:flex;gap:32px">
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/ab43983052efe1ba2c69bc4b70bfe89d" alt="작업 탭" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">작업 탭</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/fc01e585cf25eabb24ee2ca34c9ceb2b" alt="이슈 상세" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">이슈 상세</p>
</div>
<div style="display:flex;flex-direction:column;gap:12px;align-items:center">
<img src="/_blob/b3fac3e715ab9747ecddcf26dbd36c65" alt="알림" style="width:360px;height:760px;object-fit:contain;border-radius:24px;border:2px solid #C9DCF2">
<p style="font-size:24px;color:#3E5068">알림</p>
</div>
</div>
<aside>리뷰 요청 · 할당 업무 일괄 확인. 읽기 전용으로 댓글 작성 · 병합은 PC Gitea에서 처리.</aside>
</section>

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

BIN
docs/screenshots/19_csv.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
docs/screenshots/20_pdf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 KiB

Some files were not shown because too many files have changed in this diff Show More