Compare commits
4 commits
main
...
forge/BAIS
| Author | SHA1 | Date | |
|---|---|---|---|
| 516f8c6bc6 | |||
| 880ec07e89 | |||
| 18aa94fe55 | |||
| 2de28a7112 |
4 changed files with 72 additions and 0 deletions
3
.forge/BAIS-SPRING-ANA-001-attempt-1.md
Normal file
3
.forge/BAIS-SPRING-ANA-001-attempt-1.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# BAIS-SPRING-ANA-001-attempt-1
|
||||
|
||||
Forge 이슈 작업 브랜치 `forge/BAIS-SPRING-ANA-001-attempt-1`.
|
||||
21
docs/business_rules.md
Normal file
21
docs/business_rules.md
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
# BAIS 업무 규칙
|
||||
|
||||
## 계정 관련 규칙
|
||||
1. 모든 계정은 고유한 ID를 가져야 한다.
|
||||
2. 계정 생성 시 이메일 주소는 유효해야 한다.
|
||||
|
||||
## 인증 관련 규칙
|
||||
1. 사용자 인증은 두 단계로 진행되어야 한다.
|
||||
2. 비밀번호는 최소 8자 이상이어야 하며, 대문자, 소문자, 숫자, 특수문자를 포함해야 한다.
|
||||
|
||||
## 권한 부여 관련 규칙
|
||||
1. 사용자 역할에 따라 접근 권한이 달라져야 한다.
|
||||
2. 관리자 권한은 특정 사용자에게만 부여되어야 한다.
|
||||
|
||||
## 카드 관련 규칙
|
||||
1. 모든 카드 정보는 암호화되어 저장되어야 한다.
|
||||
2. 카드 유효기간은 현재 날짜 이후여야 한다.
|
||||
|
||||
## 배치 관련 규칙
|
||||
1. 배치 작업은 주기적으로 실행되어야 하며, 실패 시 알림을 보내야 한다.
|
||||
2. 배치 작업의 로그는 최소 30일간 보관해야 한다.
|
||||
12
src/main/java/com/example/bais/InvariantRules.java
Normal file
12
src/main/java/com/example/bais/InvariantRules.java
Normal file
|
|
@ -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일간 보관해야 한다.";
|
||||
|
||||
// 추가적인 불변식 메서드 및 로직을 여기에 추가할 수 있습니다.
|
||||
}
|
||||
36
src/test/java/com/example/bais/InvariantRulesTest.java
Normal file
36
src/test/java/com/example/bais/InvariantRulesTest.java
Normal file
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue