Skip to content

realworld-club/realworld-springboot-monolith

 
 

Repository files navigation

realworld spring boot


Bugs Code Smells Coverage Quality Gate Status

realworld-spring-boot-example-sr

  • 해당 프로젝트는 SpringBoot를 기반으로 CRUD 작업 및 인증, 라우팅, 페이징 기능을 구현하기 위한 프로젝트이다.
  • 또 다른 방식으로 구현한 프론트 및 백엔드에 대한 자세한 내용은 RealWorld Repository를 참고해주세요.

How it works

Describe the general architecture of your app here

Code Coverage

gradle test

  • 프로젝트의 단위 테스트를 수행하는 방법
$ ./gradlew clean test

gradle jacoco

  • Java Code의 Coverage를 체크
    • 바이너리 커버리지 결과를 리포트
$ ./gradlew clean
$ ./gradlew --console verbose test jacocoTestReport
  • Java Code의 Coverage를 체크 및 Coverage의 기준을 만족하는지 확인하는 task
    • Coverage 기준에 만족되지 않는 경우 빌드가 실패하게 된다.
$ ./gradlew clean
$ ./gradlew --console verbose test jacocoTestReport jacocoTestCoverageVerification
  • 위 shell을 하나의 명령어로 실행
./gradlew --console verbose testCoverage

Code Coverage는 프로젝트에 대한 견고함의 지표가 될 수 있다.

  • 코드 커버리지에 만족할 때만 배포를 가능하게함으로써 프로젝트에 대한 안전성을 유지할 수 있다.
  • 프로덕션 코드에 대한 이해를 높이고, 대규모 리펙토링에 대한 영향을 줄일 수 있다.

주의사항

  • 테스트 커버리지의 높은 지표는 테스트의 시간을 늦춘다.
    • 이는 생산성에 대한 저하 문제를 발생시킨다.
  • 위 문제를 해결하기 위해서는 스프링 애플리케이션 컨텍스트 로딩을 발생시키는 테스트를 모두 제거
  • 컨텍스트 로딩 없이 테스트 할 수 있는 standalone 기능인 WebTestClient를 사용한다.
  • 제거가 어려운 경우 Mocking을 활용한다.
  • 느려지인 테스트 코드에 대한 프로파일링이 필요

JsonWebToken

Getting started

npm install, npm start, etc.

About

RealWorld Monolith Example

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%