-
Procyon Archive: 경성제국대학 전자계산기공학부 사설 아카이브 CSE: ArchiveSpec: career & experience/Project 2025. 5. 8. 02:39
Procyon Archive: 경성제국대학 전자계산기공학부 사설 아카이브 CSE: Archive
본고는 프로젝트 Procyon Archive의 개발목적, 개발과정과 결과를 문서화하고 개선점과 프로그램 수정 시 유의점을 명시하게 위해 작성되었습니다.
목차
- 개발목적
- 주요기능
- 주요구조
- 고려사항
본고는 프로키온 아카이브의 개발목적, 개발과정과 결과를 문서화하고 개선점과 프로그램 수정 시 유의점을 명시하게 위해 작성되었습니다. 개발목적 사설 아카이브 CSE: Archive를 구축하는 프로젝트 Procyon Archive는 서울대학교 컴퓨터공 학부가 유용하게 사용할 만한 자료와 시험 족보들을 모으는 프로젝트입니다. 서울대학교 학생 커뮤니티인 에브리타임(Everytime)과 스누라이프(SNULife)에 비공식적으로 공유되던 학습 자료들을 정리하고, 일부 주류 주전공 학생들만 접근 가능하던 족보 자료를 모든 학우들에게 공개하기 위해 만들어졌습니다. 해당 프로젝트를 통해, 오픈 소스 정신의 실현과 학문적 연대 강화를 목표합니다. 주요 기능 Procyon Archive는 크게 네 가지 기능을 제공합니다. 먼저 도서 관련 자료를 공유 기능이 존재합니다. 인터넷에 무료로 제공되는 PDF나 PPT 형식의 도서 자료를 수집하여 아카이빙하고, 키워드 또는 태그를 이용해 원하는 자료를 검색할 수 있는 기능을 제공합니다. 도서 관련 자료와 더불어 수험 관련 자료를 공유 기능 또한 존재합니다. 소위 족보라고 불리 는, 과거 시험 문제와 해설 등을 아카이빙하여 저장하고, 역시 검색을 통해 자료를 쉽게 찾을 수 있도록 설계되어 있습니다. 셋째로, 제보 기능을 제공합니다. Procyon Archive는 제보 기능을 통해 사용자 참여를 장려 합니다. 사용자는 자신이 보유하고 있는 유용한 자료를 자유롭게 업로드하고 공유할 수 있으며, 이를 통해 아카이브의 콘텐츠가 지속적으로 확장되고 풍부해질 수 있도록 구성되어 있습니다. 마지막으로, 게시판 기능이 제공됩니다. 공지사항과 자유 게시판을 통해 다양한 글을 작성하고 열람할 수 있으며, Markdown 문법과 LaTeX 수식 표기를 지원하여 학술적 내용을 표현하는 데 에도 무리가 없습니다. 주요 프레임워크 및 API 효율적인 작성을 위해, Procyon Archive는 Next.js 프레임워크를 이용해 작성되었습니다. 또한, Procyon Archive는 배포 비용과 유지보수 비용을 최소화하기 위해 Vercel 플랫폼에서 server less로 배포되었습니다. 이에, Procyon Archive의 데이터 베이스 그리고 자료 저장 디 스크는 외부 API에 의존합니다. 사용하고 있는 주요 기술들은 아래와 같습니다. 구성 요소 기술 스택 프레임워크 Next.js (App Router 기반) 배포 플랫폼 Vercel 인증 방식 Google OAuth 기반 NextAuth.js 사용 JWT 기반 처리, `@snu.ac.kr` 도메인만 가입 허용 데이터베이스 Firebase Firestore 파일 저장소 Google Drive API 사용 (폴더 구조 탐색, 파일 다운로드, 제보 파일 저장 등) 표지 이미지 저장소 AWS S3 (도서 표지 전용) 개발 시 고려사항 아카이브 드라이브 장소로 Google Drive를 선택한 이유는 범용성의 이유 또한 있습니다. Google Drive의 경우 많은 사용자들이 이미 사용하고 있기 때문에, 별도의 학습 없이도 쉽게 자료 업로드 및 삭제가 가능합니다. 제가 아닌 다른 사람이 서버를 관리할 수도 있기 때문에, 이 러한 내용 또한 고려사항이었습니다. 검색 기능의 경우, 검색 컴포넌트와 내용 컴포넌트를 모두 감싸는 클라이언트 컴포넌트 ClientWrapper 그리고 state filteredContent를 만든 뒤, 검색 컴포넌트는 setFilteredContent, 내용 컴포넌트는 filteredContent를 가지게 하여 구현을 완료하였습니다. 이렇게 작성할 경우, 무한 반복이나 복잡한 state 조작 없이 (React에서) 검색 기능 구현이 가능 해집니다.
'Spec: career & experience > Project' 카테고리의 다른 글
Project Canopus: 통계기반배송도착시간예측웹시스템 (0) 2023.07.24 ALL OF RSA (0) 2022.08.01