프로젝트

선택 프로젝트 — 개인 프로젝트

공잡스

공공 채용 정보는 누구에게나 열려 있지만, 기관마다 사이트가 달라 실제로는 찾는 방법을 아는 사람만 활용합니다. 재정경제부와 인사혁신처의 공공데이터포털 Open API로 흩어진 공고를 한곳에 모아, 정보 접근의 격차를 줄이려고 만들었습니다.

1인 개발 · 기획·설계·프론트엔드/개인 프로젝트/Next.js 16 (Turbopack) / React 19 / TypeScript / Tailwind CSS v4 / SWR / fast-xml-parser
공잡스

01 / 03

직무 하나로 두 출처를 동시에 좁히기

직무분야(NCS) 필터 하나로 재정경제부와 인사혁신처 공고를 동시에 좁히고, 선택한 직무와 일치하는 태그는 카드에서 파란색으로 강조합니다.

데모 확인 ↗

해결한 문제

  • 두 기관의 공공 API가 각각 JSON과 XML로 응답해 포맷이 어긋났습니다. 인사혁신처 API는 직무(NCS) 코드 필터를 아예 지원하지 않아 통합 검색이 끊겼습니다.

내가 기여한 것

  • 페이지를 넘길 때마다 공공 API를 다시 부르는 대신, 키워드별로 병렬 조회해 중복을 걸러낸 뒤 브라우저 메모리에 풀로 적재했습니다. 정렬·진행 상태·제외 키워드·페이지네이션은 모두 메모리 슬라이싱으로 처리합니다.
  • NCS 코드를 제목 검색어로 역변환하는 매핑 어댑터(NCS_KEYWORD_MAP)로 API가 지원하지 않는 필터를 우회했습니다. 공공데이터포털 serviceKey가 이중 인코딩되는 문제는 URLSearchParams 대신 저수준 쿼리스트링 직렬화 빌더를 만들어 해결했습니다.

임팩트

0ms

페이지 전환 · 네트워크 왕복 제거

JSON+XML

단일 JobPosting 인터페이스로 정규화