Files
invyone/_pipeline_backup/runs/2026-03-28_pipe-20260328041806-pbum/rounds/round-1.md
T

20 KiB

Round 1

  • 시간: 2026. 3. 28. 오후 1:38:47

backend (성공)

에이전트 응답

7개 파일 모두 완료했습니다.

**적용된 변경 사항:**

| 파일 | 변경 내용 |
|------|-----------|
| ShippingPlanMapper.xml | `ON true` → `ON TRUE`, SELECT/FROM/WHERE/ORDER BY 사이 빈 줄 추가 |
| ShippingOrderMapper.xml | `json_agg` → `JSON_AGG`, `json_build_object` → `JSON_BUILD_OBJECT`, `ON true` → `ON TRUE`, 빈 줄 추가 |
| BookingMapper.xml | SELECT/FROM/WHERE/ORDER BY/SET/WHERE 사이 빈 줄 추가 |
| DriverMapper.xml | SELECT/FROM/WHERE/SET 사이 빈 줄 추가 |
| VehicleMapper.xml | SELECT/FROM/WHERE/SET 사이 빈 줄 추가 |
| VehicleTripMapper.xml | 모든 쿼리의 SELECT/FROM/WHERE/GROUP BY/ORDER BY/SET 사이 빈 줄 추가 |
| YardLayoutMapper.xml | SELECT/FROM/WHERE/SET 사이 빈 줄 추가 |

backend (성공)

에이전트 응답

소문자 SQL 키워드 잔존 없음 확인. 변경 요약:

**AnalyticsReportMapper.xml:**
- 타입 키워드 대문자화: `::date::text` → `::DATE::TEXT`, `::text` → `::TEXT`, `::numeric` → `::NUMERIC`, `AS numeric` → `AS NUMERIC`
- 줄 띄움 적용: 서브쿼리 내 `FROM ... GROUP BY ...`, `FROM ... ORDER BY ...`, `FROM ... WHERE ...` → 각 절 별도 줄로 분리
- `SELECT DISTINCT ON (user_id) user_id, user_name FROM user_info` → FROM 줄 분리

**PackagingMapper.xml:**
- `SELECT * FROM xxx` → `SELECT *` / `FROM xxx` 줄 분리 (4곳)
- 서브쿼리 DELETE 내 `SELECT pkg_code FROM pkg_unit WHERE ...` → 각 절 별도 줄 분리

**DeliveryMapper.xml:** 이미 SQL 키워드 전부 대문자, 줄 구분 완료 → 수정 불필요

backend (성공)

에이전트 응답

4개 XML 파일 포맷팅 완료:

| 파일 | 변경 내용 |
|------|-----------|
| **TaxInvoiceMapper.xml** | 테이블/컬럼명 소문자→대문자 (`tax_invoice`→`TAX_INVOICE` 등), 인라인 `<if>` 14개 줄 분리 |
| **BomMapper.xml** | `updateBom` `<set>` 블록 인라인 `<if>` 7개 줄 분리 |
| **ProductionMapper.xml** | `updateProduction` `<set>` 블록 인라인 `<if>` 10개 줄 분리 |
| **SalesReportMapper.xml** | 테이블/컬럼명/alias 대문자化 (`SOM`, `SOD`, `CM`, `II`, `SALES_ORDER_MNG` 등), `CAST AS NUMERIC` 등 |

done_when 조건 충족: **SQL 전부 대문자 + 줄 띄움** ✓

backend (성공)

에이전트 응답

포맷팅 완료했습니다.

## 변경 사항 요약

**WorkHistoryMapper.xml:**
- `::date` → `::DATE`, `::integer` → `::INTEGER`
- `is_on_time = true` → `is_on_time = TRUE`
- SELECT/FROM/WHERE/ORDER BY/GROUP BY 사이 빈 줄 추가

**MoldMapper.xml:**
- SELECT/FROM/WHERE/ORDER BY 사이 빈 줄 추가
- SET/WHERE 사이 빈 줄 추가

**DesignMapper.xml:**
- `json_agg` → `JSON_AGG`, `json_build_object` → `JSON_BUILD_OBJECT`
- `'[]'::json` → `'[]'::JSON`
- SELECT/FROM/WHERE/ORDER BY 사이 빈 줄 추가, SET/WHERE 사이 빈 줄 추가

**CollectionMapper.xml:**
- `::jsonb` → `::JSONB` (INSERT/UPDATE 내 2곳)
- SELECT/FROM/WHERE/ORDER BY 사이 빈 줄 추가, SET/WHERE 사이 빈 줄 추가

**PopActionMapper.xml, PopProductionMapper.xml, DataMapper.xml:** SQL 없음 → 변경 불필요

backend (성공)

에이전트 응답

3개 파일 모두 포맷팅 완료했습니다.

**변경 사항 요약:**

**ScreenManagementMapper.xml** (816줄 → 완전 포맷팅)
- 모든 SQL 키워드 대문자 (SELECT, FROM, WHERE, AND, INSERT INTO, UPDATE, SET, DELETE, ORDER BY, LIMIT, OFFSET, ON CONFLICT, RETURNING, NOW(), COALESCE, JSONB_ARRAY_LENGTH, PG_ADVISORY_XACT_LOCK 등)
- 모든 테이블명/컬럼명/별칭 대문자 (SCREEN_DEFINITIONS, SD, SMA, SL, SLV 등)
- SELECT 컬럼 한 줄에 하나, 쉼표 앞에 배치
- INSERT 컬럼/VALUES 한 줄에 하나
- UPDATE SET 한 줄에 하나, 쉼표 앞에 배치
- ON CONFLICT DO UPDATE SET도 동일 규칙 적용
- MyBatis `<set>` 동적 블록: 컬럼명 대문자, 구조 유지
- 불변 요소 유지: `#{param}` camelCase, `test=""` 변수명, 문자열 리터럴(`'D'`, `'Y'`, `'public'`, `'component'`, `'기본 레이어'` 등), JSON key 경로(`->>'zone_id'`, `->'components'`)

**ScreenStandardMapper.xml** - 동일 규칙 적용 (WEB_TYPE_STANDARDS, BUTTON_ACTION_STANDARDS 등)

**ScreenFileMapper.xml** - 동일 규칙 적용 (ATTACH_FILE_INFO, OBJID, SAVED_FILE_NAME 등)

backend (성공)

에이전트 응답

완료 메시지 전송 완료.

backend (성공)

에이전트 응답

포맷팅 완료. 변경 내역 요약:

| 파일 | 변경 내용 |
|------|-----------|
| **DigitalTwinMapper.xml** | 테이블/컬럼/별칭 대문자, SELECT 컬럼 줄 분리, INSERT/UPDATE/DELETE 포맷팅, `false→FALSE` |
| **DashboardMapper.xml** | `SELECT * FROM`→줄 분리, INSERT 컬럼/VALUES 줄 분리, SET 줄 분리 |
| **ReportMapper.xml** | 전체 컬럼 대문자, SELECT 컬럼 하나씩 줄 분리, INSERT/UPDATE/DELETE 포맷팅 |
| **BarcodeLabelMapper.xml** | 테이블/컬럼 대문자, SELECT/INSERT/UPDATE/DELETE 전체 포맷팅 |
| **ExcelMappingMapper.xml** | 테이블/컬럼 대문자, `ON CONFLICT` 컬럼 대문자, SELECT 줄 분리 |
| **MapDataMapper.xml** | SQL 없음 — 변경 불필요 |
| **RiskAlertMapper.xml** | 이미 포맷팅 완료 — 변경 불필요 |

backend (성공)

에이전트 응답

Task 2 완료. 요약:

| 파일 | 주요 변경 |
|------|-----------|
| `AuditLogMapper.xml` | SAL/CI/U 별칭, `::TIMESTAMPTZ`, `::JSONB`, `::INT` |
| `RoleMapper.xml` | ASU/UI/AM/ASM/MI 별칭, `updateRoleGroup` inline `<if>` 확장 |
| `ApprovalMapper.xml` | R/D/L/T/PS/U1/U2 별칭, 3개 `<set>` 블록 확장, `DATERANGE()`, `INFORMATION_SCHEMA.COLUMNS`, `::JSONB/::TEXT`, `TRUE/FALSE` |

이전 세션에서 완료된 5개 + 이번 3개 = **총 8개 파일** 포맷팅 완료. PM 완료 메시지 전송됨.

코드 변경 (git diff)

Unstaged 변경

_pipeline/knowledge/failure-patterns.json          |   95 +-
 _pipeline/mailbox/mcp-backend.json                 |    2 +-
 _pipeline/pipeline-state.json                      |  501 +++-----
 .../heartbeat.json                                 |    2 +-
 .../2026-03-27_pipe-20260327153425-pn5v/metrics.md |   12 +-
 .../progress.md                                    |    8 +-
 .../resume-state.json                              |   44 +-
 .../resources/mapper/AnalyticsReportMapper.xml     |  111 +-
 .../src/main/resources/mapper/ApprovalMapper.xml   |  583 +++++----
 .../src/main/resources/mapper/AuditLogMapper.xml   |  132 +-
 .../main/resources/mapper/BarcodeLabelMapper.xml   |  171 ++-
 .../src/main/resources/mapper/BomMapper.xml        |   28 +-
 .../src/main/resources/mapper/BookingMapper.xml    |   11 +
 .../mapper/CategoryValueCascadingMapper.xml        |    6 +-
 .../src/main/resources/mapper/CollectionMapper.xml |   24 +-
 .../resources/mapper/CompanyManagementMapper.xml   |   20 +-
 .../src/main/resources/mapper/DashboardMapper.xml  |   23 +-
 .../src/main/resources/mapper/DepartmentMapper.xml |  180 +--
 .../src/main/resources/mapper/DesignMapper.xml     |   74 +-
 .../main/resources/mapper/DigitalTwinMapper.xml    |  241 ++--
 .../src/main/resources/mapper/DriverMapper.xml     |   30 +-
 .../main/resources/mapper/ExcelMappingMapper.xml   |  120 +-
 .../src/main/resources/mapper/LayoutMapper.xml     |  157 +--
 .../src/main/resources/mapper/MoldMapper.xml       |   45 +-
 .../src/main/resources/mapper/PackagingMapper.xml  |   24 +-
 .../src/main/resources/mapper/ProductionMapper.xml |   76 +-
 .../src/main/resources/mapper/ReportMapper.xml     |  380 ++++--
 .../src/main/resources/mapper/RoleMapper.xml       |   99 +-
 .../main/resources/mapper/SalesReportMapper.xml    |  153 +--
 .../resources/mapper/ScreenEmbeddingMapper.xml     |  198 +--
 .../src/main/resources/mapper/ScreenFileMapper.xml |   70 +-
 .../main/resources/mapper/ScreenGroupMapper.xml    | 1115 +++++++++--------
 .../resources/mapper/ScreenManagementMapper.xml    | 1312 ++++++++++++++------
 .../main/resources/mapper/ScreenStandardMapper.xml |   54 +-
 .../main/resources/mapper/ShippingOrderMapper.xml  |   47 +-
 .../main/resources/mapper/ShippingPlanMapper.xml   |   12 +-
 .../main/resources/mapper/SystemNoticeMapper.xml   |   72 +-
 .../src/main/resources/mapper/TaxInvoiceMapper.xml |  372 +++---
 .../src/main/resources/mapper/VehicleMapper.xml    |   24 +-
 .../main/resources/mapper/VehicleTripMapper.xml    |   77 +-
 .../resources/mapper/WebTypeStandardMapper.xml     |   88 +-
 .../main/resources/mapper/WorkHistoryMapper.xml    |   44 +-
 .../src/main/resources/mapper/YardLayoutMapper.xml |   37 +-
 43 files changed, 4082 insertions(+), 2792 deletions(-)

새 파일

_pipeline/runs/2026-03-27_pipe-20260327153425-pn5v/result.md
_pipeline/runs/2026-03-27_pipe-20260327153425-pn5v/rounds/round-3.md
_pipeline/runs/2026-03-28_pipe-20260328041806-pbum/heartbeat.json
_pipeline/runs/2026-03-28_pipe-20260328041806-pbum/plan.md
_pipeline/runs/2026-03-28_pipe-20260328041806-pbum/progress.md

상세 diff

diff --git a/_pipeline/knowledge/failure-patterns.json b/_pipeline/knowledge/failure-patterns.json
index 07e04e27..0be7514f 100644
--- a/_pipeline/knowledge/failure-patterns.json
+++ b/_pipeline/knowledge/failure-patterns.json
@@ -1,7 +1,7 @@
 {
   "version": 1,
-  "lastUpdated": "2026-03-27T15:03:25.661Z",
-  "totalRuns": 2,
+  "lastUpdated": "2026-03-27T20:12:58.287Z",
+  "totalRuns": 3,
   "patterns": [
     {
       "id": "fp-zhbg8k",
@@ -1760,6 +1760,97 @@
       "pipelineIds": [
         "pipe-20260327131904-jedw"
       ]
+    },
+    {
+      "id": "sp-t390fp",
+      "agent": "backend",
+      "taskDescription": "CommonMapper + AdminMapper + AuthMapper XML 포맷팅",
+      "files": [],
+      "keyApproach": "- 에이전트: backend - 시도: 1회 - 검증 로그:   - L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20   - L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa",
+      "occurrences": 1,
+      "firstSeen": "2026-03-27T20:12:58.287Z",
+      "lastSeen": "2026-03-27T20:12:58.287Z",
+      "pipelineIds": [
+        "pipe-20260327153425-pn5v"
+      ]
+    },
+    {
+      "id": "sp-geca3v",
+      "agent": "backend",
+      "taskDescription": "Table/Entity XML 포맷팅 (8개)",
+      "files": [],
+      "keyApproach": "- 에이전트: backend - 시도: 1회 - 검증 로그:   - L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20   - L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa",
+      "occurrences": 1,
+      "firstSeen": "2026-03-27T20:12:58.287Z",
+      "lastSeen": "2026-03-27T20:12:58.287Z",
+      "pipelineIds": [
+        "pipe-20260327153425-pn5v"
+      ]
+    },
+    {
+      "id": "sp-tc7oez",
+      "agent": "backend",
+      "taskDescription": "Dataflow/Flow XML 포맷팅 (9개)",
+      "files": [],
+      "keyApproach": "- 에이전트: backend - 시도: 1회 - 검증 로그:   - L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20   - L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa",
+      "occurrences": 1,
+      "firstSeen": "2026-03-27T20:12:58.287Z",
+      "lastSeen": "2026-03-27T20:12:58.287Z",
+      "pipelineIds": [
+        "pipe-20260327153425-pn5v"
+      ]
+    },
+    {
+      "id": "sp-afwrkh",
+      "agent": "backend",
+      "taskDescription": "CommonCode/Config XML 포맷팅 (7개)",
+      "files": [],
+      "keyApproach": "- 에이전트: backend - 시도: 1회 - 검증 로그:   - L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20   - L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa",
+      "occurrences": 1,
+      "firstSeen": "2026-03-27T20:12:58.287Z",
+      "lastSeen": "2026-03-27T20:12:58.287Z",
+      "pipelineIds": [
+        "pipe-20260327153425-pn5v"
+      ]
+    },
+    {
+      "id": "sp-9fwgrf",
+      "agent": "backend",
+      "taskDescription": "External/Connection XML 포맷팅 (6개)",
+      "files": [],
+      "keyApproach": "- 에이전트: backend - 시도: 1회 - 검증 로그:   - L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20   - L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa",
+      "occurrences": 1,
+      "firstSeen": "2026-03-27T20:12:58.287Z",
+      "lastSeen": "2026-03-27T20:12:58.287Z",
+      "pipelineIds": [
+        "pipe-20260327153425-pn5v"
+      ]
+    },
+    {
+      "id": "sp-i37j17",
+      "agent": "backend",
+      "taskDescription": "Batch/Schedule/기타 XML 포맷팅 (10개)",
+      "files": [],
+      "keyApproach": "- 에이전트: backend - 시도: 1회 - 검증 로그:   - L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20   - L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa",
+      "occurrences": 1,
+      "firstSeen": "2026-03-27T20:12:58.287Z",
+      "lastSeen": "2026-03-27T20:12:58.287Z",
+      "pipelineIds": [
+        "pipe-20260327153425-pn5v"
+      ]
+    },
+    {
+      "id": "sp-h0hlek",
+      "agent": "backend",
+      "taskDescription": "Mail/Cascading XML 포맷팅 (11개)",
+      "files": [],
+      "keyApproach": "- 에이전트: backend - 시도: 1회 - 검증 로그:   - L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20   - L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa",
+      "occurrences": 1,
+      "firstSeen": "2026-03-27T20:12:58.287Z",
+      "lastSeen": "2026-03-27T20:12:58.287Z",
+      "pipelineIds": [
+        "pipe-20260327153425-pn5v"
+      ]
     }
   ]
 }
\ No newline at end of file
diff --git a/_pipeline/mailbox/mcp-backend.json b/_pipeline/mailbox/mcp-backend.json
index 88c9c6a1..bd2e0239 100644
--- a/_pipeline/mailbox/mcp-backend.json
+++ b/_pipeline/mailbox/mcp-backend.json
@@ -6,7 +6,7 @@
         "/Users/gbpark/agent-pipeline/engine/build/mcp/mailbox-stdio-bridge.js"
       ],
       "env": {
-        "MAILBOX_URL": "http://127.0.0.1:60440",
+        "MAILBOX_URL": "http://127.0.0.1:58370",
         "MAILBOX_AGENT": "backend"
       }
     }
diff --git a/_pipeline/pipeline-state.json b/_pipeline/pipeline-state.json
index 86206539..2d8d2ab1 100644
--- a/_pipeline/pipeline-state.json
+++ b/_pipeline/pipeline-state.json
@@ -1,14 +1,14 @@
 {
-  "id": "pipe-20260327153425-pn5v",
+  "id": "pipe-20260328041806-pbum",
   "status": "running",
   "config": {
     "maxRetries": 3,
     "parallel": true,
-    "timeout": "15m",
+    "timeout": "30m",
     "workspacePath": "/Users/gbpark/TEST-VEX",
     "designFirst": false,
     "model": "sonnet",
-    "maxConcurrent": 3,
+    "maxConcurrent": 5,
     "skipLevels": [
       "L3",
       "L4",
@@ -19,471 +19,281 @@
   "tasks": [
     {
       "id": "task-1",
-      "name": "CommonMapper + AdminMapper + AuthMapper XML 포맷팅",
+      "name": "Screen/Layout XML 포맷팅 (3+4 분리)",
       "agent": "backend",
-      "description": "CommonMapper + AdminMapper + AuthMapper XML 포맷팅",
-      "depends": [],
-      "testCommand": "cd backend-spring && ./gradlew compileJava 2>&1 | tail -20",
-      "doneWhen": "SQL 키워드/컬럼/테이블 전부 대문자, 컬럼별 줄 띄움",
-      "files": [
-        "backend-spring/src/main/resources/mapper/CommonMapper.xml",
-        "backend-spring/src/main/resources/mapper/AdminMapper.xml",
-        "backend-spring/src/main/resources/mapper/AuthMapper.xml"
-      ],
-      "taskContext": "XML 내부 SQL 쿼리를 덕일 스타일로 포맷팅. 기능 변경 없이 포맷만 변경.\n\n★ 규칙 1: 키워드 전부 대문자\nselect → SELECT, from → FROM, where → WHERE, and → AND, or → OR,\nleft join → LEFT JOIN, inner join → INNER JOIN, order by → ORDER BY,\ngroup by → GROUP BY, having → HAVING, insert into → INSERT INTO,\nupdate → UPDATE, set → SET, delete → DELETE, values → VALUES,\nas → AS, on → ON, in → IN, not → NOT, null → NULL,\nis → IS, like → LIKE, ilike → ILIKE, between → BETWEEN,\nexists → EXISTS, not exists → NOT EXISTS,\ncase → CASE, when → WHEN, then → THEN, else → ELSE, end → END,\nunion all → UNION ALL, with recursive → WITH RECURSIVE,\ncast → CAST, coalesce → COALESCE, count → COUNT, sum → SUM,\nmax → MAX, min → MIN, avg → AVG, distinct → DISTINCT,\nlimit → LIMIT, offset → OFFSET, asc → ASC, desc → DESC,\nnow() → NOW(), upper() → UPPER(), lower() → LOWER(),\nto_char() → TO_CHAR(), array[] → ARRAY[], lpad() → LPAD(),\ntrue → TRUE, false → FALSE\n\n★ 규칙 2: 컬럼명/테이블명/별칭 전부 대문자\nuser_id → USER_ID, company_code → COMPANY_CODE, menu_info → MENU_INFO,\nv → V, s → S, cm → CM, menu → MENU 등\n\n★ 규칙 3: SELECT 컬럼은 한 줄에 하나, 쉼표는 컬럼 앞에\n변경 전:\nSELECT id, title, description, status FROM todo_items WHERE 1=1\n\n변경 후:\nSELECT\n    ID\n    , TITLE\n    , DESCRIPTION\n    , STATUS\nFROM TODO_ITEMS\nWHERE 1=1\n\n★ 규칙 4: INSERT VALUES 한 줄에 하나\n변경 전:\nINSERT INTO table (col1, col2) VALUES (#{val1}, #{val2})\n\n변경 후:\nINSERT INTO TABLE (\n    COL1\n    , COL2\n) VALUES (\n    #{val1}\n    , #{val2}\n)\n\n★ 규칙 5: UPDATE SET 한 줄에 하나\n변경 전:\nUPDATE table SET col1 = #{val1}, col2 = #{val2} WHERE id = #{id}\n\n변경 후:\nUPDATE TABLE\nSET\n    COL1 = #{val1}\n    , COL2 = #{val2}\nWHERE ID = #{id}\n\n★ 규칙 6: JOIN/WHERE/ORDER BY 절 단위 줄 구분\n변경 전:\nFROM v_menu v LEFT JOIN company_mng cm ON v.company_code = cm.company_code WHERE v.status = 'active' ORDER BY v.seq\n\n변경 후:\nFROM V_MENU V\nLEFT JOIN COMPANY_MNG CM\n   
... (truncated)

검증 결과

L1 [PASS]: L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L2 [PASS]: L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L1 [PASS]: L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L2 [PASS]: L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L1 [PASS]: L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L2 [PASS]: L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L1 [PASS]: L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L2 [PASS]: L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L1 [PASS]: L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L2 [PASS]: L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L1 [PASS]: L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L2 [PASS]: L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L1 [PASS]: L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L2 [PASS]: L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L1 [PASS]: L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L1 통과: cd backend-spring && ./gradlew compileJava 2>&1 | tail -20

L2 [PASS]: L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa

L2 통과: cd /Users/gbpark/TEST-VEX/backend-spring && ./gradlew bootJa