diff --git a/src/components/progress-bar/ProgressBar.test.tsx b/src/components/progress-bar/ProgressBar.test.tsx
index 67aa3033..fb7d0079 100644
--- a/src/components/progress-bar/ProgressBar.test.tsx
+++ b/src/components/progress-bar/ProgressBar.test.tsx
@@ -16,4 +16,13 @@ describe('ProgressBar', () => {
const fillBar = screen.getByRole('progressbar').children[0];
expect(fillBar).toHaveStyle({ width: '25%' });
});
+
+ it('percentage가 100을 초과할 경우 100%로 제한되는지 확인', () => {
+ render();
+ const progressbar = screen.getByRole('progressbar');
+ const fillBar = progressbar.children[0];
+
+ expect(progressbar).toHaveAttribute('aria-valuenow', '100');
+ expect(fillBar).toHaveStyle({ width: '100%' });
+ });
});
diff --git a/src/components/progress-bar/ProgressBar.tsx b/src/components/progress-bar/ProgressBar.tsx
index 8041f380..3457c53f 100644
--- a/src/components/progress-bar/ProgressBar.tsx
+++ b/src/components/progress-bar/ProgressBar.tsx
@@ -16,10 +16,12 @@ function ProgressBar({
const fillColor =
color || (isPast ? 'bg-gray-dark-02' : 'bg-green-normal-01');
+ const limitedPercentage = Math.min(100, Math.max(0, percentage));
+
return (