AI소프트웨어과 · 시스템설계 · 2026-2학기
프로젝트 주제 아이디어 명세
발자국 — 조별과제 과정기록 & 평가지원 서비스
팀김동건, 김효민, 양원야, 윤장현, 이종민, 장호진
문서 버전v2.0

차례

1발자국 — 조별과제 과정기록 & 평가지원 서비스
2개발 도구 및 일정

1장은 다음 구조로 되어 있다.

1.1정의 및 사용자
1.2문제
1.3기존 서비스 비교
1.4기능
1.5화면
1.6시스템 구조
1.7범위
1.8기술적 핵심 과제
1.9리스크와 대응
1.10예상 질문

1. 발자국 — 조별과제 과정기록 & 평가지원 서비스

1.1 정의 및 사용자

항목 내용
정의 조별과제의 산출물과 완료확인을 과정 기록으로 남기고, 그 근거를 보면서 사람이 동료평가를 입력하는 웹 서비스
단위 과제 하나에 조 여러 개. 교수는 과제를 한 번 만들고 조마다 조장을 지정
사용자 조별과제를 수행하는 학생(조장·조원), 과제를 평가하는 교수
역할 교수(과제 생성·조장 지정·열람), 조장(역할 관리), 조원(기록·평가)
사용 환경 PC 웹
스택 React / Spring Boot 3 / JPA / Spring Security(JWT) / PostgreSQL
인증 학교 이메일(g.yju.ac.kr) 인증
성격 팀 프로젝트. 학교 공식 시스템(LMS)이 아니며 학교 명의를 쓰지 않음
범위 밖 LMS 연동, 성적 산출. 시스템은 점수를 계산하지 않음

1.2 문제

구분 내용
현행 동료평가는 서면 또는 구글 폼(본교 LMS에 동료평가 기능 없음). 과정 관리는 노션·드라이브·카톡 조합
한계 1 평가 시점에 "누가 무엇을 언제 했는지" 볼 근거가 없음. 기억과 인상으로 점수를 매김
한계 2 친분·발언권에 따라 평가가 좌우됨
한계 3 파일이 남지 않는 기여(회의 진행, 자료 취합, 일정 조율)는 어디에도 기록되지 않음
한계 4 과정 관리 도구와 평가 도구가 분리되어 있어 근거와 평가가 연결되지 않음

원칙: 판단은 사람, 시스템은 근거만. 점수 자동 계산·순위·가중치 없음.

근거: 조원 4명에게 조별과제 평가 경험을 물은 결과, 3명이 "파일로 남지 않는 기여가 평가에 반영되지 않는다", 1명이 "친분과 발언권에 따라 평가가 달라진다"를 문제로 들었다.

현행과제 진행노션 · 드라이브 · 카톡에 기록이 흩어짐과제 종료구글 폼 · 서면에 점수 입력근거 없이 기억과 인상으로파일이 안 남는 기여는 어디에도 없음제안산출물 · 기여 항목 기록파일과 업로드 시각을 함께 저장팀원 완료확인혼자 소급 입력 불가근거 패널 옆에서 점수 입력점수는 사람이, 계산은 없음교수 열람집계 없이 근거와 결과만점수는 사람이 · 시스템은 근거만
그림 1-1. 현행 방식과 제안 방식 비교

1.3 기존 서비스 비교

서비스 구조 구조상 불가한 것
서면 / 구글 폼 과제 종료 후 점수 입력 과정 기록 없음. 평가 시점에 근거를 볼 수 없음
노션 · 드라이브 · 카톡 조합 각자 도구에 흩어진 기록 역할·담당·완료 여부가 구조화되지 않음. 평가와 연결 안 됨
타교 LMS 동료평가(Canvas·Moodle 등) 제출물에 대한 상호 평가·점수 입력 과정 기록(누가 언제 무엇을 했는지) 없음. 파일로 남지 않는 기여 반영 불가

차별점: 산출물·완료확인 기록과 동료평가가 한 화면에 연결. 과정 기록과 동료평가를 함께 다루는 도구는 확인한 범위에서 없음.

1.4 기능

번호 기능 설명 비고
1.4.1 과제 생성 교수가 과제명·기간을 등록하고, 조 개수만큼 조장을 지정 생성 주체는 교수. 조는 과제 아래 여러 개
1.4.2 역할 배정 초대 링크로 조원 합류, 조장이 역할명 배정
1.4.3 기여 항목 등록 파일이 없는 기여(회의 진행, 자료 취합, 일정 조율)를 조장이 항목으로 등록, 담당자 지정
1.4.4 산출물 업로드·열람 파일 업로드. 같은 역할의 파일은 버전 순으로 쌓이고 최신 버전이 상단에 표시. 조원·교수가 열람·다운로드 시각은 서버 기록. 조회·다운로드 여부는 집계하지 않음. 파일당 용량·형식 제한은 구현 시 설정
1.4.5 완료확인 담당자 보고 → 다른 조원이 확인. 산출물·기여 항목 모두 대상. 확인자 여러 명 가능 혼자 소급 입력 불가
1.4.6 진척 시각화 역할별로 언제·몇 번 올렸는지 타임라인 표시. 업로드 시점이 그대로 기록됨 고정 문구: "업로드 횟수는 기여도가 아닙니다 · 점수는 시스템이 계산하지 않습니다"
1.4.7 근거 패널 산출물 / 완료확인을 종류별로 분리 표시. 평가 화면 옆에 고정
1.4.8 동료평가 항목 2개(역할 수행 / 팀 소통), 각 5점 척도. 근거 패널 보며 사람이 입력. 개별 입력, 조원 간 비공개 파일로 남지 않는 기여는 팀 소통에서 반영
1.4.9 교수 열람 근거 기록과 평가 결과 열람. 집계·합산 없음 평가 결과는 교수만

※ 용어 — 산출물: 조원이 역할 수행의 결과로 올린 파일. 업로드 시각·담당자·역할과 함께 저장 · 완료확인: 담당자가 완료를 보고하고 다른 조원이 확인하는 절차 · 근거 패널: 동료평가 화면 옆에 붙는 산출물·완료확인 기록 목록

교수조장조원과제 생성 · 조장 지정1.5.2역할 배정 · 초대 링크1.5.3기록: 산출물 · 기여 항목1.5.4완료확인 (다른 조원)1.5.7진척 보드1.5.6동료평가 (근거 패널)1.5.8교수 열람1.5.9초대 링크과제 종료 후평가 결과는 교수만
그림 1-2. 사용자 흐름 — 박스 안 번호는 화면 번호
기록이 근거가 되기까지 — 산출물과 기여 항목은 경로가 다르다산출물업로드 v1업로드 v2재업로드최신 버전 v3목록 상단재업로드기여 항목조장 등록담당자 지정담당자완료 보고조원 확인 1/3보고조원 확인 3/3확인 완료확인근거 패널종류별분리 표시시각은 모두 서버 기록 — 소급 불가확인은 보고자 본인이 아닌 조원만 가능 — 혼자 채울 수 없음근거 패널은 횟수를 합산하지 않고 종류별로 나열만 함
그림 1-3. 상태 전이 — 수치는 예시

1.5 화면

번호 화면 진입 구성 관련 기능
1.5.1 과제 목록 로그인 후 참여 중 과제, 역할, 기간 1.4.1
1.5.2 과제 생성 교수 과제명, 기간, 조 목록과 조장 지정 1.4.1
1.5.3 역할 배정 조장 조원 목록, 역할명, 초대 링크 1.4.2
1.5.4 기록 과제 상세 산출물 업로드, 기여 항목 등록, 내 담당 목록 1.4.3, 1.4.4
1.5.5 산출물 보기 과제 상세 역할별 파일 목록(버전 순, 최신 상단), 파일 정보, 다운로드 1.4.4
1.5.6 진척 보드 과제 상세 역할별 타임라인, 고정 문구 1.4.6
1.5.7 완료확인 알림 또는 진척 보드 확인 대기 항목, 확인 버튼 1.4.5
1.5.8 동료평가 과제 종료 후 왼쪽 근거 패널, 오른쪽 평가 입력(조원별 2항목) 1.4.7, 1.4.8
1.5.9 교수 열람 교수 과제 아래 조 목록 → 조별 근거 기록, 평가 결과 1.4.9
그림 1-4a. 주요 화면 — 시각 참고용, 화면 내 수치는 예시 — 역할 배정 (1.5.3) — 조원 초대 영역은 생략
그림 1-4b. 주요 화면 — 시각 참고용, 화면 내 수치는 예시 — 산출물 보기 (1.5.5)
그림 1-4c. 주요 화면 — 시각 참고용, 화면 내 수치는 예시 — 동료평가 (1.5.8)
발자국과제 목록진척 현황산출물완료확인동료평가리포트2026-2학기 데이터베이스 팀프로젝트D-3 · 2026.11.24 마감 · 역할별 기록 타임라인업로드 횟수는 기여도가 아닙니다 · 점수는 시스템이 계산하지 않습니다10/1310/2010/2711/0311/1011/1711/24 마감자료조사김도윤 · 산출물설계 및 구현이서준 · 산출물문서화박지민 · 산출물발표최하은 · 완료확인회의 진행 · 회의록박지민 · 완료확인마감 직전 4회 · 시각은 서버 기록산출물 업로드완료확인 (조원 확인 시각)점 하나 = 기록 1건. 가로 위치는 시각. 크기·색으로 우열을 두지 않음
그림 1-4d. 주요 화면 — 와이어프레임 — 진척 보드 (1.5.6)

1.6 시스템 구조

구분 구성 요소 담당
화면군 조장·조원(역할·기록·진척·완료확인·평가) / 교수(과제 생성·열람) React
도메인 과제·역할 / 산출물·기여 / 완료확인·평가 / 리포트(열람용, 집계 없음) Spring Boot 3
저장 PostgreSQL, 오브젝트 스토리지(S3 호환) — 산출물 파일 서버와 분리 저장
외부 의존 오브젝트 스토리지, SMTP(초대·알림 메일)

호출 관계: 화면군 → 도메인(REST). 권한 검사는 조 단위 소속 기준(1.8 참조).

엔티티

엔티티 역할 주요 속성
회원 학생·교수 이메일, 이름, 구분
과제 수업 단위 과제명, 기간, 교수, 상태
조 과제 아래 팀 과제, 조장
조 참여 회원-조 관계 역할명
기여 항목 파일 없는 기여 항목명, 담당자, 등록자
산출물 업로드 파일 파일, 파일명, 시각, 담당자, 역할, 버전
완료확인 산출물·기여 항목에 대한 확인 대상, 확인자, 시각
평가 조원 → 조원 평가자, 대상, 역할 수행, 팀 소통
화면군 (React)도메인 (Spring Boot 3)외부 의존조장 · 조원 화면역할 · 기록 · 진척 · 완료확인 · 평가교수 화면과제 생성 · 열람과제 · 역할산출물 · 기여완료확인 · 평가리포트 (열람용, 집계 없음)PostgreSQL오브젝트 스토리지 (산출물 파일)오브젝트 스토리지산출물 파일SMTP초대 · 알림 메일REST
그림 1-5. 시스템 구조

1.7 범위

구분 내용
1차 핵심 1.4.1 과제 생성 · 1.4.2 역할 배정 · 1.4.4 산출물 · 1.4.5 완료확인 · 1.4.7 근거 패널 · 1.4.8 동료평가 · 1.4.9 교수 열람 — 이것만 있어도 서비스 성립
1차 부가 1.4.3 기여 항목 · 1.4.6 진척 시각화 — 핵심 완성 후
구현 순서 ① 인증·과제·역할 → ② 산출물 업로드·열람 → ③ 완료확인·기여 항목 → ④ 근거 패널·동료평가·교수 열람 → ⑤ 진척 시각화
기능 확장 1차 완성 후 검토

1.8 기술적 핵심 과제 — 조 단위 권한

항목 내용
과제 교수·조장·조원이 같은 화면에서 보는 것과 할 수 있는 것이 다르며, 그 구분이 조 단위로 달라짐. 같은 과제라도 다른 조의 기록은 볼 수 없음
왜 어려운가 URL 단위 권한(로그인 여부, 역할)으로는 "이 조의 조원인가"를 판단할 수 없음. 리소스 단위 검사가 필요함
배워야 할 것 Spring Security 메서드 단위 인가(@PreAuthorize), 조-사용자 소속 검사 로직
그 외 학습 필요 파일 업로드와 오브젝트 스토리지 연동, 버전 관리
조 단위 권한 — 같은 사람이라도 조마다 권한이 다르다과제 생성역할 배정기록완료확인평가 입력평가 결과 열람근거 열람교수○————○○조장—○○○○—○조원——○○○—○다른 조의 조원———————URL 단위 검사(로그인 여부, 역할)로는 마지막 줄을 못 막는다."이 조의 조원인가"를 요청마다 확인하는 리소스 단위 검사가 필요하다.
그림 1-6. 핵심 과제 개념도

1.9 리스크와 대응

번호 리스크 대응
1 사후 일괄 입력 — 평가 직전에 몰아서 올리면 과정 기록의 의미가 사라짐 기록 시각은 서버가 기록하므로 소급 불가. 완료확인은 다른 조원이 확인해야 하므로 혼자 채울 수 없음
2 보이는 기여 편향 — 파일이 남는 일이 유리해 보임 평가 항목을 역할 수행 / 팀 소통으로 분리. 진척 화면에 고정 문구 "업로드 횟수는 기여도가 아닙니다"

1.10 예상 질문

Q1. 지금은 조별과제 평가를 어떻게 하고 있고, 무엇이 문제입니까?

서면이나 구글 폼으로 과제가 끝난 뒤 점수를 적습니다. 그 시점에는 누가 무엇을 했는지 볼 근거가 없으므로 기억과 인상에 의존하게 됩니다. 저희는 과정 기록을 남겨 평가할 때 참고하게 하려는 것입니다.

Q2. 점수를 시스템이 계산하지 않으면 무엇을 해주는 겁니까?

근거를 정리해서 보여주는 것까지만 합니다. 산출물 기록과 완료확인 기록을 평가 화면 옆에 붙여 두고, 점수는 사람이 입력합니다. 계산을 시스템이 하면 기록 횟수가 곧 점수가 되기 때문에 의도적으로 제외했습니다.

Q3. 파일을 많이 올리는 사람이 유리한 것 아닙니까?

평가 항목을 "역할 수행"과 "팀 소통" 둘로 나눴습니다. 회의 진행이나 자료 취합처럼 파일로 남지 않는 기여는 기여 항목으로 따로 등록하고 조원이 완료확인을 합니다. 진척 화면에는 "업로드 횟수는 기여도가 아닙니다"라는 문구를 고정으로 표시합니다.

Q4. 평가 직전에 몰아서 올리면 의미가 없지 않습니까?

기록 시각은 서버가 기록하기 때문에 과거로 돌릴 수 없습니다. 완료확인은 다른 조원이 확인해야 하므로 혼자 한꺼번에 채울 수 없습니다. 올린 시점이 그대로 남습니다.

Q5. 조원끼리 서로 준 점수를 볼 수 있습니까?

아니요. 평가 결과는 교수만 봅니다. 산출물과 완료확인 같은 근거 기록은 조원도 함께 봅니다.

Q6. 평가 데이터와 파일은 과제가 끝난 뒤 어떻게 됩니까?

과제 종료 후 일정 기간 보관하고 삭제합니다. 보관 기간은 교수님과 협의해 정하고, 교수님 요청이 있으면 즉시 삭제합니다. 파일과 평가 결과는 해당 과제의 조원과 담당 교수 외에는 접근할 수 없습니다.

2. 개발 도구 및 일정

2.1 개발 도구 및 담당

영역도구담당
백엔드 골격 · DB · 실행 환경Spring Boot 3, PostgreSQL, Docker조장
백엔드 기능Spring Boot 3, JPA, Spring Security2명
프론트엔드React2명
화면 설계 · 문서 · 테스트 데이터목업, 명세, 시드 데이터1명

※ 비고 — 나머지 역할은 회의에서 확정. 전원 해당 도구 첫 사용

2.2 일정

기간단계내용
09.17주제 확정담임교수 컨펌
09.18 ~ 09.30요구사항 분석 · 학습 1기능 목록과 화면 목록 확정. 조원은 Spring Boot·React 기초 튜토리얼
10.01 ~ 10.16설계 · 골격 구축 · 학습 2ERD, API 명세, 화면 설계. 골격(인증·예시 CRUD·React 기본 화면·Docker) 완성. 조원은 예시 CRUD 따라 만들기
10.19 ~ 10.30중간고사개발 중단(학사 일정 확인 후 조정)
11.02 ~ 11.20핵심 흐름 구현골격 위에 엔티티와 화면을 분담하여 구현
11.23 ~ 12.04통합 · 테스트프론트-백엔드 연결, 시나리오 테스트, 시드 데이터
12.07 ~ 12.10시연 준비발표 자료, 리허설
12.11학기 발표 (종료)핵심 흐름 1개 시연
12.12 ~ 2027.021차 핵심 완성 · 기술 과제완료확인, 기여 항목, 진척 시각화, 1.8 기술적 핵심 과제(조 단위 권한)
2027.03최종 종료1차 핵심 + 1차 부가

2.3 12.11까지 목표

주제목표 흐름
발자국과제 생성 → 역할 배정 → 산출물 업로드 → 동료평가 입력

※ 표에 없는 핵심 기능과 부가 기능은 12.11 이후 구간(2.2)에서 구현