Show GN: 주거나침반 - 공공임대주택 공고를 AI로 구조화해서 보여주는 서비스
(jugeo.co.kr)안녕하세요. LH, SH, GH 등 공공임대주택 공고를 모아서 보여주고, 복잡한 모집 공고문을 AI로 분석해 주는 서비스 주거나침반을 만들고 있습니다.
만든 이유
공공임대주택에 관심을 갖고 직접 공고를 챙겨보다 보니, 생각보다 정보 접근이 어렵다는 걸 느꼈습니다.
기관마다 공고 형식이 다르고, 모집 공고문은 PDF/HWP로 수십 페이지씩 올라오는데, 정작 내가 봐야 하는 정보는 흩어져 있습니다.
예를 들면:
- 접수 시작일과 마감일
- 청년/신혼부부/고령자 등 공급 유형
- 소득 기준
- 자산 기준
- 무주택 요건
- 가점 항목
- 당첨자 발표일
- 제출 서류
이런 정보를 찾기 위해 매번 긴 공고문을 열고, 검색하고, 표를 읽고, 날짜를 따로 기억해야 했습니다.
이 과정을 줄여보고 싶어서 주거나침반을 만들었습니다.
주요 기능
1. 공고문 AI 분석
모집 공고문 PDF/HWP/첨부 파일에서 핵심 정보를 추출해 구조화합니다.
단순 요약보다는 “검색/필터/비교가 가능한 데이터”로 바꾸는 쪽에 집중하고 있습니다.
예를 들어 AI가 다음과 같은 항목을 뽑습니다.
- 신청 자격
- 소득 기준
- 자산 기준
- 거주지/근무지 조건
- 청약통장 조건
- 모집 일정
- 임대보증금/월임대료
- 공급 주택 목록
- 주의해야 할 조건
- 원문 근거 위치
사용자는 긴 공고문을 처음부터 읽기 전에, “내가 볼 만한 공고인지”를 먼저 빠르게 판단할 수 있습니다.
2. 일정 캘린더
공고일, 접수 시작일, 접수 마감일, 서류 제출일, 당첨자 발표일 등을 달력으로 볼 수 있게 했습니다.
공공임대 공고는 조건도 어렵지만, 일정 놓치는 것도 꽤 큰 문제라서 캘린더 UX를 중요하게 보고 있습니다.
3. 지역/유형 필터
원하는 지역과 임대 유형만 볼 수 있습니다.
예를 들어 서울/경기, 청년, 신혼부부, 행복주택, 국민임대 같은 기준으로 공고를 줄여볼 수 있습니다.
4. 모바일 앱과 Android 홈 화면 위젯
iOS/Android 앱도 함께 제공하고 있습니다.
홈 화면 위젯으로 관심 공고의 주요 일정을 바로 볼 수 있게 만들었습니다.
앱을 매번 열지 않아도 접수 마감일 같은 정보를 확인하는 용도입니다.
AI 분석은 어떻게 구현했나
현재 파이프라인은 대략 이런 식입니다.
- 기관별 공고 게시판을 주기적으로 수집
- 공고 본문과 첨부 파일 PDF/HWP/Excel을 다운로드
- 문서에서 텍스트와 표를 추출
- 긴 문서는 chunk 단위로 나누어 분석
- LLM으로 메타데이터, 주택 정보, 자격 조건, 일정, AI 의견을 구조화된 JSON으로 추출
- 추출 결과를 스키마로 검증
- 일부 공고는 golden set을 만들어 추출 품질을 비교/평가
처음에는 “요약문 하나 만들기”에 가까웠는데, 실제로 써보니 요약보다 중요한 건 정규화된 데이터였습니다.
예를 들어 “도시근로자 월평균소득 100% 이하” 같은 문장을 그냥 요약하는 것보다, 소득 조건 필드 안에 비율, 가구원 수별 금액, 예외 조건을 분리해 넣는 것이 훨씬 유용했습니다.
또 공고문 표가 까다로운 경우가 많았습니다. 같은 주택형이 여러 임대 조건으로 나뉘어 있거나, 표의 다음 행이 이전 행의 연속인 경우가 있어서, 중복 주택을 만들지 않도록 후처리와 검증 로직을 따로 두고 있습니다.
모델 호출은 OpenAI/OpenRouter 호환 레이어로 분리해 두었고, 문서가 짧으면 한 번에 분석하고, 길면 메타데이터/주택정보/AI의견을 나눠서 처리하는 방식으로 운영하고 있습니다.
아직 고민 중인 점
AI 분석 결과가 100% 맞는다고 말하기는 어렵습니다. 그래서 현재는 원문 공고 링크와 함께 보여주고 있고, 중요한 정보는 사용자가 원문을 확인할 수 있게 만드는 방향을 유지하고 있습니다.
특히 고민하는 부분은 다음입니다.
- 공고문 표를 얼마나 안정적으로 구조화할 수 있을까
- 사용자가 “내 조건에 맞는지”를 더 안전하게 판단하게 하려면 어떤 UX가 좋을까
- AI 분석 결과의 근거 문장을 더 잘 노출하려면 어떤 형태가 좋을까
- 공고가 수정되었을 때 기존 분석 결과를 어떻게 갱신/비교할까
- 모바일에서 복잡한 자격 조건을 너무 답답하지 않게 보여주려면 어떻게 해야 할까
직접 겪은 불편함에서 시작해서 꾸준히 고도화하고 있는 프로젝트입니다.
서비스 레이아웃, AI 분석 방식, 공고 상세 화면, 모바일 UX 등 어떤 관점이든 피드백 주시면 정말 감사하겠습니다.
[ 주거나침반 ]
웹: https://jugeo.co.kr
iOS: https://apps.apple.com/kr/app/…
Android: https://play.google.com/store/apps/details?id=kr.housingcompass.app
댓글과 토론
저는 공공주택이 이렇게 많은 줄 몰랐네요. 좋은 서비스같습니다.
더불어 기술 스택이 궁금합니다.
next.js + supabase(postgresql)인가요? 백엔드도 따로 있으신가요?
좋은 질문 감사합니다!
현재 챗은 “전체 공고 원문을 매번 RAG로 검색”하는 방식이라기보다는, 먼저 공고문을 AI로 분석해서 만든 구조화 데이터(JSON)를 기반 컨텍스트로 넣고 질문에 답하게 하는 방식입니다.
흐름은 대략 이렇습니다.
- 공고 수집 단계에서 PDF/HWP/Excel/본문 텍스트를 추출
- LLM으로 신청 자격, 소득/자산 기준, 일정, 임대 조건, 주택 정보 등을 구조화된 JSON으로 저장
- 사용자가 특정 공고 상세 화면에서 질문하면, 해당 공고의 분석 JSON + 최근 대화 히스토리만 프롬프트에 넣음
- OpenAI Chat Completions API로 스트리밍 응답
- 대화 내용은 사용자별/공고별 세션으로 저장
즉, 챗봇이 매번 긴 PDF 전체를 다시 읽는 구조는 아니고, “이미 분석해 둔 공고 데이터에 대해 질의응답하는 UI”에 가깝습니다.
프롬프트에서는 공고 데이터에 없는 내용은 추측하지 말고 원문 확인을 안내하도록 제한했습니다.