개발

복지드림 - RAG 마무리: 청킹 전략 개선

홍준기 2026. 6. 12. 14:51

이번에는 기존 단순 오버랩 청킹 전략에서 개선하기 위해서 그냥 서비스를 통째로 청킹하는 것이 아닌 색션 별로 나누어 청킹하는 전략으로 개선해보았다. + 테스트 수정

 

청킹 전략 개선 - section-aware chunking

 

위에서 말했다시피 기존에는 단순히 서비스 전체를 오버랩을 두고 청킹하여서 청킹 안에서 여러 색션이 나올 수 있었다.

 

이렇게 되면 검색할 때 모든 청크를 다 보고 색션이 청크 안에 섞여있으므로 검색 정확도에 안 좋은 영향을 미칠 것이라고 생각하였기에, 청킹 전략을 개선하였다.

 

따라서 기존 복지 서비스에 있는 색션 별로 나누어서 청킹을 진행하였고, 청크의 개수가 그만큼 늘어났다. 한 청크 안에 여러 색션이 들어가 있는 경우가 대부분인에 이가 나눠졌기 때문이다. 기존 570개 청크에서 2,424개 청크로 늘어났다. 이 과정에서 색션이 나뉘면서 같은 서비스의 여러 청크가 결과를 독점하는 문제가 생겼고, serv_id 기준으로 중복을 제거도 진행했다.

재랭킹할 때도 섹션별로 가중치를 다르게 뒀다. target, criteria는 높게 / application, documents는 낮게. 신청방법만 열심히 설명한 서비스가 상위에 올라오는 걸 막기 위해서다.

 

검색 정확도 테스트 과정 수정

section-aware 청킹 전략 개선 이후 테스트를 해보는데 이전 테스트로는 얼마나 개선됐는지 제대로 확인이 안 되어서 테스트를 수정했다.

 

우선 나오는 서비스의 기대 수준을 3가지로 나누었다. 반드시 나와야하는 서비스, 나오면 좋은 서비스, 절대 나오면 안 되는 서비스. 

 

이 수정을 통해서 사용자에게 맞는 서비스를 적절하게 추출하는지 그리고 사용자에게 명백히 맞지 않는 서비스를 추천하지 않는지 제대로 확인할 수 있도록 했다.

결과물

https://youtu.be/1f3tvKRrBN4?si=x_nTF3j9c4RSrl3l

시연 영상

 

 

 

RAG.html
0.07MB

 

 

공부할 겸 종프를 신청해서 주제도 완전히 바뀌어버리는 등 생각지 못한 방향으로 프로젝트가 진행됐지만 그 상황에서도 배울 것이 있었던 거 같다. 원래 기존에는 실력 향상을 목적으로 차근차근 종프를 진행해볼 계획이었지만 멘토님과의 회의를 통해 AI를 적극 활용하며 완성도를 더 높이자는 방향으로 갔다. 기술적인 측면보다는 AI 활용 측면에서 느낀 게 많은 거 같다.

 

AI 활용 후기

 

사실 지금까지 모든 과정을 내 스스로 생각해서 하지 않았고, 내가 잘 모르던 파트였기에 AI와 함께 대화하면서 진행하는 방식으로 나아갔다. 처음에는 이렇게 AI에게 다 물어보고 나는 확인만 하는 과정이 도움이 될지, 나의 실력 향상이 있을지 의문 투성이었다. 결론적으로는 이번 프로젝트에서는 AI에게 적정치보다 약간 더 의존한 게 있는 거 같다. 멘토님께서도 AI을 활용해서 결과물 퀄리티를 적극적으로 높이라고 하셨기에 열심히 써보았지만, 코드 주도권을 AI에게 조금 빼앗기니 코드 곳곳에 블랙박스가 생겼던 거 같다. 그래도 잘 돌아가긴 하지만 내가 처음하는 부분은 내가 한번 직접 구현해보는 시간을 가지는 게 필요하다고 생각했다. 이후 내가 해당 부분을 잘 알게 된다면 그 부분은 AI를 통해서 빠르게 구현 후 검증 하는 방식으로 넘어가고 내가 집중해야하는 부분에 시간을 더 쏟을 수 있게 하는 것이다. 내 생각에는 이런 방식으로 하는 게 옳은 거 같다. 그렇다고 이번 프로젝트가 실패한 거라곤 말할 수 없을 거 같다. 이렇게 단기간 안에 개괄적으로 RAG를 이해하고 구현할 수 있었던 건 AI가 있었기 때문이다. 다만 학생으로서 학습하는 방식으로는 이렇게 구현에 치중하기보다는 한번은 AI 없이 혼자하는 과정이 필요한 과정이라는 것이다. 물론 이게 종프1과 연계하여 그런 여유를 부릴 시간은 없었다. 앞으로 다음 프로젝트에서는 이 나의 지분과 AI의 지분을 적절히 조화하여 나의 실력 향상과 생산성을 둘다 조화롭게 잡을 정도로 구현해보아야겠다고 느꼈다. 한편으로는 이렇게 AI의 생산성을 보면서, 정말 내가 만들고 싶은 게 있다면 빠르게 결과물을 보고 싶다면 바이브 코딩으로 우선 구현해봐도 될 거 같다. 실력 향상이 아니라 나의 아이디어를 결과물로 빠르게 뽑고 싶을 땐.