← Dev Projects

서울신학대 총학생회 웹사이트

운영 중

총학생회가 직접 운영하는 공식 사이트. 개발을 모르는 담당자가 공지·학사일정·사진을 올리고, 적용 전에 미리보기로 확인하고, 잘못되면 되돌린다.

기간
2025.11 – 2026.04 (운영 계속)
역할
개발 · 인수인계 · 운영 지원

풀려고 한 문제

학생회는 1년마다 담당자가 바뀐다. 개발자가 계속 붙어 있을 수 없으니, 코드를 모르는 사람이 혼자 운영하다 사이트를 깨뜨리지 않는 구조가 필요했다.

규모

  • 커밋 318개
  • 그중 91개가 운영 담당자 계정 — 인수인계가 실제로 작동한 증거
  • 실운영 기간 10개월 이상

기술 결정

상황

비개발자가 편집하다 공개 사이트를 망가뜨리는 위험

선택

draft → 미리보기 → 적용 2단 구조. 편집은 draft에만 저장되고, 적용 버튼을 누를 때만 공개 폴더로 복사

이유

권한을 줄여서 막는 대신 실수해도 공개본에 닿지 않게 만들었습니다. 담당자가 마음껏 눌러볼 수 있어야 인수인계가 되기 때문입니다. 실제로 담당자 커밋이 91개 쌓인 게 이 구조가 작동한 결과입니다.

상황

DB를 둘 예산이 없는데 변경 이력은 남겨야 하는 상황

선택

적용 시점마다 데이터 파일을 GitHub에 동기화

이유

학생회 예산으로는 DB 호스팅이 부담입니다. 데이터가 파일이라는 점을 이용해 GitHub을 버전 저장소로 썼습니다. 커밋 하나가 곧 되돌릴 지점이라, 별도 백업 기능을 만들지 않아도 됐습니다.

시현 가능한 것

관리자 페이지에서 공지를 수정하고 미리보기 → 적용까지 시연

사용 기술

Node.jsExpressexpress-sessionmulterGitHub API