정부혜택 정보 (API 구현)

7 read
학점은행제 학습자 학자금대출한국장학재단
서비스분야보육·교육
신청방법기타 온라인신청
신청기한○ 2026년 2학기 학습비 대출 : 2026. 7.1.(수)~11.17.(화)
자세히 보기
농촌출신대학(원)생 학자금대출 제도한국장학재단
서비스분야보육·교육
신청방법기타 온라인신청||직접입력
신청기한사전신청: 2026. 5. 22. ~ 2026. 6. 30. / 본신청: 2026. 7. 1. ~ 2026. 7. 28.
자세히 보기
푸른등대 삼성기부장학금 지원한국장학재단
서비스분야보육·교육
신청방법기타 온라인신청
신청기한2026. 3. 25.(수) ~ 4. 7.(화) * 신청 시기 매년 변동 가능, 한국장학재단 홈페이지 공지 참고
자세히 보기
대학생 청소년교육지원장학금한국장학재단
서비스분야보육·교육
신청방법직접입력
신청기한매년 3월 ~ 2월 (참여대학별 신청시기 상이)
자세히 보기
군 복무기간 이자면제 지원한국장학재단
서비스분야생활안정
신청방법신청불필요
신청기한상시신청
자세히 보기
전문기술인재장학금지원한국장학재단
서비스분야보육·교육
신청방법기타 온라인신청
신청기한매년 3월~4월 중
자세히 보기
전통시장 화재공제중소벤처기업부
서비스분야생활안정
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
중소기업 기술보호 바우처 지원중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
중소기업 기술보호 디지털포렌식 지원중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
청년상인 육성 지원중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청
신청기한세부사업별 상이
자세히 보기
전통시장 안전관리패키지중소벤처기업부
서비스분야행정·안전
신청방법기타 온라인신청
신청기한연 2-3회 공고기간 존재
자세히 보기
시장경영지원중소벤처기업부
서비스분야생활안정
신청방법기타 온라인신청||방문신청
신청기한접수기관 별 상이
자세히 보기
로직 설명
  1. API URL - https://api.odcloud.kr/api/gov24/v3/serviceList
  2. serviceKey - authkey ( 참고 : https://www.data.go.kr/data/15113968/openapi.do )
  3. 파라미터
    • 등록일시(이상) : cond[등록일시::GTE]
    • 등록일시(이하) : cond[등록일시::LTE]
    • 소관기관유형 : cond[소관기관유형::LIKE]
    • 기타 파라미터 : https://www.data.go.kr/data/15113968/openapi.do 참고
  4. 사용한 로직
    /**
     * 정부혜택 서비스 관련 API
     */
    export class PublicService {
    	/**
    	 * @param {string} authkey - data.go.kr 인증 키
    	 */
    	constructor(authkey) {
    		this.authkey = authkey;
    	}
    
    	async getList(opts) {
    
    		const { startDate, endDate, page=1, perPage=9, organ } = opts;
    
    		let conds = [];
    		
    		if(startDate) {
    			const strDate = DateUtil.format('yyyyMMdd', startDate);
    			conds.push(encodeURIComponent('cond[등록일시::GTE]')+`=${strDate}`);
    		} else {
    			const date = new Date();
    			date.setFullYear(date.getFullYear() - 1);
    			date.setMonth(0);
    			date.setDate(1);
    			
    			const strDate = DateUtil.format('yyyyMMdd', date);
    			conds.push(encodeURIComponent('cond[등록일시::GTE]')+`=${strDate}`);
    		}
    
    		if(endDate) {
    			const strDate = DateUtil.format('yyyyMMdd', endDate);
    			conds.push(encodeURIComponent('cond[등록일시::LTE]')+`=${strDate}`);
    		}
    
    		if(organ) {
    			conds.push(encodeURIComponent('cond[소관기관유형::LIKE]')+`=${organ}`);
    		}
    
    		const cond = conds.join('&');
    
    		const fetchUrl = 'https://api.odcloud.kr/api/gov24/v3/serviceList';
    		const url = `${fetchUrl}?serviceKey=${this.authkey}&page=${page}&perPage=${perPage}&${cond}`;
    
    		const res = await fetch(url, {
    			headers: {
    				'accept': 'application/json'
    			}
    		});
    		if (!res.ok) {
    			throw new Error('API 응답 실패');
    		}
    
    		return await res.json();
    	}
    }