[실전] 대학교 과제 및 학점 관리 시스템 만들기


대학교 4년 내내 우리를 괴롭히는 건 딱 두 가지입니다. ‘마감일’과 ‘학점 계산’이죠. 대부분의 학생들은 이 두 가지를 따로 관리합니다. 마감일은 캘린더 앱에, 학점 계산은 엑셀 파일에 따로 저장하죠.


이게 바로 비효율의 시작입니다.


그래서 노션으로 시스템을 만들어보려고 하지만, 99%가 실패합니다. 왜일까요? 모든 과목의 과제를 하나의 거대한 ‘할 일 목록’ 데이터베이스에 욱여넣기 때문입니다. ‘경제학원론 레포트’와 ‘현대문학 퀴즈1’이 한 표에 뒤죽박죽 섞여있으면, 과목별 진행 상황 파악도 안 되고, 학점 계산은 당연히 불가능합니다.


오늘은 이런 주먹구구식 관리를 끝내는 방법을 알려드리겠습니다. 이건 단순한 과제 목록이 아닙니다. 과제를 제출하고 점수를 입력하는 순간, 내 현재 총점이 100점 만점에 몇 점인지 실시간으로 합산되는 ‘자동화 계기판’을 만드는 것이 목표입니다.



1. 이 시스템의 핵심 원리: ‘점수’가 아닌 ‘반영 점수’를 계산하라


본격적으로 만들기에 앞서, 이 시스템의 엔진이 되는 단 하나의 핵심 개념을 반드시 이해해야 합니다.

  • 초보자의 실수: ‘중간고사 90점’, ‘퀴즈 100점’을 받으면, 내 총점을 190점이라고 생각합니다.
  • 현실: ‘중간고사(배점 30%)’에서 90점을 받은 것과, ‘퀴즈(배점 10%)’에서 100점을 받은 것은 무게가 완전히 다릅니다.


우리가 계산해야 할 것은 ‘내 점수’가 아니라, 내 점수가 총점에 ‘몇 점을 더해주는가’ 하는 **‘반영 점수’**입니다.

  • 중간고사: 90점 * 30% = 27점 (내 총점에 27점을 더해줌)
  • 퀴즈: 100점 * 10% = 10점 (내 총점에 10점을 더해줌)


이 ‘반영 점수’를 계산하는 것이 이 시스템의 전부입니다.


수1



2. 1단계: ‘과목’과 ‘과제’ 데이터베이스를 분리하라


이 ‘반영 점수’를 계산하기 위해, 우리는 정보의 성격에 따라 데이터베이스를 반드시 2개로 분리해야 합니다.


  • DB 1: 수강 과목 (대시보드): ‘경제학원론’처럼 이번 학기에 듣는 과목들의 ‘요약 정보’만 담는 깨끗한 대시보드입니다.
  • DB 2: 과제 및 시험 (기록 창고): ‘경제학원론 중간 레포트’처럼 모든 개별 과제와 점수를 기록하는 ‘데이터 창고’입니다.


‘기록 창고’에서 계산된 ‘반영 점수’들을, ‘관계형’과 ‘롤업’을 이용해 ‘대시보드’로 불러와 합산할 것입니다.


수2



3. 2단계: 2개의 데이터베이스 재료 준비하기


이제 빈 페이지에 ‘데이터베이스 - 인라인’으로 2개를 만듭니다.


1. ‘수강 과목’ DB 만들기 (대시보드)

  • 데이터베이스 이름을 ‘수강 과목’으로 합니다.
  • 이름: (기본 속성) 여기에 ‘경제학원론’, ‘현대문학의 이해’를 입력합니다.
  • 학점 수: (숫자 속성) 3학점이면 3, 2학점이면 2를 입력합니다.
  • 목표 학점: (선택 속성) “A+”, “A0”, “B+” 등 이번 학기 목표를 정합니다.


2. ‘과제 및 시험’ DB 만들기 (기록 창고)

  • 데이터베이스 이름을 ‘과제 및 시험’으로 합니다.
  • 이름: (기본 속성) ‘중간고사 레포트’, ‘퀴즈 1’ 등을 입력합니다.
  • 상태: (선택 속성) “준비 중”, “제출 완료”, “채점 완료”
  • 마감일: (날짜 속성) 마감일 또는 시험 날짜를 입력합니다.



4. 3단계: ‘반영 점수’ 자동 계산 시스템 구축하기 (함수)


이제 ‘과제 및 시험’ DB에 이 시스템의 엔진을 심을 차례입니다.

1. ‘과제 및 시험’ DB에 ‘숫자’ 속성을 하나 추가하고, 이름은 배점(%)으로 합니다.

  • 경험에서 나온 팁: 이게 가장 중요합니다. 중간고사가 30% 반영이면, 여기에 0.3을 입력합니다. 퀴즈가 10% 반영이면 0.1을 입력합니다. 퍼센트가 아닌 소수점으로 입력하는 것이 핵심입니다.

2. ‘과제 및 시험’ DB에 ‘숫자’ 속성을 또 하나 추가하고, 이름은 내 점수로 합니다.

  • 100점 만점에 95점을 받았다면, 95를 입력합니다.

3. ‘과제 및 시험’ DB에 ‘함수(Formula)’ 속성을 추가하고, 이름은 반영 점수로 합니다.

  • 함수 편집창에 prop("내 점수") * prop("배점(%)") 라고 입력하고 ‘완료’를 누릅니다.

4. 결과 확인: 이제 ‘배점(%)’에 0.3, ‘내 점수’에 90을 입력하면, ‘반영 점수’ 칸에 27이 자동으로 계산되는 것을 볼 수 있습니다. 엔진이 완성되었습니다.

수3



5. 4단계: ‘관계형’과 ‘롤업’으로 대시보드 완성하기


이제 이 ‘반영 점수’들을 ‘수강 과목’ DB로 불러와 합산할 차례입니다.

1. 관계형 연결하기:

  • ‘과제 및 시험’ DB에서 ‘관계형(Relation)’ 속성을 추가합니다.
  • ‘수강 과목’ DB를 선택합니다.
  • ‘수강 과목에 표시’ 스위치를 반드시 켜고, 속성 이름을 ‘관련 과제들’로 정해줍니다.
  • ‘과제 및 시험’ DB에 새로 생긴 이 속성의 이름은 ‘과목명’이라고 바꿔줍니다.

2. 롤업으로 총점 계산하기:

  • ‘수강 과목’ DB로 돌아가서, ‘롤업(Rollup)’ 속성을 추가합니다.
  • 속성 이름은 현재 총점으로 합니다.
  • 롤업 설정을 엽니다.
  • 관계형 선택: ‘관련 과제들 (과제 및 시험)’을 선택합니다.
  • 속성 선택: ‘과제 및 시험’ DB의 **‘반영 점수’**를 선택합니다. (절대 ‘내 점수’가 아닙니다!)
  • 계산 선택: ‘합계(Sum)’를 선택합니다.

3. 최종 테스트: 과제 및 시험 DB에 ‘경제학원론’ 과목으로 2개의 항목을 입력해 보세요.

  • 항목 1: 중간고사 / 배점 0.3 / 내 점수 90 / (반영 점수 27)
  • 항목 2: 퀴즈 1 / 배점 0.1 / 내 점수 100 / (반영 점수 10) 이제 수강 과목 DB를 확인해 보세요. ‘경제학원론’ 항목의 ‘현재 총점’ 칸에 37이 자동으로 합산되어 표시됩니다.


6. 5단계: 이 시스템을 ‘진짜’ 사용하는 방법 (뷰 활용)


기능은 완성되었지만, 이대로 쓰면 불편합니다. 데이터를 목적에 맞게 바라보는 ‘뷰(View)’를 만들어야 이 시스템이 비로소 살아 움직입니다.

  • 뷰 1: 마감일 캘린더 (과제 및 시험 DB에 만들기)
    • ‘과제 및 시험’ DB에 ‘+ 뷰 추가’를 눌러 ‘캘린더’ 뷰를 만듭니다.
    • ‘캘린더 기준’을 ‘마감일’로 설정합니다.
    • 활용: 이 뷰만 보면, 이번 달에 닥칠 모든 마감일을 한눈에 볼 수 있습니다.

  • 뷰 2: 과목별 과제 모아보기 (과제 및 시험 DB에 만들기)
    • ‘+ 뷰 추가’를 눌러 ‘보드’ 뷰를 만듭니다.
    • ‘그룹화 기준’을 ‘과목명(관계형)’으로 설정합니다.
    • 활용: ‘경제학원론’, ‘현대문학’ 등 과목별로 열이 생기고, 각 과제들이 카드로 보입니다. 내가 어떤 과목에 과제가 몰려있는지 시각적으로 파악할 수 있습니다.

  • 뷰 3: 학점 계산기 (수강 과목 DB에 만들기)
    • ‘수강 과목’ DB에 ‘+ 뷰 추가’를 눌러 ‘갤러리’ 뷰를 만듭니다.
    • 갤러리 카드의 ‘표시되는 속성’에서 ‘현재 총점’과 ‘목표 학점’을 켜줍니다.
    • 활용: 이제 이 뷰는 여러분의 ‘이번 학기 대시보드’가 됩니다. 각 과목 카드만 보면, 내 목표 학점 대비 현재 총점이 몇 점인지 실시간으로 확인할 수 있습니다.



이 시스템은 단순한 기록 도구가 아닙니다. 모든 평가 항목의 ‘배점(%)’을 관리하고, 그에 따른 ‘반영 점수’를 계산하여 ‘현재 총점’을 도출하는, 여러분만의 전략적인 학점 관리 계기판입니다. 엑셀로 계산기를 두드리던 시간은 이제 끝났습니다.






댓글