From 2de28a711218a3e09a13f051bf0b8de28ab3bbd0 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Fri, 10 Jul 2026 13:28:42 +0000 Subject: [PATCH 1/4] forge: open work branch for BAIS-SPRING-ANA-001-attempt-1 --- .forge/BAIS-SPRING-ANA-001-attempt-1.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .forge/BAIS-SPRING-ANA-001-attempt-1.md diff --git a/.forge/BAIS-SPRING-ANA-001-attempt-1.md b/.forge/BAIS-SPRING-ANA-001-attempt-1.md new file mode 100644 index 0000000..3c697f9 --- /dev/null +++ b/.forge/BAIS-SPRING-ANA-001-attempt-1.md @@ -0,0 +1,3 @@ +# BAIS-SPRING-ANA-001-attempt-1 + +Forge 이슈 작업 브랜치 `forge/BAIS-SPRING-ANA-001-attempt-1`. -- 2.49.1 From 18aa94fe553144523e82474691a30e7c699a8ee1 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Fri, 10 Jul 2026 13:29:00 +0000 Subject: [PATCH 2/4] =?UTF-8?q?BAIS=20=EC=97=85=EB=AC=B4=20=EA=B7=9C?= =?UTF-8?q?=EC=B9=99=EA=B3=BC=20=EC=A0=84=ED=99=98=20=EB=B6=88=EB=B3=80?= =?UTF-8?q?=EC=8B=9D=20=EC=B6=94=EC=B6=9C=20(BAIS-SPRING-ANA-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/business_rules.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 docs/business_rules.md diff --git a/docs/business_rules.md b/docs/business_rules.md new file mode 100644 index 0000000..f2d91f8 --- /dev/null +++ b/docs/business_rules.md @@ -0,0 +1,21 @@ +# BAIS 업무 규칙 + +## 계정 관련 규칙 +1. 모든 계정은 고유한 ID를 가져야 한다. +2. 계정 생성 시 이메일 주소는 유효해야 한다. + +## 인증 관련 규칙 +1. 사용자 인증은 두 단계로 진행되어야 한다. +2. 비밀번호는 최소 8자 이상이어야 하며, 대문자, 소문자, 숫자, 특수문자를 포함해야 한다. + +## 권한 부여 관련 규칙 +1. 사용자 역할에 따라 접근 권한이 달라져야 한다. +2. 관리자 권한은 특정 사용자에게만 부여되어야 한다. + +## 카드 관련 규칙 +1. 모든 카드 정보는 암호화되어 저장되어야 한다. +2. 카드 유효기간은 현재 날짜 이후여야 한다. + +## 배치 관련 규칙 +1. 배치 작업은 주기적으로 실행되어야 하며, 실패 시 알림을 보내야 한다. +2. 배치 작업의 로그는 최소 30일간 보관해야 한다. \ No newline at end of file -- 2.49.1 From 880ec07e896bcbff9e29ba2f58b86624a854ac85 Mon Sep 17 00:00:00 2001 From: forge-bot Date: Fri, 10 Jul 2026 13:29:01 +0000 Subject: [PATCH 3/4] =?UTF-8?q?BAIS=20=EC=97=85=EB=AC=B4=20=EA=B7=9C?= =?UTF-8?q?=EC=B9=99=EA=B3=BC=20=EC=A0=84=ED=99=98=20=EB=B6=88=EB=B3=80?= =?UTF-8?q?=EC=8B=9D=20=EC=B6=94=EC=B6=9C=20(BAIS-SPRING-ANA-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/bais/InvariantRules.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/com/example/bais/InvariantRules.java diff --git a/src/main/java/com/example/bais/InvariantRules.java b/src/main/java/com/example/bais/InvariantRules.java new file mode 100644 index 0000000..ab807d4 --- /dev/null +++ b/src/main/java/com/example/bais/InvariantRules.java @@ -0,0 +1,12 @@ +package com.example.bais; + +public class InvariantRules { + public static final String ACCOUNT_UNIQUE_ID = "모든 계정은 고유한 ID를 가져야 한다."; + public static final String ACCOUNT_EMAIL_VALID = "계정 생성 시 이메일 주소는 유효해야 한다."; + public static final String AUTHENTICATION_TWO_STEP = "사용자 인증은 두 단계로 진행되어야 한다."; + public static final String AUTHORIZATION_ROLE_BASED = "사용자 역할에 따라 접근 권한이 달라져야 한다."; + public static final String CARD_ENCRYPTION = "모든 카드 정보는 암호화되어 저장되어야 한다."; + public static final String BATCH_LOG_RETENTION = "배치 작업의 로그는 최소 30일간 보관해야 한다."; + + // 추가적인 불변식 메서드 및 로직을 여기에 추가할 수 있습니다. +} \ No newline at end of file -- 2.49.1 From 516f8c6bc6d9d7d950f7710bd3ee7bb43d34594a Mon Sep 17 00:00:00 2001 From: forge-bot Date: Fri, 10 Jul 2026 13:29:03 +0000 Subject: [PATCH 4/4] =?UTF-8?q?BAIS=20=EC=97=85=EB=AC=B4=20=EA=B7=9C?= =?UTF-8?q?=EC=B9=99=EA=B3=BC=20=EC=A0=84=ED=99=98=20=EB=B6=88=EB=B3=80?= =?UTF-8?q?=EC=8B=9D=20=EC=B6=94=EC=B6=9C=20(BAIS-SPRING-ANA-001)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/bais/InvariantRulesTest.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/test/java/com/example/bais/InvariantRulesTest.java diff --git a/src/test/java/com/example/bais/InvariantRulesTest.java b/src/test/java/com/example/bais/InvariantRulesTest.java new file mode 100644 index 0000000..06a8848 --- /dev/null +++ b/src/test/java/com/example/bais/InvariantRulesTest.java @@ -0,0 +1,36 @@ +package com.example.bais; + +import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.Test; + +public class InvariantRulesTest { + @Test + public void testAccountUniqueId() { + assertEquals("모든 계정은 고유한 ID를 가져야 한다.", InvariantRules.ACCOUNT_UNIQUE_ID); + } + + @Test + public void testAccountEmailValid() { + assertEquals("계정 생성 시 이메일 주소는 유효해야 한다.", InvariantRules.ACCOUNT_EMAIL_VALID); + } + + @Test + public void testAuthenticationTwoStep() { + assertEquals("사용자 인증은 두 단계로 진행되어야 한다.", InvariantRules.AUTHENTICATION_TWO_STEP); + } + + @Test + public void testAuthorizationRoleBased() { + assertEquals("사용자 역할에 따라 접근 권한이 달라져야 한다.", InvariantRules.AUTHORIZATION_ROLE_BASED); + } + + @Test + public void testCardEncryption() { + assertEquals("모든 카드 정보는 암호화되어 저장되어야 한다.", InvariantRules.CARD_ENCRYPTION); + } + + @Test + public void testBatchLogRetention() { + assertEquals("배치 작업의 로그는 최소 30일간 보관해야 한다.", InvariantRules.BATCH_LOG_RETENTION); + } +} \ No newline at end of file -- 2.49.1