Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions docs/sessions/2026-04-12_1_plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# CI/CD 안정화 - tiggle, calynda, AIVA-SaaS
> 날짜: 2026-04-12 | 회차: 1 | 상태: 진행중

## 요청 내용
tiggle, calynda, aiav-bb(AIVA-SaaS) 세 프로젝트의 GitHub Actions CI가 자주 실패하는 원인 분석 및 안정화

## 영향 범위 분석

### Tiggle (72% CI 실패율)
- **근본 원인**: `TypeTag.tsx` 파일 누락 → 모든 FE 빌드 실패
- **부가 원인**: `DetailPage/index.tsx` prettier 포맷팅 오류, `NotFoundPage.tsx` import 순서 오류
- 변경 파일:
- `frontend/tiggle/src/components/atoms/TypeTag/TypeTag.tsx` (복구)
- `frontend/tiggle/src/pages/DetailPage/index.tsx` (prettier 수정)
- `frontend/tiggle/src/pages/NotFoundPage.tsx` (import order 수정)

### Calynda (CI 통과 중, 개선 필요)
- **이슈**: FE(Flutter) 테스트가 CI에 없음. 15개 테스트 파일 존재하지만 미실행
- 변경 파일:
- `be/.github/workflows/ci.yml` (frontend-test job 추가)
- `be/.github/workflows/deploy-nas.yml` (test-frontend gate job 추가)

### AIVA-SaaS (현재 안정 - 최근 5회 연속 성공)
- 과거 이슈: Flyway 마이그레이션 충돌, BLoC 상태관리 버그 (해결됨)
- 현재 안정 상태 → 즉시 수정 불필요

## 작업 계획
| # | 작업 | 프로젝트 | 파일 | 난이도 |
|---|------|---------|------|--------|
| 1 | TypeTag.tsx 복구 | Tiggle | atoms/TypeTag/TypeTag.tsx | S |
| 2 | prettier/import 오류 수정 | Tiggle | DetailPage, NotFoundPage | S |
| 3 | FE 빌드 + BE 테스트 로컬 검증 | Tiggle | - | S |
| 4 | Flutter 테스트 CI 추가 | Calynda | ci.yml, deploy-nas.yml | M |
| 5 | AIVA-SaaS 현황 분석 | AIVA-SaaS | - | S |

## 성능 설계
Comment on lines +27 to +36
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Markdownlint MD058 경고를 해소해주세요.

Line 28의 테이블이 빈 줄로 둘러싸여 있지 않아 blanks-around-tables 경고가 발생합니다. 문서 lint 안정화를 위해 테이블 전/후에 빈 줄을 넣는 것이 좋습니다.

수정 예시
 ## 작업 계획
+
 | # | 작업 | 프로젝트 | 파일 | 난이도 |
 |---|------|---------|------|--------|
 | 1 | TypeTag.tsx 복구 | Tiggle | atoms/TypeTag/TypeTag.tsx | S |
 | 2 | prettier/import 오류 수정 | Tiggle | DetailPage, NotFoundPage | S |
 | 3 | FE 빌드 + BE 테스트 로컬 검증 | Tiggle | - | S |
 | 4 | Flutter 테스트 CI 추가 | Calynda | ci.yml, deploy-nas.yml | M |
 | 5 | AIVA-SaaS 현황 분석 | AIVA-SaaS | - | S |
+
 ## 성능 설계
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## 작업 계획
| # | 작업 | 프로젝트 | 파일 | 난이도 |
|---|------|---------|------|--------|
| 1 | TypeTag.tsx 복구 | Tiggle | atoms/TypeTag/TypeTag.tsx | S |
| 2 | prettier/import 오류 수정 | Tiggle | DetailPage, NotFoundPage | S |
| 3 | FE 빌드 + BE 테스트 로컬 검증 | Tiggle | - | S |
| 4 | Flutter 테스트 CI 추가 | Calynda | ci.yml, deploy-nas.yml | M |
| 5 | AIVA-SaaS 현황 분석 | AIVA-SaaS | - | S |
## 성능 설계
## 작업 계획
| # | 작업 | 프로젝트 | 파일 | 난이도 |
|---|------|---------|------|--------|
| 1 | TypeTag.tsx 복구 | Tiggle | atoms/TypeTag/TypeTag.tsx | S |
| 2 | prettier/import 오류 수정 | Tiggle | DetailPage, NotFoundPage | S |
| 3 | FE 빌드 + BE 테스트 로컬 검증 | Tiggle | - | S |
| 4 | Flutter 테스트 CI 추가 | Calynda | ci.yml, deploy-nas.yml | M |
| 5 | AIVA-SaaS 현황 분석 | AIVA-SaaS | - | S |
## 성능 설계
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)

[warning] 28-28: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/sessions/2026-04-12_1_plan.md` around lines 27 - 36, Add a blank line
immediately before and after the markdown table under the "## 작업 계획" heading to
satisfy markdownlint MD058 (i.e., ensure the table is surrounded by empty
lines); update the area between the "## 작업 계획" heading and the following "## 성능
설계" section so the table has one empty line above and one empty line below, and
remove any extra or stray blank lines around the table to keep spacing
consistent.

- CI 실행 시간 영향: Flutter 테스트 추가로 Calynda CI ~2-3분 증가 (허용 범위)
- Calynda deploy에서 test-frontend이 test-backend과 병렬 실행되므로 총 시간 증가 최소화

## 검증 계획
- [x] Tiggle BE 테스트 통과 (`./gradlew :tiggle:test`)
- [x] Tiggle FE 빌드 통과 (`npm run build`)
- [x] Calynda CI YAML 문법 검증
- [ ] Tiggle 커밋 후 CI 통과 확인 (GitHub Actions)
- [ ] Calynda 커밋 후 CI 통과 확인 (GitHub Actions)
33 changes: 33 additions & 0 deletions frontend/tiggle/src/components/atoms/TypeTag/TypeTag.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { HTMLAttributes } from "react";

import cn from "classnames";

import { TypeTagStyle } from "@/components/atoms/TypeTag/TypeTagStyle";
import { Tx, TxType } from "@/types";

interface TypeTagProps extends HTMLAttributes<HTMLDivElement> {
size: "md" | "lg";
txType: TxType;
}

export default function TypeTag({
size,
txType,
className,
...props
}: TypeTagProps) {
return (
<TypeTagStyle
className={cn("type-tag", txType, className, size)}
{...props}
>
<p className="label">
{txType === Tx.OUTCOME
? "지출"
: txType === Tx.REFUND
? "환불"
: "수익"}
</p>
</TypeTagStyle>
);
}
9 changes: 8 additions & 1 deletion frontend/tiggle/src/pages/DetailPage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,14 @@ const DetailPage = () => {
if (!transactionData?.data) {
return (
<DetailPageStyle className="page-container">
<div style={{ display: "flex", justifyContent: "center", alignItems: "center", minHeight: "50vh" }}>
<div
style={{
display: "flex",
justifyContent: "center",
alignItems: "center",
minHeight: "50vh",
}}
>
불러오는 중...
</div>
</DetailPageStyle>
Expand Down
1 change: 1 addition & 0 deletions frontend/tiggle/src/pages/NotFoundPage.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { useNavigate } from "react-router-dom";

import styled from "styled-components";

const NotFoundPageStyle = styled.div`
Expand Down
Loading