공통 사항

Common Response

공통응답

코드 코드명

result

데이터

code

응답코드

message

메시지

에러코드

코드 코드명

1001

토큰을 찾을 수 없습니다.

1002

토큰이 만료되었습니다.

1003

토큰의 서명이 유효하지 않습니다.

1004

권한 정보가 없는 토큰입니다.

1005

지원하지 않는 토큰입니다.

1006

리프레시 토큰이 유효하지 않습니다.

1007

데이터베이스에 있는 리프레시 토큰과 다릅니다.

1008

리프레시 토큰 기한이 만료되었습니다.

1009

권한이 없는 유저입니다.

1010

애플 공개키 생성에 실패했습니다.

1011

애플 공개키와 맞지 않습니다.

1012

애플에서 제공한 발행처와 맞지 않습니다.

1013

애플에서 제공한 수신자와 맞지 않습니다.

1014

토큰 처리 과정에 문제가 생겼습니다.

1015

로그인 타입이 올바르지 않습니다.

1016

카카오 키가 만료되었습니다.

1017

Access Token 이 아직 만료되지 않았습니다. Access Token 을 이용해주세요.

2001

데이터베이스에 없는 유저입니다.

2002

중복된 닉네임 입니다.

2003

중복된 이메일과 소셜 타입입니다.

2004

닉네임은 1~7자의 영문 대소문자, 숫자, 한글로만 입력해주세요.

2005

임시 회원가입된 유저입니다. 추가 정보를 입력해주세요.

2006

생년월일이 null 입니다.

3001

데이터베이스에 없는 정책입니다.

4001

데이터베이스에 없는 유저 정책입니다.

4002

이미 등록된 관심 정책입니다.

4003

이미 등록된 수혜 정책입니다.

5001

FIREBASE 서버 오류

6001

데이터베이스에 없는 피드입니다.

6002

이미 등록된 피드 제목입니다.

8001

gender 값이 올바르지 않은 값입니다.

8002

education 값이 올바르지 않은 값입니다.

8003

job 이 올바르지 않은 값입니다.

8005

area 값이 올바르지 않은 값입니다.

8006

providerType 값이 올바르지 않은 값입니다.

8007

supportPolicyType 값이 올바르지 않은 값입니다.

8008

policyType 값이 올바르지 않은 값입니다.

8009

city 값이 올바르지 않은 값입니다.

8010

policyDateType 이 올바르지 않은 값입니다.

8011

money 를 추출할 수 없습니다.

8012

houseHoldSize 값이 올바르지 않은 값입니다.

8013

educationLevel 값이 올바르지 않은 값입니다.

8014

academicStatus 값이 올바르지 않은 값입니다.

8015

specialSupportType 값이 올바르지 않은 값입니다.

8016

householdStructure 값이 올바르지 않은 값입니다.

8017

majorField 값이 올바르지 않은 값입니다.

8018

graduationTimeStatus 값이 올바르지 않은 값입니다.

8019

policyCategory 값이 올바르지 않은 값입니다.

8020

policyMethodType 값이 올바르지 않는 값입니다.

9999

에러 발생

정제 참고 Enum 목록

학교 레벨 (학적)

코드 코드명

ELEMENTARY_MIDDLE_SCHOOL

초등학교, 중학교

HIGH_SCHOOL

고등학교

UNIVERSITY

대학교

POSTGRADUATE

대학원 (석, 박사)

UNLIMITED

제한없음

학적 상태

코드 코드명

ENROLLED

재학중

LEAVE_OF_ABSENCE

휴학

EXPECTED_GRADUATION

졸업 예정

GRADUATION

졸업

가구원 수 enum

코드 코드명

ONE_MEMBER

1명

TWO_MEMBERS

2명

THREE_MEMBERS

3명

FOUR_MEMBERS

4명

FIVE_MEMBERS

5명

MORE_THAN_FIVE

5명 이상

직업 코드

코드 코드명

FULL_TIME_EMPLOYEE

정규직, 직장인

CONTRACT_WORKER

계약직 근로자

SELF_EMPLOYED

자영업자

ENTREPRENEUR

(예비, 초기) 창업자

FREELANCER

프리랜서

UNEMPLOYED

실업자, 무직자

JOB_SEEKER

구직자, 미취업자

HOMEMAKER

주부

AGRICULTURE_FISHERY_WORKER

농, 축, 수산업자

MILITARY

군인

UNLIMITED

제한없음

ETC

기타

특별 지원 타입

코드 코드명

SELF_RELIANT_YOUTH

자립준비청년

PERSON_WITH_DISABILITIES

장애인

SINGLE_PARENT_FAMILY

한부모 가정

MULTICULTURAL_FAMILY

다문화 가정

GRANDPARENT_GRANDCHILD_FAMILY

조부모와 손자녀 가정

NATIONAL_MERIT

보훈 대상자

PREGNANCY_CHILD_BIRTH

임신, 출산

NORTH_KOREAN_DEFECTOR

북한 이탈 주민

NEWLYWED_COUPLE

(예비)신혼부부

UNLIMITED

제한없음

전공

코드 코드명

HUMANITIES_SOCIAL_SCIENCES

인문사회

NATURAL_SCIENCES

자연과학

ENGINEERING

공학

ARTS_PHYSICAL_EDUCATION

예체능

MEDICAL_SCIENCES

의학

UNLIMITED

제한없음

대학 졸업 후 시간 enum

코드 코드명

TWO_YEARS_PASSED

졸업 후 2년이 지났어요

TWO_YEARS_NOT_PASSED

졸업 후 2년이 아직 안 지났어요

UNLIMITED

제한없음

정책 유형(정책 목록)

코드 코드명

NONE

전체

JOB

일자리

RESIDENCE

주거

EDUCATION

교육

WELFARE_CULTURE

문화/복지

PARTICIPATION_RIGHT

참여/권리

정책 신청 방법

코드 코드명

ONLINE

온라인신청

LETTER

우편신청

VISIT

방문신청

TEL

전화문의

BLANK

빈값

정책 카테고리(태그)

코드 코드명

CASH

현금

BANK_ACCOUNT

통장

LOAN

대출

WELFARE

복지

SPACE

공간

MEDICAL

의료

HOUSING

주거

ENTREPRENEURSHIP

창업

EMPLOYMENT

취업

EDUCATION

교육

JOB

직무

UNLIMITED

제한없음

나이 연령대

코드 코드명

NONE

전체

TEENS

10대

TWENTIES

20대

THIRTIES

30대

FORTIES

40대

FIFTIES

50대

SIXTIES

60대

SEVENTIES

70대

EIGHTIES

80대

NINETIES

90대

피드 카테고리

코드 코드명

HOME

POST_EMPLOYMENT

취업 후

JOB_PREPARATION

취업 준비

TRANSPORTATION

교통

LEISURE

여가

HEALTH

건강

NEWLYWEDS

신혼부부

STARTUP

창업

ALL

전체

알림 타입

코드 코드명

INTERESTED_BENEFIT

관심 정책

NEW_BENEFIT

새 정책

MARKETING

마케팅

Auth API

로그인 API

HTTP Request

POST /auth/login HTTP/1.1
Content-Type: application/json
Content-Length: 129
Host: referin-dev.site

{
  "providerType" : "KAKAO",
  "token" : "p1b3M_ikmtHivvFJqwY5bXAYg-ilCq4E7DnJwlT5CisM0wAAAYOPy1oR",
  "nickname" : "nickname"
}

Request Fields

Path Type Optional Description

providerType

String

소셜 로그인 제공처

token

String

소셜 토큰 (kakao는 code)

nickname

String

O

소셜 닉네임 (애플 첫 로그인 시에만 넣어주시면 됩니다.)

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 225

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "accessToken" : "access token",
    "refreshToken" : "refresh token",
    "nickname" : "유저 닉네임 test"
  }
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Object

응답 결과

result.accessToken

String

액세스토큰

result.refreshToken

String

리프레시 토큰

result.nickname

String

유저 닉네임

토큰 재발급 API

HTTP Request

POST /auth/reissue HTTP/1.1
Content-Type: application/json
Content-Length: 61
Host: referin-dev.site

{
  "refreshToken" : "07b08e93-cff6-4cc9-8880-c86ee18b776e"
}

Request Fields

Path Type Optional Description

refreshToken

String

리프레쉬 토큰

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 225

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "accessToken" : "access token",
    "refreshToken" : "refresh token",
    "nickname" : "유저 닉네임 test"
  }
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Object

응답 결과

result.accessToken

String

액세스토큰

result.refreshToken

String

리프레시 토큰

result.nickname

String

유저 닉네임

HTTP Response

HTTP/1.1 401 Unauthorized
Content-Type: application/json
Content-Length: 128

{
  "code" : 1006,
  "isSuccess" : false,
  "message" : "리프레시 토큰이 유효하지 않습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Null

응답 결과

User API

약관정보 수정 API

HTTP Request

PATCH /user/terms HTTP/1.1
Content-Type: application/json
Authorization: access token
Content-Length: 68
Host: referin-dev.site

{
  "marketingStatus" : true,
  "thirdPartyAgreementStatus" : true
}

Request Fields

Path Type Optional Description

marketingStatus

Boolean

마켓팅 동의 여부

thirdPartyAgreementStatus

Boolean

개인정보 제3자 제공 동의 여부

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 215

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "accessToken" : "Test AccessToken",
    "refreshToken" : "Test RefreshToken",
    "nickname" : "cp3"
  }
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Object

응답 결과

result.accessToken

String

액세스 토큰

result.refreshToken

String

리프레시 토큰

result.nickname

String

유저 닉네임

회원 정보 수정 API

HTTP Request

PATCH /user/modify HTTP/1.1
Content-Type: application/json
Authorization: access token
Content-Length: 535
Host: referin-dev.site

{
  "nickname" : "test",
  "areaCode" : "SEOUL",
  "cityCode" : "GANGSEO",
  "householdSize" : "THREE_MEMBERS",
  "studentStatus" : false,
  "educationLevel" : "HIGH_SCHOOL",
  "academicStatus" : "ENROLLED",
  "lastEducationLevel" : "UNIVERSITY",
  "jobTypes" : [ "FULL_TIME_EMPLOYEE" ],
  "monthlyIncome" : 100000.0,
  "juminNumber" : "9611191",
  "specialSupportTypes" : [ "NEWLYWED_COUPLE" ],
  "householderStatus" : true,
  "homeOwnerShip" : true,
  "majorField" : "ENGINEERING",
  "graduationTimeStatus" : "TWO_YEARS_NOT_PASSED"
}

Request Fields

Path Type Optional Description

nickname

String

유저 닉네임

juminNumber

String

주민번호 7자리

areaCode

String

시/도 코드

cityCode

String

시/군/구 코드

householdSize

String

가구원 수

studentStatus

Boolean

학생 여부

educationLevel

String

학교 레벨 및 학력 코드

academicStatus

String

학적 상태

lastEducationLevel

String

학교 레벨 및 학력 코드

jobTypes

Array

직업 코드

monthlyIncome

Number

한달 수입

specialSupportTypes

Array

특별 지원 유형

householderStatus

Boolean

세대주 여부

homeOwnerShip

Boolean

집 소유 여부

majorField

String

전공 분야

graduationTimeStatus

String

졸업 후 시간

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 730

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "userId" : 1,
    "nickname" : "test",
    "age" : 25,
    "gender" : "남성",
    "address" : {
      "areaCode" : "SEOUL",
      "cityCode" : "GANGSEO"
    },
    "householdSize" : "THREE_MEMBERS",
    "studentStatus" : false,
    "educationLevel" : "HIGH_SCHOOL",
    "academicStatus" : "ENROLLED",
    "lastEducationLevel" : "UNIVERSITY",
    "jobTypes" : [ "FULL_TIME_EMPLOYEE" ],
    "monthlyIncome" : 100000.0,
    "specialSupportTypes" : [ "NEWLYWED_COUPLE" ],
    "householderStatus" : true,
    "homeOwnerShip" : true,
    "majorField" : "ENGINEERING",
    "graduationTimeStatus" : "TWO_YEARS_NOT_PASSED"
  }
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Object

응답 결과

result.userId

Number

유저 ID

result.nickname

String

닉네임

result.age

Number

나이

result.gender

String

성별

result.address

Object

주소

result.address.areaCode

String

시/도 코드

result.address.cityCode

String

시/군/구 코드

result.householdSize

String

가구원 수

result.studentStatus

Boolean

학생 여부

result.educationLevel

String

학교 레벨 및 학력 코드

result.academicStatus

String

학적 상태

result.lastEducationLevel

String

학교 레벨 및 학력 코드

result.jobTypes

Array

직업 코드

result.monthlyIncome

Number

월 수입

result.specialSupportTypes

Array

특별 지원 유형

result.householderStatus

Boolean

세대주 여부

result.homeOwnerShip

Boolean

집 소유 여부

result.majorField

String

전공 분야

result.graduationTimeStatus

String

졸업 후 시간

유저 정보 조회 API

HTTP Request

GET /user HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: access token
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1383

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "userId" : 1,
    "provider" : "KAKAO",
    "userBasicInfo" : {
      "email" : "test@naver.com",
      "nickname" : "test",
      "age" : 27,
      "gender" : "남성",
      "address" : {
        "areaCode" : "SEOUL",
        "cityCode" : "GANGSEO"
      },
      "monthlyIncome" : 100000.0,
      "lastEducationLevel" : "UNIVERSITY",
      "jobTypes" : [ "FULL_TIME_EMPLOYEE" ],
      "householdSize" : "THREE_MEMBERS",
      "studentStatus" : false,
      "educationLevel" : "HIGH_SCHOOL",
      "academicStatus" : "ENROLLED",
      "specialSupportTypes" : [ "NEWLYWED_COUPLE" ]
    },
    "userAdditionalInfo" : {
      "householderStatus" : true,
      "homeOwnership" : true,
      "majorField" : "ENGINEERING",
      "graduationTimeStatus" : "TWO_YEARS_NOT_PASSED"
    },
    "userAlarmInfo" : {
      "interestBenefitNotificationStatus" : null,
      "daysBeforeStartDate" : 0,
      "daysBeforeEndDate" : 0,
      "newBenefitNotificationStatus" : null,
      "marketingNotificationStatus" : null
    },
    "userTermsInfo" : {
      "termsOfServiceStatus" : true,
      "privacyStatus" : true,
      "marketingStatus" : true,
      "marketingStatusDate" : "2024-11-06",
      "thirdPartyAgreement" : true,
      "thirdPartyAgreementDate" : "2024-11-06"
    }
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공여부

message

String

응답 메시지

result

Object

응답 결과

result.userId

Number

유저 ID

result.provider

String

유저 제공자 타입

result.userBasicInfo.email

String

유저 이메일

result.userBasicInfo.nickname

String

유저 닉네임

result.userBasicInfo.age

Number

유저 나이

result.userBasicInfo.gender

String

유저 성별

result.userBasicInfo.address

Object

유저 주소 정보

result.userBasicInfo.address.areaCode

String

유저 주소 정보

result.userBasicInfo.address.cityCode

String

유저 주소 정보

result.userBasicInfo.monthlyIncome

Number

유저 월 소득

result.userBasicInfo.lastEducationLevel

String

학교 레벨 및 학력 코드

result.userBasicInfo.jobTypes

Array

직업 코드

result.userBasicInfo.householdSize

String

가구원 수

result.userBasicInfo.studentStatus

Boolean

학생 여부

result.userBasicInfo.educationLevel

String

학교 레벨 및 학력 코드

result.userBasicInfo.academicStatus

String

학적 상태

result.userBasicInfo.specialSupportTypes

Array

특별 지원 유형

result.userAdditionalInfo.householderStatus

Boolean

집 소유 여부

result.userAdditionalInfo.homeOwnership

Boolean

세대주 여부

result.userAdditionalInfo.majorField

String

전공 분야

result.userAdditionalInfo.graduationTimeStatus

String

졸업 후 시간

result.userAlarmInfo.interestBenefitNotificationStatus

Null

관심 정책 알림 설정 여부

result.userAlarmInfo.daysBeforeStartDate

Number

알림 신청 시작일 기준

result.userAlarmInfo.daysBeforeEndDate

Number

알림 신청 종료일 기준

result.userAlarmInfo.newBenefitNotificationStatus

Null

새로운 정책 알림 설정 여부

result.userAlarmInfo.marketingNotificationStatus

Null

마케팅 알림 설정 여부

result.userTermsInfo.termsOfServiceStatus

Boolean

이용약관 동의 여부

result.userTermsInfo.privacyStatus

Boolean

개인정보처리방침 동의 여부

result.userTermsInfo.marketingStatus

Boolean

마케팅 동의 여부

result.userTermsInfo.marketingStatusDate

String

마케팅 동의 날짜

result.userTermsInfo.thirdPartyAgreement

Boolean

개인정보 제3자 제공 동의 여부

result.userTermsInfo.thirdPartyAgreementDate

String

개인정보 제3자 제공 동의 날짜

시/도 조회 API

HTTP Request

GET /user/area HTTP/1.1
Content-Type: application/json
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1071

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : [ {
    "name" : "SEOUL",
    "areaName" : "서울"
  }, {
    "name" : "INCHEON",
    "areaName" : "인천"
  }, {
    "name" : "GYEONGGI",
    "areaName" : "경기"
  }, {
    "name" : "GANGWON",
    "areaName" : "강원"
  }, {
    "name" : "CHUNGBUK",
    "areaName" : "충북"
  }, {
    "name" : "CHUNGNAM",
    "areaName" : "충남"
  }, {
    "name" : "DAEJEON",
    "areaName" : "대전"
  }, {
    "name" : "SEJONG",
    "areaName" : "세종"
  }, {
    "name" : "GYEONGBUK",
    "areaName" : "경북"
  }, {
    "name" : "GYEONGNAM",
    "areaName" : "경남"
  }, {
    "name" : "DAEGU",
    "areaName" : "대구"
  }, {
    "name" : "ULSAN",
    "areaName" : "울산"
  }, {
    "name" : "BUSAN",
    "areaName" : "부산"
  }, {
    "name" : "JEONBUK",
    "areaName" : "전북"
  }, {
    "name" : "JEONNAM",
    "areaName" : "전남"
  }, {
    "name" : "GWANGJU",
    "areaName" : "광주"
  }, {
    "name" : "JEJU",
    "areaName" : "제주"
  } ]
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Array

응답 결과

result[].name

String

시/도 코드

result[].areaName

String

시/도 한글 이름

시/군/구 조회 API

HTTP Request

GET /user/city?areaCode=SEOUL HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
Request Parameters
파라미터 필수값 설명

areaCode

true

시/도 코드

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1615

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : [ {
    "name" : "JONGRO",
    "cityName" : "종로구"
  }, {
    "name" : "JUNG",
    "cityName" : "중구"
  }, {
    "name" : "YONGSAN",
    "cityName" : "용산구"
  }, {
    "name" : "SUNGDONG",
    "cityName" : "성동구"
  }, {
    "name" : "GWANGJIN",
    "cityName" : "광진구"
  }, {
    "name" : "DONGDAEMUN",
    "cityName" : "동대문구"
  }, {
    "name" : "JUNGNANG",
    "cityName" : "중랑구"
  }, {
    "name" : "SUNGBUK",
    "cityName" : "성북구"
  }, {
    "name" : "GANGBUK",
    "cityName" : "강북구"
  }, {
    "name" : "DOBONG",
    "cityName" : "도봉구"
  }, {
    "name" : "NOWON",
    "cityName" : "노원구"
  }, {
    "name" : "EUNPYEONG",
    "cityName" : "은평구"
  }, {
    "name" : "SEODAEMUN",
    "cityName" : "서대문구"
  }, {
    "name" : "MAPO",
    "cityName" : "마포구"
  }, {
    "name" : "YANGCHEON",
    "cityName" : "양천구"
  }, {
    "name" : "GANGSEO",
    "cityName" : "강서구"
  }, {
    "name" : "GURO",
    "cityName" : "구로구"
  }, {
    "name" : "GUMCHEON",
    "cityName" : "금천구"
  }, {
    "name" : "YEONGDEUNGPO",
    "cityName" : "영등포구"
  }, {
    "name" : "DONGJAK",
    "cityName" : "동작구"
  }, {
    "name" : "GWANAK",
    "cityName" : "관악구"
  }, {
    "name" : "SECHO",
    "cityName" : "서초구"
  }, {
    "name" : "GANGNAM",
    "cityName" : "강남구"
  }, {
    "name" : "SONGPA",
    "cityName" : "송파구"
  }, {
    "name" : "GANGDONG",
    "cityName" : "강동구"
  } ]
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Array

응답 결과

result[].name

String

시/군/구 코드

result[].cityName

String

시/군/구 한글 이름

유저 삭제 API

HTTP Request

DELETE /user HTTP/1.1
Content-Type: application/json
Authorization: access token
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공여부

message

String

응답 메시지

result

Null

응답 결과

알람 정보 조회 API

HTTP Request

GET /user/notification HTTP/1.1
Authorization: access token
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 255

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "daysBeforeStartDate" : 3,
    "daysBeforeEndDate" : 1,
    "newBenefitNotificationStatus" : true,
    "marketingNotificationStatus" : false
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result

Object

응답 결과

result.daysBeforeStartDate

Number

O

알림 신청 시작일 기준

result.daysBeforeEndDate

Number

O

알림 신청 종료일 기준

result.newBenefitNotificationStatus

Boolean

새로운 정책 알림 설정 여부

result.marketingNotificationStatus

Boolean

마케팅 알림 설정 여부

알림 정보 수정 API

HTTP Request

PATCH /user/notification HTTP/1.1
Content-Type: application/json
Authorization: access token
Content-Length: 140
Host: referin-dev.site

{
  "daysBeforeStartDate" : 3,
  "daysBeforeEndDate" : 1,
  "newBenefitNotificationStatus" : true,
  "marketingNotificationStatus" : false
}

Request Fields

Path Type Optional Description

daysBeforeStartDate

Number

O

알림 신청 시작일 기준 (null 가능)

daysBeforeEndDate

Number

O

알림 신청 종료일 기준 (null 가능)

newBenefitNotificationStatus

Boolean

새로운 정책 알림 설정 여부

marketingNotificationStatus

Boolean

마케팅 알림 설정 여부

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result

Null

응답 결과

fcm 토큰 업데이트

HTTP Request

PATCH /user/fcm_token HTTP/1.1
Authorization: access token
fcmToken: testFcmToken
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Null

응답 결과

알림 내역 목록 조회 API

HTTP Request

GET /notify?page=0&size=10 HTTP/1.1
Content-Type: application/json
Authorization: Access Token
Accept: application/json
Host: referin-dev.site
Request Parameters
파라미터 필수값 설명

page

true

페이지 번호

size

true

페이지 당 데이터 수

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 997

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "content" : [ {
      "type" : "INTERESTED_BENEFIT",
      "typeDescription" : "관심 정책",
      "title" : "정책 신청이 곧 마감돼요",
      "content" : "관심있게 본 청년혜택정책 신청이 곧 마감돼요!",
      "imageUrl" : "https://example.com/image.png",
      "date" : "2024-01-01T00:00:00+09:00",
      "deepLink" : "receive://policy/123"
    } ],
    "pageable" : {
      "sort" : {
        "sorted" : false,
        "unsorted" : true,
        "empty" : true
      },
      "pageNumber" : 0,
      "pageSize" : 10,
      "offset" : 0,
      "paged" : true,
      "unpaged" : false
    },
    "totalPages" : 1,
    "totalElements" : 1,
    "last" : true,
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "number" : 0,
    "first" : true,
    "numberOfElements" : 1,
    "size" : 10,
    "empty" : false
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result.content[].type

String

알림 타입

result.content[].typeDescription

String

알림 타입 설명

result.content[].title

String

알림 제목

result.content[].content

String

알림 내용

result.content[].imageUrl

String

알림 이미지 URL

result.content[].date

String

알림 생성 날짜

result.content[].deepLink

String

알림 관련 딥 링크

result.pageable

Object

페이징 정보

result.pageable.sort

Object

정렬 정보

result.pageable.sort.sorted

Boolean

정렬 여부

result.pageable.sort.unsorted

Boolean

비정렬 여부

result.pageable.sort.empty

Boolean

비어 있는 정렬 정보 여부

result.pageable.offset

Number

오프셋

result.pageable.pageSize

Number

페이지 크기

result.pageable.pageNumber

Number

페이지 번호

result.pageable.paged

Boolean

페이지 여부

result.pageable.unpaged

Boolean

비페이지 여부

result.totalElements

Number

총 요소 수

result.totalPages

Number

총 페이지 수

result.last

Boolean

마지막 페이지 여부

result.size

Number

페이지 크기

result.number

Number

현재 페이지 번호

result.sort

Object

현재 정렬 정보

result.sort.sorted

Boolean

현재 정렬 여부

result.sort.unsorted

Boolean

현재 비정렬 여부

result.sort.empty

Boolean

현재 비어 있는 정렬 정보 여부

result.numberOfElements

Number

현재 페이지 요소 수

result.first

Boolean

첫 페이지 여부

result.empty

Boolean

비어 있는 페이지 여부

Policy API

HTTP Request

GET /policy/popular HTTP/1.1
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 616

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "populars" : [ {
      "keyword" : "청년 정책1"
    }, {
      "keyword" : "청년 정책2"
    }, {
      "keyword" : "청년 정책3"
    }, {
      "keyword" : "청년 정책4"
    }, {
      "keyword" : "청년 정책5"
    }, {
      "keyword" : "청년 정책6"
    }, {
      "keyword" : "청년 정책7"
    }, {
      "keyword" : "청년 정책8"
    }, {
      "keyword" : "청년 정책9"
    }, {
      "keyword" : "청년 정책10"
    } ],
    "batchExecuteTime" : "2024.08.05 00:00"
  }
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Object

응답 결과

result.populars

Array

인기검색어

result.populars[].keyword

String

키워드

result.batchExecuteTime

String

배치 실행 시간

정책 상세 조회 API

HTTP Request

GET /policy/1 HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
End Point

/policy/{policyId}

Path Parameters
파라미터 양식 설명

policyId

정책 ID

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1678

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "policyId" : 12,
    "topInfo" : {
      "policyName" : "청년도약계좌",
      "imageUrl" : "https://example.com/image.png",
      "organization" : "중앙정부",
      "policyCategories" : [ "복지", "현금" ],
      "summary" : "청년들에게 자립 기회를 제공하는 지원 정책",
      "benefitInfo" : "100만원",
      "applyStatus" : true,
      "interestStatus" : true,
      "dday" : 10
    },
    "qualificationInfo" : [ {
      "name" : "age",
      "title" : "나이",
      "content" : "20 ~ 39세",
      "applyStatus" : true
    }, {
      "name" : "region",
      "title" : "지역",
      "content" : "서울 강서구",
      "applyStatus" : true
    }, {
      "name" : "income",
      "title" : "소득",
      "content" : "월 소득 3000만원 이하",
      "applyStatus" : true
    }, {
      "name" : "job",
      "title" : "직업",
      "content" : "창업자, 가정주부",
      "applyStatus" : true
    }, {
      "name" : "specialSupportType",
      "title" : "특화대상",
      "content" : "다문화가정, 신혼부부",
      "applyStatus" : true
    }, {
      "name" : "specialNotes",
      "title" : "특이사항",
      "content" : null,
      "applyStatus" : true
    } ],
    "supportContent" : "월 100만원 지급",
    "applicationMethod" : {
      "period" : "2024.01.01 - 2024.12.31",
      "method" : [ "홈페이지 신청" ],
      "requiredDocuments" : [ "신분증", "소득 증빙 서류" ],
      "contactPhone" : "02-1234-5678"
    },
    "applicationUrl" : "https://example.com/apply"
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result

Object

정책 상세 정보

result.policyId

Number

정책 ID

result.topInfo

Object

정책 상단 정보

result.topInfo.policyName

String

정책 이름

result.topInfo.imageUrl

String

정책 이미지 URL

result.topInfo.organization

String

O

정책 기관

result.topInfo.policyCategories

Array

정책 태그

result.topInfo.dday

Number

디데이

result.topInfo.summary

String

정책 요약

result.topInfo.benefitInfo

String

O

수혜 정보

result.topInfo.applyStatus

Boolean

O

신청 가능 여부

result.topInfo.interestStatus

Boolean

O

관심 정책 여부

result.qualificationInfo

Array

지원대상

result.qualificationInfo[].name

String

지원대상 이름

result.qualificationInfo[].title

String

지원대상 제목

result.qualificationInfo[].content

String

O

지원대상 내용

result.qualificationInfo[].applyStatus

Boolean

O

지원대상 목록 신청 가능 여부

result.supportContent

String

지원내용

result.applicationMethod

Object

신청방법

result.applicationMethod.period

String

신청 기간

result.applicationMethod.requiredDocuments

Array

O

필요 서류

result.applicationMethod.method

Array

O

신청 방법

result.applicationMethod.contactPhone

String

O

문의 전화

result.applicationUrl

String

O

관련 링크

정책 목록 조회 API

HTTP Request

POST /policy/search HTTP/1.1
Content-Type: application/json
deviceToken: deviceTokenValue
Content-Length: 458
Host: referin-dev.site

{
  "policyType" : "JOB",
  "keyword" : "청년",
  "page" : 0,
  "size" : 10,
  "sortInfo" : {
    "sortField" : "latest",
    "sortOrder" : "ASC"
  },
  "filterInfo" : {
    "areaCode" : [ "SEOUL" ],
    "filterEducationTypes" : [ "COLLEGE_GRADUATE_OR_ABOVE" ],
    "specialSupportTypes" : [ "PERSON_WITH_DISABILITIES" ],
    "minAge" : 20,
    "maxAge" : 35,
    "policyTypes" : [ "JOB", "RESIDENCE" ],
    "policyCategories" : [ "HOUSING", "CASH" ]
  }
}

Request Fields

Path Type Optional Description

page

Number

조회할 페이지 번호

size

Number

페이지당 레코드 수

keyword

String

O

검색할 키워드

policyType

String

정책 유형

sortInfo

Object

정렬 요청 정보

sortInfo.sortField

String

정렬 필드

sortInfo.sortOrder

String

정렬 순서

filterInfo

Object

필터 요청 정보

filterInfo.areaCode

Array

O

지역 필터

filterInfo.filterEducationTypes

Array

O

필터 학력 유형

filterInfo.specialSupportTypes

Array

O

특별 지원 유형

filterInfo.minAge

Number

O

최소 나이 필터

filterInfo.maxAge

Number

O

최대 나이 필터

filterInfo.policyTypes

Array

O

정책 유형

filterInfo.policyCategories

Array

O

정책 카테고리(태그)

HTTP Header
Name Description

deviceToken

인기 검색어 저장하기 위한 deviceToken

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1026

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "content" : [ {
      "policyId" : 1,
      "policyName" : "Test Policy",
      "benefitInfo" : "100만원",
      "imageUrl" : "https://referin-dev.site/image/policycategory/CASH.svg",
      "dday" : 10
    }, {
      "policyId" : 1,
      "policyName" : "Test Policy",
      "benefitInfo" : "100만원",
      "imageUrl" : "https://referin-dev.site/image/policycategory/CASH.svg",
      "dday" : 10
    } ],
    "pageable" : {
      "sort" : {
        "sorted" : false,
        "unsorted" : true,
        "empty" : true
      },
      "pageNumber" : 0,
      "pageSize" : 10,
      "offset" : 0,
      "paged" : true,
      "unpaged" : false
    },
    "totalPages" : 1,
    "totalElements" : 2,
    "last" : true,
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "number" : 0,
    "first" : true,
    "numberOfElements" : 2,
    "size" : 10,
    "empty" : false
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

메시지

result

Object

응답 결과

result.content[].policyId

Number

정책 ID

result.content[].policyName

String

정책 이름

result.content[].benefitInfo

String

O

수혜 사항

result.content[].dday

Number

디데이

result.content[].imageUrl

String

정책 이미지 URL

result.pageable

Object

페이징 정보

result.pageable.sort

Object

정렬 정보

result.pageable.sort.sorted

Boolean

정렬 여부

result.pageable.sort.unsorted

Boolean

비정렬 여부

result.pageable.sort.empty

Boolean

비어 있는 정렬 정보 여부

result.pageable.offset

Number

오프셋

result.pageable.pageSize

Number

페이지 크기

result.pageable.pageNumber

Number

페이지 번호

result.pageable.paged

Boolean

페이지 여부

result.pageable.unpaged

Boolean

비페이지 여부

result.totalElements

Number

총 요소 수

result.totalPages

Number

총 페이지 수

result.last

Boolean

마지막 페이지 여부

result.size

Number

페이지 크기

result.number

Number

현재 페이지 번호

result.sort

Object

현재 정렬 정보

result.sort.sorted

Boolean

현재 정렬 여부

result.sort.unsorted

Boolean

현재 비정렬 여부

result.sort.empty

Boolean

현재 비어 있는 정렬 정보 여부

result.numberOfElements

Number

현재 페이지 요소 수

result.first

Boolean

첫 페이지 여부

result.empty

Boolean

비어 있는 페이지 여부

정책 카테고리 조회 API

HTTP Request

GET /policy/category HTTP/1.1
Content-Type: application/json
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 962

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : [ {
    "name" : "NONE",
    "description" : "전체",
    "imageUrl" : "https://referin-dev.site/image/policytype/NONE.svg"
  }, {
    "name" : "JOB",
    "description" : "일자리",
    "imageUrl" : "https://referin-dev.site/image/policytype/JOB.svg"
  }, {
    "name" : "RESIDENCE",
    "description" : "주거",
    "imageUrl" : "https://referin-dev.site/image/policytype/RESIDENCE.svg"
  }, {
    "name" : "EDUCATION",
    "description" : "교육",
    "imageUrl" : "https://referin-dev.site/image/policytype/EDUCATION.svg"
  }, {
    "name" : "WELFARE_CULTURE",
    "description" : "문화/복지",
    "imageUrl" : "https://referin-dev.site/image/policytype/WELFARE_CULTURE.svg"
  }, {
    "name" : "PARTICIPATION_RIGHT",
    "description" : "참여/권리",
    "imageUrl" : "https://referin-dev.site/image/policytype/PARTICIPATION_RIGHT.svg"
  } ]
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result

Array

정책 상세 정보

result[].name

String

정책 카테고리 코드

result[].description

String

정책 카테고리 설명

result[].imageUrl

String

정책 카테고리 설명

홈 화면 추천 정책 API

HTTP Request

GET /policy/recommend HTTP/1.1
Content-Type: application/json
Authorization: Access Token
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1559

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : [ {
    "policyId" : 1,
    "policyName" : "국립예술단체 무대에서 꿈을 펼칠 청년예술가 260명 찾습니다",
    "imageUrl" : "imageUrl",
    "summary" : "국립예술단체와 기관에서 청년 교육단원을 통합 공모해요. 지난해보다 3배 이상 확대 운영하며, 공공 무대 참여 기회와 활동 지원금을 제공해드려요.",
    "benefitMoney" : "12",
    "benefitInfo" : null,
    "dday" : -1
  }, {
    "policyId" : 2,
    "policyName" : "넥스트로컬 6기(지역연계형 청년창업 지원사업)",
    "imageUrl" : "imageUrl",
    "summary" : "전국 지자체 협력을 통해 서울 청년의 지역자원 발굴과 창업 모델화를 지원하는 프로젝트예요.",
    "benefitMoney" : null,
    "benefitInfo" : "창업 지원",
    "dday" : 1
  }, {
    "policyId" : 3,
    "policyName" : "공정채용컨설팅",
    "imageUrl" : "imageUrl",
    "summary" : "기업의 공정하고 투명한 채용을 위해 컨설팅과 면접 교육을 제공해드려요.",
    "benefitMoney" : null,
    "benefitInfo" : "컨설팅과 면접 교육 제공",
    "dday" : 2
  }, {
    "policyId" : 4,
    "policyName" : "농촌에서 일하고 쉬는 워케이션 참가비 지원",
    "imageUrl" : "imageUrl",
    "summary" : "농촌형 워케이션 확산을 위해 기업과 근로자의 참가비를 지원해드려요.",
    "benefitMoney" : "5",
    "benefitInfo" : null,
    "dday" : 3
  } ]
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result[].policyId

Number

정책 ID

result[].policyName

String

정책 이름

result[].imageUrl

String

정책 로고

result[].summary

String

정책 요약

result[].benefitMoney

String

O

수혜 금액

result[].benefitInfo

String

O

혜택 정보

result[].dday

Number

D-Day 정보

연령대별 인기 혜택 API

HTTP Request

GET /policy/view/count?ageRange=TWENTIES HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
Request Parameters
파라미터 필수값 설명

ageRange

true

나이 연령대

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1208

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : [ {
    "policyId" : 2036,
    "policyName" : "송파 ICT청년창업지원센터 운영",
    "imageUrl" : "image",
    "benefitInfo" : "test",
    "dday" : -1
  }, {
    "policyId" : 2420,
    "policyName" : "넥스트로컬 6기(지역연계형 청년창업 지원사업)",
    "imageUrl" : "image",
    "benefitInfo" : "test",
    "dday" : -1
  }, {
    "policyId" : 2689,
    "policyName" : "로컬 팝업스토어 청년 CEO 발굴·육성사업",
    "imageUrl" : "image",
    "benefitInfo" : "test",
    "dday" : -1
  }, {
    "policyId" : 2690,
    "policyName" : "면접정장대여- 취업준비프리패스 [취준PASS]",
    "imageUrl" : "image",
    "benefitInfo" : "test",
    "dday" : -1
  }, {
    "policyId" : 2720,
    "policyName" : "2024 청년도전 지원사업 참여자 모집",
    "imageUrl" : "image",
    "benefitInfo" : "test",
    "dday" : -1
  }, {
    "policyId" : 2724,
    "policyName" : "2024년 구미시 청년창업지원사업 (청년 스타트업-6기, 청년 창업지원사업-15기)",
    "imageUrl" : "image",
    "benefitInfo" : "test",
    "dday" : 0
  } ]
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공여부

message

String

응답 메시지

result

Array

응답 결과

result[].policyId

Number

정책 ID

result[].policyName

String

정책 이름

result[].benefitInfo

String

정책 혜택 정보

result[].imageUrl

String

정책 로고

result[].dday

Number

정책 종료일까지 남은 일수

정책 필터 정보 조회 API

HTTP Request

GET /policy/filter HTTP/1.1
Content-Type: application/json
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 3673

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "areaFilterInfos" : [ {
      "name" : "SEOUL",
      "description" : "서울"
    }, {
      "name" : "INCHEON",
      "description" : "인천"
    }, {
      "name" : "GYEONGGI",
      "description" : "경기"
    }, {
      "name" : "GANGWON",
      "description" : "강원"
    }, {
      "name" : "CHUNGBUK",
      "description" : "충북"
    }, {
      "name" : "CHUNGNAM",
      "description" : "충남"
    }, {
      "name" : "DAEJEON",
      "description" : "대전"
    }, {
      "name" : "SEJONG",
      "description" : "세종"
    }, {
      "name" : "GYEONGBUK",
      "description" : "경북"
    }, {
      "name" : "GYEONGNAM",
      "description" : "경남"
    }, {
      "name" : "DAEGU",
      "description" : "대구"
    }, {
      "name" : "ULSAN",
      "description" : "울산"
    }, {
      "name" : "BUSAN",
      "description" : "부산"
    }, {
      "name" : "JEONBUK",
      "description" : "전북"
    }, {
      "name" : "JEONNAM",
      "description" : "전남"
    }, {
      "name" : "GWANGJU",
      "description" : "광주"
    }, {
      "name" : "JEJU",
      "description" : "제주"
    } ],
    "educationFilterInfos" : [ {
      "name" : "HIGH_SCHOOL_OR_BELOW",
      "description" : "고졸 이하"
    }, {
      "name" : "COLLEGE_UNDERGRADUATE",
      "description" : "대학 재학"
    }, {
      "name" : "COLLEGE_GRADUATE_EXPECTED",
      "description" : "대졸 예정"
    }, {
      "name" : "COLLEGE_GRADUATE_OR_ABOVE",
      "description" : "대졸 이상"
    } ],
    "specialSupportTypeFilterInfos" : [ {
      "name" : "SELF_RELIANT_YOUTH",
      "description" : "자립준비청년"
    }, {
      "name" : "PERSON_WITH_DISABILITIES",
      "description" : "장애인"
    }, {
      "name" : "SINGLE_PARENT_FAMILY",
      "description" : "한부모 가정"
    }, {
      "name" : "MULTICULTURAL_FAMILY",
      "description" : "다문화 가정"
    }, {
      "name" : "GRANDPARENT_GRANDCHILD_FAMILY",
      "description" : "조부모와 손자녀 가정"
    }, {
      "name" : "NATIONAL_MERIT",
      "description" : "보훈 대상자"
    }, {
      "name" : "PREGNANCY_CHILD_BIRTH",
      "description" : "임신, 출산"
    }, {
      "name" : "NORTH_KOREAN_DEFECTOR",
      "description" : "북한 이탈 주민"
    }, {
      "name" : "NEWLYWED_COUPLE",
      "description" : "(예비)신혼부부"
    } ],
    "policyCategoryFilterInfos" : [ {
      "name" : "JOB",
      "description" : "일자리"
    }, {
      "name" : "RESIDENCE",
      "description" : "주거"
    }, {
      "name" : "EDUCATION",
      "description" : "교육"
    }, {
      "name" : "WELFARE_CULTURE",
      "description" : "문화/복지"
    }, {
      "name" : "PARTICIPATION_RIGHT",
      "description" : "참여/권리"
    } ],
    "policyTypeFilterInfos" : [ {
      "name" : "CASH",
      "description" : "현금"
    }, {
      "name" : "BANK_ACCOUNT",
      "description" : "통장"
    }, {
      "name" : "LOAN",
      "description" : "대출"
    }, {
      "name" : "WELFARE",
      "description" : "복지"
    }, {
      "name" : "SPACE",
      "description" : "공간"
    }, {
      "name" : "MEDICAL",
      "description" : "의료"
    }, {
      "name" : "HOUSING",
      "description" : "주거"
    }, {
      "name" : "ENTREPRENEURSHIP",
      "description" : "창업"
    }, {
      "name" : "EMPLOYMENT",
      "description" : "취업"
    }, {
      "name" : "EDUCATION",
      "description" : "교육"
    }, {
      "name" : "JOB",
      "description" : "직무"
    } ]
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result.areaFilterInfos

Array

지역 필터 정보 목록

result.areaFilterInfos[].name

String

지역 필터 이름

result.areaFilterInfos[].description

String

지역 필터 설명

result.educationFilterInfos

Array

학력 필터 정보 목록

result.educationFilterInfos[].name

String

학력 필터 이름

result.educationFilterInfos[].description

String

학력 필터 설명

result.specialSupportTypeFilterInfos

Array

특화 지원 필터 정보 목록

result.specialSupportTypeFilterInfos[].name

String

특화 지원 필터 이름

result.specialSupportTypeFilterInfos[].description

String

특화 지원 필터 설명

result.policyCategoryFilterInfos

Array

정책 카테고리 필터 정보 목록

result.policyCategoryFilterInfos[].name

String

정책 카테고리 필터 이름

result.policyCategoryFilterInfos[].description

String

정책 카테고리 필터 설명

result.policyTypeFilterInfos

Array

정책 유형 필터 정보 목록

result.policyTypeFilterInfos[].name

String

정책 유형 필터 이름

result.policyTypeFilterInfos[].description

String

정책 유형 필터 설명

Feed API

피드 조회 API

HTTP Request

GET /feed/1 HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
End Point

/feed/{id}

Path Parameters
파라미터 양식 설명

id

조회할 피드의 ID

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1258

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "title" : "월세 지원, 저도 받을 수 있을까요?",
    "imageUrl" : "image url",
    "summary" : "오늘은 자취생이라면 누구나 고민인 월세! 여러분들의 자취 비용 부담을 덜어드릴 ‘청년월세 특별지원’ 혜택을 소개해 드릴게요 \uD83D\uDD25",
    "contentDate" : "2024년 9월 9일에 작성된 글이에요.",
    "components" : [ {
      "id" : 1,
      "componentType" : "TITLE",
      "content" : {
        "text" : "제목"
      }
    }, {
      "id" : 1,
      "componentType" : "CONTENT",
      "content" : {
        "text" : "내용"
      }
    }, {
      "id" : 1,
      "componentType" : "SUB_TITLE",
      "content" : {
        "text" : "부 제목"
      }
    }, {
      "id" : 1,
      "componentType" : "DIVIDER",
      "content" : {
        "dividerColor" : "0x000000",
        "dividerHeight" : 20,
        "paddingTop" : 10,
        "paddingBottom" : 10
      }
    } ],
    "policyInfo" : {
      "policyId" : 1,
      "policyName" : "청년 월세 지원",
      "imageUrl" : "https://example_image.test",
      "benefitInfo" : "월 20만원",
      "dday" : 10
    }
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result.title

String

피드 제목

result.imageUrl

String

이미지 URL

result.summary

String

피드 요약

result.contentDate

String

피드 작성 날짜

result.components

Array

컴포넌트 리스트

result.components[].id

Number

컴포넌트 ID

result.components[].componentType

String

컴포넌트 타입

result.components[].content.text

String

O

컴포넌트 텍스트 내용

result.components[].content.dividerColor

String

O

구분선 색상

result.components[].content.dividerHeight

Number

O

구분선 높이

result.components[].content.paddingTop

Number

O

위쪽 여백

result.components[].content.paddingBottom

Number

O

아래쪽 여백

result.policyInfo.policyId

Number

정책 ID

result.policyInfo.policyName

String

정책 이름

result.policyInfo.imageUrl

String

정책 로고

result.policyInfo.benefitInfo

String

O

정책 수혜 사항

result.policyInfo.dday

Number

정책 디데이

피드 목록 조회 API

HTTP Request

GET /feed/list?page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: referin-dev.site

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 888

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "content" : [ {
      "feedId" : 1,
      "imageUrl" : "imageUrl1",
      "title" : "피드 1",
      "summary" : "피드 1의 요약"
    }, {
      "feedId" : 2,
      "imageUrl" : "imageUrl2",
      "title" : "피드 2",
      "summary" : "피드 2의 요약"
    } ],
    "pageable" : {
      "sort" : {
        "sorted" : false,
        "unsorted" : true,
        "empty" : true
      },
      "pageNumber" : 0,
      "pageSize" : 10,
      "offset" : 0,
      "paged" : true,
      "unpaged" : false
    },
    "totalPages" : 1,
    "totalElements" : 2,
    "last" : true,
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "number" : 0,
    "first" : true,
    "numberOfElements" : 2,
    "size" : 10,
    "empty" : false
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result.content[].feedId

Number

피드 ID

result.content[].imageUrl

String

이미지 URL

result.content[].title

String

피드 제목

result.content[].summary

String

피드 요약

result.pageable.sort.sorted

Boolean

정렬 여부

result.pageable.sort.unsorted

Boolean

비정렬 여부

result.pageable.sort.empty

Boolean

정렬 비어있음 여부

result.pageable.pageNumber

Number

페이지 번호

result.pageable.pageSize

Number

페이지 크기

result.pageable.offset

Number

오프셋

result.pageable.paged

Boolean

페이징 처리 여부

result.pageable.unpaged

Boolean

페이징 처리되지 않음 여부

result.totalPages

Number

전체 페이지 수

result.totalElements

Number

전체 요소 수

result.size

Number

페이지당 요소 수

result.number

Number

현재 페이지 번호

result.numberOfElements

Number

현재 페이지에 포함된 요소 수

result.first

Boolean

첫 번째 페이지 여부

result.last

Boolean

마지막 페이지 여부

result.empty

Boolean

비어있는 페이지 여부

result.sort.unsorted

Boolean

비정렬 여부

result.sort.sorted

Boolean

정렬 여부

result.sort.empty

Boolean

정렬 비어있음 여부

피드 카테고리로 피드 목록 조회 API

HTTP Request

GET /feed/list/category?feedCategory=HOME&page=0&size=10 HTTP/1.1
Content-Type: application/json
Host: referin-dev.site
Request Parameters
파라미터 필수값 설명

feedCategory

true

피드 카테고리

page

true

페이지 번호 (0부터 시작)

size

true

페이지 크기

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 888

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "content" : [ {
      "feedId" : 1,
      "imageUrl" : "imageUrl1",
      "title" : "피드 1",
      "summary" : "피드 1의 요약"
    }, {
      "feedId" : 2,
      "imageUrl" : "imageUrl2",
      "title" : "피드 2",
      "summary" : "피드 2의 요약"
    } ],
    "pageable" : {
      "sort" : {
        "sorted" : false,
        "unsorted" : true,
        "empty" : true
      },
      "pageNumber" : 0,
      "pageSize" : 10,
      "offset" : 0,
      "paged" : true,
      "unpaged" : false
    },
    "totalPages" : 1,
    "totalElements" : 2,
    "last" : true,
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "number" : 0,
    "first" : true,
    "numberOfElements" : 2,
    "size" : 10,
    "empty" : false
  }
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result.content[].feedId

Number

피드 ID

result.content[].imageUrl

String

이미지 URL

result.content[].title

String

피드 제목

result.content[].summary

String

피드 요약

result.pageable.sort.sorted

Boolean

정렬 여부

result.pageable.sort.unsorted

Boolean

비정렬 여부

result.pageable.sort.empty

Boolean

정렬 비어있음 여부

result.pageable.pageNumber

Number

페이지 번호

result.pageable.pageSize

Number

페이지 크기

result.pageable.offset

Number

오프셋

result.pageable.paged

Boolean

페이징 처리 여부

result.pageable.unpaged

Boolean

페이징 처리되지 않음 여부

result.totalPages

Number

전체 페이지 수

result.totalElements

Number

전체 요소 수

result.size

Number

페이지당 요소 수

result.number

Number

현재 페이지 번호

result.numberOfElements

Number

현재 페이지에 포함된 요소 수

result.first

Boolean

첫 번째 페이지 여부

result.last

Boolean

마지막 페이지 여부

result.empty

Boolean

비어있는 페이지 여부

result.sort.unsorted

Boolean

비정렬 여부

result.sort.sorted

Boolean

정렬 여부

result.sort.empty

Boolean

정렬 비어있음 여부

피드 저장 API

HTTP Request

POST /feed HTTP/1.1
Content-Type: application/json
Content-Length: 953
Host: referin-dev.site

{
  "feedCategories" : [ "HOME", "POST_EMPLOYMENT" ],
  "title" : "월세 지원, 저도 받을 수 있을까요?",
  "summary" : "자취생 월세 지원 정책 소개",
  "components" : [ {
    "id" : 4,
    "componentType" : "TITLE",
    "text" : "제목",
    "dividerColor" : null,
    "dividerHeight" : null,
    "paddingTop" : null,
    "paddingBottom" : null
  }, {
    "id" : 5,
    "componentType" : "CONTENT",
    "text" : "내용",
    "dividerColor" : null,
    "dividerHeight" : null,
    "paddingTop" : null,
    "paddingBottom" : null
  }, {
    "id" : 6,
    "componentType" : "SUB_TITLE",
    "text" : "부 제목",
    "dividerColor" : null,
    "dividerHeight" : null,
    "paddingTop" : null,
    "paddingBottom" : null
  }, {
    "id" : 7,
    "componentType" : "DIVIDER",
    "text" : null,
    "dividerColor" : "0x000000",
    "dividerHeight" : 20,
    "paddingTop" : 10,
    "paddingBottom" : 10
  } ],
  "bizId" : "BIZ123456"
}

Request Fields

Path Type Optional Description

feedCategories

Array

피드 카테고리 목록

title

String

피드 제목

summary

String

피드 요약

components[].id

Number

컴포넌트 ID

components[].componentType

String

컴포넌트 타입 (TITLE, CONTENT, SUB_TITLE, DIVIDER)

components[].text

String

O

컴포넌트 텍스트 내용

components[].dividerColor

String

O

구분선 색상

components[].dividerHeight

Number

O

구분선 높이

components[].paddingTop

Number

O

위쪽 여백

components[].paddingBottom

Number

O

아래쪽 여백

bizId

String

정책 BIZ ID

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result

Null

O

결과

피드 수정 API

HTTP Request

PATCH /feed HTTP/1.1
Content-Type: application/json
Content-Length: 558
Host: referin-dev.site

{
  "feedCategories" : [ "HOME", "LEISURE" ],
  "title" : "수정된 피드 제목",
  "summary" : "수정된 피드 요약",
  "components" : [ {
    "id" : 1,
    "componentType" : "TITLE",
    "text" : "수정된 제목",
    "dividerColor" : null,
    "dividerHeight" : null,
    "paddingTop" : null,
    "paddingBottom" : null
  }, {
    "id" : 2,
    "componentType" : "CONTENT",
    "text" : "수정된 내용",
    "dividerColor" : null,
    "dividerHeight" : null,
    "paddingTop" : null,
    "paddingBottom" : null
  } ],
  "bizId" : "BIZ123456"
}

Request Fields

Path Type Optional Description

title

String

수정할 피드 제목

summary

String

O

수정할 피드 요약

bizId

String

비즈니스 ID

feedCategories

Array

O

피드 카테고리 목록

components[].id

Number

O

컴포넌트 ID

components[].componentType

String

O

컴포넌트 타입

components[].text

String

O

컴포넌트 텍스트

components[].dividerColor

String

O

구분선 색상

components[].dividerHeight

Number

O

구분선 높이

components[].paddingTop

Number

O

위쪽 여백

components[].paddingBottom

Number

O

아래쪽 여백

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result

Null

O

결과

피드 삭제 API

HTTP Request

DELETE /feed HTTP/1.1
Content-Type: application/json
Content-Length: 68
Host: referin-dev.site

{
  "feedTitle" : "월세 지원, 저도 받을 수 있을까요?"
}

Request Fields

Path Type Optional Description

feedTitle

String

피드 제목

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result

Null

O

결과

User-Policy API

관심 정책 리스트 조회 API

HTTP Request

GET /user/policy?page=0&size=10 HTTP/1.1
Content-Type: application/json
Authentication: Access Token
Host: localhost:8080
Request Parameters
파라미터 필수값 설명

page

조회할 페이지 번호

size

페이지당 레코드 수

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1222

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "content" : [ {
      "policyId" : 1,
      "policyName" : "청년도약계좌",
      "benefitInfo" : "beneift info",
      "policyIntroduction" : "월 70만원을 5년 납입하면 약 5,000만원을 적립할 수 있는 청년도약계좌",
      "imageUrl" : "정책 로고 url",
      "dday" : 10
    }, {
      "policyId" : 2,
      "policyName" : "청년도약계좌",
      "benefitInfo" : "beneift info",
      "policyIntroduction" : "월 70만원을 5년 납입하면 약 5,000만원을 적립할 수 있는 청년도약계좌",
      "imageUrl" : "정책 로고 url",
      "dday" : 10
    } ],
    "pageable" : {
      "sort" : {
        "sorted" : false,
        "unsorted" : true,
        "empty" : true
      },
      "pageNumber" : 0,
      "pageSize" : 10,
      "offset" : 0,
      "paged" : true,
      "unpaged" : false
    },
    "totalPages" : 1,
    "totalElements" : 2,
    "last" : true,
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "number" : 0,
    "first" : true,
    "numberOfElements" : 2,
    "size" : 10,
    "empty" : false
  }
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Object

응답 결과

result.content[].policyId

Number

정책 ID

result.content[].policyName

String

정책 이름

result.content[].policyIntroduction

String

정책 소개

result.content[].imageUrl

String

정책 로고

result.content[].benefitInfo

String

O

정책 혜택 정보

result.content[].dday

Number

디데이

result.pageable

Object

페이징 정보

result.pageable.sort

Object

정렬 정보

result.pageable.sort.sorted

Boolean

정렬 여부

result.pageable.sort.unsorted

Boolean

비정렬 여부

result.pageable.sort.empty

Boolean

비어 있는 정렬 정보 여부

result.pageable.offset

Number

오프셋

result.pageable.pageSize

Number

페이지 크기

result.pageable.pageNumber

Number

페이지 번호

result.pageable.paged

Boolean

페이지 여부

result.pageable.unpaged

Boolean

비페이지 여부

result.totalElements

Number

총 요소 수

result.totalPages

Number

총 페이지 수

result.last

Boolean

마지막 페이지 여부

result.size

Number

페이지 크기

result.number

Number

현재 페이지 번호

result.sort

Object

현재 정렬 정보

result.sort.sorted

Boolean

현재 정렬 여부

result.sort.unsorted

Boolean

현재 비정렬 여부

result.sort.empty

Boolean

현재 비어 있는 정렬 정보 여부

result.numberOfElements

Number

현재 페이지 요소 수

result.first

Boolean

첫 페이지 여부

result.empty

Boolean

비어 있는 페이지 여부

마감된 관심 정책 리스트 조회 API

HTTP Request

GET /user/policy/expired?page=0&size=10 HTTP/1.1
Content-Type: application/json
Authentication: Access Token
Host: referin-dev.site
Request Parameters
파라미터 필수값 설명

page

조회할 페이지 번호

size

페이지당 레코드 수

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1222

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : {
    "content" : [ {
      "policyId" : 1,
      "policyName" : "청년도약계좌",
      "benefitInfo" : "beneift info",
      "policyIntroduction" : "월 70만원을 5년 납입하면 약 5,000만원을 적립할 수 있는 청년도약계좌",
      "imageUrl" : "정책 로고 url",
      "dday" : 10
    }, {
      "policyId" : 2,
      "policyName" : "청년도약계좌",
      "benefitInfo" : "beneift info",
      "policyIntroduction" : "월 70만원을 5년 납입하면 약 5,000만원을 적립할 수 있는 청년도약계좌",
      "imageUrl" : "정책 로고 url",
      "dday" : 10
    } ],
    "pageable" : {
      "sort" : {
        "sorted" : false,
        "unsorted" : true,
        "empty" : true
      },
      "pageNumber" : 0,
      "pageSize" : 10,
      "offset" : 0,
      "paged" : true,
      "unpaged" : false
    },
    "totalPages" : 1,
    "totalElements" : 2,
    "last" : true,
    "sort" : {
      "sorted" : false,
      "unsorted" : true,
      "empty" : true
    },
    "number" : 0,
    "first" : true,
    "numberOfElements" : 2,
    "size" : 10,
    "empty" : false
  }
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Object

응답 결과

result.content[].policyId

Number

정책 ID

result.content[].policyName

String

정책 이름

result.content[].policyIntroduction

String

정책 소개

result.content[].imageUrl

String

정책 로고

result.content[].benefitInfo

String

O

정책 혜택 정보

result.content[].dday

Number

디데이

result.pageable

Object

페이징 정보

result.pageable.sort

Object

정렬 정보

result.pageable.sort.sorted

Boolean

정렬 여부

result.pageable.sort.unsorted

Boolean

비정렬 여부

result.pageable.sort.empty

Boolean

비어 있는 정렬 정보 여부

result.pageable.offset

Number

오프셋

result.pageable.pageSize

Number

페이지 크기

result.pageable.pageNumber

Number

페이지 번호

result.pageable.paged

Boolean

페이지 여부

result.pageable.unpaged

Boolean

비페이지 여부

result.totalElements

Number

총 요소 수

result.totalPages

Number

총 페이지 수

result.last

Boolean

마지막 페이지 여부

result.size

Number

페이지 크기

result.number

Number

현재 페이지 번호

result.sort

Object

현재 정렬 정보

result.sort.sorted

Boolean

현재 정렬 여부

result.sort.unsorted

Boolean

현재 비정렬 여부

result.sort.empty

Boolean

현재 비어 있는 정렬 정보 여부

result.numberOfElements

Number

현재 페이지 요소 수

result.first

Boolean

첫 페이지 여부

result.empty

Boolean

비어 있는 페이지 여부

관심 정책 저장 API

HTTP Request

POST /user/policy/1 HTTP/1.1
Content-Type: application/json
Authentication: Access Token
Host: localhost:8080
End Point

/user/policy/{policyId}

Path Parameters
파라미터 양식 설명

policyId

정책 ID

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Null

응답 결과

관심 정책 삭제 API

HTTP Request

DELETE /user/policy HTTP/1.1
Content-Type: application/json
Authentication: Access Token
Content-Length: 31
Host: referin-dev.site

{
  "policyIds" : [ 1, 2, 3 ]
}

Request Fields

Path Type Optional Description

policyIds

Array

정책 ID

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답코드

isSuccess

Boolean

성공여부

message

String

메시지

result

Null

응답 결과

TEST API

알림 전송 테스트

HTTP Request

POST /notify/test HTTP/1.1
Authorization: access Token
Host: referin-dev.site
Content-Type: application/x-www-form-urlencoded

notificationType=NEW_BENEFIT
Request Parameters
파라미터 필수값 설명

notificationType

true

알림 타입

HTTP Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 109

{
  "code" : 200,
  "isSuccess" : true,
  "message" : "요청에 성공하였습니다.",
  "result" : null
}

Response Fields

Path Type Optional Description

code

Number

응답 코드

isSuccess

Boolean

성공 여부

message

String

응답 메시지

result

Null

응답 결과