개요 - JeroCaller/Spoon-Suits GitHub Wiki

Spoon Suits - Simple Utils for SpringBoot

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

최신 버전 - Latest version

주요 기능 - 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

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

그 외 정보들은 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
Windows
Project Management
CI / CD
Skills Details
라이브러리 온라인 자동 배포. Javadoc 문서 제공
Github Tag & Release 및 버전 번호 부여 자동화
⚠️ **GitHub.com Fallback** ⚠️