분류 전체보기
-
문서 RAG 관리 시스템에 대한 개발 경험프로그래밍 2025. 8. 18. 14:42
1. 영수증 RAG에 대한 사항 - 영수증은 그 자체로 메타데이터 이므로 세부항목을 제외한 사항이 모두 라벨링 대상이 된다. - 따라서, 영수증에 대한 복합 질의에도 오류율이 적은 편이다. - 여기서 오류율은 A 장소에 결재한 카드의 합계 또는 동일 상호 다른 지점의 예이다. - 결론적으로 영수증에 대한 추출만 잘 이루어 지면 이슈가 없으며, AZURE DOCUMENT INTELLIGENCE를 사용해본바, 추출 품질은 훌륭하며 영수증마다 추출은 개별 커스텀이므로 상당한 노가다가 필요함. 2. PDF 포함 OFFICE 문서에 대한 사항 - PDF 같은 경우 문서 자체에서 메타 정보를 추출할 수 없으며, 파일명에 정리되어 있는 수준 - "(작성:XXX, 작성년:XXXX) 2024년 복지개정안.pd..
-
왜 나는 DataTable을 싫어하는가?칼럼 2025. 6. 22. 18:23
⚠️ C# 개발에서 DataTable을 지양하는 이유"빠르게 시작하려다, 나중엔 유지보수 지옥에 빠진다."1️⃣ DataTable은 실질적으로 Dictionary이다DataTable은 겉보기엔 테이블처럼 보이지만, 내부 구조는 매우 느슨합니다.Key: 문자열 기반의 컬럼명Value: object 타입즉, Dictionary와 매우 유사한 동작을 합니다.이는 유연하지만, C#의 정적 타입 시스템과는 정면으로 충돌합니다.2️⃣ 값 형식(Value Type)에선 성능 손실이 발생한다int value = (int)row["SomeColumn"]; // Unboxing이처럼 object에서 값 형식을 꺼내려면 Unboxing이 필요합니다.Boxing/Unboxing은 CPU 연산을 수반반복 루프 안에서 수천 번 ..
-
대안없는 비판칼럼 2025. 6. 21. 18:35
모든 문제는 인식할 수 있는 것이 아니다. 문제는 반드시 발생해야만 인식된다.그렇기에 문제를 인식했다는 것은, 그 자체로 책임이 수반되는 일이다. 대안 없는 비판은 문제를 인식한 것이 아니라, 문제 ‘자체’를 공격하는 것에 불과하다.나 또한 개발 과정에서 수많은 문제를 겪었고, 그에 대해 비판도 했다. 하지만 늘 대안을 전제로 했다. 이전 글에서 인상 깊었던 두 명의 개발자에 대해 언급했었다.그들의 공통점 중 하나는, 비판할 때 반드시 대안을 제시한다는 점이었다.대안이 없으면 함부로 비판하지 않는다. 이것이 진정한 문제 인식자의 태도다. 나 역시 지금까지 글을 통해 "이건 하지 말자"고 비판할 때, 그에 상응하는 실질적 대안을 함께 제시해 왔다.“하지 마라”는 말만 반복하는 것은 비판이 아니라 무책임한 ..
-
나는 그들을 기억한다 — 진짜 개발자가 무엇인지 보여준 두 사람칼럼 2025. 6. 21. 16:58
내가 지금까지 일하며 가장 기억에 남는 두 사람이 있다.한 명은 DB를 깊이 이해한 웹 개발자,또 한 명은 정체를 알 수 없지만 전체를 지휘하던 실력자였다.이 두 사람의 공통점은 단 하나.일을 만들어서 쉬지 않고 해냈다는 것이다.일을 만든다는 것의 진짜 의미‘일을 만든다’는 건 단순히 무언가를 바쁘게 만든다는 얘기가 아니다.비즈니스나 사업부의 요구를 수동적으로 구현하는 수준을 넘어서야 한다.그들은 요구를 이해하고,단순화하고,개발에 맞게 구조화한 후,다시 결과를 단순하게 정리해냈다.이건 아무나 할 수 있는 일이 아니다.그리고, 내가 최근에 함께 일한 대부분의 개발팀 리더들은 이걸 해내지 못했다.단순 분업이 아니라 통찰이 필요하다단순히 서버 개발, 클라이언트 개발을 나누는 게 능사가 아니다.전체를 통찰하고,..
-
내 인생의 최악의 코드는칼럼 2025. 6. 20. 19:20
근래 YES24가 뜨겁다. 해킹 사태로 문제가 되어 1주일 동안 시스템이 멈추고 피해액만 수십억에 달할 것이다. 내 인생에서 최악의 코드는 YES24에서 보았기 때문에 생각난 김에 글을 남긴다. YES24에서 보았던 최악의 코드는 DB 프로시저 까지 합쳐서 약 5000줄 이상이 되는 예매 코드였다. 논리는 아래와 같다. 1. 사용자가 선택한 좌석에 대해 극장사에 질의 한다.2. 유휴 좌석 있다고 회신하면 해당 좌석을 Lock한다. (5분 동안)3. 제휴사의 결제 정보를 확인한다.3-1. 제휴사 할인 정보 확인3-2. 제휴사 결제 정보 확인4. Yes24 결제 정보를 확인한다.4-1. Yes24 할인 정보 확인4-2. Yes24 쿠폰 정보 확인5. 결제 확인된 정보에 대해 최종 결제 한다.6. 유휴 좌석에..
-
-