현재 상황
어제는 Spring Boot로 웹 서버를 구축하는 생태계에 대해 전반적으로 공부를 했고,
오늘은 Spring 진도에 맞춰 새로운 과제에 도전한다.
Spring Boot를 사용한 <일정 관리 앱 웹서버 만들기> 프로젝트다.
이번 프로젝트부터 README.md 파일에 프로젝트의 전반적인 설명을 작성하기로 한다.
README.md 파일을 포함한 프로젝트 소스를 깃으로 관리하고 최소한의 깃 컨벤션을 지키며 프로젝트를 수행하기로 했다.
공부한 것
현 프로젝트에 사용될 ERD, Use Case Diagram(왜 UCD로 줄여부르지 않는지 의문), API 명세서를 작성해보면서 공부한 내용을 정리해본다.
ERD (Entity-Relationship Diagram)
- 데이터베이스에서 사용됨 (데이터베이스 개념, 모델링)
- 따라서, 데이터베이스에서 사용되는 테이블을 엔티티로, 테이블 관계를 실선 표기로 표현한다.
- 기본키 여부, 테이블 간의 n:n 관계 여부, 필수/선택 여부가 포함되어야 한다.
Use Case Diagram
- UML을 사용
- 클라이언트의 요구사항에 맞게 시스템이 어떻게 제공할 것인지 나타냄
- 액터(사용자 또는 외부 시스템)와 시스템(요구기능-유스케이스) 간의 상호작용을 실선/화살표로 표현
- 상속, 일반화를 표현가능
- include, generalization, extended
- include: 하나의 유스케이스가 다른 유스케이스를 요청할 때 사용(여러 기능에서 공통으로 사용해야하는 모듈같은 기능일 때)
- generalization: 추상화 <-> 일반화 관계
- extended: 하나의 유스케이스를 실행할 때 특정 조건에서만 동작하는 기능
- [참고 페이지 - Gnaseel님, 유스케이스 다이어그램 기초 및 그리는 방법]
API 명세서
- (필수) 기능이름, HTTP Method, Request 형식과 정보, Response 형식과 정보
- 위 내용을 각 기능(유스케이스)마다 나열
- 필수 내용 외에 Request/Response에 대한 자세한 Description, 에러 형태, 예외처리 등을 상세하게 기술할 수록 좋은 API 명세서가 될 것 같다.
- Postman 같이 API 명세서를 만들어주는 툴들이 존재한다.
[참고 페이지 - 혁종님, Postman으로 쉽게 API 명세서 만들기]
인상적이에요!