본문 바로가기

전체 글

(109)
LIMIT 6 집계 비용 분리 런북 넓은 조인 집계를 두 컬럼 집계로 분리하고 SQL 구조를 고정한다. 최근 6건만 반환하는 대시보드가 2초 이상 걸린다. LIMIT을 적용해도 집계 SQL과 디스크 읽기가 줄지 않는다.전제 환경 — Django ORM · Django 테스트 클라이언트 · 데이터베이스 EXPLAIN요약운영 요청별 시간과 쿼리 수부터 측정최근 ID 확정과 하위 집계를 분리상위 테이블 없는 두 컬럼 집계 적용목록 상태 카운트를 일괄 조회결과값과 SQL 구조를 함께 회귀 검사전체 그림LIMIT 이후에도 남는 집계 비용[인증 요청] |[최근 ID 6개] | +--> [상위+하위 넓은 조인] --X--> [GROUP BY·임시 파일] | +--> [하위: parent_id,status] --> [..
원래도 그랬어요 처음 붙은 설명 아래에는 아직 불리지 않은 사실이 남아 있다. · AI 생성 일러스트 처음 나는 규칙이 움직이지 않는 이유를 재료가 들어오지 않았기 때문이라고 보았다. 비어 있다는 설명은 손에 잘 잡혔고, 이미 채워진 칸을 다시 살피는 일보다 마음도 덜 복잡했다. 원인이 입구에 있으면 그 뒤의 과정은 무죄가 된다.실제 기록을 확인하자 내가 세운 설명은 금세 힘을 잃었다. 필요한 것은 이미 제자리에 있었고, 옮겨지는 도중 몇몇 내용이 빠지고 있었다. 나는 없는 것을 찾느라, 있던 것이 어디에서 사라지는지는 뒤늦게 물었다.처음의 판단은 엉성한 추측만은 아니었다. 직장에서는 빠진 재료가 문제였던 일이 자주 있었고, 익숙한 원인은 다음 사건에도 먼저 출근한다. 다만 경험이 길을 알려 주는 순간, 다른 길을 가리..
아직 바깥에는 안 갔어요 내 손을 떠난 일은 여러 경계를 지나며 비로소 완료의 모양을 얻는다. · AI 생성 일러스트완료는 내 손을 떠난 뒤에 드러난다 나는 손을 댄 내용이 제자리에 있고 점검도 무사하면, 사람들이 보는 결과도 이미 달라졌다고 여겼다. 내 손끝에서 끝난 일이 바깥에서도 끝났으리라는, 꽤 단정한 착각이었다. 완료라는 말이 내 책상 둘레만 돌고 있다는 사실은 늦게 보였다.내가 확인한 것은 내가 만든 것의 상태였고, 확인하지 않은 것은 그것이 실제로 쓰이는 자리였다. 둘은 가까워 보여서 자주 같은 것으로 취급된다. 서류에 도장을 찍은 순간과 그 서류가 상대의 손에 들어간 순간을 한 칸에 적는 셈이었다.예전 결과가 그대로 남아 있는 것을 보고서야 나는 완료의 경계를 너무 안쪽에 그었다고 판단했다. 손을 놓은 지점이 곧 ..
AI 런북을 숫자 계약으로 교정하는 법 필드 상한과 기대 출력 검사를 생성 후 계약으로 고정한다. 9개 섹션은 맞지만 결과가 긴 기술 에세이처럼 보인다. 기대 출력에 관측값 대신 성공 조건이 적힌다.전제 환경 — n8n / Python 3 / JavaScript / HTML구조런북 생성과 숫자 계약 검사 흐름[작업 기록] | v[LLM 런북 생성] --X temperature: 0.4 | v[9개 섹션 구조화] | v[HTML 렌더링] | v[글자 수 검사] --X 상한 초과 | v[기대 출력 검사] --X 한다/된다 | v[저장]정리하면temperature: 0.4 제거프롬프트를 5.7KB로 축소필드별 글자 수 상한 적용서술형 기대 출력 차단3회 연속 형태..
문은 같아도 같은 표면 아래에는 서로 다른 역할과 남겨야 할 흔적이 있다. · AI 생성 일러스트닮은 표면이 판단의 방향을 훔칠 때“둘 다 비슷하게 생겼으니, 하는 일도 같지 않을까요?” 나는 나란히 놓인 대상이 같은 몫을 나누어 맡는다고 먼저 여겼다. 드나드는 입구가 같고 겉에 붙은 표식도 비슷했으니, 차이보다 대칭이 먼저 눈에 들어왔다. 판단은 이미 그 순간 절반쯤 끝나 있었다.지나간 변경의 기록을 거슬러 보니 하나는 단순한 짝이 아니었다. 별도의 필요가 생겼을 때 뒤늦게 보태진 자리였고, 닮은 외관은 서로 다른 사정을 가리고 있었다. 나는 현재의 모양을 과거의 의도라고 잘못 읽었다.처음부터 무모하게 짐작한 것은 아니었다. 눈앞의 단서들을 성실히 묶었지만, 묶는 방식이 너무 반듯했다. 비슷한 것은 같은 것이라는 ..
승인은 됐는데 먼저 붙인 이름을 걷어 내자 서로 다른 문턱과 새로운 길이 보인다. · AI 생성 일러스트먼저 붙인 말이 판단의 길을 좁힌다 처음 세운 문턱은 통과할 자격을 가려내려다, 아직 심사받을 차례조차 오지 않은 것까지 밀어냈다. 나는 엄격함이 안전과 같은 말이라고 먼저 믿었다. 그러나 넓게 닫힌 문은 위험뿐 아니라 정상적인 시작도 막았다.잘못은 조건을 빠뜨린 데만 있지 않았다. 나는 일이 도착하는 순서보다 마지막에 갖춰야 할 모양을 먼저 보고 있었다. 완성된 모습에서 출발하니, 덜 갖춰진 시작은 모두 결함처럼 보였다.먼저 떠오른 판단에는 묘한 선점 효과가 있다. 빈 종이에 처음 그은 선처럼 이후의 확인을 그 방향으로 정렬한다. 일하는 사람은 사실을 찾는 동안에도, 이미 고른 설명에 어울리는 사실을 더 빨리 알아..
자주 온다고 새것은 아니다 계속 움직이는 것보다 책임의 끝과 멈출 자리를 알아보는 판단 · AI 생성 일러스트안전은 간격보다 책임의 끝에서 생긴다 처음 나는 양쪽이 같은 비밀을 나눠 가지면 일이 더 단단해진다고 판단했다. 눈앞의 대칭이 곧 안전처럼 보였고, 같은 것을 가진다는 사실이 서로를 확인해 줄 듯했다. 그때 복잡함은 협력의 비용이 아니라 신뢰의 모양으로 보였다.하지만 같은 물건을 쥔 손이 늘어날수록 확인할 것도 함께 늘어난다. 누가 먼저 바꾸었는지, 어느 쪽이 오래된 것을 들고 있는지, 같은 이름 아래 정말 같은 내용이 있는지를 다시 묻게 된다. 대칭은 보기에는 반듯하지만 관리까지 반듯하게 만들지는 않았다.내 판단은 역할을 나누는 일과 책임을 나누는 일을 같은 것으로 본 데서 기울었다. 여러 곳이 참여하면 더 꼼꼼할 것이라..
AI 코드리뷰에 다른 파일을 읽히는 2단계 정찰 모델과 제한된 저장소 도구로 변경 파일 밖의 계약을 확인한다. AI 리뷰가 호출자·타입 정의·다른 모듈의 계약을 놓친다. 변경 파일 밖의 근거 없이 리뷰 결론을 낸다.전제 환경 — n8n / Node.js / Python / Bitbucket Cloud / Jira요약정찰과 최종 리뷰를 두 호출로 분리needs 요청을 전체 12개로 제한경로 오류를 결과 객체로 격리빈 needs에서도 실행 체인 유지배포 전 jsCode 문법 검사원인기존 리뷰 입력에는 PR 제목·설명, Jira 요구사항, 리포 규약, context=30 diff와 변경 후 파일 소스가 이미 포함돼 있었다. 실행 데이터에서 프롬프트는 14,126자, 13,642자, 10,002자, 7,934자로 측정됐고, 한 사례에서는 6,124자의 ..