Skip to content

SImple Utils for SpringBoot, 스프링부트에서 사용할 간단한 유틸 라이브러리

Notifications You must be signed in to change notification settings

JeroCaller/Spoon-Suits

Repository files navigation

Spoon Suits - Simple Utils for SpringBoot

스프링부트에서 사용할 간단한 유틸 라이브러리

최신 버전 - Latest version

ci-test codecov

주요 기능 - Main features

  • Cookie
    • cookie 추가, 삭제 및 Java 객체 직렬화, 역직렬화하여 쿠키에 추가 및 추출 기능
  • JWT
    • JWT Default Authentication 및 Filter 제공
  • REST API
    • HTTP Response로 전달될 JSON 데이터와 매핑될 POJO 내 특정 필드값의 사이즈가 0 또는 null일 경우 JSON 데이터로의 직렬화에서 제외하는 필터링 기능
  • JPA
    • Paging
      • Zero based to one based index - 0부터 시작하는 페이지 인덱스를 1부터 시작하도록 하는 기능
      • Page 객체의 크기가 0 또는 null인지 판별하는 기능
  • Validation
    • 유효성 검사 실패 시 실패한 필드명 및 실패 원인을 Map 객체로 반환하는 기능.

라이브러리 추가 및 사용 방법 - How to use

  • Gradle(Groovy)
// build.gradle

repositories {
    // ...
    maven { url 'https://jitpack.io' }   // 추가
}

dependencies {
    // com.github.JeroCaller:Spoon-Suits:v<버전>
    implementation 'com.github.JeroCaller:Spoon-Suits:v1.0.3'
    
    // === 필수 ===
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    
    implementation 'org.springframework.boot:spring-boot-starter-web' // 웹 앱 개발 시에는 필수
    
    // === 선택 ===
    // JWT & Spring Security
    implementation 'org.springframework.boot:spring-boot-starter-security'
    
    // jjwt
    implementation 'io.jsonwebtoken:jjwt-api:0.12.6'
    runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.6'
    runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.6'
    
    // validation
    implementation 'org.springframework.boot:spring-boot-starter-validation'
	
    // Spring Data JPA
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}
  • 이 라이브러리에는 JWT, JPA 등 다양한 기능들을 제공합니다. 특정 기능들만 골라 사용할 수 있게 하기 위해 각각 필요한 Spring Boot 제공 dependency들은 implementation이 아닌 compileOnly로 해두었습니다. 따라서 특정 기능들을 사용하고자 한다면 위 build.gradle 코드처럼 각각의 Spring Boot dependency들을 implementation 으로 삽입해야 사용할 수 있습니다. 한 편, 각각의 기능에 필요한 dependency들은 Javadoc의 패키지 페이지에도 작성하였으니 참고바랍니다.

정보 - Info

Spoon Suits Javadoc page (v1.0.5) Spoon Suits Javadoc page (v1.0.5)

각 기능의 자세한 사용 방법은 다음의 API Reference를 참고바랍니다.

  • API Reference: 최신 버전 Javadoc

  • ⚠️ 현재 Jitpack 측에서 javadoc 생성에 이슈가 있음을 확인하였습니다. 현재 여러 버전에서의 javadoc 페이지에 이상이 있는 관계로, 임시로 최신 버전의 javadoc 페이지만을 배포합니다. 이슈가 해결되는대로 모든 버전의 javadoc 페이지를 제공하도록 하겠습니다.

  • 이전 버전의 API Reference를 원하신다면 브라우저 주소 창에 https://jitpack.io/com/github/JeroCaller/Spoon-Suits/<원하는 버전>/javadoc/ 형태로 입력하면 됩니다.

  • 버전 목록은 "Spoon Suits" Github repository 의 화면 우측에 있는 "Releases" 목록을 참고하면 됩니다.

그 외 정보들은 Spoon Suits Wiki를 참고 바랍니다.

구조 - Structures

  • Repository
/spoonsuits : 라이브러리 폴더
/spoonsuits-local-test : 라이브러리 테스트용 폴더
/docs : Javadoc 생성 파일 모음 (Jitpack 자체 Javadoc 제공 기능으로 인해 현재는 사용하지 않음)
/docs-resources : README.md 작성에 필요한 이미지, 아이콘 등의 리소스 모음
  • Spoon Suits 라이브러리 (v1.0.3 기준)
/spoonsuits
│
└───src
    ├───main
    │   ├───java
    │   │   └───com
    │   │       └───jerocaller
    │   │           └───libs
    │   │               └───spoonsuits
    │   │                   ├───config
    │   │                   │       AutoConfig.java
    │   │                   │
    │   │                   └───web
    │   │                       │   package-info.java
    │   │                       │
    │   │                       ├───cookie
    │   │                       │   │   CookieConfigurer.java
    │   │                       │   │   CookieRequest.java
    │   │                       │   │   CookieUtils.java
    │   │                       │   │   package-info.java
    │   │                       │   │
    │   │                       │   └───impl
    │   │                       │           DefaultCookieConfigurerImpl.java
    │   │                       │
    │   │                       ├───jpa
    │   │                       │       package-info.java
    │   │                       │       PageUtils.java
    │   │                       │
    │   │                       ├───jwt
    │   │                       │   │   DefaultJwtAuthenticationFilter.java
    │   │                       │   │   JwtAuthenticationProvider.java
    │   │                       │   │   JwtProperties.java
    │   │                       │   │   package-info.java
    │   │                       │   │
    │   │                       │   └───impl
    │   │                       │           DefaultJwtAuthenticationProviderImpl.java
    │   │                       │
    │   │                       ├───rest
    │   │                       │   └───json
    │   │                       │       │   JsonFilterOfEmptyFields.java
    │   │                       │       │   package-info.java
    │   │                       │       │
    │   │                       │       └───dto
    │   │                       │               JsonFilterOfEmptyFieldsArgs.java
    │   │                       │
    │   │                       └───validation
    │   │                               package-info.java
    │   │                               ValidationUtils.java
    │   │
    │   └───resources
    │       │   application.yml
    │       │
    │       ├───META-INF
    │       │   └───spring
    │       │           org.springframework.boot.autoconfigure.AutoConfiguration.imports

사용 기술 - Stacks

In library
Java
JWT
Test
Git
Development Environment
Project Management
CI / CD
Skills Details
  • 라이브러리 온라인 자동 배포.
  • Javadoc 문서 제공
  • Github Tag & Release 및 버전 번호 부여 자동화.
  • Github Pages를 통한 Javadoc 온라인 배포를 위한 페이지 자동 생성 및 버전 명시 자동화.

개발 일지 - Development log

Spoon Suits 라이브러리를 개발하며 작성한 글입니다.

[Roadmap][Personal Project] Spoon Suits 관련 글 로드맵

About

SImple Utils for SpringBoot, 스프링부트에서 사용할 간단한 유틸 라이브러리

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages