💨 EduMasters
학습자 관리 솔루션(대면)
💨 기획 의도
1. 쉬운 접근성 → 학생 및 강사(사용자)들이 교육과정 정보를 손쉽게 접근하고 이해 가능
2. 효율성 증대 → LMS를 통해 교육과정 및 자료를 집중화하고 상호작용을 간소화
3. 정보 공유 → 커뮤니티를 통한 정보 공유
💨 개발 환경
운영체제) Window11
IDE) IntelliJ
데이터베이스) MariaDB
협업 도구) Discord, Github, Notion, Google Drive
서버측 도구 및 기술) java 17.0.7, Apache Tomcat, Gradle, Spring boot 2.3.1,
Lombok, MyBatis
클라이언트측 도구 및 기술) HTML, CSS, JavaScript, Ajax, Jquery
💨 개발 일정
💨 주요 기능 소개
※ 2024. 01. 30 회원 페이지의 추가적인 기능 구현으로 변동된 사항 존재 ※
※ 달라진 사항은 다음글을 참고※
📌 메인 페이지
로그인(세션을 이용)을 해야지 학생 페이지 및 교수 페이지로 들어갈 수 있다.
학생 페이지는 아래의 사진과 같다.
학사일정, 강의 시간표, 과제제출현황, 공지사항을 확인할 수 있다.
📌 나의 정보 - 나의 정보 조회, 수강 이력, 성적 조회
📌 수업 정보 - 나의 강의실, 과제 제출, 수강 신청
📌 커뮤니티 - 공지사항, 자유게시판, QnA
파일을 포함해서 글을 작성할 수 있고, 수정 및 삭제가 가능하다.
게시글 수가 10개 이상이면 페이징 기능을 사용할 수 있고,
세션을 통해 새로고침으로 인한 조회수가 중복으로 증가되지 않도록 구현했다.
📌 관리자 페이지
A) 교육과정 관리자 페이지
1. 교육과정정보 조회
과정년도 또는 교육과정명으로 조회가 가능하다.
예를 들어서 "2024"년도 교육과정만 검색해보자. 결과는 아래의 사진과 같이 확인 가능하다.
2. 교육과정정보 추가
교육과정정보 테이블에서 정보를 입력하고 신규 버튼을 누르면
아래와 같이 교육과정 테이블에 새로운 교육과정정보가 추가된 것을 확인할 수 있다.
만약 교육과정정보를 입력하지 않고 신규 버튼을 누르면 아래의 사진과 같이 알림창이 뜬다.
3. 교육과정정보 수정
교육과정 테이블에서 교육과정을 선택하면
아래의 사진과 같이 교육과정정보 테이블에 해당 교육과정의 정보가 출력된다.
아래의 사진과 같이 수정한 후 저장 버튼을 누르면 교육과정정보가 수정된 것을 확인할 수 있다.
4. 교육과정정보 삭제
삭제할 교육과정의 체크 박스를 선택한 후 삭제 버튼을 누르면 삭제가 가능하다.
전체를 선택할 수 있는 체크박스를 선택한다면 전체 교육과정도 삭제할 수 있다.
B) 교과목 관리자 페이지
교과목 관리자 페이지도 교육과정 관리자 페이지와 동일한 형식으로 작동된다.
예를 들어 교과목 조회에서 사용 여부를 사용으로 조회한다면 사용여부가 Y(Yes)인 교과목만 출력된다.
2. 교과목 추가, 3. 교과목 수정, 4. 교과목 삭제도 동일한 방식으로 작동된다.
c) 사용자정보 관리자 페이지
1. 학생 및 교수 회원 생성하기
신규 버튼을 누르면 위와 같이 입력할 수 있는 행이 생긴다.
회원관리번호 등은 자동으로 입력되므로 구분, 이름, 로그인ID만 입력해서 체크한 후 저장을 누르면
아래의 사진과 같이 학생 및 교수의 정보를 입력할 수 있는 창으로 넘어간다.
정보를 입력하고 저장을 하면 회원 정보가 생성된다.
학생 및 교수를 조회하거나 수정하고 삭제하는 것 또한 똑같은 방식으로 흘러가므로 생략한다.
💨 느낀점
당연하게도 제일 아쉬웠던 점은 끝까지 완성하지 못했다는 점이다.
그리고 이전 글에서도 말했다싶이 테이블 개수가 너무 많아 테이블 간의 관계를 이해하는데 너무 어려웠다.
하지만 이러한 어려움을 겪으면서 DB 설계를 포함해 많은 부분을 배울 수 있었던 기회라고 느꼈다.
이렇게 다수의 테이블을 다룰 수 있는 기회는
팀 프로젝트가 아니라면 혼자서는 겪을 수 없는 소중한 경험이라고 생각한다.
그리고 토요일에도 학원에 나오셔서 어려운 부분과 진행 상황을 봐주신 멘토님께도 감사한 마음을 전하고 싶다!
팀 프로젝트를 하면서 진행하는 방식?이 달라 힘들었던 부분도 있다.
1차 프로젝트의 조에서 같이 했던 언니와 내가 뽑히고,
다른 팀 안에서 같은 조원이었던 3분과 함께 한 조를 이루게 된 거였는데
나랑 언니는 1차 프로젝트할 때 계속해서 팀과 상황을 공유하고 모르는 부분은 질문하며 아침마다 회의를 통해
소통했었는데 다른 분들은 이전 팀에서 살짝 개인 플레이식으로 진행했었던 것 같았다.
그래서 계속 소통하자고 팀원들에게 수십번 얘기를 했었고 Discord 및 Notion도 언니와 내가 직접 만들어서
상호작용할 수 있도록 노력했다.
노력한 결과 초반보다 원활하게 의사소통을 하고 질문도 거리낌없이 하게되었다.
나는 개인적으로 소통하는 부분이 정말 중요하다고 생각해서 이 부분은 잘한 점이라고 생각한다.😎
나는 다른 팀원분들에게 물음표 살인마급으로 정말 질문을 많이 했었는데
이 부분에 대해서도 정말 감사하게 생각한다.
덕분에 이해가 잘 된 부분도 있었고, 오류도 많이 해결할 수 있어서 성장할 수 있었다.
이렇게 서로 질문하고 대답하는 것이 확실히 더 정확히 알게되고,
서로 부족했던 부분을 채우면서 배울 수 있는 것 같다.
그리고 더미 데이터를 넣을 때도 의견이 달라 조금 힘들었던 부분이었다.😂
데이터는 1~2개씩만 넣고 기능 구현을 해서 그때 데이터를 쉽게 넣자. VS 더미 데이터는 처음부터 완벽하게
넣어야 한다. 이렇게 갈렸는데 나는 전자에 속했다.
왜냐하면 테이블 개수가 20개가 넘는데다가 기능을 구현하다보면 테이블은 수정되기 마련인데
그때마다 더미 데이터를 계속해서 넣을 수도 없고 테이블 간의 관계(외래키 등)가 복잡해서 그거에 맞춰
더미 데이터를 넣는 것은 무리라고 생각했다. 결국은 후자의 방법으로 진행해서 데이터 넣는데에만
하루 ~ 이틀 넘게 시간을 쓴 것 같다. 프로젝트 기간이 널널하지도 않았고 빨리 기능 개발을 해야한다는 생각에
조금 답답했던 것 같다. 이 부분을 멘토님께 물어본 결과 전자, 후자 전부 맞는 말이었다.
더미 데이터는 필수긴 하지만 우리와 같이 프로젝트 기간이 짧은 경우에는
1~2개의 데이터만 넣는게 낫다고 하셨다.
기능 개발을 하면서 어려웠던 점도 있었다.
관리자 페이지에서 교육과정정보 테이블이 가장 큰 테이블이라서 이 테이블에서 교육과정정보를 삭제하면
다른 테이블의 교육과정정보와 관련된 컬럼들도 같이 삭제가 되어야했다.
연계적으로 삭제하는 방법은 join을 사용해서 하나의 SQL문을 사용하는 방법이 있을 것 같았는데
이는 확실히 알지 못해 사용하지 못했다.
결국 각각의 테이블마다 delete SQL문을 사용해서 만약 20개가 연관되어있다면
20개의 delete SQL문을 사용해서 삭제를 시켜야했다.
삭제 뿐만 아니라 추가도 같은 맥락이었는데 이 부분이 기능 개발하면서 좀 힘들었다.
2차 프로젝트는 코딩을 물론이고 팀원과의 소통 및 협업하는데에서도 느꼈던 점이 엄청 많았던 것 같다.
그래서 그런지 정말 많이 배울 수 있었고 성장할 수 있었다.
우리팀 모두 정말 수고 많았고 친절하게 도와주셔서 감사합니다!!!😝
+ 추후에 개발을 하여 프로젝트를 마무리했다!!
2024.01.30 - [국비 지원/국비 일기] - 국비 2차 프로젝트 추가 개발
'국비 지원 > 국비 일기' 카테고리의 다른 글
국비 2차 프로젝트 추가 개발 (4) | 2024.01.30 |
---|---|
국비 학원 약 6개월, 수료 후기!! (0) | 2023.10.26 |
국비 2차 프로젝트 회고 (1) (4) | 2023.10.26 |
국비 1차 프로젝트 회고 (2) (0) | 2023.10.26 |
국비 1차 프로젝트 회고 (1) (0) | 2023.09.25 |