gistalk 2.0 개발 시작
gistalk 2.0
django 3.0이 나왔고 2020년 새학기가 시작… 하려고 했는데, 코로나 바이러스때문에 개강이 연기됐다.
지금까지 조금씩 시간을 내서 django와 python을 공부하고 있었고, gistalk을 django3.0으로 개편해보자는 연락을 받고 참여하기로 했다. 그런데 어쩌다보니 내가 개발을 맡게 될 것 같다. 오히려 괜찮은 것 같다. 선배님도 자유롭게 해보기를 원하시는 것 같아서 내가 독자적으로 해보고 피드백 받으면서 개발해보면 좋을 것 같다.
gistalk의 강의평가 시스템인 Take A+ Shower(TAS)를 우선적으로 만들기로 했다. 기존 gistalk에서 불편했던 점은 학기 선택이 특정되지 않는다는 점이다. 과목을 선택하면 그 과목을 강의했던 강사들을 특정시켜서 리스트를 준다. 하지만 어떤 강사가 어떤 학기에 그 과목을 수업했는지는 알 수 없도록 model이 설계되어서 사용자가 원하는 아무 학기나 랜덤하게 넣을 수 있다. 이건 평가의 신뢰도를 떨어뜨릴 수 있다고 생각한다.
더구나 같은 강의 같은 강사더라도 학기가 지나면서 수업 내용이나 방식이 바뀌는 경우도 있기에(내가 들었던 과목중에는 김희삼 교수님이나 홍성민 교수님같은 경우는 이런 변화를 추구하시는 것 같았다.) 학기를 특정하는 것은 중요하다는 생각이 들었다. 그래서 TAS의 모델에 변화를 주었다.
Course and Lesson
Course를 Course와 Lesson으로 분리했다.(Lesson말고 Class로 하고 싶었는데, migration할 때 뭐라고 하길래 변경했다. -,-) Course는 과목의 변하지 않는 특징들(변한다면 다른 과목이라고 볼 수 있는 특성: 과목명, 과목 코드, 전공, 강/실/학,…)을 가지고 있고, Lesson은 Course를 FK로 가리키면서 매 학기마다 바뀔 수 있는 특징들, 혹은 평가할 때 구분하면 좋은 특징들(학기, 강사, 분반, 학사/석사/박사, 정원, 수강인원, 장소, …)을 가지고 있다.
강의 평가는 Lesson에 대해서 할 생각이다. 그러면 수강학기, 강사 등을 특정지을 수 있다. 그리고 학부생들을 위한 강의인지 대학원생을 위한 강의인지도 구분하고 있다. 둘 다 들을 수 있는 강의도 있고 그런 과목은 Lesson이 2개가 생성될 것이다.
Question
Question은 기존과 같은 방식으로 할 생각이고, management commad를 통해서 이미 question, course와 lesson의 db 세팅 함수는 다 만들어 놨다. 다음 포스트는 아마 이 함수의 사용법에 대해 다룰 것 같다.
Leave a comment