diff --git a/.forge/BAIS-E2E-ANA-001-attempt-1.md b/.forge/BAIS-E2E-ANA-001-attempt-1.md new file mode 100644 index 0000000..e7f321b --- /dev/null +++ b/.forge/BAIS-E2E-ANA-001-attempt-1.md @@ -0,0 +1,3 @@ +# BAIS-E2E-ANA-001-attempt-1 + +Forge 이슈 작업 브랜치 `forge/BAIS-E2E-ANA-001-attempt-1`. diff --git a/.forge/BAIS-E2E-MIG-001-attempt-1.md b/.forge/BAIS-E2E-MIG-001-attempt-1.md deleted file mode 100644 index 0384ad0..0000000 --- a/.forge/BAIS-E2E-MIG-001-attempt-1.md +++ /dev/null @@ -1,3 +0,0 @@ -# BAIS-E2E-MIG-001-attempt-1 - -Forge 이슈 작업 브랜치 `forge/BAIS-E2E-MIG-001-attempt-1`. diff --git a/.forge/BAIS-NATIVE-1783698057-attempt-1.md b/.forge/BAIS-NATIVE-1783698057-attempt-1.md new file mode 100644 index 0000000..ff1dd68 --- /dev/null +++ b/.forge/BAIS-NATIVE-1783698057-attempt-1.md @@ -0,0 +1,3 @@ +# BAIS-NATIVE-1783698057-attempt-1 + +Forge 이슈 작업 브랜치 `forge/BAIS-NATIVE-1783698057-attempt-1`. diff --git a/.forge/BAIS-SOURCE-1783702539-attempt-1.md b/.forge/BAIS-SOURCE-1783702539-attempt-1.md new file mode 100644 index 0000000..b15de76 --- /dev/null +++ b/.forge/BAIS-SOURCE-1783702539-attempt-1.md @@ -0,0 +1,3 @@ +# BAIS-SOURCE-1783702539-attempt-1 + +Forge 이슈 작업 브랜치 `forge/BAIS-SOURCE-1783702539-attempt-1`. diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index b7d7378..6622513 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -1,5 +1,5 @@ name: ci -on: [push, pull_request] +on: [pull_request] jobs: test: runs-on: ubuntu-latest diff --git a/docs/bais/source-inventory.md b/docs/bais/source-inventory.md new file mode 100644 index 0000000..c791407 --- /dev/null +++ b/docs/bais/source-inventory.md @@ -0,0 +1,27 @@ +# BAIS 소스 인벤토리 분석 + +## 대표적인 C 모듈 + +1. **Module A** + - 설명: 이 모듈은 데이터 처리 기능을 제공합니다. + - 주요 함수: `processData()`, `initialize()`, `cleanup()` + +2. **Module B** + - 설명: 이 모듈은 사용자 인터페이스를 관리합니다. + - 주요 함수: `renderUI()`, `handleInput()`, `updateDisplay()` + +3. **Module C** + - 설명: 이 모듈은 네트워크 통신을 처리합니다. + - 주요 함수: `sendData()`, `receiveData()`, `connectToServer()` + +## 변환 위험 + +- **Module A**: 데이터 처리 로직이 복잡하여 변환 시 데이터 손실 위험이 존재. +- **Module B**: UI 요소가 다양한 플랫폼에서 다르게 동작할 수 있어 호환성 문제 발생 가능. +- **Module C**: 네트워크 프로토콜 변경 시 통신 오류 발생 가능성. + +## 신뢰도 격차 + +- **Module A**: 테스트 커버리지가 낮아 신뢰도 부족. +- **Module B**: 사용자 피드백 부족으로 UI의 직관성에 대한 신뢰도 문제. +- **Module C**: 외부 라이브러리에 의존하여 안정성에 대한 신뢰도 격차 존재. \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3e45ad2..38f992a 100644 --- a/pom.xml +++ b/pom.xml @@ -1,14 +1,18 @@ - - 4.0.0 - com.example - bais-authorization-service + bais-gate-e2e 1.0-SNAPSHOT jar + + org.springframework.boot + spring-boot-starter-parent + 3.2.0 + + + 17 @@ -31,11 +35,6 @@ org.springframework.boot spring-boot-maven-plugin - - org.apache.maven.plugins - maven-surefire-plugin - 3.0.0-M5 - - \ No newline at end of file + diff --git a/src/main/java/com/example/authorization/AuthorizationService.java b/src/main/java/com/example/authorization/AuthorizationService.java deleted file mode 100644 index a88d2e5..0000000 --- a/src/main/java/com/example/authorization/AuthorizationService.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.authorization; - -import org.springframework.stereotype.Service; - -@Service -public class AuthorizationService { - public boolean hasAccess(String userRole, String resource) { - // 간단한 권한 확인 로직 - return "ADMIN".equals(userRole) || "USER".equals(userRole) && "RESOURCE".equals(resource); - } -} \ No newline at end of file diff --git a/src/main/java/com/example/baisgate/BaisGateApplication.java b/src/main/java/com/example/baisgate/BaisGateApplication.java new file mode 100644 index 0000000..451a245 --- /dev/null +++ b/src/main/java/com/example/baisgate/BaisGateApplication.java @@ -0,0 +1,11 @@ +package com.example.baisgate; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class BaisGateApplication { + public static void main(String[] args) { + SpringApplication.run(BaisGateApplication.class, args); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/baisgate/PaymentService.java b/src/main/java/com/example/baisgate/PaymentService.java new file mode 100644 index 0000000..489d52a --- /dev/null +++ b/src/main/java/com/example/baisgate/PaymentService.java @@ -0,0 +1,10 @@ +package com.example.baisgate; + +public class PaymentService { + public String approve(String transactionId) { + if (transactionId == null || transactionId.trim().isEmpty()) { + throw new IllegalArgumentException("Transaction ID cannot be blank"); + } + return "APPROVED:" + transactionId; + } +} \ No newline at end of file diff --git a/src/test/java/com/example/authorization/AuthorizationServiceTest.java b/src/test/java/com/example/authorization/AuthorizationServiceTest.java deleted file mode 100644 index cad95c4..0000000 --- a/src/test/java/com/example/authorization/AuthorizationServiceTest.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.example.authorization; - -import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - -class AuthorizationServiceTest { - - private final AuthorizationService authorizationService = new AuthorizationService(); - - @Test - void testHasAccess() { - assertTrue(authorizationService.hasAccess("ADMIN", "RESOURCE")); - assertTrue(authorizationService.hasAccess("USER", "RESOURCE")); - assertFalse(authorizationService.hasAccess("USER", "OTHER_RESOURCE")); - assertFalse(authorizationService.hasAccess("GUEST", "RESOURCE")); - } -} \ No newline at end of file diff --git a/src/test/java/com/example/baisgate/BaisGateApplicationTests.java b/src/test/java/com/example/baisgate/BaisGateApplicationTests.java new file mode 100644 index 0000000..1a8f4c5 --- /dev/null +++ b/src/test/java/com/example/baisgate/BaisGateApplicationTests.java @@ -0,0 +1,12 @@ +package com.example.baisgate; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class BaisGateApplicationTests { + + @Test + void contextLoads() { + } +} \ No newline at end of file diff --git a/src/test/java/com/example/baisgate/PaymentServiceTest.java b/src/test/java/com/example/baisgate/PaymentServiceTest.java new file mode 100644 index 0000000..1caa7a9 --- /dev/null +++ b/src/test/java/com/example/baisgate/PaymentServiceTest.java @@ -0,0 +1,32 @@ +package com.example.baisgate; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +class PaymentServiceTest { + + @Test + void testApprove_WithValidTransactionId_ReturnsApproved() { + PaymentService paymentService = new PaymentService(); + String result = paymentService.approve("12345"); + assertEquals("APPROVED:12345", result); + } + + @Test + void testApprove_WithBlankTransactionId_ThrowsIllegalArgumentException() { + PaymentService paymentService = new PaymentService(); + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + paymentService.approve(""); + }); + assertEquals("Transaction ID cannot be blank", exception.getMessage()); + } + + @Test + void testApprove_WithNullTransactionId_ThrowsIllegalArgumentException() { + PaymentService paymentService = new PaymentService(); + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + paymentService.approve(null); + }); + assertEquals("Transaction ID cannot be blank", exception.getMessage()); + } +} \ No newline at end of file