개발기간 : 2018.01 ~ 2018.02

프로젝트를 하게 된 계기

과 교수님의 부탁으로 만들어본 서비스

서울어코드 사업단에서 진행하는 학생지원 프로그램을 온라인으로 관리하고 참여신청을 받을 수 있는 서비스

Stack

제작 당시

  • Language : Ruby on Rails
  • DBMS : sqlite3
  • Library
    • Bootstrap : frontend 라이브러리 accord

담당 파트

  • 관리자 페이지
    • 관리자는 새로운 프로그램을 등록하고 삭제할 수 있으며, 신청자를 조회할 수 있음.
    • 프로그램마다 각기 다른 작성항목을 가지기 때문에 새로운 프로그램을 만들 때 마다 새로운 테이블이 만들어져야함. 이를 위해 ORM 클래스를 만들어주는 ApplicationRecord 를 이용하기 보다는 ActiveRecord 모듈을 이용해 테이블의 생성, 조회, 삭제를 구현함.
    • 학생지원 프로그램은 신청기간에 따라 ‘시작예정’, ‘진행중’, ‘종료됨’ 세 가지로 나뉘어 보임
    • 신청자를 Excel파일로 재구성하여 Download 가능.
    • 관리자 ID, PW가 있어야 접근 가능
    • Session객체를 이용하여 관리자 여부를 확인.
    • 해시 알고리즘을 이용한 Bcrypt 모듈을 이용하여 관리자 계정 암호화.

      accord_new 새로운 프로그램을 만드는 화면 / 동적으로 입력 항목을 추가 가능
      accord_maded 만들어진 신청 프로그램을 조회하는 페이지
  • 학생 신청페이지
    • 학생은 별도의 로그인 없이 학번과 이름만으로 신청 가능
    • 학생은 접수 진행중인 프로그램만 볼 수 있음.
    • 중복 접수는 학번 확인을 이용하여 방지
      accord_apply 진행중인 프로그램을 신청하는 화면
  • 배포
    • 학과 소유의 서버 컴퓨터 한 대에 다른 서비스와 함께 돌아가도록 배포해야하는 제약사항
    • Apache의 VirtualHost 기능을 이용하여 두 개의 서비스가 별개로 돌아가도록 함

고찰

  • 처음엔 CRUD만 하면 되는 줄 알았는데 관리자 기능과 동적 테이블 생성 기능이 들어가면서 생각보다 어렵게 완성한 프로젝트
    • 지금 다시 구현하라고 하면, ‘사업’과 ‘입력필드’, ‘신청자’ 테이블을 분리하고 참조를 이용하는 방법이 더 깔끔할 것 같다.
  • 하나의 물리적인 서버에 두 개의 서비스가 문제없이 돌아가도록 했던 최초의 경험.