## 프로젝트 개요
모바일 앱에서 사용자 지출 내역을 추적하고 통계를 제공하는 실용적인 앱입니다. 입력/출력이 직관적인 인터페이스와 데이터 저장 기능을 포함하여 실제 프로젝트에 바로 활용 가능한 구조입니다.
## 주요 기능
- 지출 항목 추가 및 삭제
- 카테고리별 통계 표시
- 로컬 스토리지 데이터 저장
- 입력 검증 및 오류 처리
- 편집 기능 포함
## 사용 방법
1. Ionic CLI로 프로젝트 생성 후 코드 복사
2. `ionic serve` 명령어로 브라우저에서 실행
3. 앱을 안드로이드/아이오스 장치에 배포하여 테스트
4. 데이터는 로컬 스토리지에 자동 저장됨
## 확장 가능성
- 지출 항목 분류 시각화(차트 추가)
- 월별 통계 기능 구현
- 사용자 계정 관리 시스템 연동
- 알림 기능 추가
⚡ 지출 관리 앱 개발 예제
Ionic 예제
중급
난이도
예제
타입
10/30
등록일
지출 관리 앱 개발 예제
중급태그
코드 예제
// app.component.ts
import { Component } from '@angular/core';
import { IonicModule } from '@ionic/angular';
import { Storage } from '@ionic/storage-angular';
@Component({
selector: 'app-root',
templateUrl: 'app.html'
})
export class AppComponent {
expenses = [];
newAmount = '';
newCategory = '';
errorMessage = '';
constructor(private storage: Storage) {
this.initStorage();
}
async initStorage() {
await this.storage.create();
const savedExpenses = await this.storage.get('expenses') || [];
this.expenses = savedExpenses;
}
addExpense() {
if (!this.newAmount || !this.newCategory) {
this.errorMessage = '금액과 카테고리를 입력해주세요';
return;
}
const amount = parseFloat(this.newAmount);
if (isNaN(amount) || amount <= 0) {
this.errorMessage = '유효한 금액을 입력해주세요';
return;
}
this.expenses.push({
id: Date.now(),
amount: amount,
category: this.newCategory,
date: new Date().toISOString()
});
this.storage.set('expenses', this.expenses);
this.resetForm();
}
deleteExpense(id: number) {
this.expenses = this.exp3enses.filter(exp => exp.id !== id);
this.storage.set('expenses', this.expenses);
}
editExpense(index: number) {
// 편집 기능 구현 시 사용할 메서드
}
resetForm() {
this.newAmount = '';
this.newCategory = '';
this.errorMessage = '';
}
}
// app.html
<ion-app>
<ion-header>
<ion-toolbar>
<ion-title>지출 관리 앱</ion-title>
</ion-toolbar>
</ion-header>
<ion-content class="ion-padding">
<ion-card>
<ion-item>
<ion-label>금액</ion-label>
<ion-input type="number" [(ngModel)]="newAmount" placeholder="0.00"></ion-input>
</ion-item>
<ion-item>
<ion-label>카테고리</ion-label>
<ion-input [(ngModel)]="newCategory" placeholder="식비,교통비 등"></ion-input>
</ion-item>
<ion-button (click)="addExpense()">지출 추가</ion-button>
<p *ngIf="errorMessage" color="danger">{{ errorMessage }}</p>
</ion-card>
<ion-grid>
<ion-row *ngFor="let expense of expenses">
<ion-col> {{ expense.category }} </ion-col>
<ion-col> {{ expense.amount | currency:"KRW":0 }} </ion-col>
<ion-col>
<ion-button (click)="deleteExpense(expense.id)">삭제</ion-button>
</ion-col>
</ion-row>
</ion-grid>
</ion-content>
</ion-app>
등록일: 2025년 10월 30일 02:37
언어 정보
언어
Ionic
카테고리
Mobile
인기도
#32
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요