- build/run, swagger openAPI :
http://localhost:8080/swagger-ui
로 접속 (port, swagger endpoint는 application.yml 확인)
# 빌드, 앱 실행
mvn spring-boot:run -Dspring-boot.run.profiles=local
- lint, unit test
# spectral lint
mvn spring-boot:run -Dspring-boot.run.profiles=local > /dev/null 2>&1 &
APP_PID=$!
sleep 5
rm -f swagger.json
curl http://localhost:8080/v3/api-docs -o swagger.json
spectral lint swagger.json #spectral lint -f json -F warn -D -q swagger.json | ConvertFrom-Json
kill $APP_PID
rm -f swagger.json
# 단위테스트
mvn test
- main : 운영배포라 생각하고 병합
- pull request : 등록된 이슈 제목으로 등록
- merge : 스쿼시 머지
- branch name : 등록된 이슈번호/제목 사용
- commit message : create, update, delete prefix를 달고 그외 자유
- 사용자관점
- 사용자는 상품을 등록, 조회, 수정, 삭제할 수 있다.
- 사용자는 상품을 다른 사용자와 거래할 수 있다.
- 사용자는 지정된 위치정보를 기준으로 상품을 조회할 수 있다.
- 운영관점
- 프로필별로 인메모리H2, 도커PostgreSQL에 연결할 수 있다
- 단위테스트시에는 테스트용 일회용 도커컨테이너를 사용할 수 있다
- OpenAPI를 사용해 API를 사전 설계한다.
- 모노레포로 MSA를 동시에 빌드/운영 (가능하다면 aspire 적용)
- RabbitMQ, Kafka, ProtoBuf 등 사용한 인터페이스 로직
- 알림 발송을 위한 배치서비스