개발기간 : 2018.01 ~ 2018.02
프로젝트를 하게 된 계기
과 교수님의 부탁으로 만들어본 서비스
서울어코드 사업단에서 진행하는 학생지원 프로그램을 온라인으로 관리하고 참여신청을 받을 수 있는 서비스
Stack
제작 당시
- Language : Ruby on Rails
- DBMS : sqlite3
- Library
- Bootstrap : frontend 라이브러리
담당 파트
- 관리자 페이지
- 관리자는 새로운 프로그램을 등록하고 삭제할 수 있으며, 신청자를 조회할 수 있음.
- 프로그램마다 각기 다른 작성항목을 가지기 때문에 새로운 프로그램을 만들 때 마다 새로운 테이블이 만들어져야함. 이를 위해 ORM 클래스를 만들어주는
ApplicationRecord
를 이용하기 보다는ActiveRecord
모듈을 이용해 테이블의 생성, 조회, 삭제를 구현함. - 학생지원 프로그램은 신청기간에 따라 ‘시작예정’, ‘진행중’, ‘종료됨’ 세 가지로 나뉘어 보임
- 신청자를 Excel파일로 재구성하여 Download 가능.
- 관리자 ID, PW가 있어야 접근 가능
- Session객체를 이용하여 관리자 여부를 확인.
- 해시 알고리즘을 이용한 Bcrypt 모듈을 이용하여 관리자 계정 암호화.
새로운 프로그램을 만드는 화면 / 동적으로 입력 항목을 추가 가능
만들어진 신청 프로그램을 조회하는 페이지
- 학생 신청페이지
- 학생은 별도의 로그인 없이 학번과 이름만으로 신청 가능
- 학생은 접수 진행중인 프로그램만 볼 수 있음.
- 중복 접수는 학번 확인을 이용하여 방지
진행중인 프로그램을 신청하는 화면
- 배포
- 학과 소유의 서버 컴퓨터 한 대에 다른 서비스와 함께 돌아가도록 배포해야하는 제약사항
- Apache의 VirtualHost 기능을 이용하여 두 개의 서비스가 별개로 돌아가도록 함
고찰
- 처음엔 CRUD만 하면 되는 줄 알았는데 관리자 기능과 동적 테이블 생성 기능이 들어가면서 생각보다 어렵게 완성한 프로젝트
- 지금 다시 구현하라고 하면, ‘사업’과 ‘입력필드’, ‘신청자’ 테이블을 분리하고 참조를 이용하는 방법이 더 깔끔할 것 같다.
- 하나의 물리적인 서버에 두 개의 서비스가 문제없이 돌아가도록 했던 최초의 경험.