기술

현재 AI 코딩 도구의 문제점

코드를 생성하지만 시스템을 이해하지 못합니다.

오늘날의 AI 코딩 도우미는 코드 자동 완성, 기능 생성, 언어 간 번역 등 인상적인 결과를 달성했습니다. 그러나 그들은 모두 근본적인 한계를 공유합니다. 그들은 소프트웨어를 이해해야 할 시스템이 아니라 생성해야 할 텍스트로 취급합니다.

소프트웨어 엔지니어링은 텍스트 생성 문제가 아닙니다. 시스템 추론 문제입니다.

대화형 제한사항 진단

맥락 문제

코드베이스에는 수천 개의 파일에 걸쳐 수백만 줄이 포함되어 있습니다. 현재 도구는 간단한 검색을 통해 이를 연결하려고 시도하지만 소프트웨어의 관련성은 텍스트 유사성이 아니라 인과 관계, 종속성 체인 및 아키텍처 경계에 관한 것입니다.

diagnostic_runner.sh
$ yugnex run trace --target=./src
[정보] 저장소 아키텍처 추적을 실행하는 중...
[경고] 파일 인덱스 512에서 컨텍스트 제한에 도달했습니다.
[FAIL] context_overflow: 스택 크기 1,048,576바이트가 표준 컨텍스트 창을 초과했습니다.
[중요] 파서가 중단되었습니다. 기존 LLM은 시스템 전체 관계를 해결하지 못합니다.
[YUGNEX SOLUTION] 인과관계 기반으로 재라우팅...
[성공] 인과관계 그래프 추적이 완료되었습니다. 영구 캐시 노드로 인덱싱된 파일 48,091개.

우리의 계층적 접근 방식

일반화보다 전문화

소프트웨어 엔지니어링의 다양한 측면에는 근본적으로 다른 유형의 추론이 필요합니다. 모든 것을 단일 모델로 압축하는 대신, 우리는 각각 소프트웨어 추론의 특정 영역을 위해 설계된 특수 AI 구성 요소를 엔지니어링 팀처럼 함께 사용합니다.

실시간 원격 측정 그래프
[AST 파서 에이전트] =======> [원인 해결 에이전트]
                                   ||
                                   \/ 
[합의 에이전트] <======== [리팩터링 에이전트]
상태: 온라인에서 전문적인 공동 추론.

협력적 추론

소프트웨어 결정에는 종종 경쟁 문제 간의 균형을 맞춰야 합니다. 우리의 아키텍처를 통해 특수 구성 요소는 상황을 공유하고, 가정에 도전하고, 구조화된 조정을 통해 합의를 향해 작업할 수 있습니다.

시스템 전반에 걸친 이해

소프트웨어 이해는 구문, 의미, 아키텍처 패턴, 디자인 의도 및 시스템 전체 속성 등 여러 수준에서 작동합니다. 우리는 다양한 구성 요소가 다양한 추상화 수준에서 작동하는 계층적 추론을 사용합니다.

검색 이상의 컨텍스트

단절된 코드 조각을 끌어들이는 대신, 우리는 코드뿐만 아니라 종속성, 불변성 및 아키텍처 경계의 웹을 캡처하여 시스템 관계의 동적 표현을 구축하는 접근 방식을 개발하고 있습니다.

자율 분석기 합의

보안 및 리팩토링 문제에 대해 토론하는 YugNex의 다중 에이전트 합의 패널을 활성화하려면 코드 줄 위로 마우스를 가져가세요.

active_routes.js — 경고 노드가 있는 호버/클릭 라인
1
const getActiveProfiles = async (req, res) => {
!
const query = `SELECT * FROM users WHERE status = '${req.query.status}'`;
3
const users = await db.execute(query);
4
const enrichedUsers = [];
5
for (const user of users) {
!
const profile = await db.execute(`SELECT * FROM profiles WHERE user_id = ${user.id}`);
7
enrichedUsers.push({ ...user, profile });
8
}
9
res.json(enrichedUsers);
10
};
SQL 주입 취약점

사용자 입력을 SQL 쿼리 문자열에 직접 삽입하면 공격자가 악성 SQL 명령을 삽입하고 인증을 우회하거나 승인되지 않은 테이블을 볼 수 있습니다.

YugNex 자동 수정 권장사항
const query = "SELECT * FROM users WHERE status = ?";
const [users] = await db.execute(query, [req.query.status]);
대리인 해결 토론
건축가직접 SQL 쿼리 보간이 감지되었습니다. 이는 당사의 보안 표준을 위반하는 것입니다.
보안 감사관상태 매개변수를 통해 원격 공격이 가능합니다. 커밋이 차단되었습니다.
개발자db.execute(query, [status])를 사용하여 매개변수화된 바인딩에 대한 쿼리를 다시 작성합니다.

차이점

현재 도구
코드 생성 → 구문 최적화 → 컨텍스트 제한 내에서 작업 → 범용 아키텍처
우리의 접근 방식
시스템 이해 → 아키텍처에 대한 이유 → 동적 표현 구축 → 소프트웨어 엔지니어링을 위해 특별히 제작됨