회고 : 회의실예약사이트 리뉴얼

이시우·2022년 3월 20일

계기

입사 후 처음 진행했던 프로젝트인 회의실예약사이트를 리뉴얼 하기로했다.
사내에서 매우 긍정적인 평가를 받았지만 외부 고객사에 공개하기 위해 UI와 DB구조 등 개선해야할 부분이 있었다.

현재 버전으로 외부에 공개할 수 없다는 내용에 동의했고 리뉴얼을 거쳐 일부 고객사에 제공하기로했다.
함께 개발을 진행했던 팀원은 타 프로젝트를 진행 중이라 혼자 기획 및 개발을 전담하여 진행했다.

문제점

  • 기존 사용자 경험 개선 필요 :
    사용자에게 받은 피드백으로 신규 기능 추가 및 기존 UI 개선

  • DB 테이블 정리 :
    기능이 추가되면서 생성된 테이블이 있는데, 기존 DB구조를 변경하지 않고 작업을 하다보니 불필요하게 생성된 테이블과 중복된 데이터가 너무 많음.
    서버를 이전하기 전에 정리가 필요

  • 딕셔너리 및 매뉴얼 업데이트 필요 :
    배포 후 여러 기능이 추가 되었는데 딕셔너리와 매뉴얼이 업데이트 되어있지 않고 소스에 주석으로만 남아 있어서 내용 정리가 필요

  • 외부 IP에서 접속 불가 :
    기존 사이트의 경우 내부 IP에서만 접속이 가능했는데, 외부 고객사 공개 및 외부에서 핸드폰으로 예약할 수 있도록 서버 이관 필요

개선사항 및 결과

사용자 경험 개선

실 사용자에게 받은 피드백과 내부에서 나온 피드백을 종합하여 수정했다.

  • 반복 예약 기능 추가
  • 외부에서 접속 가능하도록 수정 (현재 사내에서만 사용 가능)
  • 회의실 현황 화면 개선
  • 로그인 시 회사 코드를 입력하도록하여 회사마다 다른 회의실 현황을 볼 수 있도록 수정

반복 예약 기능을 먼저 배포하여 기존 유저들의 불편함을 개선했다.
테스트 서버에 있는 프로젝트를 실서버로 옮기면 자연스럽게 외부에서 접속이 가능하므로 DB 수정 후 이관 작업을 진행하기로 했다.
나머지 두 개 기능은 우선순위에서 밀려 이관 후 테스트 서버에서 충분히 테스트 후 적용했다.

DB 테이블 정리

초기버전에서 몇가지 기능을 추가하며 중복된 데이터를 여러 테이블에 insert 하게 되었고, 테이블간 정리가 필요했다.
회의실 현황 화면을 개선하면서 데이터 구조가 바뀔 예정이라 UI 개선 작업과 동시에 진행되었다.
기존 데이터의 유지를 위해 신규 테이블을 생성하고 필요한 데이터만 복사하는 형식으로 작업을 진행했으며, 테이블 갯수가 12개에서 7개로 줄어들고 중복되는 데이터는 모두 삭제했다.
5개월간 예약된 회의 수가 약 2,000건으로 6,000개 이상의 중복된 row를 삭제했다.

딕셔너리 및 매뉴얼 업데이트

DB테이블 명과 컬럼명 등 변경된 사항이 많아 전체적인 업데이트가 필요했다.
사용자, 개발자 매뉴얼도 초기 버전만 존재하고 업데이트가 안되어있어서 실서버로 이관 후 딕셔너리와 매뉴얼을 업데이트했다.
변경된 URL을 공지하며 매뉴얼도 함께 전달했다.

테스트 서버에서 실서버로 이전

5개월간 사내에서만 사용했기 때문에 테스트 서버에 프로젝트가 올라가 있었는데, 외부 고객사에 공개하기로해서 실서버로 이전했다.
내부망이 아닌 외부에서도 자유롭게 로그인할 수 있도록했다.

S-K-S

Start

  • IA를 설계했다.
    혼자 진행한 프로젝트였고 정확한 일정 수립과 기획이 필요했다.
    초기버전의 경우 나름 열심히 준비해 만들었지만 부족했고 결국 이번에 DB를 전부 변경하는 등 잘못된 설계로 작업량이 많았다.
    시나리오를 더 세세하게 작성해 뎁스를 설정했다.
    작업 기간도 설정하여 다른 업무와 병행하며 진행할 수 있었다.

  • Jquery 플러그인을 커스텀하여 사용했다.
    배포되어있는 Jquery 플러그인 중 두가지 플러그인을 선택하여 메인화면과 회의 예약 화면에 사용했다.
    기존에는 단순히 사용법을 익혀 그대로 사용했다면 이번엔 플러그인을 뜯어서 내가 필요한대로 커스텀했다.
    데이터 구조를 변경하거나 함수를 변경 및 추가하여 내 프로젝트에 알맞게 사용했다.

  • API 정의서를 작성했다.
    초기엔 API 정의서를 안만들어서, 이번에 리뉴얼하며 API 정의서를 만들었다.
    내가 개발하지 않은 부분은 해당 개발자님께 요청하여 업데이트를 진행했다.

Keep

  • 딕셔너리를 재작성했다.
    프로젝트를 진행할 때 마다 딕셔너리와 매뉴얼의 업데이트가 필요하다.
    큰 업데이트를 진행할 때가 아니더라도 수시로 업데이트를 할 수 있어야한다.

Stop

  • 일정을 너무 타이트하게 잡지 않는다.
    플러그인을 수정할 때 예상보다 많은 시간이 소요되어 일정을 수정했다.
    프로젝트를 진행하면 항상 변수가 발생할 수 있으므로 변수 및 테스트 기간을 고려해 일정을 수립해야한다.

0개의 댓글