개발스토리
close
프로필 배경
프로필 로고

개발스토리

  • 분류 전체보기 (38)
    • Java & Kotlin (5)
    • Spring (3)
    • Database (1)
    • DevOps & Infra (3)
    • IntelliJ (4)
    • AI (2)
    • 공부방 (7)
    • 트러블슈팅 & 개선기 (7)
    • 회고 (6)
  • Home
  • GitHub
  • LinkedIn
  • 방명록

[트러블슈팅] GenericJackson2JsonRedisSerializer 사용 시 리팩토링에도 안전하게 캐시 복구하기

Spring Cache와 Redis를 함께 사용하면서 설정이 간편하고 다양한 타입의 객체를 하나의 캐시 매니저로 처리할 수 있다는 장점 때문에`GenericJackson2JsonRedisSerializer`를 선택하는 경우가 많다. 하지만 이 방식에는 클래스의 패키지 경로가 변경되면 기존 캐시를 역직렬화하지 못해 서비스 장애로 이어질 수 있는 치명적인 단점이 있다.이 글에서는 `CacheErrorHandler`를 활용해 역직렬화 오류 발생 시 자동으로 캐시를 삭제하고 새롭게 갱신하도록 설정하는 방법을 정리한다. 문제 상황프로젝트 리팩토링 과정에서 특정 데이터 클래스의 패키지 경로를 변경했다. 배포 후 해당 캐시를 조회하는 API에서 다음과 같은 오류가 발생했다.org.springframework.data..

  • format_list_bulleted 트러블슈팅 & 개선기
  • · 2026. 1. 18.
  • textsms

Spring AI 시작하기: ChatClient로 OpenAI API 연동

Intro최근 AI 기술이 급속도로 발전하면서, 백엔드 개발자들도 AI 기능을 서비스에 통합해야 하는 상황이 많아졌다.Spring 생태계에서는 이를 위해 Spring AI라는 프로젝트를 제공하고 있는데, 처음 접하면 어디서부터 시작해야 할지 막막할 수 있다.이 글에서는 Spring AI의 핵심인 ChtClient를 활용하여 OpenAI API와 통신하는 방법을 단계별로 알아본다. 개인적으로 Spring AI에 대해 공부하면서, 복잡한 설정 없이도 몇 가지 코드만으로 LLM 모델과 통신할 수 있다는 점이 인상적이었다. 1. 프로젝트 설정1.1 의존성 추가먼저 `build.gradle.kts`에 Spring AI 관련 의존성을 추가한다. Spring AI는 BOM(Bill of Materials)를 통해 버..

  • format_list_bulleted AI
  • · 2026. 1. 10.
  • textsms
첫 이직 수습 종료 회고 & 3분기 MVP 상 수상기

첫 이직 수습 종료 회고 & 3분기 MVP 상 수상기

2월 말에 퇴사한 뒤 4개월간 재충전의 시간을 가진 후, 6월 말 새 팀에 합류해 이제 막 수습기간을 마무리했다.원래는 연말에 올 한 해를 정리하는 회고를 쓰려 했지만, 나름 뿌듯한 소식도 있고 마침 추석 연휴 덕분에 숨을 고를 틈이 생겨서, 중간 점검 삼아 이 마음이 바래기 전에 지금의 생각을 글로 남겨 두려 한다.첫 이직비전공자로, 거의 컴맹에 가까웠던 내가 개발을 시작한 지 1년 반. 국비 학원을 거친 뒤 인프런 강의로 약 11개월간 독학하며 개발자 취업을 준비했다. 그 과정에서 실무 코드와 좋은 개발 문화에 대한 환상이 굉장히 컸었다. 그러나 신입으로 전 직장에 입사한 뒤 그 환상들은 금세 깨졌다. 주변에 개발자가 많지 않아 “다른 회사에서는 어떻게 하는지” 비교할 기준도 부족했다. 대신 그 빈자..

  • format_list_bulleted 회고
  • · 2025. 11. 23.
  • textsms
Gemeni CLI를 사용해보자

Gemeni CLI를 사용해보자

최근 Google이 Gemini-2.5 Pro 모델을 하루 1000건까지 무료로 사용할 수 있도록 Gemini CLI를 공개했다. 복잡한 설정 없이 터미널에서 바로 Gemini의 강력한 기능을 활용할 수 있다는 점이 인상적이다. 이 글에서는 Gemini CLI의 설치 방법부터 간단한 사용 예시까지 소개한다. Gemini CLI란?Gemini CLI는 Google의 Gemini API를 터미널에서 직접 사용할 수 있도록 만들어진 커맨드라인 도구다. 별도의 IDE나 웹 UI 없이도 다양한 질문을 하고, 코드 생성, 요약, 변환 등의 기능을 손쉽게 사용할 수 있다.특히 개발자에게는 ChatGPT처럼 인터랙티브한 AI 도우미를 로컬 환경에서 터미널을 통해 쓸 수 있다는 점이 큰 장점이다. 설치 방법1. Node..

  • format_list_bulleted AI
  • · 2025. 7. 14.
  • textsms
[Kotlin] runCatching 사용법과 활용 예시

[Kotlin] runCatching 사용법과 활용 예시

코틀린은 간결하면서도 안전한 코드 작성을 돕기 위해 다양한 기능을 제공한다. 그 중 하나로, `runCatching` 함수가 있다. `runCatching`은 코드 블록에서 발생할 수 있는 예외를 효과적으로 처리할 수 있도록 도와주는 고차 함수로, 자바의 `try-catch` 문을 보다 함수형 스타일로 대체할 수 있다.runCatching 기본 구조val result = runCatching { // 예외가 발생할 수 있는 코드}`runCatching`은 `Result` 타입을 반환하며, 이 타입은 성공(Success)과 실패(Failure) 상태를 모두 포괄한다.이를 통해 예외가 발생하면 다양한 후처리 메서드를 활용해 로직을 깔끔하게 구성할 수 있다.runCatching vs try-catch전..

  • format_list_bulleted Java & Kotlin
  • · 2025. 6. 26.
  • textsms
항해플러스 백엔드 7기 수료 후기 및 회고

항해플러스 백엔드 7기 수료 후기 및 회고

들어가기에 앞서..2024.12.14 ~ 2025.3.1 항해플러스 백엔드 7기 과정을 수료했습니다.10주 동안 어떤 것을 배우고 경험했는지, 과정 중 했던 기술적 고민들과 좋았던 부분들을 돌아보며 마지막으로 이 과정을 추천하고 싶은 분들에 대해 이야기하고자 합니다. 항해플러스 관련 이전 글항해플러스 백엔드 7기를 시작하며...항해 플러스 백엔드 1주차 회고 - TDD항해 플러스 백엔드 2주차 회고 - Clean Architecture항해플러스 3~5주차 회고 돌아보면 짧은 10주, 수료하다!무엇을 했나요?TDD & 메모리 기반 동시성 제어 기본 학습 및 과제 진행 (깃허브 링크)특강 신청 서비스 – 클린 + 레이어드 아키텍처, 동시성 제어, TDD 적용 (깃허브 링크)대규모 트래픽을 고려한 대기열 기..

  • format_list_bulleted 회고
  • · 2025. 3. 12.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 7
  • navigate_next
전체 카테고리
  • 분류 전체보기 (38)
    • Java & Kotlin (5)
    • Spring (3)
    • Database (1)
    • DevOps & Infra (3)
    • IntelliJ (4)
    • AI (2)
    • 공부방 (7)
    • 트러블슈팅 & 개선기 (7)
    • 회고 (6)
인기 글
최근 글
전체 방문자
오늘
어제
전체
태그
  • #JPA
  • #알고리즘
  • #Java
  • #Spring
  • #쌍용교육센터
  • #Spring Boot
  • #백준
  • #자바
  • #oracle
  • #게시판
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바