나의 첫번째 프로젝트의 주제 선정 이유
내가 첫번째로 프로젝트를 진행할 주제는 일정 관리 웹 사이트 를 만드는 것이다. 많고 많은 주제 중에 왜 일정 관리 웹 사이트냐? 라고 말한다면 할 말이 없지만, 이전 회사에서 일정 모듈 백엔드 담당자로서 업무를 진행하면서 시스템의 전반적인 구조와 에로사항 개선사항 등 많은 부분들을 인지하고 있는게 많기 때문이기도 하고, 만약 누군가 이전 회사에서 어떤 업무를 담당하였고 어떤 기능을 개발하였는가? 를 물어본다면 현재로서 난 기록해둔게 없고 크게 기억나는게 없어서 (유지보수 성향이 강한 업무였기에) 내가 그래도 몸담았던 업무에 대해서 개발하면서 나중에 차후 다른 사람들에게 내가 그래도 이쪽 업무를 했었던 사람이라는 것을 증명하고 싶기에 이 프로젝트를 시작하게 되었다.
프로젝트 착수 일정 (미정)
12월 중순 시작 예정. (12월 초 시작예정에서, 리눅스 시험 이후 예정으로 변경됨)
프로젝트 브랜드 스토리텔링
현재까지는 앞으로 만들어진 일정관리 사이트의 도메인으로 가능성이 높은건 www.visiblego.com
이다. 도메인 주소의 직접적인 뜻은 “명확한 방향으로 나아갈 수 있도록 돕는 도구 혹은 복잡한 일정을 정리하고, 무엇을 먼저 해야 하는지 우선순위를 제시하며, 사용자가 한 걸음 더 나아가도록 지원한다 라는 뜻” 먼저 전달하고, 친근감을 주기위해 나와 상대방의 약속을 일정이 비집고 들어간다, 내 일상에 일정이 비집고 들어온다. 라는 식으로 스토리 텔링을 이어갈 수 있으면 좋을거 같다.
시스템 전체 개요 (정책)
1. 캘린더 관리 정책
캘린더 유형
- 개인 캘린더: 한 명의 소유자가 관리하며 비공개로 운영.
- 공유 캘린더: 여러 사용자가 접근할 수 있으며 소유자와 관리자에 의해 운영.
권한 정책
소유자(Owner)
- 캘린더 생성, 삭제, 설정 변경 가능.
- 모든 일정에 대한 접근 및 편집 권한.
- 관리자와 참여자를 추가/제거할 수 있음.
관리자(Admin)
- 캘린더의 일정 관리 가능.
- 참여자 추가/삭제 권한.
참여자(Member)
- 일정 열람 및 참여.
- 자신의 일정에 대한 편집 권한.
2. 일정 관리 정책
일정 유형
- 개인 일정: 개인 캘린더에서만 관리 가능.
- 공유 일정: 공유 캘린더에서 생성되며 다른 사용자와 공유.
참여자 역할
소유자(Owner)
- 일정 생성 및 삭제.
- 일정 참여자를 추가/제거.
참여자(Attendee)
- 일정 참여만 가능.
- 일정 편집 권한 없음.
시간 정책
- 일정은 캘린더 설정에 따라 시간대가 제한될 수 있음(예: 업무 시간 외 일정 차단).
- 일정 시작 시간과 종료 시간은 반드시 유효해야 함.
3. 정책 관리
공유 캘린더 정책
- 캘린더는 소유자에 의해 생성되며, 공유 대상자를 추가할 수 있음.
- 참여자는 공유 캘린더의 정책을 준수해야 함.
일정 정책
- 반복 일정 지원(예: 매일, 매주, 매월).
- 공휴일 차단 정책(일정 생성 불가).
- 특정 시간대 일정 생성 제한.
알림 정책
- 일정 시작 전에 사용자에게 알림 제공.
- 알림 방식(푸시, 이메일 등)은 사용자 설정에 따름.
4. 권한 관리
캘린더 권한
- 소유자와 관리자는 모든 권한을 가짐.
- 관리자는 참여자 권한을 설정할 수 있음.
- 일반 참여자는 캘린더 편집 권한 없음.
일정 권한
- 일정 소유자는 모든 권한을 가짐.
- 참여자는 열람 및 참석 여부를 설정 가능.
5. 분리 원칙
정책 분리
- 정책은 캘린더와 일정과 독립적으로 동작.
- 정책 위반 시 일정 또는 캘린더 생성/수정이 제한됨.
권한 분리
- 캘린더의 권한(Role)은 일정의 권한(Role)과 독립적으로 관리.
- 캘린더 관리자는 일정의 참여자를 편집할 수 있음.
정책 적용 예시
1. 캘린더 관리 정책
상황:
- 공유 캘린더 “Team Calendar”가 있다.
- 소유자(Owner): Alice
- 관리자(Admin): Bob
- 참여자(Member): Charlie
정책 적용:
- Alice는 캘린더를 삭제할 수 있다.
- Bob은 캘린더에 새로운 참여자를 추가할 수 있다.
- Charlie는 캘린더에 일정을 추가할 수 있지만, 다른 사용자를 추가할 수 없다.
2. 일정 관리 정책
상황:
- Alice가 일정 “Project Meeting”을 생성했다.
- 참여자: Bob, Charlie
정책 적용:
- Alice는 일정을 수정하거나 삭제할 수 있다.
- Bob은 일정의 알림 설정을 변경할 수 있다.
- Charlie는 일정을 볼 수만 있으며, 수정 권한이 없다.
3. 정책 관리
상황:
- 정책: 공휴일에는 일정을 생성할 수 없다.
- 공휴일: 2024-12-25 (크리스마스)
정책 적용:
- 2024-12-25에 새 일정을 생성하려고 하면 거부된다.
- 2024-12-26에 일정을 생성할 수 있다.
화면 설계서
TODO…