소개
API 문서입니다.
공통 사항
API 문서에서 공통으로 사용되는 내용을 정의합니다.
공통 응답 구조
실패 응답
{
"status": 400,
"data": {
"errorCode": "COMMON_2",
"message": "요청 변수가 잘못되었습니다."
}
}
-
status: HTTP 상태 코드 -
errorCode: 에러 코드 -
message: 에러 메시지
상태 코드
| 상태 코드 | 의미 | 설명 |
|---|---|---|
200 |
OK |
요청이 성공적으로 처리됨 |
401 |
Unauthorized |
인증 실패 (잘못된 토큰 등) |
404 |
Not Found |
리소스를 찾을 수 없음 |
409 |
Conflict |
리소스 충돌 (중복 등) |
500 |
Internal Server Error |
서버 내부 오류 |
Auth API
1. 학생 로그인
요청(Request)
POST /api/auth/login HTTP/1.1
Content-Type: application/json
Content-Length: 51
Host: iptdesign.mycafe24.com
{
"password" : "1234",
"loginId" : "a1001"
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
로그인 ID |
|
|
비밀번호 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 157
{
"status" : 200,
"data" : {
"accessToken" : "access-token-example",
"refreshToken" : "refresh-token-example",
"userRole" : null
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
액세스 토큰 |
|
|
리프레시 토큰 |
|
|
사용자 역할 (학생 로그인 시 null) |
1-1. 학생 로그인 (비밀번호 틀림)
응답(Response)
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 123
{
"status" : 401,
"data" : {
"errorCode" : "AUTH_4",
"message" : "비밀번호가 틀렸습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
401 |
|
|
AUTH_4 |
|
|
비밀번호가 틀렸습니다. |
1-2. 학생 로그인 (사용자 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 119
{
"status" : 404,
"data" : {
"errorCode" : "USER_1",
"message" : "회원을 찾을 수 없음."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
USER_1 |
|
|
회원을 찾을 수 없음. |
1-3. 학생 로그인 (권한 없음)
응답(Response)
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 114
{
"status" : 401,
"data" : {
"errorCode" : "AUTH_5",
"message" : "권한이 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
401 |
|
|
AUTH_5 |
|
|
권한이 없습니다. |
2. 강사 로그인
요청(Request)
POST /api/auth/teacher/login HTTP/1.1
Content-Type: application/json
Content-Length: 55
Host: iptdesign.mycafe24.com
{
"password" : "1234",
"loginId" : "teacher01"
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
로그인 ID |
|
|
비밀번호 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 162
{
"status" : 200,
"data" : {
"accessToken" : "access-token-example",
"refreshToken" : "refresh-token-example",
"userRole" : "TEACHER"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
액세스 토큰 |
|
|
리프레시 토큰 |
|
|
사용자 역할 (TEACHER, ADMIN) |
2-1. 강사 로그인 (비밀번호 틀림)
응답(Response)
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 123
{
"status" : 401,
"data" : {
"errorCode" : "AUTH_4",
"message" : "비밀번호가 틀렸습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
401 |
|
|
AUTH_4 |
|
|
비밀번호가 틀렸습니다. |
2-2. 강사 로그인 (사용자 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 119
{
"status" : 404,
"data" : {
"errorCode" : "USER_1",
"message" : "회원을 찾을 수 없음."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
USER_1 |
|
|
회원을 찾을 수 없음. |
2-3. 강사 로그인 (권한 없음)
응답(Response)
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 114
{
"status" : 401,
"data" : {
"errorCode" : "AUTH_5",
"message" : "권한이 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
401 |
|
|
AUTH_5 |
|
|
권한이 없습니다. |
3. 코드 확인
요청(Request)
GET /api/auth/check-code?code=ABC123 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
참여 코드 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 134
{
"status" : 200,
"data" : [ {
"name" : "1팀",
"teamId" : 1
}, {
"name" : "2팀",
"teamId" : 2
} ]
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
팀 ID |
|
|
팀 이름 |
3-1. 코드 확인 (존재하지 않는 코드)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 127
{
"status" : 404,
"data" : {
"errorCode" : "TEAM_1",
"message" : "코드가 존재하지 않습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
TEAM_1 |
|
|
코드가 존재하지 않습니다. |
4. 로그인 ID 중복 확인
요청(Request)
GET /api/auth/check-id?loginId=a1001 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
확인할 로그인 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 메시지 |
4-1. 로그인 ID 중복 확인 (이미 존재하는 ID)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 127
{
"status" : 409,
"data" : {
"errorCode" : "USER_3",
"message" : "이미 가입된 사용자입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
USER_3 |
|
|
이미 가입된 사용자입니다. |
5. 회원가입
요청(Request)
POST /api/auth/signup HTTP/1.1
Content-Type: application/json
Content-Length: 90
Host: iptdesign.mycafe24.com
{
"code" : "ABC123",
"teamId" : 1,
"password" : "1234",
"loginId" : "a1001"
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
로그인 ID |
|
|
비밀번호 |
|
|
참여 코드 |
|
|
팀 ID |
응답(Response)
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 75
{
"status" : 201,
"data" : {
"message" : "생성 완료"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 메시지 |
6. 로그아웃
인증 필요 (Authorization: Bearer {token})
|
요청(Request)
POST /api/auth/logout HTTP/1.1
Host: iptdesign.mycafe24.com
Content-Type: application/x-www-form-urlencoded
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 메시지 |
Admin API
모든 Admin API는 인증 필요 (Authorization: Bearer {token}) + 관리자 권한 필요
|
1. 진행중인 전체 강의실 목록 조회
요청(Request)
GET /api/admin/teach HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 511
{
"status" : 200,
"data" : [ {
"ddTerm" : 1,
"ddYear" : 2026,
"enddate" : "2026-06-30T18:00:00",
"gameId" : 1,
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"missionId" : 3,
"name" : "임팩트디자인 1반",
"numTeam" : 4,
"sequence" : 2,
"startdate" : "2026-03-01T09:00:00",
"statusCeo" : null,
"subject" : "사회문제 해결",
"summary" : "임팩트디자인 수업입니다.",
"totalDd" : 100
} ]
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
현재 미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일시 |
|
|
미션 종료일시 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
CEO 상태 |
|
|
이미지 URL |
1-1. 진행중인 전체 강의실 목록 조회 (사용자 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 119
{
"status" : 404,
"data" : {
"errorCode" : "USER_1",
"message" : "회원을 찾을 수 없음."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
USER_1 |
|
|
회원을 찾을 수 없음. |
1-2. 진행중인 전체 강의실 목록 조회 (권한 없음)
응답(Response)
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 114
{
"status" : 401,
"data" : {
"errorCode" : "AUTH_5",
"message" : "권한이 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
401 |
|
|
AUTH_5 |
|
|
권한이 없습니다. |
2. 전체 강의실 카테고리별 조회
요청(Request)
GET /api/admin/teach/list HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1611
{
"status" : 200,
"data" : {
"completed" : [ {
"ddTerm" : 2,
"ddYear" : 2025,
"enddate" : "2025-12-20T18:00:00",
"gameId" : 3,
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/3/image.png",
"missionId" : 5,
"name" : "임팩트디자인 3반",
"numTeam" : 5,
"sequence" : 4,
"startdate" : "2025-09-01T09:00:00",
"statusCeo" : null,
"subject" : "최종 발표",
"summary" : "종료된 수업입니다.",
"totalDd" : 16
} ],
"etc" : [ ],
"inProgress" : [ {
"ddTerm" : 1,
"ddYear" : 2026,
"enddate" : "2026-06-30T18:00:00",
"gameId" : 1,
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"missionId" : 3,
"name" : "임팩트디자인 1반",
"numTeam" : 4,
"sequence" : 2,
"startdate" : "2026-03-01T09:00:00",
"statusCeo" : null,
"subject" : "사회문제 해결",
"summary" : "임팩트디자인 수업입니다.",
"totalDd" : 100
} ],
"setting" : [ {
"ddTerm" : null,
"ddYear" : null,
"enddate" : null,
"gameId" : 2,
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/%ED%98%84%EB%8C%80%EC%9E%90%EB%8F%99%EC%B0%A8.png",
"missionId" : null,
"name" : "임팩트디자인 2반",
"numTeam" : 3,
"sequence" : null,
"startdate" : null,
"statusCeo" : null,
"subject" : null,
"summary" : "설정중인 수업입니다.",
"totalDd" : 16
} ]
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
진행중인 강의실 목록 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
현재 미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일 |
|
|
미션 종료일 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
CEO 상태 |
|
|
이미지 URL |
|
|
설정중인 강의실 목록 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
현재 미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일 |
|
|
미션 종료일 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
CEO 상태 |
|
|
이미지 URL |
|
|
종료된 강의실 목록 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
현재 미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일 |
|
|
미션 종료일 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
CEO 상태 |
|
|
이미지 URL |
|
|
기타 강의실 목록 |
2-1. 전체 강의실 카테고리별 조회 (사용자 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 119
{
"status" : 404,
"data" : {
"errorCode" : "USER_1",
"message" : "회원을 찾을 수 없음."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
USER_1 |
|
|
회원을 찾을 수 없음. |
2-2. 전체 강의실 카테고리별 조회 (권한 없음)
응답(Response)
HTTP/1.1 401 Unauthorized
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 114
{
"status" : 401,
"data" : {
"errorCode" : "AUTH_5",
"message" : "권한이 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
401 |
|
|
AUTH_5 |
|
|
권한이 없습니다. |
Impact Check API
모든 Impact Check API는 인증 필요 (Authorization: Bearer {token})
|
1. 임팩트 체크 조회
요청(Request)
GET /api/impact-check HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 596
{
"status" : 200,
"data" : {
"answerId" : 1,
"q10Score" : 5,
"q11Score" : 4,
"q12Score" : 3,
"q13Text" : "사회 문제 해결에 관심이 생겼습니다.",
"q14Text" : "팀원들과의 협업이 좋았습니다.",
"q15Text" : "시간이 부족했습니다.",
"q16Text" : "더 많은 사례를 보고 싶습니다.",
"q1Score" : 5,
"q2Score" : 4,
"q3Score" : 3,
"q4Score" : 5,
"q5Score" : 4,
"q6Score" : 3,
"q7Score" : 5,
"q8Score" : 4,
"q9Score" : 3,
"submitted" : false,
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
응답 ID |
|
|
1번 점수 |
|
|
2번 점수 |
|
|
3번 점수 |
|
|
4번 점수 |
|
|
5번 점수 |
|
|
6번 점수 |
|
|
7번 점수 |
|
|
8번 점수 |
|
|
9번 점수 |
|
|
10번 점수 |
|
|
11번 점수 |
|
|
12번 점수 |
|
|
13번 텍스트 답변 |
|
|
14번 텍스트 답변 |
|
|
15번 텍스트 답변 |
|
|
16번 텍스트 답변 |
|
|
사용자 ID |
|
|
제출 여부 |
2. 임팩트 체크 저장
요청(Request)
POST /api/impact-check HTTP/1.1
Content-Type: application/json
Content-Length: 460
Host: iptdesign.mycafe24.com
{
"q1Score" : 5,
"q2Score" : 4,
"q3Score" : 3,
"q4Score" : 5,
"q5Score" : 4,
"q6Score" : 3,
"q7Score" : 5,
"q8Score" : 4,
"q9Score" : 3,
"q10Score" : 5,
"q11Score" : 4,
"q12Score" : 3,
"q13Text" : "사회 문제 해결에 관심이 생겼습니다.",
"q14Text" : "팀원들과의 협업이 좋았습니다.",
"q15Text" : "시간이 부족했습니다.",
"q16Text" : "더 많은 사례를 보고 싶습니다."
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
1번 점수 |
|
|
2번 점수 |
|
|
3번 점수 |
|
|
4번 점수 |
|
|
5번 점수 |
|
|
6번 점수 |
|
|
7번 점수 |
|
|
8번 점수 |
|
|
9번 점수 |
|
|
10번 점수 |
|
|
11번 점수 |
|
|
12번 점수 |
|
|
13번 텍스트 답변 |
|
|
14번 텍스트 답변 |
|
|
15번 텍스트 답변 |
|
|
16번 텍스트 답변 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 596
{
"status" : 200,
"data" : {
"answerId" : 1,
"q10Score" : 5,
"q11Score" : 4,
"q12Score" : 3,
"q13Text" : "사회 문제 해결에 관심이 생겼습니다.",
"q14Text" : "팀원들과의 협업이 좋았습니다.",
"q15Text" : "시간이 부족했습니다.",
"q16Text" : "더 많은 사례를 보고 싶습니다.",
"q1Score" : 5,
"q2Score" : 4,
"q3Score" : 3,
"q4Score" : 5,
"q5Score" : 4,
"q6Score" : 3,
"q7Score" : 5,
"q8Score" : 4,
"q9Score" : 3,
"submitted" : false,
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
응답 ID |
|
|
1번 점수 |
|
|
2번 점수 |
|
|
3번 점수 |
|
|
4번 점수 |
|
|
5번 점수 |
|
|
6번 점수 |
|
|
7번 점수 |
|
|
8번 점수 |
|
|
9번 점수 |
|
|
10번 점수 |
|
|
11번 점수 |
|
|
12번 점수 |
|
|
13번 텍스트 답변 |
|
|
14번 텍스트 답변 |
|
|
15번 텍스트 답변 |
|
|
16번 텍스트 답변 |
|
|
사용자 ID |
|
|
제출 여부 |
3. 임팩트 체크 제출
요청(Request)
PATCH /api/impact-check/submit HTTP/1.1
Content-Type: application/json
Content-Length: 460
Host: iptdesign.mycafe24.com
{
"q1Score" : 5,
"q2Score" : 4,
"q3Score" : 3,
"q4Score" : 5,
"q5Score" : 4,
"q6Score" : 3,
"q7Score" : 5,
"q8Score" : 4,
"q9Score" : 3,
"q10Score" : 5,
"q11Score" : 4,
"q12Score" : 3,
"q13Text" : "사회 문제 해결에 관심이 생겼습니다.",
"q14Text" : "팀원들과의 협업이 좋았습니다.",
"q15Text" : "시간이 부족했습니다.",
"q16Text" : "더 많은 사례를 보고 싶습니다."
}
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 595
{
"status" : 200,
"data" : {
"answerId" : 1,
"q10Score" : 5,
"q11Score" : 4,
"q12Score" : 3,
"q13Text" : "사회 문제 해결에 관심이 생겼습니다.",
"q14Text" : "팀원들과의 협업이 좋았습니다.",
"q15Text" : "시간이 부족했습니다.",
"q16Text" : "더 많은 사례를 보고 싶습니다.",
"q1Score" : 5,
"q2Score" : 4,
"q3Score" : 3,
"q4Score" : 5,
"q5Score" : 4,
"q6Score" : 3,
"q7Score" : 5,
"q8Score" : 4,
"q9Score" : 3,
"submitted" : true,
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
응답 ID |
|
|
1번 점수 |
|
|
2번 점수 |
|
|
3번 점수 |
|
|
4번 점수 |
|
|
5번 점수 |
|
|
6번 점수 |
|
|
7번 점수 |
|
|
8번 점수 |
|
|
9번 점수 |
|
|
10번 점수 |
|
|
11번 점수 |
|
|
12번 점수 |
|
|
13번 텍스트 답변 |
|
|
14번 텍스트 답변 |
|
|
15번 텍스트 답변 |
|
|
16번 텍스트 답변 |
|
|
사용자 ID |
|
|
제출 여부 |
3-1. 임팩트 체크 제출 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
Identity Canvas API
모든 Identity Canvas API는 인증 필요 (Authorization: Bearer {token})
|
1. Identity 캔버스 조회
요청(Request)
GET /api/identity-canvas HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 650
{
"status" : 200,
"data" : {
"capability" : "데이터 분석 역량",
"competitor" : "기존 복지 서비스",
"culture" : "수평적 조직 문화",
"customer" : "지역 주민",
"etc" : "기타 사항",
"identityId" : 1,
"macro" : "고령화 사회",
"mission" : "사회 문제 해결",
"newMission" : "새로운 미션",
"newValue" : "새로운 가치",
"newVision" : "새로운 비전",
"structure" : "팀 기반 구조",
"submitted" : false,
"tech" : "AI 기술",
"userId" : 1,
"value" : "협력과 혁신",
"vision" : "지속 가능한 미래"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
Identity 캔버스 ID |
|
|
미션 |
|
|
비전 |
|
|
가치 |
|
|
정책/경제 |
|
|
기술 |
|
|
고객/사회 |
|
|
경쟁자 |
|
|
역량 |
|
|
문화 |
|
|
구조 |
|
|
기타 |
|
|
새로운 미션 |
|
|
새로운 비전 |
|
|
새로운 가치 |
|
|
사용자 ID |
|
|
제출 여부 |
2. Identity 캔버스 저장
요청(Request)
POST /api/identity-canvas HTTP/1.1
Content-Type: application/json
Content-Length: 516
Host: iptdesign.mycafe24.com
{
"mission" : "사회 문제 해결",
"vision" : "지속 가능한 미래",
"value" : "협력과 혁신",
"macro" : "고령화 사회",
"tech" : "AI 기술",
"customer" : "지역 주민",
"competitor" : "기존 복지 서비스",
"capability" : "데이터 분석 역량",
"culture" : "수평적 조직 문화",
"structure" : "팀 기반 구조",
"etc" : "기타 사항",
"newMission" : "새로운 미션",
"newVision" : "새로운 비전",
"newValue" : "새로운 가치"
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
미션 |
|
|
비전 |
|
|
가치 |
|
|
정책/경제 |
|
|
기술 |
|
|
고객/사회 |
|
|
경쟁자 |
|
|
역량 |
|
|
문화 |
|
|
구조 |
|
|
기타 |
|
|
새로운 미션 |
|
|
새로운 비전 |
|
|
새로운 가치 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 650
{
"status" : 200,
"data" : {
"capability" : "데이터 분석 역량",
"competitor" : "기존 복지 서비스",
"culture" : "수평적 조직 문화",
"customer" : "지역 주민",
"etc" : "기타 사항",
"identityId" : 1,
"macro" : "고령화 사회",
"mission" : "사회 문제 해결",
"newMission" : "새로운 미션",
"newValue" : "새로운 가치",
"newVision" : "새로운 비전",
"structure" : "팀 기반 구조",
"submitted" : false,
"tech" : "AI 기술",
"userId" : 1,
"value" : "협력과 혁신",
"vision" : "지속 가능한 미래"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
Identity 캔버스 ID |
|
|
미션 |
|
|
비전 |
|
|
가치 |
|
|
정책/경제 |
|
|
기술 |
|
|
고객/사회 |
|
|
경쟁자 |
|
|
역량 |
|
|
문화 |
|
|
구조 |
|
|
기타 |
|
|
새로운 미션 |
|
|
새로운 비전 |
|
|
새로운 가치 |
|
|
사용자 ID |
|
|
제출 여부 |
2-1. Identity 캔버스 저장 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
3. Identity 캔버스 제출
요청(Request)
PATCH /api/identity-canvas/submit HTTP/1.1
Content-Type: application/json
Content-Length: 516
Host: iptdesign.mycafe24.com
{
"mission" : "사회 문제 해결",
"vision" : "지속 가능한 미래",
"value" : "협력과 혁신",
"macro" : "고령화 사회",
"tech" : "AI 기술",
"customer" : "지역 주민",
"competitor" : "기존 복지 서비스",
"capability" : "데이터 분석 역량",
"culture" : "수평적 조직 문화",
"structure" : "팀 기반 구조",
"etc" : "기타 사항",
"newMission" : "새로운 미션",
"newVision" : "새로운 비전",
"newValue" : "새로운 가치"
}
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 649
{
"status" : 200,
"data" : {
"capability" : "데이터 분석 역량",
"competitor" : "기존 복지 서비스",
"culture" : "수평적 조직 문화",
"customer" : "지역 주민",
"etc" : "기타 사항",
"identityId" : 1,
"macro" : "고령화 사회",
"mission" : "사회 문제 해결",
"newMission" : "새로운 미션",
"newValue" : "새로운 가치",
"newVision" : "새로운 비전",
"structure" : "팀 기반 구조",
"submitted" : true,
"tech" : "AI 기술",
"userId" : 1,
"value" : "협력과 혁신",
"vision" : "지속 가능한 미래"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
Identity 캔버스 ID |
|
|
미션 |
|
|
비전 |
|
|
가치 |
|
|
정책/경제 |
|
|
기술 |
|
|
고객/사회 |
|
|
경쟁자 |
|
|
역량 |
|
|
문화 |
|
|
구조 |
|
|
기타 |
|
|
새로운 미션 |
|
|
새로운 비전 |
|
|
새로운 가치 |
|
|
사용자 ID |
|
|
제출 여부 |
3-1. Identity 캔버스 제출 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
Flow Canvas API
모든 Flow Canvas API는 인증 필요 (Authorization: Bearer {token})
|
1. Flow 캔버스 조회
요청(Request)
GET /api/flow-canvas HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 687
{
"status" : 200,
"data" : {
"goals" : [ {
"goalDescription" : "지역 사회 문제를 해결하는 솔루션 개발",
"goalId" : 1,
"goalTitle" : "사회적 가치 창출",
"orderNo" : 1,
"strategicActivities" : [ {
"activityId" : 1,
"activityMetric" : "서비스 개선 횟수",
"interCriteria" : "월 2회 이상",
"orderNo" : 1
} ],
"tacticals" : [ {
"metricId" : 1,
"orderNo" : 1,
"tacticalGoal" : "90% 이상",
"tacticalMetric" : "고객 만족도"
} ]
} ],
"newVision" : "지속 가능한 미래",
"submitted" : false
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
새로운 비전 (Identity 캔버스에서 가져옴) |
|
|
목표 목록 |
|
|
목표 ID |
|
|
목표 제목 |
|
|
목표 설명 |
|
|
목표 순서(1인당 3개) |
|
|
전술 지표 목록(목표당 3개) |
|
|
전술적 성과 지표 ID |
|
|
전술적 성과 지표 |
|
|
전술 목표 |
|
|
지표 순서 |
|
|
전략 활동 목록(목표당 3개) |
|
|
전략적 활동 지표 ID |
|
|
전략적 활동 지표 |
|
|
내재화 기준 |
|
|
활동 순서 |
|
|
제출 여부 |
2. Flow 캔버스 저장
요청(Request)
POST /api/flow-canvas HTTP/1.1
Content-Type: application/json
Content-Length: 541
Host: iptdesign.mycafe24.com
{
"goals" : [ {
"tacticals" : [ {
"tacticalGoal" : "90% 이상",
"orderNo" : 1,
"metricId" : 1,
"tacticalMetric" : "고객 만족도"
} ],
"goalDescription" : "지역 사회 문제를 해결하는 솔루션 개발",
"strategicActivities" : [ {
"activityMetric" : "서비스 개선 횟수",
"orderNo" : 1,
"activityId" : 1,
"interCriteria" : "월 2회 이상"
} ],
"goalTitle" : "사회적 가치 창출",
"orderNo" : 1,
"goalId" : 1
} ]
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
목표 목록 |
|
|
목표 ID (수정 시) |
|
|
목표 제목 |
|
|
목표 설명 |
|
|
목표 순서(1인당 3개) |
|
|
전술 지표 목록(목표당 3개) |
|
|
전술적 성과 지표 ID (수정 시) |
|
|
전술적 성과 지표 |
|
|
전술 목표 |
|
|
지표 순서 |
|
|
전략 활동 목록(목표당 3개) |
|
|
전략적 활동 지표 ID (수정 시) |
|
|
전략적 활동 지표 |
|
|
내재화 기준 기준 |
|
|
활동 순서 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 687
{
"status" : 200,
"data" : {
"goals" : [ {
"goalDescription" : "지역 사회 문제를 해결하는 솔루션 개발",
"goalId" : 1,
"goalTitle" : "사회적 가치 창출",
"orderNo" : 1,
"strategicActivities" : [ {
"activityId" : 1,
"activityMetric" : "서비스 개선 횟수",
"interCriteria" : "월 2회 이상",
"orderNo" : 1
} ],
"tacticals" : [ {
"metricId" : 1,
"orderNo" : 1,
"tacticalGoal" : "90% 이상",
"tacticalMetric" : "고객 만족도"
} ]
} ],
"newVision" : "지속 가능한 미래",
"submitted" : false
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
새로운 비전 |
|
|
목표 목록 |
|
|
목표 ID |
|
|
목표 제목 |
|
|
목표 설명 |
|
|
목표 순서(1인당 3개) |
|
|
전술 지표 목록(목표당 3개) |
|
|
전술적 성과 지표 ID |
|
|
전술적 성과 지표 |
|
|
전술 목표 |
|
|
지표 순서 |
|
|
전략 활동 목록(목표당 3개) |
|
|
전략적 활동 지표 ID |
|
|
전략적 활동 지표 |
|
|
내재화 기준 |
|
|
활동 순서 |
|
|
제출 여부 |
2-1. Flow 캔버스 저장 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
3. Flow 캔버스 제출
요청(Request)
PATCH /api/flow-canvas/submit HTTP/1.1
Content-Type: application/json
Content-Length: 541
Host: iptdesign.mycafe24.com
{
"goals" : [ {
"tacticals" : [ {
"tacticalGoal" : "90% 이상",
"orderNo" : 1,
"metricId" : 1,
"tacticalMetric" : "고객 만족도"
} ],
"goalDescription" : "지역 사회 문제를 해결하는 솔루션 개발",
"strategicActivities" : [ {
"activityMetric" : "서비스 개선 횟수",
"orderNo" : 1,
"activityId" : 1,
"interCriteria" : "월 2회 이상"
} ],
"goalTitle" : "사회적 가치 창출",
"orderNo" : 1,
"goalId" : 1
} ]
}
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 686
{
"status" : 200,
"data" : {
"goals" : [ {
"goalDescription" : "지역 사회 문제를 해결하는 솔루션 개발",
"goalId" : 1,
"goalTitle" : "사회적 가치 창출",
"orderNo" : 1,
"strategicActivities" : [ {
"activityId" : 1,
"activityMetric" : "서비스 개선 횟수",
"interCriteria" : "월 2회 이상",
"orderNo" : 1
} ],
"tacticals" : [ {
"metricId" : 1,
"orderNo" : 1,
"tacticalGoal" : "90% 이상",
"tacticalMetric" : "고객 만족도"
} ]
} ],
"newVision" : "지속 가능한 미래",
"submitted" : true
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
새로운 비전 |
|
|
목표 목록 |
|
|
목표 ID |
|
|
목표 제목 |
|
|
목표 설명 |
|
|
목표 순서(1인당 3개) |
|
|
전술 지표 목록(목표당 3개) |
|
|
전술적 성과 지표 ID |
|
|
전술적 성과 지표 |
|
|
전술 목표 |
|
|
지표 순서 |
|
|
전략 활동 목록(목표당 3개) |
|
|
전략적 활동 지표 ID |
|
|
전략적 활동 지표 |
|
|
내재화 기준 |
|
|
활동 순서 |
|
|
제출 여부 |
3-1. Flow 캔버스 제출 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
QuickWin Canvas API
모든 QuickWin Canvas API는 인증 필요 (Authorization: Bearer {token})
|
1. QuickWin 캔버스 조회
요청(Request)
GET /api/quick-win-canvas HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1153
{
"status" : 200,
"data" : {
"canvasId" : 1,
"crisisSignal" : "환경 오염 심화",
"painTouchPoint" : "주민 불편 사항",
"strategicGoal" : "지역 사회 문제 해결",
"submitted" : false,
"taskActivities" : [ {
"activityContent" : "캠페인 기획 회의",
"activityId" : 1,
"duration" : "2주",
"orderNo" : 1,
"processStep" : "기획"
} ],
"taskDescription" : "지역 환경 개선을 위한 캠페인 기획",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"quantity" : 100,
"resourceName" : "홍보물"
} ],
"taskName" : "환경 캠페인",
"taskOutcomes" : [ {
"orderNo" : 1,
"outcomeContent" : "참여 인원 50명",
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
}, {
"orderNo" : 2,
"outcomeContent" : "주민 만족도 향상",
"outcomeNo" : 2,
"outcomeType" : "QUALITATIVE"
} ],
"teamwork" : {
"activityTeamwork" : "팀 회의 진행",
"teamworkId" : 1,
"workType" : "협업"
},
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
캔버스 ID |
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
위기의 신호 |
|
|
페인 포인트 |
|
|
사용자 ID |
|
|
제출 여부 |
|
|
투입 자원 목록 |
|
|
투입 ID |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID |
|
|
추진 절차 |
|
|
주요 내용 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 |
|
|
팀워크 ID |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
성과 목록 |
|
|
성과 번호 |
|
|
성과 유형 (QUANTITATIVE, QUALITATIVE) |
|
|
성과 내용 |
|
|
순서 |
2. QuickWin 캔버스 저장
요청(Request)
POST /api/quick-win-canvas HTTP/1.1
Content-Type: application/json
Content-Length: 845
Host: iptdesign.mycafe24.com
{
"strategicGoal" : "지역 사회 문제 해결",
"taskName" : "환경 캠페인",
"taskDescription" : "지역 환경 개선을 위한 캠페인 기획",
"crisisSignal" : "환경 오염 심화",
"painTouchPoint" : "주민 불편 사항",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"resourceName" : "홍보물",
"quantity" : 100
} ],
"taskActivities" : [ {
"orderNo" : 1,
"activityId" : 1,
"processStep" : "기획",
"activityContent" : "캠페인 기획 회의",
"duration" : "2주"
} ],
"teamwork" : {
"workType" : "협업",
"teamworkId" : 1,
"activityTeamwork" : "팀 회의 진행"
},
"taskOutcomes" : [ {
"outcomeContent" : "참여 인원 50명",
"orderNo" : 1,
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
} ]
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
위기의 신호 |
|
|
페인 포인트 |
|
|
투입 자원 목록 |
|
|
투입 ID (수정 시) |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID (수정 시) |
|
|
추진 절차 |
|
|
주요 내용 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 |
|
|
팀워크 ID (수정 시) |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
성과 목록 |
|
|
성과 번호 (수정 시) |
|
|
성과 유형 (QUANTITATIVE, QUALITATIVE) |
|
|
성과 내용 |
|
|
순서 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1153
{
"status" : 200,
"data" : {
"canvasId" : 1,
"crisisSignal" : "환경 오염 심화",
"painTouchPoint" : "주민 불편 사항",
"strategicGoal" : "지역 사회 문제 해결",
"submitted" : false,
"taskActivities" : [ {
"activityContent" : "캠페인 기획 회의",
"activityId" : 1,
"duration" : "2주",
"orderNo" : 1,
"processStep" : "기획"
} ],
"taskDescription" : "지역 환경 개선을 위한 캠페인 기획",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"quantity" : 100,
"resourceName" : "홍보물"
} ],
"taskName" : "환경 캠페인",
"taskOutcomes" : [ {
"orderNo" : 1,
"outcomeContent" : "참여 인원 50명",
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
}, {
"orderNo" : 2,
"outcomeContent" : "주민 만족도 향상",
"outcomeNo" : 2,
"outcomeType" : "QUALITATIVE"
} ],
"teamwork" : {
"activityTeamwork" : "팀 회의 진행",
"teamworkId" : 1,
"workType" : "협업"
},
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
캔버스 ID |
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
위기의 신호 |
|
|
페인 포인트 |
|
|
사용자 ID |
|
|
제출 여부 |
|
|
투입 자원 목록 |
|
|
투입 ID |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID |
|
|
추진 절차 |
|
|
주요 내용 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 |
|
|
팀워크 ID |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
성과 목록 |
|
|
성과 번호 |
|
|
성과 유형 (QUANTITATIVE, QUALITATIVE) |
|
|
성과 내용 |
|
|
순서 |
2-1. QuickWin 캔버스 저장 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
3. QuickWin 캔버스 제출
요청(Request)
PATCH /api/quick-win-canvas/submit HTTP/1.1
Content-Type: application/json
Content-Length: 845
Host: iptdesign.mycafe24.com
{
"strategicGoal" : "지역 사회 문제 해결",
"taskName" : "환경 캠페인",
"taskDescription" : "지역 환경 개선을 위한 캠페인 기획",
"crisisSignal" : "환경 오염 심화",
"painTouchPoint" : "주민 불편 사항",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"resourceName" : "홍보물",
"quantity" : 100
} ],
"taskActivities" : [ {
"orderNo" : 1,
"activityId" : 1,
"processStep" : "기획",
"activityContent" : "캠페인 기획 회의",
"duration" : "2주"
} ],
"teamwork" : {
"workType" : "협업",
"teamworkId" : 1,
"activityTeamwork" : "팀 회의 진행"
},
"taskOutcomes" : [ {
"outcomeContent" : "참여 인원 50명",
"orderNo" : 1,
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
} ]
}
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1152
{
"status" : 200,
"data" : {
"canvasId" : 1,
"crisisSignal" : "환경 오염 심화",
"painTouchPoint" : "주민 불편 사항",
"strategicGoal" : "지역 사회 문제 해결",
"submitted" : true,
"taskActivities" : [ {
"activityContent" : "캠페인 기획 회의",
"activityId" : 1,
"duration" : "2주",
"orderNo" : 1,
"processStep" : "기획"
} ],
"taskDescription" : "지역 환경 개선을 위한 캠페인 기획",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"quantity" : 100,
"resourceName" : "홍보물"
} ],
"taskName" : "환경 캠페인",
"taskOutcomes" : [ {
"orderNo" : 1,
"outcomeContent" : "참여 인원 50명",
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
}, {
"orderNo" : 2,
"outcomeContent" : "주민 만족도 향상",
"outcomeNo" : 2,
"outcomeType" : "QUALITATIVE"
} ],
"teamwork" : {
"activityTeamwork" : "팀 회의 진행",
"teamworkId" : 1,
"workType" : "협업"
},
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
캔버스 ID |
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
위기의 신호 |
|
|
페인 포인트 |
|
|
사용자 ID |
|
|
제출 여부 |
|
|
투입 자원 목록 |
|
|
투입 ID |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID |
|
|
추진 절차 |
|
|
주요 내용 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 |
|
|
팀워크 ID |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
성과 목록 |
|
|
성과 번호 |
|
|
성과 유형 (QUANTITATIVE, QUALITATIVE) |
|
|
성과 내용 |
|
|
순서 |
3-1. QuickWin 캔버스 제출 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
BuildWin Canvas API
모든 BuildWin Canvas API는 인증 필요 (Authorization: Bearer {token})
|
1. BuildWin 캔버스 조회
요청(Request)
GET /api/build-win-canvas HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1201
{
"status" : 200,
"data" : {
"canvasId" : 1,
"crisisSignal" : "시장 진입 지연",
"painTouchPoint" : "사용자 피드백 부족",
"strategicGoal" : "비즈니스 모델 구축",
"submitted" : false,
"taskActivities" : [ {
"activityContent" : "서비스 아키텍처 설계",
"activityId" : 1,
"duration" : "3주",
"orderNo" : 1,
"processStep" : "설계"
} ],
"taskDescription" : "MVP 기반 서비스 프로토타입 제작",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"quantity" : 3,
"resourceName" : "개발 인력"
} ],
"taskName" : "서비스 프로토타입 개발",
"taskOutcomes" : [ {
"orderNo" : 1,
"outcomeContent" : "프로토타입 완성률 100%",
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
}, {
"orderNo" : 2,
"outcomeContent" : "사용자 테스트 완료",
"outcomeNo" : 2,
"outcomeType" : "QUALITATIVE"
} ],
"teamwork" : {
"activityTeamwork" : "주간 스프린트 회의",
"teamworkId" : 1,
"workType" : "협업"
},
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
캔버스 ID |
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
변화의 신호 |
|
|
페인 포인트 |
|
|
사용자 ID |
|
|
제출 여부 |
|
|
투입 자원 목록 |
|
|
투입 ID |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID |
|
|
젼환 단계 |
|
|
전환 활동 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 |
|
|
팀워크 ID |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
성과 목록 |
|
|
성과 번호 |
|
|
성과 유형 (QUANTITATIVE, QUALITATIVE) |
|
|
성과 내용 |
|
|
순서 |
2. BuildWin 캔버스 저장
요청(Request)
POST /api/build-win-canvas HTTP/1.1
Content-Type: application/json
Content-Length: 890
Host: iptdesign.mycafe24.com
{
"strategicGoal" : "비즈니스 모델 구축",
"taskName" : "서비스 프로토타입 개발",
"taskDescription" : "MVP 기반 서비스 프로토타입 제작",
"crisisSignal" : "시장 진입 지연",
"painTouchPoint" : "사용자 피드백 부족",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"resourceName" : "개발 인력",
"quantity" : 3
} ],
"taskActivities" : [ {
"orderNo" : 1,
"activityId" : 1,
"processStep" : "설계",
"activityContent" : "서비스 아키텍처 설계",
"duration" : "3주"
} ],
"teamwork" : {
"workType" : "협업",
"teamworkId" : 1,
"activityTeamwork" : "주간 스프린트 회의"
},
"taskOutcomes" : [ {
"outcomeContent" : "프로토타입 완성률 100%",
"orderNo" : 1,
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
} ]
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
변화의 신호 |
|
|
페인 포인트 |
|
|
투입 자원 목록 |
|
|
투입 ID (수정 시) |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID (수정 시) |
|
|
전환 단계 |
|
|
전환 활동 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 |
|
|
팀워크 ID (수정 시) |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
성과 목록 |
|
|
성과 번호 (수정 시) |
|
|
성과 유형 (QUANTITATIVE, QUALITATIVE) |
|
|
성과 내용 |
|
|
순서 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1201
{
"status" : 200,
"data" : {
"canvasId" : 1,
"crisisSignal" : "시장 진입 지연",
"painTouchPoint" : "사용자 피드백 부족",
"strategicGoal" : "비즈니스 모델 구축",
"submitted" : false,
"taskActivities" : [ {
"activityContent" : "서비스 아키텍처 설계",
"activityId" : 1,
"duration" : "3주",
"orderNo" : 1,
"processStep" : "설계"
} ],
"taskDescription" : "MVP 기반 서비스 프로토타입 제작",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"quantity" : 3,
"resourceName" : "개발 인력"
} ],
"taskName" : "서비스 프로토타입 개발",
"taskOutcomes" : [ {
"orderNo" : 1,
"outcomeContent" : "프로토타입 완성률 100%",
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
}, {
"orderNo" : 2,
"outcomeContent" : "사용자 테스트 완료",
"outcomeNo" : 2,
"outcomeType" : "QUALITATIVE"
} ],
"teamwork" : {
"activityTeamwork" : "주간 스프린트 회의",
"teamworkId" : 1,
"workType" : "협업"
},
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
캔버스 ID |
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
변화의 신호 |
|
|
페인 포인트 |
|
|
사용자 ID |
|
|
제출 여부 |
|
|
투입 자원 목록 |
|
|
투입 ID |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID |
|
|
전환 단계 |
|
|
전환 활동 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 |
|
|
팀워크 ID |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
성과 목록 |
|
|
성과 번호 |
|
|
성과 유형 (QUANTITATIVE, QUALITATIVE) |
|
|
성과 내용 |
|
|
순서 |
2-1. BuildWin 캔버스 저장 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
3. BuildWin 캔버스 제출
요청(Request)
PATCH /api/build-win-canvas/submit HTTP/1.1
Content-Type: application/json
Content-Length: 890
Host: iptdesign.mycafe24.com
{
"strategicGoal" : "비즈니스 모델 구축",
"taskName" : "서비스 프로토타입 개발",
"taskDescription" : "MVP 기반 서비스 프로토타입 제작",
"crisisSignal" : "시장 진입 지연",
"painTouchPoint" : "사용자 피드백 부족",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"resourceName" : "개발 인력",
"quantity" : 3
} ],
"taskActivities" : [ {
"orderNo" : 1,
"activityId" : 1,
"processStep" : "설계",
"activityContent" : "서비스 아키텍처 설계",
"duration" : "3주"
} ],
"teamwork" : {
"workType" : "협업",
"teamworkId" : 1,
"activityTeamwork" : "주간 스프린트 회의"
},
"taskOutcomes" : [ {
"outcomeContent" : "프로토타입 완성률 100%",
"orderNo" : 1,
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
} ]
}
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1200
{
"status" : 200,
"data" : {
"canvasId" : 1,
"crisisSignal" : "시장 진입 지연",
"painTouchPoint" : "사용자 피드백 부족",
"strategicGoal" : "비즈니스 모델 구축",
"submitted" : true,
"taskActivities" : [ {
"activityContent" : "서비스 아키텍처 설계",
"activityId" : 1,
"duration" : "3주",
"orderNo" : 1,
"processStep" : "설계"
} ],
"taskDescription" : "MVP 기반 서비스 프로토타입 제작",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"quantity" : 3,
"resourceName" : "개발 인력"
} ],
"taskName" : "서비스 프로토타입 개발",
"taskOutcomes" : [ {
"orderNo" : 1,
"outcomeContent" : "프로토타입 완성률 100%",
"outcomeNo" : 1,
"outcomeType" : "QUANTITATIVE"
}, {
"orderNo" : 2,
"outcomeContent" : "사용자 테스트 완료",
"outcomeNo" : 2,
"outcomeType" : "QUALITATIVE"
} ],
"teamwork" : {
"activityTeamwork" : "주간 스프린트 회의",
"teamworkId" : 1,
"workType" : "협업"
},
"userId" : 1
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
캔버스 ID |
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
변화의 신호 |
|
|
페인 포인트 |
|
|
사용자 ID |
|
|
제출 여부 |
|
|
투입 자원 목록 |
|
|
투입 ID |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID |
|
|
전환 단계 |
|
|
전환 활동 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 |
|
|
팀워크 ID |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
성과 목록 |
|
|
성과 번호 |
|
|
성과 유형 (QUANTITATIVE, QUALITATIVE) |
|
|
성과 내용 |
|
|
순서 |
3-1. BuildWin 캔버스 제출 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
Funding API
모든 Funding API는 인증 필요 (Authorization: Bearer {token})canvasType 경로 변수: build 또는 quick
|
1. 투자 대상 팀 목록 조회
요청(Request)
GET /api/funding/build/teams HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 280
{
"status" : 200,
"data" : {
"myTeamId" : 1,
"teams" : [ {
"businessName" : "그린테크",
"teamId" : 2,
"teamName" : "2팀"
}, {
"businessName" : "에듀플러스",
"teamId" : 3,
"teamName" : "3팀"
} ]
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
투자 대상 팀 목록 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
실행 과제명 |
|
|
내 팀 ID |
2. 특정 팀 투자 정보 조회
요청(Request)
GET /api/funding/build/investment?teamId=2 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
대상 팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 453
{
"status" : 200,
"data" : {
"businessName" : "그린테크",
"intentIndex" : 1,
"investmentPrice" : "50000000",
"investmentTarget" : 2,
"opinion" : "성장 가능성이 높은 팀입니다.",
"score1" : 5,
"score2" : 4,
"score3" : 5,
"score4" : 3,
"score5" : 4,
"score6" : 5,
"score7" : 4,
"score8" : 3,
"score9" : 5,
"submitted" : false,
"teamName" : "2팀"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
투자 의향서 인덱스 |
|
|
투자 대상 팀 ID |
|
|
팀 이름 |
|
|
실행 과제명 |
|
|
투자 금액 |
|
|
문제정의 A1 점수 |
|
|
문제정의 A2 점수 |
|
|
솔루션 B1 점수 |
|
|
솔루션 B2 점수 |
|
|
솔루션 B3 점수 |
|
|
실행력 C1 점수 |
|
|
실행력 C2 점수 |
|
|
파급효과 D1 점수 |
|
|
파급효과 D2 점수 |
|
|
종합 의견 |
|
|
제출 여부 |
3. 투자 의향서 저장/수정
요청(Request)
POST /api/funding/build/investment HTTP/1.1
Content-Type: application/json
Content-Length: 298
Host: iptdesign.mycafe24.com
{
"investmentTarget" : 2,
"investmentPrice" : "50000000",
"score1" : 5,
"score2" : 4,
"score3" : 5,
"score4" : 3,
"score5" : 4,
"score6" : 5,
"score7" : 4,
"score8" : 3,
"score9" : 5,
"opinion" : "성장 가능성이 높은 팀입니다.",
"submit" : false
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
투자 대상 팀 ID |
|
|
투자 금액 |
|
|
문제정의 A1 점수 |
|
|
문제정의 A2 점수 |
|
|
솔루션 B1 점수 |
|
|
솔루션 B2 점수 |
|
|
솔루션 B3 점수 |
|
|
실행력 C1 점수 |
|
|
실행력 C2 점수 |
|
|
파급효과 D1 점수 |
|
|
파급효과 D2 점수 |
|
|
종합 의견 |
|
|
제출 여부 (true: 제출, false: 임시저장) |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 453
{
"status" : 200,
"data" : {
"businessName" : "그린테크",
"intentIndex" : 1,
"investmentPrice" : "50000000",
"investmentTarget" : 2,
"opinion" : "성장 가능성이 높은 팀입니다.",
"score1" : 5,
"score2" : 4,
"score3" : 5,
"score4" : 3,
"score5" : 4,
"score6" : 5,
"score7" : 4,
"score8" : 3,
"score9" : 5,
"submitted" : false,
"teamName" : "2팀"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
투자 의향서 인덱스 |
|
|
투자 대상 팀 ID |
|
|
팀 이름 |
|
|
실행 과제명 |
|
|
투자 금액 |
|
|
문제정의 A1 점수 |
|
|
문제정의 A2 점수 |
|
|
솔루션 B1 점수 |
|
|
솔루션 B2 점수 |
|
|
솔루션 B3 점수 |
|
|
실행력 C1 점수 |
|
|
실행력 C2 점수 |
|
|
파급효과 D1 점수 |
|
|
파급효과 D2 점수 |
|
|
종합 의견 |
|
|
제출 여부 |
3-1. 투자 의향서 저장 (이미 제출 완료)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
3-2. 투자 의향서 저장 (투자 한도 초과)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 150
{
"status" : 409,
"data" : {
"errorCode" : "FUNDING_1",
"message" : "총 투자 금액이 1억을 초과할 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
FUNDING_1 |
|
|
총 투자 금액이 1억을 초과할 수 없습니다. |
4. 내 투자 포트폴리오 조회
요청(Request)
GET /api/funding/build/portfolio HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 354
{
"status" : 200,
"data" : {
"investments" : [ {
"investmentPrice" : 50000000,
"teamId" : 2,
"teamName" : "2팀"
}, {
"investmentPrice" : 30000000,
"teamId" : 3,
"teamName" : "3팀"
} ],
"maxBudget" : 100000000,
"remainingBudget" : 20000000,
"totalInvested" : 80000000
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
투자 목록 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
투자 금액 |
|
|
총 투자 금액 |
|
|
잔여 예산 |
|
|
최대 예산 (1억) |
5. 전체 팀 평가 점수 조회
요청(Request)
GET /api/funding/build/scores HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 451
{
"status" : 200,
"data" : {
"teamScores" : [ {
"effectScore" : 8,
"problemScore" : 9,
"scaleUpScore" : 9,
"solutionScore" : 12,
"teamId" : 1,
"teamName" : "1팀",
"totalScore" : 38
}, {
"effectScore" : 9,
"problemScore" : 8,
"scaleUpScore" : 7,
"solutionScore" : 11,
"teamId" : 2,
"teamName" : "2팀",
"totalScore" : 35
} ]
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
팀별 점수 목록 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
문제정의 점수 (A1+A2) |
|
|
솔루션 점수 (B1+B2+B3) |
|
|
실행력 점수 (C1+C2) |
|
|
파급효과 점수 (D1+D2) |
|
|
총점 |
6. 제출 완료
요청(Request)
PATCH /api/funding/build/submit HTTP/1.1
Content-Type: application/json
Content-Length: 298
Host: iptdesign.mycafe24.com
{
"investmentTarget" : 2,
"investmentPrice" : "50000000",
"score1" : 5,
"score2" : 4,
"score3" : 5,
"score4" : 3,
"score5" : 4,
"score6" : 5,
"score7" : 4,
"score8" : 3,
"score9" : 5,
"opinion" : "성장 가능성이 높은 팀입니다.",
"submit" : false
}
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 66
{
"status" : 200,
"data" : {
"submitted" : true
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
제출 여부 |
6-1. 제출 완료 (이미 제출됨)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 136
{
"status" : 409,
"data" : {
"errorCode" : "CANVAS_1",
"message" : "이미 제출 완료된 캔버스입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
CANVAS_1 |
|
|
이미 제출 완료된 캔버스입니다. |
7. 내 팀 결과 조회
요청(Request)
GET /api/funding/my-result HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 655
{
"status" : 200,
"data" : {
"build" : {
"opinions" : [ "좋은 사업 모델입니다.", "실현 가능성이 높습니다." ],
"scores" : {
"effectScore" : 8,
"evaluatorCount" : 5,
"problemScore" : 9,
"scaleUpScore" : 9,
"solutionScore" : 12,
"totalScore" : 38
}
},
"quick" : {
"opinions" : [ "빠른 실행이 가능합니다." ],
"scores" : {
"effectScore" : 9,
"evaluatorCount" : 4,
"problemScore" : 8,
"scaleUpScore" : 7,
"solutionScore" : 11,
"totalScore" : 35
}
}
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
Build 캔버스 결과 |
|
|
Build 점수 |
|
|
문제정의 점수 |
|
|
솔루션 점수 |
|
|
실행력 점수 |
|
|
파급효과 점수 |
|
|
총점 |
|
|
평가 참가자 수 |
|
|
Build 종합 의견 목록 |
|
|
Quick 캔버스 결과 |
|
|
Quick 점수 |
|
|
문제정의 점수 |
|
|
솔루션 점수 |
|
|
실행력 점수 |
|
|
파급효과 점수 |
|
|
총점 |
|
|
평가 참가자 수 |
|
|
Quick 종합 의견 목록 |
Game API
모든 Game API는 인증 필요 (Authorization: Bearer {token})
|
1. 학생 대시보드 조회
요청(Request)
GET /api/game/dashboard HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 223
{
"status" : 200,
"data" : {
"classImage" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"className" : "임팩트디자인 1반",
"teamName" : "A팀",
"userName" : "홍길동"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
강의실명 |
|
|
강의실 이미지 URL |
|
|
팀명 |
|
|
사용자명 |
2. 학생용 공개범위(step) 조회
요청(Request)
GET /api/game/step HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 90
{
"status" : 200,
"data" : {
"step" : "A-1,B-1,C-1,D-1,E-1,F-1,F-2,F-3"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
현재 공개된 단계 (A-1,B-1,C-1,D-1,E-1,F-1,F-2,F-3) → (예: IMPACT_CHECK, IDENTITY, FLOW, QUICK_WIN, BUILD_WIN, FUNDING) |
Teach API
모든 Teach API는 인증 필요 (Authorization: Bearer {token})
|
1. 강의실 목록 조회
요청(Request)
GET /api/teach HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 475
{
"status" : 200,
"data" : [ {
"ddTerm" : 1,
"ddYear" : 1,
"enddate" : "2026-03-01T18:00:00",
"gameId" : 1,
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"missionId" : 1,
"name" : "임팩트 디자인 수업",
"numTeam" : 4,
"sequence" : 1,
"startdate" : "2026-02-01T09:00:00",
"statusCeo" : 20,
"subject" : "미션 1",
"summary" : "수업 요약",
"totalDd" : 16
} ]
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일 |
|
|
미션 종료일 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
CEO 상태 |
|
|
이미지 URL |
2. 강의실 카테고리별 목록 조회
요청(Request)
GET /api/teach/list HTTP/1.1
Host: iptdesign.mycafe24.com
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 596
{
"status" : 200,
"data" : {
"completed" : [ ],
"etc" : [ ],
"inProgress" : [ {
"ddTerm" : 1,
"ddYear" : 1,
"enddate" : "2026-03-01T18:00:00",
"gameId" : 1,
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"missionId" : 1,
"name" : "임팩트 디자인 수업",
"numTeam" : 4,
"sequence" : 1,
"startdate" : "2026-02-01T09:00:00",
"statusCeo" : 20,
"subject" : "미션 1",
"summary" : "수업 요약",
"totalDd" : 16
} ],
"setting" : [ ]
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
진행중 강의실 목록 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일 |
|
|
미션 종료일 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
CEO 상태 |
|
|
이미지 URL |
|
|
설정중 강의실 목록 |
|
|
완료된 강의실 목록 |
|
|
기타 강의실 목록 |
3. 클래스 상세 조회
요청(Request)
GET /api/teach/detail?gameId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1121
{
"status" : 200,
"data" : {
"code" : "ABC123",
"gameId" : 1,
"gameLogo" : {
"contentsId" : 1,
"extDir" : "uploads",
"newFilename" : "logo_new.png",
"orgFilename" : "logo.png",
"subject" : "로고"
},
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"mission" : {
"ddTerm" : 1,
"ddYear" : 1,
"enddate" : "2026-03-01T18:00:00",
"missionId" : 1,
"sequence" : 1,
"startdate" : "2026-02-01T09:00:00",
"subject" : "미션 1",
"summary" : "미션 요약"
},
"name" : "임팩트 디자인 수업",
"numTeam" : 4,
"status" : 10,
"step" : "A-1,B-1,C-1,E-1",
"stepArr" : [ "A-1", "B-1", "C-1", "E-1" ],
"summary" : "수업 요약",
"teams" : [ {
"numUser" : 3,
"sequence" : 1,
"status" : 0,
"submitA" : "Y",
"submitB" : "N",
"submitC" : "N",
"submitD" : "N",
"submitE" : "N",
"submitF" : "N",
"teamId" : 1,
"teamName" : "팀1"
} ],
"totalDd" : 16
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
강의실 상태(진행중 = 10, 준비중 = 1, 종료된 = 0, 100) |
|
|
강의실 요약(현재는 쓰지않음) |
|
|
강의실 코드 |
|
|
공개 단계 |
|
|
공개 단계 배열 |
|
|
최신 미션 정보 |
|
|
미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일 |
|
|
미션 종료일 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
팀 목록 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
팀 순서 번호 |
|
|
팀 삭제 여부(0: 일반팀, 1: 평가팀, -1: 삭제된 팀, null: 미설정) |
|
|
팀원 수 |
|
|
성과관리 현황진단 제출 여부 |
|
|
정체성 설계 제출 여부 |
|
|
성과경로 설계 제출 여부 |
|
|
전술적 실행과제 제출 여부 |
|
|
전략적 실행과제 제출 여부 |
|
|
실행과제 검증 제출 여부 |
|
|
게임 로고 정보 |
|
|
콘텐츠 ID |
|
|
제목 |
|
|
확장 디렉토리 |
|
|
원본 파일명 |
|
|
새 파일명 |
|
|
이미지 URL |
3-1. 클래스 상세 조회 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
4. 클래스 상세 조회 2
요청(Request)
GET /api/teach/detail2?gameId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID (없으면 첫 번째 진행중 클래스) |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 1440
{
"status" : 200,
"data" : {
"classList" : [ {
"ddTerm" : 1,
"ddYear" : 1,
"enddate" : "2026-03-01T18:00:00",
"gameId" : 1,
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"missionId" : 1,
"name" : "임팩트 디자인 수업",
"numTeam" : 4,
"sequence" : 1,
"startdate" : "2026-02-01T09:00:00",
"statusCeo" : 20,
"subject" : "미션 1",
"summary" : "수업 요약",
"totalDd" : 16
} ],
"code" : "ABC123",
"gameId" : 1,
"gameLogo" : null,
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"mission" : {
"ddTerm" : 1,
"ddYear" : 1,
"enddate" : "2026-03-01T18:00:00",
"missionId" : 1,
"sequence" : 1,
"startdate" : "2026-02-01T09:00:00",
"subject" : "미션 1",
"summary" : "미션 요약"
},
"name" : "임팩트 디자인 수업",
"numTeam" : 4,
"status" : 10,
"step" : "A-1,B-1,C-1",
"stepArr" : [ "A-1", "B-1", "C-1" ],
"summary" : "강의 요약",
"teams" : [ {
"numUser" : 3,
"sequence" : 1,
"status" : 0,
"submitA" : "Y",
"submitB" : "N",
"submitC" : "N",
"submitD" : "N",
"submitE" : "N",
"submitF" : "N",
"teamId" : 1,
"teamName" : "팀1"
} ],
"totalDd" : 16
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
강의실 상태(진행중 = 10, 준비중 = 1, 종료된 = 0, 100) |
|
|
강의실 요약(현재는 미사용) |
|
|
강의실 코드 |
|
|
공개 단계 |
|
|
공개 단계 배열 |
|
|
최신 미션 정보 |
|
|
미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일 |
|
|
미션 종료일 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
팀 목록 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
팀 순서 번호 |
|
|
팀 삭제 여부(0: 일반팀, 1: 평가팀, -1: 삭제된 팀, null: 미설정) |
|
|
팀원 수 |
|
|
성과관리 현황진단 제출 여부 |
|
|
정체성 설계 제출 여부 |
|
|
성과경로 설계 제출 여부 |
|
|
전술적 실행과제 제출 여부 |
|
|
전략적 실행과제 제출 여부 |
|
|
실행과제 검증 제출 여부 |
|
|
강의실 로고 정보 |
|
|
이미지 URL |
|
|
교사의 진행중 클래스 목록 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
미션 ID |
|
|
미션 순서 번호 |
|
|
미션 제목 |
|
|
미션 요약 설명 |
|
|
미션 시작일 |
|
|
미션 종료일 |
|
|
의사결정 연도 |
|
|
의사결정 분기/기간 |
|
|
CEO 상태 |
|
|
이미지 URL |
4-1. 클래스 상세 조회 2 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
5. 학생 목록 조회
요청(Request)
GET /api/teach/student-list?gameId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
게임 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 604
{
"status" : 200,
"data" : {
"game" : {
"code" : "ABC123",
"gameId" : 1,
"name" : "임팩트 디자인 수업",
"numTeam" : 4,
"status" : 10,
"step" : "A-1,B-1,C-1,D-1,E-1",
"summary" : "수업 요약",
"totalDd" : 16
},
"studentList" : [ {
"loginId" : "a1001",
"mail" : null,
"name" : "홍길동",
"teamId" : 1,
"teamName" : "팀1",
"userId" : 10
} ],
"teamList" : [ {
"name" : "팀1",
"numUser" : 3,
"sequence" : 1,
"teamId" : 1
} ]
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
강의실 ID |
|
|
강의실 이름 |
|
|
팀 수 |
|
|
총 의사결정일 수 |
|
|
강의실 상태(진행중 = 10, 준비중 = 1, 종료된 = 0, 100) |
|
|
강의실 요약 |
|
|
강의실 코드 |
|
|
공개 단계 |
|
|
팀 목록 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
팀 순서 번호 |
|
|
팀원 수 |
|
|
학생 목록 |
|
|
사용자 ID |
|
|
로그인 ID |
|
|
학생 이름 |
|
|
이메일 |
|
|
소속 팀 ID |
|
|
소속 팀 이름 |
5-1. 학생 목록 조회 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
6. 클래스 생성
요청(Request)
POST /api/teach/class HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: iptdesign.mycafe24.com
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request; filename=request
Content-Type: application/json
{
"worldType" : 1,
"target" : "대학생",
"classType" : "BASIC",
"numMember" : 10,
"summary" : "강의실 설명",
"numTeam" : 4,
"name" : "새 강의실",
"projectDate" : "2026-06-30",
"popupId" : 0
}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png
fake-image
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
응답(Response)
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 37
{
"status" : 201,
"data" : 1
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
생성된 게임 ID |
6-1. 클래스 생성 (유효하지 않은 날짜)
응답(Response)
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 127
{
"status" : 400,
"data" : {
"errorCode" : "DATE_1",
"message" : "유효하지 않은 날짜입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
400 |
|
|
DATE_1 |
|
|
유효하지 않은 날짜입니다. |
7. 클래스 수정
요청(Request)
PUT /api/teach/class/1 HTTP/1.1
Content-Type: application/json
Content-Length: 73
Host: iptdesign.mycafe24.com
{
"name" : "수정된 강의실",
"enddate" : "2026-07-15 18:00"
}
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 37
{
"status" : 200,
"data" : 1
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
수정된 게임 ID |
7-1. 클래스 수정 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
8. 강의실 시작
요청(Request)
POST /api/teach/class/1/start HTTP/1.1
Content-Type: application/json
Content-Length: 38
Host: iptdesign.mycafe24.com
{
"enddate" : "2026-03-01 18:00"
}
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
게임 ID |
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
제출 기한 (yyyy-MM-dd HH:mm) |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
8-1. 강의실 시작 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
8-2. 강의실 시작 (유효하지 않은 날짜)
응답(Response)
HTTP/1.1 400 Bad Request
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 127
{
"status" : 400,
"data" : {
"errorCode" : "DATE_1",
"message" : "유효하지 않은 날짜입니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
400 |
|
|
DATE_1 |
|
|
유효하지 않은 날짜입니다. |
9. 강의실 종료
요청(Request)
POST /api/teach/class/1/end HTTP/1.1
Host: iptdesign.mycafe24.com
Content-Type: application/x-www-form-urlencoded
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
게임 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
9-1. 강의실 종료 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
10. 강의실 복원
요청(Request)
POST /api/teach/class/1/restore HTTP/1.1
Content-Type: application/json
Content-Length: 38
Host: iptdesign.mycafe24.com
{
"enddate" : "2026-03-01 18:00"
}
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
게임 ID |
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
제출 기한 (yyyy-MM-dd HH:mm) |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
10-1. 강의실 복원 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
11. 다음 단계 시작
요청(Request)
POST /api/teach/class/1/next-stage HTTP/1.1
Content-Type: application/json
Content-Length: 38
Host: iptdesign.mycafe24.com
{
"enddate" : "2026-04-01 18:00"
}
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
게임 ID |
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
제출 기한 (yyyy-MM-dd HH:mm) |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
11-1. 다음 단계 시작 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
Teach Team API
모든 Teach Team API는 인증 필요 (Authorization: Bearer {token})
|
1. 단계(step) 설정 저장
요청(Request)
POST /api/teach/step HTTP/1.1
Content-Type: application/json
Content-Length: 55
Host: iptdesign.mycafe24.com
{
"step" : "A-1,B-1,C-1,D-1,E-1",
"gameId" : 1
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
강의실 ID |
|
|
공개 단계 (쉼표 구분) |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
1-1. 단계(step) 설정 저장 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
2. 팀 추가
요청(Request)
POST /api/teach/team?gameId=1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID |
응답(Response)
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 38
{
"status" : 201,
"data" : 10
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
생성된 팀 ID |
2-1. 팀 추가 (게임 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 125
{
"status" : 404,
"data" : {
"errorCode" : "GAME_1",
"message" : "게임을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
GAME_1 |
|
|
게임을 찾을 수 없습니다. |
2-2. 팀 추가 (최대 팀 수 초과)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 143
{
"status" : 409,
"data" : {
"errorCode" : "TEAM_4",
"message" : "팀은 최대 6개까지 생성할 수 있습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
TEAM_4 |
|
|
팀은 최대 6개까지 생성할 수 있습니다. |
3. 평가팀 추가
요청(Request)
POST /api/teach/evaluation-team?gameId=1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID |
응답(Response)
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 38
{
"status" : 201,
"data" : 11
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
생성된 평가팀 ID |
3-1. 평가팀 추가 (최대 팀 수 초과)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 143
{
"status" : 409,
"data" : {
"errorCode" : "TEAM_4",
"message" : "팀은 최대 6개까지 생성할 수 있습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
TEAM_4 |
|
|
팀은 최대 6개까지 생성할 수 있습니다. |
4. 팀원 추가
요청(Request)
POST /api/teach/team/1/members?gameId=1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: iptdesign.mycafe24.com
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID |
응답(Response)
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 41
{
"status" : 201,
"data" : "a11"
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
생성된 로그인 ID |
4-1. 팀원 추가 (팀 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 122
{
"status" : 404,
"data" : {
"errorCode" : "TEAM_2",
"message" : "팀을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
TEAM_1 |
|
|
팀을 찾을 수 없습니다. |
4-2. 팀원 추가 (최대 팀원 수 초과)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 147
{
"status" : 409,
"data" : {
"errorCode" : "TEAM_5",
"message" : "팀원은 최대 10명까지 추가할 수 있습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
TEAM_5 |
|
|
팀원은 최대 10명까지 추가할 수 있습니다. |
5. 팀 삭제
요청(Request)
DELETE /api/teach/team/1?gameId=1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: iptdesign.mycafe24.com
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
5-1. 팀 삭제 (팀 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 122
{
"status" : 404,
"data" : {
"errorCode" : "TEAM_2",
"message" : "팀을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
TEAM_1 |
|
|
팀을 찾을 수 없습니다. |
6. 삭제된 팀 복원
요청(Request)
POST /api/teach/team/1/restore?gameId=1 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: iptdesign.mycafe24.com
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
6-1. 삭제된 팀 복원 (팀 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 122
{
"status" : 404,
"data" : {
"errorCode" : "TEAM_2",
"message" : "팀을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
TEAM_1 |
|
|
팀을 찾을 수 없습니다. |
7. 삭제된 팀 목록 조회
요청(Request)
GET /api/teach/deleted-teams?gameId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 111
{
"status" : 200,
"data" : [ {
"sequence" : 5,
"teamId" : 5,
"teamName" : "팀5"
} ]
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
팀 순서 |
8. 학생 팀 이동
요청(Request)
PUT /api/teach/team-member HTTP/1.1
Content-Type: application/json
Content-Length: 38
Host: iptdesign.mycafe24.com
{
"teamId" : 2,
"userId" : 10
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
이동할 학생 ID |
|
|
이동할 팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
8-1. 학생 팀 이동 (대표작성자 이동 불가)
응답(Response)
HTTP/1.1 409 Conflict
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 144
{
"status" : 409,
"data" : {
"errorCode" : "TEAM_3",
"message" : "대표작성자는 팀을 이동할 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
409 |
|
|
TEAM_3 |
|
|
대표작성자는 팀을 이동할 수 없습니다. |
9. 팀 상세 정보 조회
요청(Request)
GET /api/teach/team/1 HTTP/1.1
Host: iptdesign.mycafe24.com
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 456
{
"status" : 200,
"data" : {
"isDoing" : 1,
"members" : [ {
"loginId" : "a11",
"mail" : null,
"name" : "홍길동",
"userId" : 10,
"writer" : "1"
}, {
"loginId" : "a12",
"mail" : null,
"name" : "김철수",
"userId" : 11,
"writer" : null
} ],
"numUser" : 2,
"sequence" : 1,
"teamCategory" : 0,
"teamId" : 1,
"teamName" : "팀1"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
팀 순서 |
|
|
활성 여부 |
|
|
팀 카테고리 (0: 일반, 1: 평가팀) (DB는 팀 구분 컬럼) |
|
|
팀원 수 |
|
|
팀원 목록 |
|
|
사용자 ID |
|
|
로그인 ID |
|
|
이름 |
|
|
이메일 |
|
|
대표작성자 여부 ("1": 대표작성자) |
9-1. 팀 상세 정보 조회 (팀 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 122
{
"status" : 404,
"data" : {
"errorCode" : "TEAM_2",
"message" : "팀을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
TEAM_1 |
|
|
팀을 찾을 수 없습니다. |
10. 팀 정보 수정
요청(Request)
PUT /api/teach/team/1 HTTP/1.1
Content-Type: application/json
Content-Length: 90
Host: iptdesign.mycafe24.com
{
"isDoing" : 1,
"teamName" : "수정된 팀",
"sequence" : 2,
"aiPlay" : 0
}
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
팀 이름 |
|
|
팀 순서 |
|
|
활성 여부 |
|
|
AI 플레이 여부 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
10-1. 팀 정보 수정 (팀 없음)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 122
{
"status" : 404,
"data" : {
"errorCode" : "TEAM_2",
"message" : "팀을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
TEAM_1 |
|
|
팀을 찾을 수 없습니다. |
11. 선택한 팀원 삭제
요청(Request)
DELETE /api/teach/team-members HTTP/1.1
Content-Type: application/json
Content-Length: 30
Host: iptdesign.mycafe24.com
{
"userIds" : [ 10, 11 ]
}
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
삭제할 사용자 ID 목록 |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
12. 대표작성자 지정
요청(Request)
POST /api/teach/team/1/writer HTTP/1.1
Content-Type: application/json
Content-Length: 21
Host: iptdesign.mycafe24.com
{
"userId" : 10
}
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
요청 필드 설명(Request Fields)
| Path | Type | Description |
|---|---|---|
|
|
대표작성자로 지정할 사용자 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 68
{
"status" : 200,
"data" : {
"message" : "성공"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
성공 |
12-1. 대표작성자 지정 (팀 소속 아님)
응답(Response)
HTTP/1.1 404 Not Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 122
{
"status" : 404,
"data" : {
"errorCode" : "TEAM_2",
"message" : "팀을 찾을 수 없습니다."
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
404 |
|
|
TEAM_2 |
|
|
팀을 찾을 수 없습니다. |
Teach Submission API
모든 Teach Submission API는 인증 필요 (Authorization: Bearer {token}) + 강사 권한 필요
|
1. 게임별 팀 제출 현황 목록
요청(Request)
GET /api/teach/submission/list?gameId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
강의실 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 263
{
"status" : 200,
"data" : [ {
"numUser" : 3,
"sequence" : 1,
"submitA" : "Y",
"submitB" : "Y",
"submitC" : "N",
"submitD" : "N",
"submitE" : "N",
"submitF" : "N",
"teamId" : 1,
"teamName" : "팀1"
} ]
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
팀 순서 번호 |
|
|
팀원 수 |
|
|
A: 성과관리 현황진단 제출 여부 |
|
|
B: 정체성 설계 제출 여부 |
|
|
C: 성과경로 설계 제출 여부 |
|
|
D: 전술적 실행과제 제출 여부 |
|
|
E: 전략적 실행과제 제출 여부 |
|
|
F: 실행과제 검증 제출 여부 |
2. A: 성과관리 현황진단 열람
요청(Request)
GET /api/teach/submission/impact-check?teamId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 466
{
"status" : 200,
"data" : {
"answerId" : 1,
"q10Score" : 4,
"q11Score" : 5,
"q12Score" : 3,
"q13Text" : "답변13",
"q14Text" : "답변14",
"q15Text" : "답변15",
"q16Text" : "답변16",
"q1Score" : 4,
"q2Score" : 3,
"q3Score" : 5,
"q4Score" : 2,
"q5Score" : 4,
"q6Score" : 3,
"q7Score" : 5,
"q8Score" : 4,
"q9Score" : 3,
"submitted" : true,
"userId" : 10
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
답변 ID |
|
|
문항1 점수 |
|
|
문항2 점수 |
|
|
문항3 점수 |
|
|
문항4 점수 |
|
|
문항5 점수 |
|
|
문항6 점수 |
|
|
문항7 점수 |
|
|
문항8 점수 |
|
|
문항9 점수 |
|
|
문항10 점수 |
|
|
문항11 점수 |
|
|
문항12 점수 |
|
|
문항13 텍스트 |
|
|
문항14 텍스트 |
|
|
문항15 텍스트 |
|
|
문항16 텍스트 |
|
|
작성자 ID |
|
|
제출 여부 |
3. B: 정체성 설계 열람
요청(Request)
GET /api/teach/submission/identity-canvas?teamId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 615
{
"status" : 200,
"data" : {
"capability" : "기술력",
"competitor" : "타 사회적 기업",
"culture" : "수평적 문화",
"customer" : "청년층",
"etc" : "기타 사항",
"identityId" : 1,
"macro" : "인구 감소",
"mission" : "사회적 가치 창출",
"newMission" : "새로운 미션",
"newValue" : "새로운 가치",
"newVision" : "새로운 비전",
"structure" : "팀 기반",
"submitted" : true,
"tech" : "AI 기술",
"userId" : 10,
"value" : "혁신과 협력",
"vision" : "지속 가능한 미래"
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
Identity ID |
|
|
미션 |
|
|
비전 |
|
|
가치 |
|
|
정책/경제 |
|
|
기술 |
|
|
고객/사회 |
|
|
경쟁자 |
|
|
역량 |
|
|
문화 |
|
|
구조 |
|
|
기타 |
|
|
새로운 미션 |
|
|
새로운 비전 |
|
|
새로운 가치 |
|
|
작성자 ID |
|
|
제출 여부 |
4. C: 성과경로 설계 열람
요청(Request)
GET /api/teach/submission/flow-canvas?teamId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 660
{
"status" : 200,
"data" : {
"goals" : [ {
"goalDescription" : "지역 사회 문제 해결",
"goalId" : 1,
"goalTitle" : "사회적 가치 창출",
"orderNo" : 1,
"strategicActivities" : [ {
"activityId" : 1,
"activityMetric" : "서비스 개선 횟수",
"interCriteria" : "월 2회 이상",
"orderNo" : 1
} ],
"tacticals" : [ {
"metricId" : 1,
"orderNo" : 1,
"tacticalGoal" : "90% 이상",
"tacticalMetric" : "고객 만족도"
} ]
} ],
"newVision" : "지속 가능한 미래",
"submitted" : true
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
새로운 비전 |
|
|
목표 목록 |
|
|
목표 ID |
|
|
목표 제목 |
|
|
존재 이유 |
|
|
목표 순서 |
|
|
전술적 성과 목록 |
|
|
지표 ID |
|
|
전술적 성과 지표 |
|
|
전술 목표 |
|
|
성과 순서 |
|
|
전략적 활동 목록 |
|
|
활동 ID |
|
|
전략적 활동 지표 |
|
|
내재화 기준 |
|
|
활동 순서 |
|
|
제출 여부 |
5. D: 전술적 실행과제 (QuickWin) 열람
요청(Request)
GET /api/teach/submission/quick-win?teamId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 922
{
"status" : 200,
"data" : {
"canvasId" : 1,
"crisisSignal" : "위기의 신호",
"painTouchPoint" : "페인 포인트",
"strategicGoal" : "전략 목표",
"submitted" : true,
"taskActivities" : [ {
"activityContent" : "활동 내용",
"activityId" : 1,
"duration" : "2주",
"orderNo" : 1,
"processStep" : "1단계"
} ],
"taskDescription" : "주요 내용",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"quantity" : 3,
"resourceName" : "인적 자원"
} ],
"taskName" : "과제명",
"taskOutcomes" : [ {
"orderNo" : 1,
"outcomeContent" : "산출물",
"outcomeNo" : 1,
"outcomeType" : "QUALITATIVE"
} ],
"teamwork" : {
"activityTeamwork" : "협업 내용",
"teamworkId" : 1,
"workType" : "협업"
},
"userId" : 10
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
캔버스 ID |
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
위기의 신호 |
|
|
페인/터치포인트 |
|
|
작성자 ID |
|
|
제출 여부 |
|
|
투입 자원 목록 |
|
|
투입 ID |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID |
|
|
추진 절차 |
|
|
주요 내용 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 정보 |
|
|
팀워크 ID |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
산출물 목록 |
|
|
산출물 번호 |
|
|
산출물 유형 (QUALITATIVE/QUANTITATIVE) |
|
|
산출물 내용 |
|
|
순서 |
6. E: 전략적 실행과제 (BuildWin) 열람
요청(Request)
GET /api/teach/submission/build-win?teamId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 921
{
"status" : 200,
"data" : {
"canvasId" : 1,
"crisisSignal" : "변화의 신호",
"painTouchPoint" : "페인포인트",
"strategicGoal" : "전략 목표",
"submitted" : true,
"taskActivities" : [ {
"activityContent" : "활동 내용",
"activityId" : 1,
"duration" : "2주",
"orderNo" : 1,
"processStep" : "1단계"
} ],
"taskDescription" : "주요 내용",
"taskInputs" : [ {
"inputId" : 1,
"orderNo" : 1,
"quantity" : 3,
"resourceName" : "인적 자원"
} ],
"taskName" : "과제명",
"taskOutcomes" : [ {
"orderNo" : 1,
"outcomeContent" : "산출물",
"outcomeNo" : 1,
"outcomeType" : "QUALITATIVE"
} ],
"teamwork" : {
"activityTeamwork" : "협업 내용",
"teamworkId" : 1,
"workType" : "협업"
},
"userId" : 10
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
캔버스 ID |
|
|
전략 목표 |
|
|
과제명 |
|
|
주요 내용 |
|
|
변화의 신호 |
|
|
페인/터치포인트 |
|
|
작성자 ID |
|
|
제출 여부 |
|
|
투입 자원 목록 |
|
|
투입 ID |
|
|
필요 자원 |
|
|
수량 |
|
|
순서 |
|
|
활동 목록 |
|
|
활동 ID |
|
|
전환 단계 |
|
|
전환 활동 |
|
|
소요 기간 |
|
|
순서 |
|
|
팀워크 정보 |
|
|
팀워크 ID |
|
|
활동 팀워크 |
|
|
산출 팀워크 |
|
|
산출물 목록 |
|
|
산출물 번호 |
|
|
산출물 유형 (QUALITATIVE/QUANTITATIVE) |
|
|
산출물 내용 |
|
|
순서 |
7. F: 실행과제 검증 (Funding) 열람
요청(Request)
GET /api/teach/submission/funding/build?teamId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
캔버스 유형 (build 또는 quick) |
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 434
{
"status" : 200,
"data" : [ {
"businessName" : "사업명",
"intentIndex" : 1,
"investmentPrice" : "1000000",
"investmentTarget" : 2,
"opinion" : "좋은 사업입니다",
"score1" : 4,
"score2" : 3,
"score3" : 5,
"score4" : 4,
"score5" : 3,
"score6" : 4,
"score7" : 5,
"score8" : 3,
"score9" : 4,
"submitted" : true,
"teamName" : "팀2"
} ]
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
투자 의향서 인덱스 |
|
|
투자 대상 팀 ID |
|
|
대상 팀 이름 |
|
|
사업명 |
|
|
투자 금액 |
|
|
평가 점수 1 |
|
|
평가 점수 2 |
|
|
평가 점수 3 |
|
|
평가 점수 4 |
|
|
평가 점수 5 |
|
|
평가 점수 6 |
|
|
평가 점수 7 |
|
|
평가 점수 8 |
|
|
평가 점수 9 |
|
|
투자 의견 |
|
|
제출 여부 |
8. F-3: 팀별 결과 열람
요청(Request)
GET /api/teach/submission/funding/result?teamId=1 HTTP/1.1
Host: iptdesign.mycafe24.com
요청 파라미터 설명(Query Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 608
{
"status" : 200,
"data" : {
"build" : {
"opinions" : [ "좋은 사업입니다", "발전 가능성이 높습니다" ],
"scores" : {
"effectScore" : 7,
"evaluatorCount" : 3,
"problemScore" : 7,
"scaleUpScore" : 9,
"solutionScore" : 12,
"totalScore" : 35
}
},
"quick" : {
"opinions" : [ ],
"scores" : {
"effectScore" : 0,
"evaluatorCount" : 0,
"problemScore" : 0,
"scaleUpScore" : 0,
"solutionScore" : 0,
"totalScore" : 0
}
}
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
BUILD 캔버스 결과 |
|
|
문제 점수 (score1+score2) |
|
|
솔루션 점수 (score3+score4+score5) |
|
|
확장 점수 (score6+score7) |
|
|
효과 점수 (score8+score9) |
|
|
총 점수 |
|
|
평가 참가자 수 |
|
|
투자 의견 목록 |
|
|
QUICK 캔버스 결과 |
|
|
문제정의 점수 |
|
|
솔루션 점수 |
|
|
실행력 점수 |
|
|
파급효과 점수 |
|
|
총 점수 |
|
|
평가 참가자 수 |
|
|
투자 의견 목록 |
Report API
인증 필요 (Authorization: Bearer {token})
|
1. 팀별 리포트 조회
요청(Request)
GET /api/teach/report/1 HTTP/1.1
Host: iptdesign.mycafe24.com
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
팀 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 3246
{
"status" : 200,
"data" : {
"buildWinCanvasList" : [ {
"canvasId" : 2,
"evaluations" : [ {
"intentIndex" : 1,
"score1" : 4,
"score2" : 3,
"score3" : 5,
"score4" : 4,
"score5" : 3,
"score6" : 4,
"score7" : 5,
"score8" : 3,
"score9" : 4,
"stdntNo" : 10,
"totalScore" : 35
} ],
"taskDescription" : "과제 설명",
"taskName" : "전략 과제",
"totalScore" : 38,
"userId" : 10
} ],
"className" : "임팩트 디자인 수업",
"externalThreats" : {
"aiSummary" : [ "인구 감소가 가장 큰 위협입니다." ],
"allData" : [ "인구 감소", "기후 변화", "인구 감소" ],
"keywords" : [ "인구", "기후" ],
"top4" : [ {
"content" : "인구 감소",
"count" : 2
} ]
},
"flowCanvasGoals" : {
"goals" : [ {
"count" : 2,
"description" : "지역 사회 문제 해결",
"title" : "사회적 가치 창출"
} ],
"keywords" : [ "사회적 가치", "지역 사회" ]
},
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"impactCheckScores" : [ {
"q10Score" : 4,
"q11Score" : 5,
"q12Score" : 3,
"q1Score" : 4,
"q2Score" : 3,
"q3Score" : 5,
"q4Score" : 2,
"q5Score" : 4,
"q6Score" : 3,
"q7Score" : 5,
"q8Score" : 4,
"q9Score" : 3,
"userId" : 10
} ],
"internalLimitations" : {
"aiSummary" : [ "자금 부족이 주요 내부 한계입니다." ],
"allData" : [ "자금 부족" ],
"keywords" : [ "자금" ],
"top4" : [ {
"content" : "자금 부족",
"count" : 1
} ]
},
"projectDate" : "2026-06-30",
"quickWinCanvasList" : [ {
"canvasId" : 1,
"evaluations" : [ {
"intentIndex" : 1,
"score1" : 4,
"score2" : 3,
"score3" : 5,
"score4" : 4,
"score5" : 3,
"score6" : 4,
"score7" : 5,
"score8" : 3,
"score9" : 4,
"stdntNo" : 10,
"totalScore" : 35
} ],
"taskDescription" : "과제 설명",
"taskName" : "전술 과제",
"totalScore" : 35,
"userId" : 10
} ],
"strategicActivities" : [ {
"activityMetric" : "서비스 개선 횟수",
"interCriteria" : "월 2회 이상"
} ],
"tacticals" : [ {
"goal" : "90% 이상",
"metric" : "고객 만족도"
} ],
"target" : "대학생",
"teamId" : 1,
"teamName" : "1팀",
"visionMissionValue" : {
"aiMission" : "사회적 가치를 창출하는 미션",
"aiValue" : "혁신과 협력의 가치",
"aiVision" : "지속 가능한 미래를 향한 비전",
"missionTop4" : [ {
"content" : "사회적 가치 창출",
"count" : 2
} ],
"valueTop4" : [ {
"content" : "혁신",
"count" : 2
} ],
"visionTop4" : [ {
"content" : "지속 가능한 미래",
"count" : 3
} ]
}
}
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
강의실 이름 |
|
|
대상 |
|
|
프로젝트 일자 |
|
|
강의실 이미지 URL |
|
|
임팩트 체크 점수 목록 |
|
|
사용자 ID |
|
|
문항1 점수 |
|
|
문항2 점수 |
|
|
문항3 점수 |
|
|
문항4 점수 |
|
|
문항5 점수 |
|
|
문항6 점수 |
|
|
문항7 점수 |
|
|
문항8 점수 |
|
|
문항9 점수 |
|
|
문항10 점수 |
|
|
문항11 점수 |
|
|
문항12 점수 |
|
|
외부 위협 빈도 분석 |
|
|
전체 데이터 |
|
|
상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
키워드 목록 |
|
|
AI 요약 |
|
|
내부 한계 빈도 분석 |
|
|
전체 데이터 |
|
|
상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
키워드 목록 |
|
|
AI 요약 |
|
|
비전/미션/가치 분석 |
|
|
비전 상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
미션 상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
가치 상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
AI 비전 요약 |
|
|
AI 미션 요약 |
|
|
AI 가치 요약 |
|
|
성과경로 목표 분석 |
|
|
목표 목록 |
|
|
목표 제목 |
|
|
목표 설명 |
|
|
빈도 수 |
|
|
키워드 목록 |
|
|
전술 지표 목록 |
|
|
전술 지표 |
|
|
전술 목표 |
|
|
전략 활동 목록 |
|
|
활동 지표 |
|
|
중간 기준 |
|
|
QuickWin 캔버스 목록 |
|
|
캔버스 ID |
|
|
작성자 ID |
|
|
과제명 |
|
|
과제 설명 |
|
|
총 점수 |
|
|
평가 목록 |
|
|
투자 의향서 인덱스 |
|
|
학생 번호 |
|
|
점수1 |
|
|
점수2 |
|
|
점수3 |
|
|
점수4 |
|
|
점수5 |
|
|
점수6 |
|
|
점수7 |
|
|
점수8 |
|
|
점수9 |
|
|
총 점수 |
|
|
BuildWin 캔버스 목록 |
|
|
캔버스 ID |
|
|
작성자 ID |
|
|
과제명 |
|
|
과제 설명 |
|
|
총 점수 |
|
|
평가 목록 |
|
|
투자 의향서 인덱스 |
|
|
학생 번호 |
|
|
점수1 |
|
|
점수2 |
|
|
점수3 |
|
|
점수4 |
|
|
점수5 |
|
|
점수6 |
|
|
점수7 |
|
|
점수8 |
|
|
점수9 |
|
|
총 점수 |
2. 게임별 벌크 리포트 조회
요청(Request)
GET /api/teach/report/bulk/1 HTTP/1.1
Host: iptdesign.mycafe24.com
경로 변수 설명(Path Parameters)
| Parameter | Description |
|---|---|
|
게임 ID |
응답(Response)
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
Content-Length: 3189
{
"status" : 200,
"data" : [ {
"buildWinCanvasList" : [ {
"canvasId" : 2,
"evaluations" : [ {
"intentIndex" : 1,
"score1" : 4,
"score2" : 3,
"score3" : 5,
"score4" : 4,
"score5" : 3,
"score6" : 4,
"score7" : 5,
"score8" : 3,
"score9" : 4,
"stdntNo" : 10,
"totalScore" : 35
} ],
"taskDescription" : "과제 설명",
"taskName" : "전략 과제",
"totalScore" : 38,
"userId" : 10
} ],
"className" : "임팩트 디자인 수업",
"externalThreats" : {
"aiSummary" : [ "인구 감소가 가장 큰 위협입니다." ],
"allData" : [ "인구 감소" ],
"keywords" : [ "인구" ],
"top4" : [ {
"content" : "인구 감소",
"count" : 2
} ]
},
"flowCanvasGoals" : {
"goals" : [ {
"count" : 2,
"description" : "지역 사회 문제 해결",
"title" : "사회적 가치 창출"
} ],
"keywords" : [ "사회적 가치" ]
},
"imageUrl" : "http://iptdesign.mycafe24.com/uploads/class/1/image.png",
"impactCheckScores" : [ {
"q10Score" : 4,
"q11Score" : 5,
"q12Score" : 3,
"q1Score" : 4,
"q2Score" : 3,
"q3Score" : 5,
"q4Score" : 2,
"q5Score" : 4,
"q6Score" : 3,
"q7Score" : 5,
"q8Score" : 4,
"q9Score" : 3,
"userId" : 10
} ],
"internalLimitations" : {
"aiSummary" : [ "자금 부족이 주요 내부 한계입니다." ],
"allData" : [ "자금 부족" ],
"keywords" : [ "자금" ],
"top4" : [ {
"content" : "자금 부족",
"count" : 1
} ]
},
"projectDate" : "2026-06-30",
"quickWinCanvasList" : [ {
"canvasId" : 1,
"evaluations" : [ {
"intentIndex" : 1,
"score1" : 4,
"score2" : 3,
"score3" : 5,
"score4" : 4,
"score5" : 3,
"score6" : 4,
"score7" : 5,
"score8" : 3,
"score9" : 4,
"stdntNo" : 10,
"totalScore" : 35
} ],
"taskDescription" : "과제 설명",
"taskName" : "전술 과제",
"totalScore" : 35,
"userId" : 10
} ],
"strategicActivities" : [ {
"activityMetric" : "서비스 개선 횟수",
"interCriteria" : "월 2회 이상"
} ],
"tacticals" : [ {
"goal" : "90% 이상",
"metric" : "고객 만족도"
} ],
"target" : "대학생",
"teamId" : 1,
"teamName" : "1팀",
"visionMissionValue" : {
"aiMission" : "사회적 가치를 창출하는 미션",
"aiValue" : "혁신과 협력의 가치",
"aiVision" : "지속 가능한 미래를 향한 비전",
"missionTop4" : [ {
"content" : "사회적 가치 창출",
"count" : 2
} ],
"valueTop4" : [ {
"content" : "혁신",
"count" : 2
} ],
"visionTop4" : [ {
"content" : "지속 가능한 미래",
"count" : 3
} ]
}
} ]
}
응답 필드 설명(Response Fields)
| Path | Type | Description |
|---|---|---|
|
|
상태 코드 |
|
|
팀 ID |
|
|
팀 이름 |
|
|
강의실 이름 |
|
|
대상 |
|
|
프로젝트 일자 |
|
|
강의실 이미지 URL |
|
|
임팩트 체크 점수 목록 |
|
|
사용자 ID |
|
|
문항1 점수 |
|
|
문항2 점수 |
|
|
문항3 점수 |
|
|
문항4 점수 |
|
|
문항5 점수 |
|
|
문항6 점수 |
|
|
문항7 점수 |
|
|
문항8 점수 |
|
|
문항9 점수 |
|
|
문항10 점수 |
|
|
문항11 점수 |
|
|
문항12 점수 |
|
|
외부 위협 빈도 분석 |
|
|
전체 데이터 |
|
|
상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
키워드 목록 |
|
|
AI 요약 |
|
|
내부 한계 빈도 분석 |
|
|
전체 데이터 |
|
|
상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
키워드 목록 |
|
|
AI 요약 |
|
|
비전/미션/가치 분석 |
|
|
비전 상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
미션 상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
가치 상위 4개 |
|
|
내용 |
|
|
빈도 수 |
|
|
AI 비전 요약 |
|
|
AI 미션 요약 |
|
|
AI 가치 요약 |
|
|
성과경로 목표 분석 |
|
|
목표 목록 |
|
|
목표 제목 |
|
|
목표 설명 |
|
|
빈도 수 |
|
|
키워드 목록 |
|
|
전술 지표 목록 |
|
|
전술 지표 |
|
|
전술 목표 |
|
|
전략 활동 목록 |
|
|
활동 지표 |
|
|
중간 기준 |
|
|
QuickWin 캔버스 목록 |
|
|
캔버스 ID |
|
|
작성자 ID |
|
|
과제명 |
|
|
과제 설명 |
|
|
총 점수 |
|
|
평가 목록 |
|
|
투자 의향서 인덱스 |
|
|
학생 번호 |
|
|
점수1 |
|
|
점수2 |
|
|
점수3 |
|
|
점수4 |
|
|
점수5 |
|
|
점수6 |
|
|
점수7 |
|
|
점수8 |
|
|
점수9 |
|
|
총 점수 |
|
|
BuildWin 캔버스 목록 |
|
|
캔버스 ID |
|
|
작성자 ID |
|
|
과제명 |
|
|
과제 설명 |
|
|
총 점수 |
|
|
평가 목록 |
|
|
투자 의향서 인덱스 |
|
|
학생 번호 |
|
|
점수1 |
|
|
점수2 |
|
|
점수3 |
|
|
점수4 |
|
|
점수5 |
|
|
점수6 |
|
|
점수7 |
|
|
점수8 |
|
|
점수9 |
|
|
총 점수 |