유즈케이스는 시스템이 사용자와 상호작용하는 방법을 설명하는 모델링 기법이다. 이는 시스템의 기능적 요구사항을 정의하고, 사용자가 목표를 달성하기 위해 시스템과 어떻게 상호작용하는지를 나타낸다. 유즈케이스 다이어그램을 통해 시스템의 동작을 시각적으로 표현할 수 있다.
draw io를 사용하여 유즈케이스를 그려보자
폴더를 하나 만들어서 유즈케이스를 그릴 것이다. 이를 위해 GitKraken의 터미널에서 다음 명령어를 사용하여 폴더를 만든다
mkdir document
이후, 빈 껍데기 파일을 만들어 커밋하기 위해 다음 명령어를 입력한다:
touch document/use-case.svg
이제 파일을 커밋한다.
이제 diagrams.net으로 돌아가서 새로고침 하면, 방금 푸시한 feature 브랜치 안의 document 폴더를 확인할 수 있다. 그 안에 유즈케이스 다이어그램을 생성하여 저장할 것이다.
아래와 같이 게시판 서비스 시스템에서 사용자가 수행할 수 있는 주요 작업과 시스템이 제공하는 기능을 시각적으로 표현한다.
액터(Actor)
- Actor: 게시판 서비스 시스템과 상호작용하는 사용자를 나타낸다.
유즈케이스(Use Cases)
1. 회원 가입: 사용자가 시스템에 새로운 계정을 생성한다. 2. 회원 로그인: 사용자가 시스템에 로그인하여 자신의 계정에 접근한다. - 인증 (include): 로그인 과정에서 사용자 인증이 필요하다. - 로그인 실패 (extend): 로그인 시도가 실패할 경우 발생하는 추가적인 시나리오이다. 3. 게시판 보기: 사용자가 게시판의 목록을 확인한다. 4. 게시판 검색: 사용자가 특정 키워드를 사용하여 게시판을 검색한다. 5. 게시판 정렬: 사용자가 게시판의 글을 특정 기준에 따라 정렬한다. 6. 게시글 보기: 사용자가 특정 게시글의 내용을 확인한다. 7. 게시글 쓰기, 수정, 삭제: 사용자가 새로운 게시글을 작성하거나 기존 게시글을 수정 및 삭제한다. 8. 댓글 보기, 쓰기, 수정, 삭제: 사용자가 특정 게시글에 대한 댓글을 확인하고, 새로운 댓글을 작성하거나 기존 댓글을 수정 및 삭제한다.
관계(Relationships)
- include: 유즈케이스 간에 포함 관계를 나타낸다. - 회원 로그인 -> 인증: 로그인 과정에서 인증 유즈케이스가 포함된다. - extend: 유즈케이스 간에 확장 관계를 나타낸다. - 회원 로그인 -> 로그인 실패: 로그인 시도가 실패할 경우 추가적인 시나리오로 확장된다.
시스템 경계(System Boundary)
- 게시판 서비스: 시스템의 경계를 나타내며, 유즈케이스들이 이 경계 내에서 수행된다.
데이터베이스(DB)
- DB: 모든 유즈케이스가 데이터베이스와 상호작용하여 데이터를 저장하거나 조회한다.
결론
이 유즈케이스 다이어그램은 게시판 서비스 시스템의 주요 기능과 사용자의 상호작용을 명확하게 나타낸다. 이를 통해 시스템의 기능적 요구사항을 정의하고, 개발팀과 이해관계자 간의 의사소통을 원활하게 할 수 있다.