Skip to content

Releases: ryulkim/LibCC

Release v1.1.0 โ€“ ๋ชจ๋†€๋กœ์‹์—์„œ ๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ๋กœ migration

Choose a tag to compare

@ryulkim ryulkim released this 12 May 01:16

๐Ÿ“ฆ Release v1.1.0

Release date: 2025-05-07
Previous version: lib-v1.0.6, jwt-v1.0.1


๐Ÿ“ Overview

๋ฐฐํฌ ๋ฐฉ์‹์ด ๋ฐ”๋€Œ๋ฉด์„œ jwt, lib jar ํŒŒ์ผ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ๋ฐ›์•„์ง€๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ› Bug Fixes

  • issue: jwt, lib jar ํŒŒ์ผ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋จ:
    • git package๋กœ ๋ฐฐํฌํ•˜๋˜ ๋ฐฉ์‹์ด jitpack์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋˜๋ฉด์„œ ํ•œ ๋ ˆํฌ ๋‹น jar ํŒŒ์ผ ํ•œ ๊ฐœ๋งŒ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์–ด, ๋ฉ€ํ‹ฐ๋ชจ๋“ˆ๋กœ ๋ฐ”๊พธ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”ง Migration

  • ์ˆ˜์ • ์ „ build.gradle
repositories {
    mavenCentral()
    // ์ด ๋ถ€๋ถ„ ์ถ”๊ฐ€
    maven {
        url 'https://jitpack.io'
    }
}

implementation 'com.github.ryulkim:LibCC:1.0.5:plain'

  • ์ˆ˜์ • ํ›„ build.gradle
repositories {
    mavenCentral()
    // ์ด ๋ถ€๋ถ„ ์ถ”๊ฐ€
    maven {
        url 'https://jitpack.io'
    }
}

implementation 'com.github.ryulkim.LibCC:lib:v1.1.0'
implementation 'com.github.ryulkim.LibCC:jwt:v1.1.0'

Release v1.0.5 โ€“ ๊ณตํ†ต ์‘๋‹ต์ฝ”๋“œ ๋ฐ ์˜ˆ์™ธ ํ•ธ๋“ค๋Ÿฌ ์ถ”๊ฐ€

Choose a tag to compare

@ryulkim ryulkim released this 05 May 10:53

๐Ÿ“ฆ Release 1.0.5

Release date: 2025-05-05
Previous version: ์—†์Œ


๐Ÿ“ Overview

Spring ๊ธฐ๋ฐ˜ ์„œ๋น„์Šค์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐ ์œ ํ‹ธ ๊ธฐ๋Šฅ์„ ๋ชจ๋“ˆํ™”ํ•œ ์ฒซ ๋ฆด๋ฆฌ์ฆˆ์ž…๋‹ˆ๋‹ค.


๐Ÿ”ง ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ

Gradle์— ๋‹ค์Œ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”:

repositories {
    mavenCentral()
    // ์ด ๋ถ€๋ถ„ ์ถ”๊ฐ€
    maven {
        url 'https://jitpack.io'
    }
}

implementation 'com.github.ryulkim:LibCC:1.0.5:plain'

์˜ˆ์™ธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด,
SpringBootApplication์—์„œ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”:

@SpringBootApplication(scanBasePackages = {
  "com.mycompany.app",       // ์—ฌ๋Ÿฌ๋ถ„ ์•ฑ์˜ ํŒจํ‚ค์ง€
  "com.library.lib.exception"  // ๋ชจ๋“ˆ์˜ ํŒจํ‚ค์ง€
})

โœจ New Features

โœ… ๊ณตํ†ต ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

1. ๊ณตํ†ต ์˜ˆ์™ธ ํ•ธ๋“ค๋Ÿฌ (GlobalExceptionHandler)

  • @RestControllerAdvice ๊ธฐ๋ฐ˜์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ง€์›
  • ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ์— ๋Œ€ํ•ด ๋กœ๊ทธ ์ž๋™ ์ถœ๋ ฅ
    • ์ถœ๋ ฅ ํ˜•์‹:

      {Exception ํด๋ž˜์Šค๋ช…}: {์ง€์ •ํ•œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€}
      

2. ๊ณตํ†ต ์ฝ”๋“œ ์ •์˜

  • ์ œ๊ณต๋˜๋Š” ๊ธฐ๋ณธ ์—๋Ÿฌ ์ฝ”๋“œ:

    SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "์„œ๋ฒ„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.")
  • ์ œ๊ณต๋˜๋Š” ๊ธฐ๋ณธ ์„ฑ๊ณต ์ฝ”๋“œ:

    SUCCESS(HttpStatus.OK, "์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.")
  • ์ œ๊ณต๋˜๋Š” ApiResponseEntity ํ˜•ํƒœ

    • ์ถœ๋ ฅ ํ˜•์‹:

      {
        "code": "{enum_name}",
        "message": "{message}",
        "result": "{data}"
      }
    • ์‚ฌ์šฉ ์˜ˆ์‹œ:

      • ์„ฑ๊ณต ์‘๋‹ต

        ApiResponseEntity.onSuccess(Object result);
        ApiResponseEntity.onSuccess(null);
      • ์‹คํŒจ ์‘๋‹ต

        ApiResponseEntity.onFailure(StatusCode code);
      • ์‘๋‹ต ์ปค์Šคํ…€

        ApiResponseEntity.from(StatusCode code, Object result);
        ApiResponseEntity.from(StatusCode code, null);

3. ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์˜ˆ์‹œ

(1) ๊ณตํ†ต ์˜ˆ์™ธ ์‚ฌ์šฉ

@GetMapping
public ResponseEntity<ApiResponse<Object>> test() {
    throw new GlobalException(ErrorCode.SERVER_ERROR);
}
  • ๐Ÿ’ก ๊ฒฐ๊ณผ:
    response
    image

  • ๐Ÿ“„ ๋กœ๊ทธ:
    log


(2) ์—๋Ÿฌ ์ฝ”๋“œ ํ™•์žฅ

  • StatusCode๋ฅผ ๊ตฌํ˜„ํ•œ enum์„ ์ƒˆ๋กœ ์ •์˜
@Getter
@RequiredArgsConstructor
public enum ERORORO implements StatusCode {
    TEST(NOT_FOUND, "test๋‹ค. test"),
    TEST2(NOT_FOUND, "testtesttest๋‹ค.");

    private final HttpStatus httpStatus;
    private final String message;

    @Override
    public String getName() {
        return this.name();
    }
}
  • ์‚ฌ์šฉ ์˜ˆ:
@GetMapping
public ResponseEntity<ApiResponse<Object>> test() {
    throw new GlobalException(ERORORO.TEST2);
}
  • ๐Ÿ’ก ๊ฒฐ๊ณผ:
    response
    image

  • ๐Ÿ“„ ๋กœ๊ทธ:
    log


(3) ์ปค์Šคํ…€ ์˜ˆ์™ธ ํด๋ž˜์Šค ์‚ฌ์šฉ

@Getter
public class AError extends GlobalException {
    public AError(StatusCode errorCode) {
        super(errorCode);
    }
}
@GetMapping
public ResponseEntity<ApiResponse<Object>> test() {
    throw new AError(ERORORO.TEST2);
}
  • ๐Ÿ’ก ๊ฒฐ๊ณผ:
    custom

๐Ÿฃ ๋žœ๋ค ๋‹‰๋„ค์ž„ ์ƒ์„ฑ๊ธฐ

1. ์ œ๊ณต ํฌ๋งท

  • ํ˜•์‹: ํ˜•์šฉ์‚ฌ + ๋ช…์‚ฌ
  • ํ˜•์šฉ์‚ฌ ์˜ˆ์‹œ:
    "ํ–‰๋ณตํ•œ", "์ฆ๊ฑฐ์šด", "์‹ ๋‚˜๋Š”", "๋ฉ‹์ง„", "์šฉ๊ฐํ•œ", "์นœ์ ˆํ•œ", "์„ฑ์‹คํ•œ", "์œ ๋จธ๋Ÿฌ์Šคํ•œ"...
  • ๋ช…์‚ฌ ์˜ˆ์‹œ:
    "ํ˜ธ๋ž‘์ด", "๊ณ ์–‘์ด", "ํŽญ๊ท„", "๋Œ๊ณ ๋ž˜", "์•ŒํŒŒ์นด", "์ˆ˜๋‹ฌ", "์ „๊ธฐ๋ฑ€์žฅ์–ด"...

2. ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

NickGenerator.generateUniqueNickname();
  • ๐Ÿ’ก ๊ฒฐ๊ณผ ์˜ˆ์‹œ:
    nickname
    image

Release lib-v1.0.6 โ€“ ๊ณตํ†ต ์‘๋‹ต์ฝ”๋“œ์— Create ์ถ”๊ฐ€

Choose a tag to compare

@ryulkim ryulkim released this 05 May 09:59

๐Ÿ“ฆ Release lib-v1.0.6

Release date: 2025-05-05
Previous version: 1.0.5


๐Ÿ“ Overview

  • ๊ณตํ†ต ์‘๋‹ต์ฝ”๋“œ์— create๊ฐ€ ์ถ”๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฒ„์ „๋„ 1.0.5์—์„œ ๊ธฐ๋Šฅ ์ด๋ฆ„์„ ๊ตฌ๋ถ„ํ•œ lib-v1.0.6์œผ๋กœ ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค

๐Ÿ“Œ How to Upgrade

dependencies {
    implementation "com.github.ryulkim:LibCC:lib-v1.0.6:plain"
}

โœจ New Features

  • ApiResponseEntity.class:
public static <T> ResponseEntity<ApiResponse<T>> create(StatusCode code, String url, T result) {
    return ResponseEntity.created(URI.create(url))
            .body(new ApiResponse<>(code.getName(), code.getMessage(), result));
}
  • ์‚ฌ์šฉ๋ฒ• ์˜ˆ
@GetMapping
public ResponseEntity<ApiResponse<Object>> test() {
    long resourceId=1L;

    return ApiResponseEntity.create(ERORORO.CREATE,"/located/"+resourceId, null);
}