my first portfolio behind

나의 첫번째 프로젝트의 주제 선정 이유

내가 첫번째로 프로젝트를 진행할 주제는 일정 관리 웹 사이트 를 만드는 것이다. 많고 많은 주제 중에 왜 일정 관리 웹 사이트냐? 라고 말한다면 할 말이 없지만, 이전 회사에서 일정 모듈 백엔드 담당자로서 업무를 진행하면서 시스템의 전반적인 구조와 에로사항 개선사항 등 많은 부분들을 인지하고 있는게 많기 때문이기도 하고, 만약 누군가 이전 회사에서 어떤 업무를 담당하였고 어떤 기능을 개발하였는가? 를 물어본다면 현재로서 난 기록해둔게 없고 크게 기억나는게 없어서 (유지보수 성향이 강한 업무였기에) 내가 그래도 몸담았던 업무에 대해서 개발하면서 나중에 차후 다른 사람들에게 내가 그래도 이쪽 업무를 했었던 사람이라는 것을 증명하고 싶기에 이 프로젝트를 시작하게 되었다.


프로젝트 착수 일정 (미정)

12월 중순 시작 예정. (12월 초 시작예정에서, 리눅스 시험 이후 예정으로 변경됨)


프로젝트 브랜드 스토리텔링

현재까지는 앞으로 만들어진 일정관리 사이트의 도메인으로 가능성이 높은건 www.visiblego.com 이다. 도메인 주소의 직접적인 뜻은 “명확한 방향으로 나아갈 수 있도록 돕는 도구 혹은 복잡한 일정을 정리하고, 무엇을 먼저 해야 하는지 우선순위를 제시하며, 사용자가 한 걸음 더 나아가도록 지원한다 라는 뜻” 먼저 전달하고, 친근감을 주기위해 나와 상대방의 약속을 일정이 비집고 들어간다, 내 일상에 일정이 비집고 들어온다. 라는 식으로 스토리 텔링을 이어갈 수 있으면 좋을거 같다.


시스템 전체 개요 (정책)

1. 캘린더 관리 정책

캘린더 유형

  1. 개인 캘린더: 한 명의 소유자가 관리하며 비공개로 운영.
  2. 공유 캘린더: 여러 사용자가 접근할 수 있으며 소유자와 관리자에 의해 운영.

권한 정책

소유자(Owner)

  1. 캘린더 생성, 삭제, 설정 변경 가능.
  2. 모든 일정에 대한 접근 및 편집 권한.
  3. 관리자와 참여자를 추가/제거할 수 있음.

관리자(Admin)

  1. 캘린더의 일정 관리 가능.
  2. 참여자 추가/삭제 권한.

참여자(Member)

  1. 일정 열람 및 참여.
  2. 자신의 일정에 대한 편집 권한.

2. 일정 관리 정책

일정 유형

  1. 개인 일정: 개인 캘린더에서만 관리 가능.
  2. 공유 일정: 공유 캘린더에서 생성되며 다른 사용자와 공유.

참여자 역할

소유자(Owner)

  1. 일정 생성 및 삭제.
  2. 일정 참여자를 추가/제거.

참여자(Attendee)

  1. 일정 참여만 가능.
  2. 일정 편집 권한 없음.

시간 정책

  1. 일정은 캘린더 설정에 따라 시간대가 제한될 수 있음(예: 업무 시간 외 일정 차단).
  2. 일정 시작 시간과 종료 시간은 반드시 유효해야 함.

3. 정책 관리

공유 캘린더 정책

  1. 캘린더는 소유자에 의해 생성되며, 공유 대상자를 추가할 수 있음.
  2. 참여자는 공유 캘린더의 정책을 준수해야 함.

일정 정책

  1. 반복 일정 지원(예: 매일, 매주, 매월).
  2. 공휴일 차단 정책(일정 생성 불가).
  3. 특정 시간대 일정 생성 제한.

알림 정책

  1. 일정 시작 전에 사용자에게 알림 제공.
  2. 알림 방식(푸시, 이메일 등)은 사용자 설정에 따름.

4. 권한 관리

캘린더 권한

  1. 소유자와 관리자는 모든 권한을 가짐.
  2. 관리자는 참여자 권한을 설정할 수 있음.
  3. 일반 참여자는 캘린더 편집 권한 없음.

일정 권한

  1. 일정 소유자는 모든 권한을 가짐.
  2. 참여자는 열람 및 참석 여부를 설정 가능.

5. 분리 원칙

정책 분리

  1. 정책은 캘린더와 일정과 독립적으로 동작.
  2. 정책 위반 시 일정 또는 캘린더 생성/수정이 제한됨.

권한 분리

  1. 캘린더의 권한(Role)은 일정의 권한(Role)과 독립적으로 관리.
  2. 캘린더 관리자는 일정의 참여자를 편집할 수 있음.

정책 적용 예시

1. 캘린더 관리 정책

상황:

  • 공유 캘린더 “Team Calendar”가 있다.
    • 소유자(Owner): Alice
    • 관리자(Admin): Bob
    • 참여자(Member): Charlie

정책 적용:

  1. Alice는 캘린더를 삭제할 수 있다.
  2. Bob은 캘린더에 새로운 참여자를 추가할 수 있다.
  3. Charlie는 캘린더에 일정을 추가할 수 있지만, 다른 사용자를 추가할 수 없다.

2. 일정 관리 정책

상황:

  • Alice가 일정 “Project Meeting”을 생성했다.
    • 참여자: Bob, Charlie

정책 적용:

  1. Alice는 일정을 수정하거나 삭제할 수 있다.
  2. Bob은 일정의 알림 설정을 변경할 수 있다.
  3. Charlie는 일정을 볼 수만 있으며, 수정 권한이 없다.

3. 정책 관리

상황:

  • 정책: 공휴일에는 일정을 생성할 수 없다.
  • 공휴일: 2024-12-25 (크리스마스)

정책 적용:

  1. 2024-12-25에 새 일정을 생성하려고 하면 거부된다.
  2. 2024-12-26에 일정을 생성할 수 있다.

화면 설계서

TODO…