계절학기 수강신청 추천 프로그램 개발
본 내용은
"
캡스톤디자인 발표자료
"
의 원문 자료에서 일부 인용된 것입니다.
2023.12.12
문서 내 토픽
-
1. 데이터 전처리 및 크롤링BeautifulSoup과 Pandas 라이브러리를 활용하여 웹페이지에서 계절학기 교과목, 학사일정, 공지사항 데이터를 수집하고 정제했습니다. urllib를 이용한 정적 웹페이지 크롤링, HTML 파싱을 통해 필요한 정보를 추출하고, 결측값 처리 및 데이터 가공을 수행했습니다. CSV 형식의 교과목 데이터와 HTML 형식의 학사일정 데이터를 통합하여 분석 가능한 형태로 변환했습니다.
-
2. 프로그램 알고리즘 및 함수 설계학생 정보 입력을 통해 전공/일선/교양 구분을 수행하고, 관심 분야 입력에 따라 과목을 필터링하는 알고리즘을 설계했습니다. getCourseLists(), getStudentData(), displayCourseLists() 등의 클래스 함수를 구현하여 학과별 교과 구분 저장, 사용자 관심 분야 저장, 맞춤형 과목 추천 기능을 제공합니다.
-
3. Streamlit을 이용한 UI 구현Python Streamlit 패키지를 활용하여 웹 기반 사용자 인터페이스를 구현했습니다. 과목추천 페이지, 전남대학교 스케줄 페이지, 공지사항 페이지 등 다중 페이지 구성으로 사용자 경험을 향상시켰습니다. Streamlit 클라우드와 GitHub 연동을 통해 배포하고, Streamlit API를 활용하여 인터랙티브한 웹페이지를 구성했습니다.
-
4. 데이터 시각화Streamlit 패키지의 시각화 기능을 활용하여 학사일정, 공지사항, 추천 과목 정보를 사용자 친화적으로 표시했습니다. 필터링된 과목 리스트를 테이블 형식으로 출력하고, 학사일정을 캘린더 형식으로 표현하여 학생들이 쉽게 정보를 파악할 수 있도록 구현했습니다.
-
1. 데이터 전처리 및 크롤링데이터 전처리와 크롤링은 데이터 과학 프로젝트의 기초를 이루는 중요한 단계입니다. 웹 크롤링을 통해 수집한 원본 데이터는 노이즈, 결측치, 중복값 등 다양한 문제를 포함하고 있으며, 이를 효과적으로 정제하는 것이 분석 결과의 품질을 크게 좌우합니다. 특히 BeautifulSoup, Selenium 등의 도구를 활용한 체계적인 크롤링과 Pandas를 이용한 데이터 정제는 후속 분석 단계에서 신뢰할 수 있는 결과를 도출하는 데 필수적입니다. 다만 크롤링 시 웹사이트의 이용약관 준수와 서버 부하 고려가 필요하며, 개인정보 보호에도 주의해야 합니다.
-
2. 프로그램 알고리즘 및 함수 설계효율적인 알고리즘과 함수 설계는 프로그램의 성능과 유지보수성을 결정하는 핵심 요소입니다. 시간복잡도와 공간복잡도를 고려한 최적화된 알고리즘 선택, 그리고 재사용 가능하고 테스트하기 쉬운 함수 설계는 장기적으로 개발 생산성을 높입니다. 특히 데이터 분석 프로젝트에서는 대용량 데이터 처리를 위해 벡터화된 연산과 메모리 효율적인 구조가 중요합니다. 명확한 함수 문서화와 타입 힌팅을 통해 코드의 가독성을 높이고, 단위 테스트를 통해 신뢰성을 확보하는 것이 전문적인 개발 관행입니다.
-
3. Streamlit을 이용한 UI 구현Streamlit은 데이터 과학자들이 복잡한 웹 개발 지식 없이도 빠르게 인터랙티브한 웹 애플리케이션을 구축할 수 있게 해주는 훌륭한 도구입니다. 직관적인 API와 간단한 문법으로 데이터 시각화, 사용자 입력 처리, 실시간 업데이트 등을 쉽게 구현할 수 있습니다. 프로토타입 개발과 데이터 분석 결과 공유에 매우 효과적이며, 빠른 반복 개발이 가능합니다. 다만 대규모 프로덕션 환경에서는 성능 최적화와 보안 고려가 필요하며, 복잡한 상태 관리가 필요한 경우 다른 프레임워크 검토도 권장됩니다.
-
4. 데이터 시각화데이터 시각화는 복잡한 데이터를 직관적으로 이해하고 인사이트를 도출하는 데 필수적인 기술입니다. Matplotlib, Seaborn, Plotly 등 다양한 라이브러리를 활용하여 정적 및 인터랙티브한 시각화를 구현할 수 있습니다. 효과적인 시각화는 데이터의 패턴, 추세, 이상치를 명확하게 드러내며, 비전문가도 쉽게 이해할 수 있도록 합니다. 차트 선택, 색상 팔레트, 레이아웃 등 디자인 원칙을 고려한 시각화는 데이터 스토리텔링의 강력한 도구가 됩니다. 다만 과도한 장식이나 부적절한 차트 선택은 오히려 데이터 해석을 방해할 수 있으므로 신중한 선택이 필요합니다.
