ABCDEFGHIJKLMNOPQRSTUV
1
구분기능 _id기능 명상세 설명필요 데이터우선 순위담당자응답응답
2
User
(유저)
[GET]
api/user/check-duplicate/{type}
checkDuplicate 중복체크이메일 및 닉네임 중복확인을 한다.type : email 또는 nick-name 중 택 일
text : 검사할 문자
이준영{
"resultMessage": "string",
"resultData": 0
}
3
[GET]
api/user/sign-up
signup회원가입이메일 인증후 회원가입 완료token이준영
4
[POST]
api/user/signUp
signUpUser회원가입이메일, 비밀번호, 비밀번호 재확인, 이름에 대한 정보를 받고,
회원 가입을 위한 메일 전송.

email (이메일)
upw (비밀번호)
checkUpw (비밀번호 확인)
nickName (사용자 닉네임)
phone (사용자 전화번호)
name (사용자 이름)
userPic (사용자 프로필 사진)
roleId (학부모 or 학생)
birth(생년월일)
이준영
5
[GET]
api/user/access-token
getaccessTokenaccess token 재발행access token 재발행이준영{
"resultMessage": "액세스 토큰 재발행 성공",
"resultData": "token"
}
6
[POST]
api/user/signIn
signInUser로그인이메일, 비밀번호를 정보를 받고,
DB에 있는 데이터와 동일한지 확인하고
동일하면 로그인 처리를 합니다.

email (이메일)
upw (비밀번호)
이준영{
"resultMessage": "string",
"resultData": {
"userId": 0,
"roleId": 0,
"name": "string",
"accessToken": "string"
}
}
7
[POST]
/api/user/log-out
logout로그아웃쿠키 삭제이준영{
"resultMessage": "string",
"resultData": 0
}
8
[GET]
api/user
getUser유저 정보 조회유저 정보를 조회한다.token
이준영{
"resultMessage": "string",
"resultData": {
"userId": 0,
"roleId": 0,
"name": "string",
"email": "string",
"phone": "string",
"birth": "2025-02-18",
"nickName": "string",
"userPic": "string",
"createdAt": "2025-02-18T06:30:46.383Z",
"updatedAt": "2025-02-18T06:30:46.383Z"
}
}
9
[PUT]
api/user
putUser유저 정보 수정유저 정보를 수정한다.{
"req": {
"name": "string",
"phone": "015-5675-1595",
"currentPw": "KoiW$ytR}",
"newPw": "m]=]]%}94?w0_=r_0",
"birth": "2025-02-06",
"nickName": "string"
},
"pic": "string"
}
이준영{
"resultMessage": "string",
"resultData": 0
}
10
[GET]
/api/user/temp-pw
findPassword유저 비밀번호 찾기비밀번호 재설정 링크를 이메일로 보낸다email이준영{
"resultMessage": "string",
"resultData": 0
}
11
[GET]
/api/user/temp-pw/{id}
savetemppw임시 비밀번호 저장메일로 보낸 임시 비밀번호 저장userId(유저pk)이준영
12
[GET]
/api/user/total_user
gettotaluser유저수 조회회원가입한 유저수 조회이준영
13
[DELETE]
api/user/delete
deleteUser회원탈퇴유저를 삭제한다. 삭제 시 해당 회원 리뷰, 학원정보
삭제 처리가 되어야 한다.

token
userId (이메일 pk)
upw (유저비밀번호)
이준영{
"resultMessage": "string",
"resultData": 0
}
14
realationship[DELETE]
/api/user/relationship
deleterequirerdrelationship요청 삭제자식이 부모의 이메일로 관계 등록 요청 취소
승인 전까지만 가능
{
"email": "string"
}
이준영{
"resultMessage": "string",
"resultData": 0
}
15
[GET]
/api/user/relationship/{student-id}
accpetrequire요청 승인부모가 자식한테서 온 관계 등록 요청 승인학생 pk이준영{
"resultMessage": "string",
"resultData": 0
}
16
[GET]
/api/user/relationship/list/{type}
getrelationship관계 조회관계 목록 조회type : {1:부모 입장, 2:학생 입장}이준영{
"resultMessage": "string",
"resultData": [
{
"userId": 0,
"name": "string",
"email": "string",
"phone": "string",
"birth": "2025-02-06",
"userPic": "string",
"certification": 0,
"createdAt": "2025-02-06T03:48:22.500Z",
"updatedAt": "2025-02-06T03:48:22.500Z"
}
]
}
17
[POST]
/api/user/relationship
reuirerelationship관계 요청자식이 부모의 이메일로 관계 등록 요청{
"email": "string"
}
이준영{
"resultMessage": "string",
"resultData": 0
}
18
chat[GET]
/api/chat
getchatuser채팅방 목록 조회채팅한 목록 조회user-id or aca-id
page
size
이준영{
"resultMessage": "string",
"resultData": {
"totalPages": 0,
"totalElements": 0,
"users": [
{
"userId": 0,
"userName": "string",
"userPic": "string",
"acaId": 0,
"acaName": "string",
"acaPic": "string",
"createdAt": "2025-02-06T03:51:27.462Z",
"isRead": 0
}
]
}
}
19
[GET]
/api/chat/log
getchatlog메세지 내역 조회메세지 목록 조회user-id
aca-id
page
size
이준영{
"resultMessage": "string",
"resultData": [
{
"userName": "string",
"acaName": "string",
"message": "string",
"senderType": 0,
"isRead": 0,
"createdAt": "2025-02-06T03:52:54.969Z"
}
]
}
20
[POST]
/api/chat
postchat메세지 전송메세지 전송
user-id,aca-id는 채팅하는 사람이 바뀌지 않으면 고정
sender-type : {0: user-> aca, 1: aca -> user}
"userId",
"acaId,
"senderType",
"message"
이준영{
"resultMessage": "string",
"resultData": 0
}
21
Academy
(학원)
[POST]
api/academy
postAcademy학원 정보 등록학원에 대한 정보(내용)를 작성하여 등록한다.userId(유저pk)
acaId(학원pk)
acaName(학원이름)
acaPhone(학원전화번호)
comment(학원내용)
teacherNum(강사 수)
openTime(학원오픈시간)
closeTime(학원클로즈시간)
address(학원주소)
detailAddress(학원상세주소)
postNum(우편번호)
acaPic(학원사진)
tagIdList(태그Id 리스트)
tagNameList(태그이름 리스트)
businessName(사업자명)
businessNumber(사업자번호)
businessPic(사업자등록증)
operationLicencePic(학원운영증)
corporateNumber(법인번호)
장재웅{
"resultMessage" : "학원정보등록이 완료되었습니다.",
"resultData" : 1
}
22
[PUT]
api/academy/agree
putAcademyAgree학원 정보 등록 승인관리자가 학원 정보 등록을 신청한 학원을 승인한다.
승인 -> 1, 미승인 -> 0
acaId(학원 pk)
장재웅{
"resultMessage" : "학원정보등록이 승인되었습니다.",
"resultData" : 1
}
23
[GET]
api/tag
selTagList태그불러오기학원등록에서 태그를 등록할 때
검색어를 입력하면 입력어가 포함된
태그가 조회된다.

ex) 입력: "국어" -> 출력: "외국어", "중국어", "한국어"
searchTag(태그 검색어)장재웅{
"resultMessage": "국어 관련된 태그입니다.",
"resultData": {
"selTagList": [
{
"tagName": "외국어",
"tagId": "17"
},
{
"tagName": "중국어",
"tagId": "18"
},
{
"tagName": "한국어",
"tagId": "23"
}
]
}
}
24
[PUT]
api/academy
putAcademyInfo학원 글 수정하기학원 정보를 수정한다.
userId(유저pk)
acaId(학원pk)
acaName(학원이름)
acaPhone(학원전화번호)
comment(학원내용)
teacherNum(강사 수)
openTime(학원오픈시간)
closeTime(학원클로즈시간)
address(학원주소)
detailAddress(학원상세주소)
postNum(우편번호)
acaPic(학원사진)
tagIdList(태그Id 리스트)
tagNameList(태그이름 리스트)
businessName(사업자명)
businessNumber(사업자번호)
businessPic(사업자등록증)
operationLicencePic(학원운영증)
corporateNumber(법인번호)
장재웅{
"resultMessage" : "학원정보수정이 완료되었습니다.",
"resultData" : 1
}
25
[DELETE]
api/academy
delAcademyInfo학원 삭제하기학원 정보를 삭제한다.acaId(학원 pk)
userId (유저 pk)
장재웅
{
"resultMessage" : "학원정보삭제가 삭제되었습니다.",
"resultData" : 1
}
26
[GET]
api/academy/best
getAcademyBest학원들의 좋아요 순학원들을 좋아요(찜) 많이 받은 순으로 나열한다.
학원이름, 좋아요 수, 학원의 리뷰 수, 별점 평균
, 학원 사진, 학원이 등록한 태그, 좋아요를 받은 학원의 수
나타나도록 한다.
page(페이지)
size(사이즈)
장재웅{
"resultMessage": "좋아요를 많이 받은 학원 순서입니다.",
"resultData": [
{
"acaId": 35,
"acaName": "미대편입플러스학원",
"likeCount": 78,
"starAvg": 4.363157894736822,
"reviewCount": 18,
"acaPic": "b7493f57-05ba-4852-9772-f4b0f36f136c.jpg",
"tagIds": "103,104,111",
"tagNames": "편입 수학,편입 영어,미술 입시",
"academyLikeCount": 55
},
{
"acaId": 42,
"acaName": "이지-UP입시・음악학원",
"likeCount": 71,
"starAvg": 4.25625000000003,
"reviewCount": 16,
"acaPic": "b336449e-f3a6-4d70-a81a-e6e51e4dc92a.jpg",
"tagIds": "106,107,142",
"tagNames": "대입 컨설팅,대입 논술,멘토링",
"academyLikeCount": 55
},
{
"acaId": 33,
"acaName": "하늘피아노음악학원",
"likeCount": 64,
"starAvg": 4.333333333333333,
"reviewCount": 17,
"acaPic": "c9825d60-d261-40ca-ac7a-9776d1f21d2b.jpg",
"tagIds": "56,72,112",
"tagNames": "뮤지컬,성우,음악 입시",
"academyLikeCount": 55
}
]
}
27
[PUT]
api/academy/agree
putAcademyAgree학원정보등록 승인사이트 관리자가 학원정보 등록을 승인하도록 한다.acaId(학원pk)장재웅{
"resultMessage": "학원정보등록이 승인되었습니다.",
"resultData": 1
}
28
[POST]
api/academy/premium
postPremiumAcademy프리미엄 학원등록한 학원들 중에서 프리미엄 학원으로 등급업을 한다.
결제를 통해 프리미엄 등급을 받을 수 있다.(선착순 5곳)
프리미엄을 받으면 배너에 광고를 등록할 수 있다.
preAcaId(프리미엄학원pk)
acaId(학원pk)
price(프리미엄 결제가격)
startDate(프리미엄 시작일)
endDate(프리미엄 종료일)
preCheck(프리미엄 승인여부)
장재웅{
"resultMessage" : "프리미엄 신청이 완료되었습니다.",
"resultData" : 1
}
29
[PUT]
api/academy/premium
putPremiumCheck프리미엄 학원 승인관리자가 프리미엄 학원 신청을 승인한다.acaId(학원pk)
preCheck(프리미엄학원승인여부)
장재웅{
"resultMessage" : "프리미엄 학원이 승인되었습니다.",
"resultData" : 1
}
30
[GET]
api/academy/premium
getPremiumAcademy프리미엄 학원 조회프리미엄 학원 목록을 조회한다.장재웅{
"resultMessage": "프리미엄 학원을 조회하였습니다.",
"resultData": [
{
"acaId": 0,
"acaName": "string",
"startDate": "2025-03-18",
"endDate": "2025-03-18",
"preCheck": 0,
"createdAt": "2025-03-18T14:03:08.458Z",
"countPremium": 0
}
]
}
31
[GET]
api/academy/premium/acaAdmin
getPremiumAcademyAcaAdmin프리미엄 학원 조회(학원관계자용)학원관계자가 본인의 프리미엄 학원을 조회한다.user_id(사용자 pk)장재웅{
"resultMessage": "프리미엄 학원이 조회되었습니다.",
"resultData": [
{
"acaId": 0,
"acaName": "string",
"startDate": "2025-03-18",
"endDate": "2025-03-18",
"preCheck": 0,
"createdAt": "2025-03-18T14:05:55.890Z",
"countPremium": 0
}
]
}
32
[GET]
api/academy/premium/bannerType
getPremiumBannerTypeAcademy배너타입을 포함한 프리미엄 학원 조회배너의 승인여부(배터타입)가 포함되어 있는
프리미엄 학원을 조회한다.
장재웅{
"resultMessage": "프리미엄 학원이 조회되었습니다.",
"resultData": [
{
"acaId": 0,
"acaName": "string",
"startDate": "2025-03-18",
"endDate": "2025-03-18",
"preCheck": 0,
"bannerType": 0,
"createdAt": "2025-03-18T14:09:17.258Z",
"countPremium": 0
}
]
}
33
[GET]
api/academy/premium/bannerExist
getPremiumBannerExist배너가 신청되어 있는 프리미엄 학원 조회배너가 신청되어 있는(승인 or 미승인)
프리미엄 학원을 조회한다.(학원관계자 시점)
user_id(학원관계자 pk)장재웅{
"resultMessage": "프리미엄 학원이 조회되었습니다.",
"resultData": [
{
"acaId": 0,
"acaName": "string",
"startDate": "2025-03-18",
"endDate": "2025-03-18",
"preCheck": 0,
"bannerType": 0,
"createdAt": "2025-03-18T14:13:48.791Z",
"countPremium": 0
}
]
}
34
[GET]
api/academy/premium/notPremium
getPremiumNotExist프리미엄 학원 신청을 위한 조회프리미엄 학원 신청을 하기 위해
프리미엄이 아니고, 신청도 안되어 있는
학원을 조회한다.
user_id(학원관계자 pk)장재웅{
"resultMessage": "학원을 조회하였습니다.",
"resultData": [
{
"acaId": 0,
"acaName": "string"
}
]
}
35
[DELETE]
api/academy/premium
deletePremiumAcademy프리미엄 학원 삭제프리미엄 학원을 삭제한다.aca_id(학원 pk)장재웅{
"resultMessage": "프리미엄 학원을 삭제하였습니다.",
"resultData": 1
}
36
[GET]
api/academy
getAcademyListByAll학원 리스트 보기학원이름들이 나타나도록 한다.
tagName이 입력되면 search 테이블에
tagId가 저장되도록 되어 있음
프리미엄 학원이 위에 노출된다.
dongId (동 PK),
searchName (검색한 단어),
tagId (태그 PK),
List<categoryIds> (카테고리 PK),
premiumLimit
(프리미엄 학원 페이징 처리값)
백한별{
"resultMessage": "학원 리스트 불러오기 성공",
"resultData": [
{
"acaId": 2,
"acaPic": "3",
"acaPics": "3, 3",
"acaName": "프리미엄학원",
"address": "1111",
"star": 3,
"tagName": [
"고등 과학",
" 천문학"
],
"totalCount": 4
},
{
"acaId": 4,
"acaPic": "4",
"acaPics": "4",
"acaName": "부자학원",
"address": "3333",
"star": 1,
"tagName": [],
"totalCount": 4
},
{
"acaId": 3,
"acaPic": "4",
"acaPics": "4, 4",
"acaName": "그지학원",
"address": "2222",
"star": 5,
"tagName": [
"3D 프린팅",
" 앱 개발"
],
"totalCount": 4
},
{
"acaId": 1,
"acaPic": "1",
"acaPics": "1, 1, 1, 2, 2, 2",
"acaName": "1234",
"address": "1234",
"star": 4,
"tagName": [
"영어 회화",
" TOEFL 준비",
" IELTS 준비"
],
"totalCount": 4
}
]
}
37
[GET]
api/academy
getAcademyCount총 학원, 유저 수가입된 학원과 유저의 수를 보내준다.백한별"resultMessage": "총 학원 수 출력 완료",
"resultData": {
"academyCount": 101,
"userCount": 204
}
38
[GET]
api/academy
getDefault학원 검색 페이지에
기본 학원 정보 보기
검색을 하기 전에 기본으로 보여줄 학원 정보를 보내준다.
프리미엄 학원이 상위에 노출되도록 한다.
size (프리미엄 학원 페이징 처리값)백한별{
"resultMessage": "디폴트 학원 리스트 출력 성공",
"resultData": [
{
"acaId": 4,
"acaPic": "4",
"acaName": "부자학원",
"address": "3333",
"star": 1,
"tagName": [],
"totalCount": 4
},
{
"acaId": 2,
"acaPic": "3",
"acaName": "프리미엄학원",
"address": "1111",
"star": 3,
"tagName": [
"고등 과학",
" 천문학"
],
"totalCount": 4
},
{
"acaId": 3,
"acaPic": "4",
"acaName": "그지학원",
"address": "2222",
"star": 5,
"tagName": [
"3D 프린팅",
" 앱 개발"
],
"totalCount": 4
},
{
"acaId": 1,
"acaPic": "1",
"acaName": "1234",
"address": "1234",
"star": 4,
"tagName": [
"영어 회화",
" TOEFL 준비",
" IELTS 준비"
],
"totalCount": 4
}
]
}
39
[GET]
api/academy
getAcademyDetailAllInfo학원 상세 정보 보기학원에 대한 상세 정보를 보이도록 한다.
acaId(학원 pk)
signedUserId (로그인한 사람의 user PK)
백한별{
"resultMessage": "상세 정보 불러오기 성공",
"resultData": {
"acaId": 1,
"acaName": "1234",
"acaPic": "1",
"address": "1234",
"acaPhone": "1234",
"teacherNum": 1234,
"comments": "1234",
"star": 4,
"reviewCount": 1,
"likeCount": 1,
"isLiked": true,
"tagName": [
"IELTS 준비",
" TOEFL 준비",
" 영어 회화"
],
"classes": [
{
"classId": 1,
"className": "1234",
"classComment": "1234",
"classStartDate": "2025-02-25",
"classEndDate": "2025-02-25",
"classStartTime": "14:48:12.000000",
"classEndTime": "14:48:03.000000",
"classPrice": 1500000,
"classDay": "",
"classCategoryName": "",
"userCertification": 1
}
],
"reviews": [
{
"comment": "1234",
"star": 4,
"reviewId": 1,
"createdAt": "2025-02-27 11:07:36.000000",
"updatedAt": "2025-02-27 11:07:37.000000",
"userId": 1,
"nickName": "1234",
"className": "1234",
"banReview": 0,
"roleType": "STUDENT",
"joinClassId": 1
}
],
"books": [
{
"bookId": 1,
"bookName": "책1",
"bookAmount": 75,
"bookComment": "책입니다~",
"bookPic": "92783968-a420-474d-9b49-19f1053f3bf5.jpg",
"bookPrice": 1000,
"manager": "담당자1",
"classId": 1
},
{
"bookId": 2,
"bookName": "책1",
"bookAmount": 0,
"bookComment": "책입니다~",
"bookPic": "435dd909-9739-477d-a9a1-cffabd48d282.jpg",
"bookPrice": 1000,
"manager": "담당자1",
"classId": 1
},
{
"bookId": 3,
"bookName": "책1",
"bookAmount": 0,
"bookComment": "책입니다~",
"bookPic": "1184b149-8ac9-466d-97e3-65c81beaf1f3.jpg",
"bookPrice": 1000,
"manager": "담당자1",
"classId": 1
},
{
"bookId": 4,
"bookName": "책1",
"bookAmount": 0,
"bookComment": "책입니다~",
"bookPic": "4e2f5300-c299-4f95-ac98-5c1b0b9d27d3.jpg",
"bookPrice": 1000,
"manager": "담당자1",
"classId": 1
}
]
}
}
40
[GET]
api/academy
getAcademyListByStudent학생이 다니고 있는
학원 리스트 출력하기
signedUserId를 입력받아 학생이 다니고 있는
학원의 리스트를 출력한다.
signedUserId (로그인한 사람의 user PK)백한별{
"resultMessage": "학원 출력 성공",
"resultData": [
{
"acaId": 1,
"acaPic": "2",
"acaName": "1234",
"registrationDate": "2025-02-25"
},
{
"acaId": 1,
"acaPic": "1",
"acaName": "1234",
"registrationDate": "2025-02-25"
},
{
"acaId": 3,
"acaPic": "4",
"acaName": "그지학원",
"registrationDate": "2025-02-27"
},
{
"acaId": 4,
"acaPic": "4",
"acaName": "부자학원",
"registrationDate": "2025-02-27"
},
{
"acaId": 2,
"acaPic": "3",
"acaName": "프리미엄학원",
"registrationDate": "2025-02-27"
}
]
}
41
[GET]
api/academy
getAcademyListByUserId학원 관리자가 본인이 등록한
학원 리스트 출력하기
signedUserId를 입력받아 본인이
등록한 학원의 리스트를 출력한다.
signedUserId (로그인한 사람의 user PK)백한별{
"resultMessage": "학원 리스트 불러오기 성공",
"resultData": [
{
"acaId": 3,
"acaName": "테스트학원3333",
"createdAt": "2025-02-26 07:29:18.556357",
"acaAgree": 0,
"acaPic": "00390ed3-7e6e-487b-aba4-5df7e0819071.png",
"acaPics": "00390ed3-7e6e-487b-aba4-5df7e0819071.png, d17d6b34-746f-49d7-80ad-e396948ad361.png"
},
{
"acaId": 4,
"acaName": "미술학원",
"createdAt": "2025-02-26 07:36:09.599836",
"acaAgree": 0,
"acaPic": "6962a9f1-0695-409a-8c83-e191b458952a.png",
"acaPics": "6962a9f1-0695-409a-8c83-e191b458952a.png, 87eddf45-9917-494d-a0c6-7fff0e78fec0.png"
}
}
42
[GET]
api/academy
AcademyDefault메인 페이지에
오늘의 추천 학원 보여주기
랜덤하게 학원을 추천한다.백한별"resultMessage": "학원 출력 성공",
"resultData": [
{
"acaId": 13,
"acaPic": "87541673-9d37-4c45-8391-e1d44e731678.jpg",
"acaName": "주은아피아노스튜디오음악학원",
"address": "대구광역시 중구 중앙대로 283@detail5층#detail@post41968#post",
"starAvg": 3.93,
"tagNames": [
"뮤지컬",
" 성우",
" 음악 입시"
],
"likeCount": 69,
"reviewCount": 0
},
....
43
[GET]
api/academy
getCity도시 리스트 불러오기도시 리스트를 불러온다.백한별{
"resultMessage": "도시 리스트 출력 성공",
"resultData": [
{
"cityId": 1,
"cityName": "서울특별시"
},
{
"cityId": 2,
"cityName": "부산광역시"
},
...
{
"cityId": 16,
"cityName": "강원특별자치도"
},
{
"cityId": 17,
"cityName": "전북특별자치도"
}
]
}
44
[GET]
api/academy
getStreet도시 PK를 받아
시/군/구 리스트 불러오기
도시 PK를 받아 시/군/구 리스트를 불러온다.streetId백한별{
"resultMessage": "시/군/구 리스트를 불러오기 성공",
"resultData": [
{
"streetId": 1,
"streetName": "종로구"
},
{
"streetId": 2,
"streetName": "중구"
},
{
"streetId": 3,
"streetName": "용산구"
},
......
45
[GET]
api/academy
getDong도시 PK와 시/군/구 PK를 받아
동 리스트 불러오기
도시 PK와 시/군/구 PK를 받아 동 리스트를 불러온다.cityId, streetId백한별{
"resultMessage": "동 리스트 불러오기 성공",
"resultData": [
{
"dongId": 281,
"dongName": "쌍문동"
},
{
"dongId": 282,
"dongName": "방학동"
},
{
"dongId": 283,
"dongName": "창동"
},
{
"dongId": 284,
"dongName": "도봉동"
}
]
}
46
[GET]
api/academy
getAcademyInfoBy
AcaNameClassName
ExamNameAcaAgree
학원 이름, 수업 이름, 시험 이름
학원 승인 여부를 입력받아
리스트를 불러온다
학원 이름, 수업 이름, 시험 이름
학원 승인 여부를 입력받아
리스트를 불러온다
acaName, className,
examName, acaAgree
백한별{
"resultMessage": "학원 리스트 출력 완료",
"resultData": [
{
"acaName": "1234",
"acaPic": "2",
"acaPics": "1, 2",
"comment": "1234",
"createdAt": "2025-02-25 14:47:31.000000",
"acaPhone": "1234",
"address": "1234",
"userId": 1
}
]
}
47
[GET]
api/academy
GetSearchInfo 태그로 검색 분포 정보 태그로 검색 분포 정보year
month
백한별{
"resultMessage": "조회 성공",
"resultData": [
{
"tagCount": 5,
"tagName": "초등 영어",
"totalTagCount": 23
},
{
"tagCount": 3,
"tagName": "미술",
"totalTagCount": 0
}
48
[GET]
api/academy
GetAcademyStatus/{userId}학원 관계자 입장에서 본인이 등록한 학원 상태학원 관계자 입장에서 본인이 등록한 학원 상태userId(유저 PK)백한별{
"resultMessage": "조회 성공",
"resultData": [
{
"createdAt": "2025-01-21 13:17:05.000000",
"acaName": "라이크아카데미학원",
"acaAgree": 1,
"acaId": 1
},
{
"createdAt": "2025-01-21 13:17:05.000000",
"acaName": "한국경찰학원",
"acaAgree": 1,
"acaId": 4
}
49
[GET]
api/academy
GetJoinClassStatus/{userId}학생 입장에서 본인이 등록한 수업 상태학생 입장에서 본인이 등록한 수업 상태userId(유저 PK)백한별{
"resultMessage": "조회 성공",
"resultData": [
{
"registrationDate": "2025-02-06",
"acaName": "라이크아카데미학원",
"certification": 1,
"className": "국어 시즌1",
"acaId": 1
},
{
"registrationDate": "2025-03-11",
"acaName": "현대정보통신전기고시학원",
"certification": 0,
"className": "정보통신",
"acaId": 2
}
50
[GET]
api/academy
GetAcademyListByAcaNameOrderType학원 이름, 주문 타입, 주문자 이름, 시작일, 종료일을
입력받아 학원 리스트 불러오기
학원 이름, 주문 타입, 주문자 이름, 시작일, 종료일을
입력받아 학원 리스트 불러오기
acaName ( 학원 이름 )
orderType ( 주문 타입 )
startDate ( 시작일 )
endDate ( 종료일 )
acaId ( 학원 PK )
userId ( 유저 PK )
page
size
백한별{
"resultMessage": "조회 완료",
"resultData": [
{
"acaName": "라이크아카데미학원",
"classOrBookName": "국어 시즌1",
"acaPic": "3f521486-0cbd-4651-b2b3-457c2d0772d6.jpg",
"createdAt": "2025-03-17 17:17:51.773918",
"price": 110000,
"name": "구수영",
"costStatus": 2,
"costId": 118,
"totalCount": 78
}
51
[GET]
api/academy
GetAcaNameList/{acaName}단어로 학원 이름 조회단어로 학원 이름 조회 acaName ( 학원 이름 )백한별{
"resultMessage": "조회 성공",
"resultData": [
{
"acaName": "고려이엠(EM)영어.수학학원"
},
{
"acaName": "그림퐁당아이성향미술학원"
},
{
"acaName": "눈높이러닝센터신기학원"
}
52
[GET]
api/academy
GetAcademyListByDistance나와 가까운 순서로 학원 정렬로그인할때 위도와 경도를 받아와
등록된 학원들의 좌표와 비교해
가까운 순서로 보여준다
lat ( 위도 )
lon ( 경도 )
page
size
백한별{
"resultMessage": "학원 출력 성공",
"resultData": [
{
"acaId": 80,
"acaName": "그린컴퓨터아트학원",
"acaPic": "f77e43a7-205a-49ff-a3c5-d37b872ab4a8.png",
"address": " 대구 중구 중앙대로 394",
"detailAddress": "그린빌딩 5층",
"postNum": "41914",
"starAvg": 0,
"likeCount": 1,
"reviewCount": 0,
"distance": 0.011266544230851716,
"totalCount": 104
}
53
ManagerSms
(문자발송)
[POST]
api/sms
sendSms솔라피(문자 API)로 학생이나 광고를 문자로 보내기학생의 등하교 여부와 광고 단체문자를 보낸다.apiKey (Solapi API 인증을 위한 키)
, apiSecretAPI (인증을 위한 시크릿 키)
, to (수신자의 전화번호)
, from (발신자의 전화번호)
, text (보낼 문자 내용)
, type (문자 종류)
이정민{
"to": "01011111234",
"text": "ㅇㅇ학생이 등교하였습니다."
}
54
AcademyCost
(결제)
[POST]
api/payment
ready카카오페이 결제 완료 신청카카오페이 결제 완료 신청productId (상품 PK)
quantity (주문 수량)
userId (주문하는 유저 PK)
acaId (프리미엄 결제 하는 학원)
백한별
{
"tid": "T7bc3244033875bdc251",
"next_redirect_app_url": "https://online-payment.kakaopay.com/mockup/bridge/mobile-app/pg/one-time/payment/05cdb8a5c9726c43f0cdcc18f336f95c75810c7afed0bf1ac1f9f2f3adfcc26c",
"next_redirect_mobile_url": "https://online-payment.kakaopay.com/mockup/bridge/mobile-web/pg/one-time/payment/05cdb8a5c9726c43f0cdcc18f336f95c75810c7afed0bf1ac1f9f2f3adfcc26c",
"next_redirect_pc_url": "https://online-payment.kakaopay.com/mockup/bridge/pc/pg/one-time/payment/05cdb8a5c9726c43f0cdcc18f336f95c75810c7afed0bf1ac1f9f2f3adfcc26c",
"android_app_scheme": "kakaotalk://kakaopay/pg?url=https://online-pay.kakao.com/pay/mockup/05cdb8a5c9726c43f0cdcc18f336f95c75810c7afed0bf1ac1f9f2f3adfcc26c",
"ios_app_scheme": "kakaotalk://kakaopay/pg?url=https://online-pay.kakao.com/pay/mockup/05cdb8a5c9726c43f0cdcc18f336f95c75810c7afed0bf1ac1f9f2f3adfcc26c",
"created_at": "2025-02-24T17:48:04"
}
55
[POST]
api/payment
success카카오페이 결제 완료 승인카카오페이 결제 완료 승인pg_token ( 토큰값 )
TId (TId)
백한별{
"aid": "string",
"tid": "string",
"cid": "string",
"sid": "string",
"partner_order_id": "string",
"partner_user_id": "string",
"payment_method_type": "string",
"amount": {
"total": 0,
"tax_free": 0,
"tax": 0,
"point": 0,
"discount": 0,
"green_deposit": 0
},
"item_name": "string",
"item_code": "string",
"quantity": 0,
"created_at": "string",
"approved_at": "string",
"payload": "string"
}
56
[GET]
apy/payment
recent모든 결제 내역 불러오기모든 결제 내역 불러오기
( 최근 한달 )
백한별{
"resultMessage": "사이트 관리자가 결제 내역 불러오기 성공",
"resultData": [
{
"createdAt": "2025-02-24T16:51:18",
"updatedAt": "2025-02-24T16:51:19",
"costId": 1,
"orderType": 1,
"price": 1,
"amount": 1,
"userId": 1,
"status": 1,
"settlementPrice": 0,
"cost_status": 1,
"productId": {
"productId": 2,
"productName": "책이름",
"productPrice": 1000,
"bookId": {
"bookId": 21,
"classId": {
"classId": 1,
"academy": {
"createdAt": "2025-02-24T12:07:43",
"acaId": 1,
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"dongId": 1633,
"dong": {
"dongId": 1633,
"street": {
"streetId": 79,
"city": {
"cityId": 9,
"cityName": "경기도"
},
"streetName": "의정부시"
},
"dongName": "가능동"
},
"premium": 1,
"acaName": "1",
"acaPhone": "1",
"comment": "1",
"teacherNum": 1,
"openTime": "12:07:36",
"closeTime": "12:07:22",
"address": "1",
"detailAddress": "1",
"postNum": "11234",
"acaAgree": 1,
"lat": 11111,
"lon": 1111,
"businessName": "1",
"businessNumber": "1",
"businessPic": "1",
"operationLicencePic": "1",
"corporateNumber": "1"
},
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"className": "1",
"classComment": "1",
"startDate": "2025-02-24",
"endDate": "2025-02-24",
"startTime": "12:08:23",
"endTime": "00:01:23",
"price": 1
},
"bookPic": "1ae60ef6-317f-4761-84f2-bdac6e43070b.png",
"bookName": "책이름",
"bookPrice": 1000,
"bookComment": "책소개",
"manager": "매니저1"
}
},
"tid": "1"
},
{
"createdAt": "2025-02-24T16:54:59.158674",
"updatedAt": "2025-02-24T16:54:59.158674",
"costId": 2,
"orderType": 0,
"price": 11000,
"amount": 1,
"userId": 1,
"status": 0,
"settlementPrice": 0,
"cost_status": 0,
"productId": {
"productId": 1,
"productName": "프리미엄학원",
"productPrice": 10000
},
"tid": "T7bc25d240f539f46bd3"
},
{
"createdAt": "2025-02-24T17:02:51.740105",
"updatedAt": "2025-02-24T17:02:51.740105",
"costId": 3,
"orderType": 0,
"price": 1100,
"amount": 1,
"userId": 1,
"status": 0,
"settlementPrice": 0,
"cost_status": 0,
"productId": {
"productId": 2,
"productName": "책이름",
"productPrice": 1000,
"bookId": {
"bookId": 21,
"classId": {
"classId": 1,
"academy": {
"createdAt": "2025-02-24T12:07:43",
"acaId": 1,
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"dongId": 1633,
"dong": {
"dongId": 1633,
"street": {
"streetId": 79,
"city": {
"cityId": 9,
"cityName": "경기도"
},
"streetName": "의정부시"
},
"dongName": "가능동"
},
"premium": 1,
"acaName": "1",
"acaPhone": "1",
"comment": "1",
"teacherNum": 1,
"openTime": "12:07:36",
"closeTime": "12:07:22",
"address": "1",
"detailAddress": "1",
"postNum": "11234",
"acaAgree": 1,
"lat": 11111,
"lon": 1111,
"businessName": "1",
"businessNumber": "1",
"businessPic": "1",
"operationLicencePic": "1",
"corporateNumber": "1"
},
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"className": "1",
"classComment": "1",
"startDate": "2025-02-24",
"endDate": "2025-02-24",
"startTime": "12:08:23",
"endTime": "00:01:23",
"price": 1
},
"bookPic": "1ae60ef6-317f-4761-84f2-bdac6e43070b.png",
"bookName": "책이름",
"bookPrice": 1000,
"bookComment": "책소개",
"manager": "매니저1"
}
},
"tid": "T7bc27ab033875bdc201"
},
{
"createdAt": "2025-02-24T17:08:17.439779",
"updatedAt": "2025-02-24T17:08:17.439779",
"costId": 4,
"orderType": 0,
"price": 1100,
"amount": 1,
"userId": 1,
"status": 0,
"settlementPrice": 0,
"cost_status": 0,
"productId": {
"productId": 2,
"productName": "책이름",
"productPrice": 1000,
"bookId": {
"bookId": 21,
"classId": {
"classId": 1,
"academy": {
"createdAt": "2025-02-24T12:07:43",
"acaId": 1,
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"dongId": 1633,
"dong": {
"dongId": 1633,
"street": {
"streetId": 79,
"city": {
"cityId": 9,
"cityName": "경기도"
},
"streetName": "의정부시"
},
"dongName": "가능동"
},
"premium": 1,
"acaName": "1",
"acaPhone": "1",
"comment": "1",
"teacherNum": 1,
"openTime": "12:07:36",
"closeTime": "12:07:22",
"address": "1",
"detailAddress": "1",
"postNum": "11234",
"acaAgree": 1,
"lat": 11111,
"lon": 1111,
"businessName": "1",
"businessNumber": "1",
"businessPic": "1",
"operationLicencePic": "1",
"corporateNumber": "1"
},
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"className": "1",
"classComment": "1",
"startDate": "2025-02-24",
"endDate": "2025-02-24",
"startTime": "12:08:23",
"endTime": "00:01:23",
"price": 1
},
"bookPic": "1ae60ef6-317f-4761-84f2-bdac6e43070b.png",
"bookName": "책이름",
"bookPrice": 1000,
"bookComment": "책소개",
"manager": "매니저1"
}
},
"tid": "T7bc28f140f539f46bee"
},
{
"createdAt": "2025-02-24T17:39:05.268522",
"updatedAt": "2025-02-24T17:39:05.268522",
"costId": 5,
"orderType": 0,
"price": 1100,
"amount": 1,
"userId": 1,
"status": 0,
"settlementPrice": 0,
"cost_status": 0,
"productId": {
"productId": 2,
"productName": "책이름",
"productPrice": 1000,
"bookId": {
"bookId": 21,
"classId": {
"classId": 1,
"academy": {
"createdAt": "2025-02-24T12:07:43",
"acaId": 1,
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"dongId": 1633,
"dong": {
"dongId": 1633,
"street": {
"streetId": 79,
"city": {
"cityId": 9,
"cityName": "경기도"
},
"streetName": "의정부시"
},
"dongName": "가능동"
},
"premium": 1,
"acaName": "1",
"acaPhone": "1",
"comment": "1",
"teacherNum": 1,
"openTime": "12:07:36",
"closeTime": "12:07:22",
"address": "1",
"detailAddress": "1",
"postNum": "11234",
"acaAgree": 1,
"lat": 11111,
"lon": 1111,
"businessName": "1",
"businessNumber": "1",
"businessPic": "1",
"operationLicencePic": "1",
"corporateNumber": "1"
},
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"className": "1",
"classComment": "1",
"startDate": "2025-02-24",
"endDate": "2025-02-24",
"startTime": "12:08:23",
"endTime": "00:01:23",
"price": 1
},
"bookPic": "1ae60ef6-317f-4761-84f2-bdac6e43070b.png",
"bookName": "책이름",
"bookPrice": 1000,
"bookComment": "책소개",
"manager": "매니저1"
}
},
"tid": "T7bc3029033875bdc240"
},
{
"createdAt": "2025-02-24T17:48:04.885319",
"updatedAt": "2025-02-24T17:48:04.885319",
"costId": 6,
"orderType": 0,
"price": 1100,
"amount": 1,
"userId": 1,
"status": 0,
"settlementPrice": 0,
"cost_status": 0,
"productId": {
"productId": 2,
"productName": "책이름",
"productPrice": 1000,
"bookId": {
"bookId": 21,
"classId": {
"classId": 1,
"academy": {
"createdAt": "2025-02-24T12:07:43",
"acaId": 1,
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"dongId": 1633,
"dong": {
"dongId": 1633,
"street": {
"streetId": 79,
"city": {
"cityId": 9,
"cityName": "경기도"
},
"streetName": "의정부시"
},
"dongName": "가능동"
},
"premium": 1,
"acaName": "1",
"acaPhone": "1",
"comment": "1",
"teacherNum": 1,
"openTime": "12:07:36",
"closeTime": "12:07:22",
"address": "1",
"detailAddress": "1",
"postNum": "11234",
"acaAgree": 1,
"lat": 11111,
"lon": 1111,
"businessName": "1",
"businessNumber": "1",
"businessPic": "1",
"operationLicencePic": "1",
"corporateNumber": "1"
},
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"className": "1",
"classComment": "1",
"startDate": "2025-02-24",
"endDate": "2025-02-24",
"startTime": "12:08:23",
"endTime": "00:01:23",
"price": 1
},
"bookPic": "1ae60ef6-317f-4761-84f2-bdac6e43070b.png",
"bookName": "책이름",
"bookPrice": 1000,
"bookComment": "책소개",
"manager": "매니저1"
}
},
"tid": "T7bc3244033875bdc251"
}
]
}
57
[GET]
apy/payment
recent/{userId}유저 PK를 입력받아
그 사람의 결제 내역 불러오기
유저 PK를 입력받아
그 사람의 결제 내역 불러오기
( 최근 한달 )
userId백한별{
"resultMessage": "userId에 맞는 결제 내역 불러오기 성공",
"resultData": [
{
"createdAt": "2025-02-24T16:51:18",
"updatedAt": "2025-02-24T16:51:19",
"costId": 1,
"orderType": 1,
"price": 1,
"amount": 1,
"userId": 1,
"status": 1,
"settlementPrice": 0,
"cost_status": 1,
"productId": {
"productId": 2,
"productName": "책이름",
"productPrice": 1000,
"bookId": {
"bookId": 21,
"classId": {
"classId": 1,
"academy": {
"createdAt": "2025-02-24T12:07:43",
"acaId": 1,
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"dongId": 1633,
"dong": {
"dongId": 1633,
"street": {
"streetId": 79,
"city": {
"cityId": 9,
"cityName": "경기도"
},
"streetName": "의정부시"
},
"dongName": "가능동"
},
"premium": 1,
"acaName": "1",
"acaPhone": "1",
"comment": "1",
"teacherNum": 1,
"openTime": "12:07:36",
"closeTime": "12:07:22",
"address": "1",
"detailAddress": "1",
"postNum": "11234",
"acaAgree": 1,
"lat": 11111,
"lon": 1111,
"businessName": "1",
"businessNumber": "1",
"businessPic": "1",
"operationLicencePic": "1",
"corporateNumber": "1"
},
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"className": "1",
"classComment": "1",
"startDate": "2025-02-24",
"endDate": "2025-02-24",
"startTime": "12:08:23",
"endTime": "00:01:23",
"price": 1
},
"bookPic": "1ae60ef6-317f-4761-84f2-bdac6e43070b.png",
"bookName": "책이름",
"bookPrice": 1000,
"bookComment": "책소개",
"manager": "매니저1"
}
},
"tid": "1"
},
{
"createdAt": "2025-02-24T16:54:59.158674",
"updatedAt": "2025-02-24T16:54:59.158674",
"costId": 2,
"orderType": 0,
"price": 11000,
"amount": 1,
"userId": 1,
"status": 0,
"settlementPrice": 0,
"cost_status": 0,
"productId": {
"productId": 1,
"productName": "프리미엄학원",
"productPrice": 10000
},
"tid": "T7bc25d240f539f46bd3"
},
{
"createdAt": "2025-02-24T17:02:51.740105",
"updatedAt": "2025-02-24T17:02:51.740105",
"costId": 3,
"orderType": 0,
"price": 1100,
"amount": 1,
"userId": 1,
"status": 0,
"settlementPrice": 0,
"cost_status": 0,
"productId": {
"productId": 2,
"productName": "책이름",
"productPrice": 1000,
"bookId": {
"bookId": 21,
"classId": {
"classId": 1,
"academy": {
"createdAt": "2025-02-24T12:07:43",
"acaId": 1,
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"dongId": 1633,
"dong": {
"dongId": 1633,
"street": {
"streetId": 79,
"city": {
"cityId": 9,
"cityName": "경기도"
},
"streetName": "의정부시"
},
"dongName": "가능동"
},
"premium": 1,
"acaName": "1",
"acaPhone": "1",
"comment": "1",
"teacherNum": 1,
"openTime": "12:07:36",
"closeTime": "12:07:22",
"address": "1",
"detailAddress": "1",
"postNum": "11234",
"acaAgree": 1,
"lat": 11111,
"lon": 1111,
"businessName": "1",
"businessNumber": "1",
"businessPic": "1",
"operationLicencePic": "1",
"corporateNumber": "1"
},
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"className": "1",
"classComment": "1",
"startDate": "2025-02-24",
"endDate": "2025-02-24",
"startTime": "12:08:23",
"endTime": "00:01:23",
"price": 1
},
"bookPic": "1ae60ef6-317f-4761-84f2-bdac6e43070b.png",
"bookName": "책이름",
"bookPrice": 1000,
"bookComment": "책소개",
"manager": "매니저1"
}
},
"tid": "T7bc27ab033875bdc201"
},
{
"createdAt": "2025-02-24T17:08:17.439779",
"updatedAt": "2025-02-24T17:08:17.439779",
"costId": 4,
"orderType": 0,
"price": 1100,
"amount": 1,
"userId": 1,
"status": 0,
"settlementPrice": 0,
"cost_status": 0,
"productId": {
"productId": 2,
"productName": "책이름",
"productPrice": 1000,
"bookId": {
"bookId": 21,
"classId": {
"classId": 1,
"academy": {
"createdAt": "2025-02-24T12:07:43",
"acaId": 1,
"user": {
"createdAt": "2025-02-24T12:06:12",
"updatedAt": "2025-02-24T17:51:47.484885",
"userId": 1,
"userRole": "ADMIN",
"name": "string",
"phone": "string",
"birth": "2025-02-24",
"nickName": "string",
"email": "qgq0520@naver.com",
"upw": "$2a$10$YHpKBisI58sXhxwd.6.Ei./Ck1hNZnHzfij4cPmay/UwCD9a265ve",
"userPic": "1.jpg"
},
"dongId": 1633,
"dong": {
"dongId": 1633,
"street": {
"streetId": 79,
"city": {
"cityId": 9,
"cityName": "경기도"
},
"streetName": "의정부시"
},
"dongName": "가능동"
},
"premium": 1,
"acaName": "1",
"acaPhone": "1",
"comment": "1",
"teacherNum": 1,
"openTime": "12:07:36",
"closeTime": "12:07:22",
"address": "1",
"detailAddress": "1",
"postNum": "11234",
"acaAgree": 1,
"lat": 11111,
58
[GET]
apy/payment
cancel카카오페이 결제 취소카카오페이 결제 취소백한별{
"resultMessage": "주문을 취소하였습니다.",
"resultData": "PAY_CANCEL"
}
59
[GET]
apy/payment
fail카카오페이 결제 실패카카오페이 결제 실패백한별{
"resultMessage": "주문에 실패하였습니다.",
"resultData": "PAY_FAILED"
}
60
[POST]
apy/payment
refund카카오페이 환불카카오페이 환불tid (결제 고유 번호)
costId (결제 PK)
백한별{
"aid": "string",
"tid": "string",
"cid": "string",
"status": "string",
"partner_order_id": "string",
"partner_user_id": "string",
"payment_method_type": "string",
"amount": {
"total": 0,
"tax_free": 0,
"tax": 0,
"point": 0,
"discount": 0,
"green_deposit": 0
},
"approved_cancel_amount": {
"total": 0,
"tax_free": 0,
"vat": 0,
"point": 0,
"discount": 0,
"green_deposit": 0
},
"canceled_amount": {
"total": 0,
"tax_free": 0,
"vat": 0,
"point": 0,
"discount": 0,
"green_deposit": 0
},
"cancel_available_amount": {
"total": 0,
"tax_free": 0,
"vat": 0,
"point": 0,
"discount": 0,
"green_deposit": 0
},
"item_name": "string",
"item_code": "string",
"quantity": 0,
"created_at": "string",
"approved_at": "string",
"canceled_at": "string",
"payload": "string"
}
61
[GET]
api/academyCost
getSettlementList정산 조회정산 조회status (정산 상태)
year(결제 년도)
month(결제 월)
page
size
백한별{
"resultMessage": "출력 성공",
"resultData": [
{
"acaId": 4,
"acaName": "한국경찰학원",
"address": "대구광역시 중구 국채보상로 582",
"acaPic": "4807d4d6-90c6-4c4c-acef-7bb34b933f61.jpg",
"totalPrice": 253000,
"latestStatus": 0,
"totalCount": 4,
"costIds": "107"
}
62
[GET]
api/academyCost
getProductInfo모든 상품 정보 조회모든 상품 정보 조회백한별{
"resultMessage": "조회 성공",
"resultData": [
{
"productId": 1,
"productName": "프리미엄 학원",
"productPrice": 150000
},
{
"productId": 2,
"productName": "국어",
"productPrice": 100000,
"classId": 1
}
63
[GET]
api/academyCost
getAcademyCostInfoByMonth사이트 관리자가 월 수익 보기사이트 관리자가 월 수익 보기
결제 건수, 총 수수료, 판매율을 볼 수 있다
백한별{
"resultMessage": "출력 성공",
"resultData": {
"costCount": 3,
"sumFee": 4400,
"saleRate": 0.0091
}
}
64
[GET]
api/academyCost
getAcademyCostInfoByCostId/{costId}주문 상세 내역주문 상세 내역costId (결제 PK)백한별{
"resultMessage": "조회 성공",
"resultData": {
"costId": 1,
"amount": 1,
"costStatus": 2,
"fee": 1100,
"orderType": 0,
"price": 110000,
"status": 0,
"accId": 0,
"createdAt": "2025-03-05 00:00:00.000000",
"productId": 2,
"updatedAt": "2025-03-06 00:00:00.000000",
"name": "관리자",
"partnerOrderId": "c6b5c44e-950f-49f5-b128-b2a0caa0e177",
"productName": "국어",
"tid": "T7c8065e40f539f4a0ab"
}
}
65
[PUT]
api/academyCost
updateStatus/{costIds}정산 처리정산 처리costId (결제 PK)백한별{
"resultMessage": "이번 달 결제 내역은 정산할 수 없습니다.",
"resultData": 0
}
66
Book
(교재)
[POST]
api/book
교재 등록교재를 등록한다.
( 학원 관계자만 사용가능 )
file (교재 사진 1장)
req {
bookName ( 교재 이름 )
bookPrice ( 교재 가격 )
bookComment ( 교재 소개 )
manager ( 교재 등록 담당자 )
classId ( 교재를 등록할 수업 )
bookAmount ( 교재 수량 )
}
백한별{
"resultMessage": "책 등록 성공",
"resultData": 1
}
67
[GET]
api/book
/getBookList/{classId}교재 조회classId를 입력받아
수업에 맞는 교재 출력
classId (수업 PK)백한별{
"resultMessage": "출력 완료",
"resultData": [
{
"bookId": 4,
"bookName": "책이름",
"bookPic": "652f05e3-52ac-42c2-835b-f020de956049.jpg",
"bookPrice": 1000,
"bookComment": "책소개",
"manager": "매니저1",
"classId": 1
},
}
68
[GET]
api/book
GetBookListByAca
NameBookName
관리자가 학원 이름, 교재 이름
을 입력해 교재 검색
관리자가 학원 이름, 교재 이름을 입력해 교재 검색acaName (학원 이름)
bookName (교재 이름)
백한별{
"resultData": [
{
"bookId": 4,
"bookName": "책1",
"bookComment": "책입니다~",
"bookPic": "4e2f5300-c299-4f95-ac98-5c1b0b9d27d3.jpg",
"bookAmount": 0,
"bookPrice": 1000,
"manager": "담당자1",
"createdAt": "2025-02-27 16:54:43.414984",
"bookCount": "4"
}
....
}
69
[GET]
api/book
GetBookInfo/{bookId}교재 상세 정보 가져오기교재 상세 정보 가져오기bookId (교재 PK)백한별{
"resultMessage": "정보 가져오기 성공",
"resultData": {
"bookId": 1,
"bookName": "미적분",
"bookComment": "<p>미적분</p>",
"bookAmount": 145,
"bookPic": "c2c23e8b-6fb1-4e46-af09-36ee5ffdb0cc.jpg",
"bookPrice": 15000,
"manager": "장재웅",
"classId": 2,
"createdAt": "2025-03-05 08:05:37.129551",
"productId": 3
}
}
70
[PUT]
api/book
updateBook교재 수정교재 수정하기bookId ( 교재 PK)
bookName ( 교재 이름 )
bookPrice ( 교재 가격 )
bookComment ( 교재 소개 )
bookPic ( 교재 사진 )
manager ( 담당자 )
classId ( 등록된 수업 )
백한별{
"resultMessage": "수정 완료",
"resultData": 1
}
71
[DELDETE]
api/book
deleteBook교재 삭제교재 삭제하기bookId ( 교재 PK)백한별{
"resultMessage": "삭제 완료",
"resultData": 1
}
72
Review
(리뷰)
[POST]
api/review
postReview리뷰 등록하기리뷰를 등록한다.
학원 클래스(수업)을 들은 학생만 작성가능
joinClassId(수강생 pk)
userId(사용자 pk)
comment (리뷰 내용)
star(리뷰 평점)
banReview(금지 여부)
pics(사진)
구수영{
"resultMessage": "리뷰 등록 성공",
"resultData": 1
}
73
[GET]
api/review/academy/all
getAcademyReviewsAll학원 리뷰 전체 조회특정 학원의 전체 리뷰를 조회한다.acaId(학원 pk)장재웅{
"resultMessage": "작성된 리뷰를 조회하였습니다.",
"resultData": [
{
"reviewId": 7,
"classId": 5,
"className": "금빛수학학원",
"acaId": 2,
"userId": 3,
"comment": "재밌게 배우는 수학. 환영합니다.",
"star": 5,
"createdAt": "2025-03-17 18:36:19.000000",
"myReviewCount": 1,
"banReview": 0
}
]
}
{
"resultMessage": "작성한 리뷰가 없습니다.",
"resultData": []
}
74
[GET]
api/review/me
getMeReviews본인이 작성한 전체 리뷰 조회본인이 작성한 전체 리뷰를 조회한다.userId(사용자 pk)
장재웅{
"resultMessage": "작성한 리뷰를 조회하였습니다.",
"resultData": [
{
"reviewId": 4,
"classId": 3,
"className": "즐거운 수학교실",
"acaId": 1,
"userId": 2,
"writerName": "재진",
"comment": "수업이 너무 유익합니다.",
"star": 4,
"createdAt": "2025-03-17 18:14:25.000000",
"myReviewCount": 2,
"banReview": 0
},
{
"reviewId": 6,
"classId": 4,
"className": "고등영어 심화과정",
"acaId": 1,
"userId": 2,
"writerName": "재진",
"comment": "실력향샹이 많이 되었습니다.",
"star": 4,
"createdAt": "2025-03-17 18:35:21.000000",
"myReviewCount": 2,
"banReview": 0,
"reviewPic": "default.jpg"
}
]
}
{
"resultMessage": "본인이 관리하는 학원의 리뷰만 조회할 수 있습니다.",
"resultData": []
}
75
[GET]
api/review/me/pic
getMePicReviews
본인이 작성한 리뷰 조회(사진o)
본인이 작성한 리뷰중에서
사진이 있는것만 조회한다.

userId(사용자 pk)
장재웅{
"resultMessage": "작성한 리뷰를 조회하였습니다.",
"resultData": [
{
"reviewId": 5,
"classId": 3,
"className": "고등 수학 심화과정",
"acaId": 1,
"userId": 2,
"writerName": "재진",
"comment": "수학을 심도있게 공부할 수 있습니다.",
"star": 3,
"createdAt": "2025-03-17 18:34:26.000000",
"myReviewCount": 1,
"banReview": 0,
"reviewPic": "default.jpg"
}
]
}
{
"resultMessage": "리뷰가 존재하지 않습니다.",
"resultData": []
}
76
[GET]
api/review/me/noPic
getMeNoPicReviews본인이 작성한 리뷰 조회(사진x)본인이 작성한 리뷰중에서
사진이 없는것만 조회한다.
userId(사용자 pk)장재웅{
"resultMessage": "작성한 리뷰를 조회하였습니다.",
"resultData": [
{
"reviewId": 4,
"classId": 2,
"className": "222",
"acaId": 1,
"userId": 2,
"writerName": "재진",
"comment": "영어를 심도있게 공부할 수 있습니다.",
"star": 4,
"createdAt": "2025-03-17 18:14:25.000000",
"myReviewCount": 1,
"banReview": 0
}
]
}
77
[GET]
api/review/academy/pic
getAcademyPicReviews학원 리뷰 조회(사진o)학원 리뷰중에서
사진이 있는것만 조회한다.
acaId(학원 pk)장재웅{
"resultMessage": "리뷰가 조회되었습니다.",
"resultData": [
{
"reviewId": 2,
"classId": 2,
"className": "수학심화반",
"acaId": 15,
"userId": 3,
"writerName": "현수",
"comment": "예습, 복습, 응용이 확실하게 잡혀있습니다.",
"star": 5,
"createdAt": "2025-03-17 14:51:34.000000",
"myReviewCount": 1,
"banReview": 0,
"reviewPic": "mathPic.jpg"
}
]
}
78
[GET]
api/review/academy/noPic
getAcademyNoPicReviews학원 리뷰 조회(사진x)학원 리뷰중에서
사진이 없는것만 조회한다.
acaId(학원 pk)장재웅{
"resultMessage": "리뷰가 조회되었습니다.",
"resultData": [
{
"reviewId": 10,
"classId": 12,
"className": "영어심화반",
"acaId": 15,
"userId": 3,
"writerName": "현수",
"comment": "영어에 대한 이해도가 달라졌습니다..",
"star": 5,
"createdAt": "2025-03-17 14:51:34.000000",
"myReviewCount": 1,
"banReview": 0,
"reviewPic": "englishPic.jpg"
}
]
}
79
[PUT]
api/review/user
putReview리뷰 수정하기리뷰를 수정한다.
userId(사용자 pk)
comment(리뷰 내용)
star(리뷰 평점)
백한별{
"resultMessage": "리뷰 수정이 완료되었습니다.",
"resultData": 1
}
{
"resultMessage": "수정할 리뷰가 존재하지 않거나 권한이 없습니다.",
"resultData": 0
}
80
[DELETE]
api/review/academy
delAcademyReview본인 학원에 올려진 리뷰 삭제학원관계자가 본인 학원에 올려진
리뷰를 삭제한다.

acaId(학원 pk)
reviewId(리뷰 pk)
장재웅{
"resultMessage": "리뷰를 삭제하였습니다.",
"resultData": 1
}
{
"resultMessage": "삭제하려는 리뷰가 존재하지 않습니다.",
"resultData": 0
}
81
[DELETE]
api/review/me
delMeReview본인이 작성한 리뷰 삭제본인이 작성했던 리뷰를 삭제한다.
userId(사용자 pk)
reviewId(리뷰 pk)

장재웅{
"resultMessage": "리뷰를 삭제하였습니다.",
"resultData": 1
}
{
"resultMessage": "삭제하려는 리뷰가 존재하지 않습니다.",
"resultData": 0
}
82
Like
(좋아요)
[POST]
api/like
postLike좋아요 등록좋아요를 등록한다.
userId (유저 pk)
acaId (학원 pk)
이정민{
"resultMessage": "좋아요가 성공적으로 등록되었습니다.",
"resultData": {
"liked": true
}
}
{
"resultMessage": "좋아요 등록 중 오류가 발생했습니다.",
"resultData": {
"liked": false
}
}
83
[DELETE]
api/like
deleteLike좋아요 삭제좋아요를 삭제한다.
userId (유저 pk)
acaId (학원 pk)
이정민{
"resultMessage": "좋아요가 성공적으로 삭제되었습니다.",
"resultData": {
"liked": false
}
}
{
"resultMessage": "좋아요 삭제에 실패했습니다. 좋아요가 존재하지 않을 수 있습니다.",
"resultData": {
"liked": false
}
}
84
[GET]
api/like/user
getLikeList본인이 좋아요 한 학원 목록 리스트 조회본인이 좋아요 한 학원 리스트 목록을 조회userId (유저 pk)이정민{
"resultMessage": "해당 유저가 좋아요한 학원 목록 조회가 완료되었습니다.",
"resultData": [
{
"acaId": 10,
"acaPic": "default.jpg"
}
]
}
{
"resultMessage": "해당 유저가 좋아요한 학원이 없습니다.",
"resultData": []
}
85
[GET]
api/like/list
getLikeList특정 학원을 좋아요한 유저 목록 리스트 불러오기특정 학원을 좋아요한 유저들의 ID와 프로필 사진 목록을 조회acaId(학원 pk)이정민{
"resultMessage": "좋아요를 누른 유저 목록 조회가 완료되었습니다.",
"resultData": [
{
"userId": 9,
"userPic": "default_user.jpg"
}
]
}
{
"resultMessage": "유저가 좋아요한 학원 목록 조회가 완료되었습니다.",
"resultData": [
{
"acaId": 2,
"acaPic": "default.jpg"
}
]
}
86
Tag
(태그)
[GET]
api/academy
getTagListBySearchName공백이나 단어를 입력받아
사이트에 등록된
태그 리스트 출력하기
공백이나 단어를 입력받아
사이트에 등록된
태그 리스트 출력하기
tagName(태그 이름)백한별{
"resultMessage": "학원 리스트 불러오기 성공",
"resultData": [
{
"tagId": 1,
"tagName": "초등 영어"
},
{
"tagId": 2,
"tagName": "중등 영어"
},
{
"tagId": 3,
"tagName": "고등 영어"
},
{
"tagId": 4,
"tagName": "영어 회화"
},
{
"tagId": 5,
"tagName": "영어 작문"
},
....
}
87
Search
(검색)
[GET]
api/search/
popularSearch인기 태그 불러오기가장 많이 검색된 태그를 불러온다.백한별"resultMessage": "인기 검색어 출력 완료",
"resultData": [
{
"tagName": "초등 영어",
"tagCount": 131
},
{
"tagName": "재수 학원",
"tagCount": 51
},
{
"tagName": "디지털 마케팅",
"tagCount": 22
},
{
"tagName": "음악 입시",
"tagCount": 17
},
{
"tagName": "미술 입시",
"tagCount": 16
},
{
"tagName": "영어 작문",
"tagCount": 7
},
{
"tagName": "영어 독해",
"tagCount": 4
},
{
"tagName": "중등 영어",
"tagCount": 3
},
{
"tagName": "STEM",
"tagCount": 3
},
{
"tagName": "AP 과목",
"tagCount": 2
}
]
88
Class
(강좌)
[POST]
api/acaClass
postClass강좌 등록하기학원마다 강좌를 등록한다.
acaId(학원 pk)
className(강좌 이름)
classComment(강좌 내용)
startDate(시작 날짜)
endDate(종료 날짜)
startTime(시작 시간)
endTime(종료 시간)
price(수강료)
구수영{
"resultMessage" : "강좌 등록 성공",
"resultData" : 1
}
{
"resultMessage" : "강좌 등록 실패",
"resultData" : 0
}
89
[POST]
api/class/weekdays
postDay요일 등록하기요일을 등록한다.(월,화,수,목,금,토,일)
dayId(요일 pk)
day(요일)
구수영
{
"resultMessage" : "요일 등록 성공",
"resultData" : 1
}
{
"resultMessage" : "요일 등록 실패",
"resultData" : 0
}
90
[POST]
api/class/dayRelation
postDayRelation요일 관계 등록하기강좌마다 열리는 날을 등록한다.
classId(강좌 pk)
dayId(요일 pk)
구수영
{
"resultMessage" : "요일 관계 등록 성공",
"resultData" : 1
}
{
"resultMessage" : "요일 관계 등록 실패",
"resultData" : 0
}
91
[POST]
api/class/classCategory
postClassCategory카테고리 등록하기강좌에 적합한 카테고리를 등록한다.classId(강좌 pk)
categoryId(카테고리 pk)
구수영
{
"resultMessage": "카테고리 등록 성공",
"resultData": 1
}
{
"resultMessage": "카테고리 등록 실패",
"resultData": 0
}
92
[GET]
api/acaClass/detail
getDetailClass강좌 세부사항 조회하기강좌에대한 자세한 사항을 불러온다.
acaId(학원 pk)
구수영
{
"resultMessage": "상세정보 불러오기에 성공하였습니다.",
"resultData": [
{
"classId": "int",
"className": "string",
"classComment": "string",
"startDate": "string",
"endDate": "string",
"startTime": "string",
"endTime": "string",
"price": "int",
"day": "List<string>",
"yearsAndLevel": "List<string>"
}
]
}
{
"resultMessage": "상세정보 불러오기에 실패하였습니다.",
"resultData": null
}
93
[GET]
api/acaClass
getClass강좌 불러오기학원에서 열리는 강좌들을 불러온다.acaId(학원 pk)구수영
{
"resultMessage": "학원 강좌 정보 불러오기에 성공하였습니다.",
"resultData": [
{
"acaPic" : "string",
"classId" : "long",
"className" : "string",
"startDate" : "string",
"endDate" : "string",
}
]
}
{
"resultMessage": "학원 강좌 정보 불러오기에 실패하였습니다.",
"resultData": null
}
94
[GET]
api/acaClass/acaClassUser
getClassUser수강생 정보 불러오기강좌를 수강한 학생들의 정보를 불러온다.
classId(강좌 pk)
구수영
{
"resultMessage": "등록한 강좌 정보 불러오기에 성공하였습니다.",
"resultData": [
{
"userId" : "string",
"userPic": "string",
"name": "string",
"phone": "string",
"birth": "string"
}
]
}
{
"resultMessage": "등록한 강좌 정보 불러오기에 실패하였습니다.",
"resultData": null
}
95
[PUT]
api/acaClass
updClass강좌 수정하기강좌 정보를 수정한다.
acaId(학원 pk)
classId(강좌 pk)
className(강좌 이름)
classComment(강좌 내용)
startDate(시작 날짜)
endDate(종료 날짜)
startTime(시작 시간)
endTime(종료 시간)
price(수강료)
구수영
{
"resultMessage": "강좌 수정 성공",
"resultData": 1
}
{
"resultMessage": "강좌 수정 실패",
"resultData": 0
}
96
[DELETE]
api/acaClass
delClass강좌 삭제하기강좌 정보를 삭제한다.classId(강좌 pk)
acaId(학원 pk)
구수영
{
"resultMessage": "강좌 삭제 성공",
"resultData": 1
}

"resultMessage": "강좌 삭제 실패",
"resultData": 0
}
97
[DELETE]
api/acaClass/day
delClassDay강좌 요일 삭제하기강좌가 열렸던 날을 삭제한다.
classId(강좌 pk)
dayId(요일 pk)
구수영
{
"resultMessage": "개강날 삭제에 성공하였습니다.",
"resultData": 1
}

{
"resultMessage": "개강날 삭제에 실패하였습니다.",
"resultData": 0
}
98
Exam
(시험)
[POST]
api/exam
postExam시험 등록하기강좌에 따른 시험을 등록한다.
classId(강좌 pk)
examtName(시험 이름)
examType(시험 유형)
구수영
{
"resultMessage": "시험 등록 성공",
"resultData": 1
}
{
"resultMessage": "시험 등록 실패",
"resultData": 0
}
99
Grade
(성적)

[POST]
api/grade

postGrade

성적 등록하기

성적을 등록한다.

joinClassId(수강생 pk)
examId(시험 pk)
score(과목 점수)
pass(패스 여부)
examDate(시험 날짜)
processingStatus(처리 상태)
구수영{
"resultMessage" : "성적이 성공적으로 입력되었습니다.",
"resultData" : 1
}
{
"resultMessage": "이미 성적을 입력하였습니다.",
"resultData": 0
}
100
[GET]
api/grade
selGradeScore수강생 한 명의 시험 점수 가져오기수강생 한명에 대한 성적을 불러온다.userId(유저 pk)
classId(강좌 pk)
구수영
{
"resultMessage": "성적 불러오기에 성공하였습니다.",
"resultData": [
{
"examName": "string",
"examDate": "string",
"score": int,
"pass": int
}
]
}

{
"resultMessage": "성적 불러오기에 실패하였습니다."
}