Cloud CDN 연동 시 CORS 문제 해결: Fetch API와 이미지 태그 요청의 차이점Cloud CDN을 통해 GCP 버킷에 저장된 파일에 접근할 때, 태그의 src 속성으로 이미지를 불러오는 것과 JavaScript의 fetch API를 사용하는 경우 CORS(Cross-Origin Resource Sharing) 문제가 발생하는 경우가 있습니다. 본 포스팅에서는 이러한 상황의 원인을 분석하고, 정확하고 자세한 해결 방법을 제시하며, 관련 gcloud 명령어 예시와 더불어 preflight 요청의 동작 방식까지 함께 알아보겠습니다.🚀 문제 상황: Cloud CDN과 함께하는 버킷 파일 접근, fetch만 CORS 에러?Cloud CDN이 연결된 Google Cloud Platform (GCP..
[Spring Boot] CI/CD 환경에서 Firebase 인증 오류 해결기 (GcpFirestoreAutoConfiguration) 안녕하세요!오늘은 Spring Boot 프로젝트에 Firebase 의존성을 추가한 뒤, 로컬에서는 잘 동작하던 테스트 코드가CI/CD 환경(GitHub Actions, Jenkins 등)에서 실패하는 문제와 그 해결 과정을 공유하고자 합니다. BeanCreationException과 Failed to obtain credentials 메시지로 고통받으셨다면 이 글이 도움이 될 겁니다!📜 사건 (The Incident)새로운 기능을 위해 Spring Boot 프로젝트에 spring-cloud-gcp-starter-data-firestore 의존성을 추가했습니다.로컬 환경..
Spring Boot 스케줄러 잡 중복 실행 방지 구현기환경Spring Boot 3.2.1JPA/HibernateMySQL문제 상황운영 환경에서 여러 서버 인스턴스가 동시에 실행될 때, 스케줄러 잡이 중복으로 실행되는 문제가 발생했습니다. 이는 데이터 일관성 문제와 리소스 낭비를 야기할 수 있습니다.해결 방안: 데이터베이스 기반 잡 락 시스템1. 잡 상태 관리 엔티티@Entity@Getter@NoArgsConstructor@AllArgsConstructor@Builderpublic class ScheduleJobStatus { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Lon..
🌱 Spring AI vs 🔗 LangChain4j: Java AI 프레임워크 전격 비교최근 AI 기술, 특히 LLM(대규모 언어 모델)을 자신의 애플리케이션에 통합하려는 개발자들이 늘어나면서 Java 진영에서도 두각을 나타내는 두 개의 프레임워크가 있습니다. 바로 Spring AI와 LangChain4j입니다.두 프레임워크 모두 강력하지만, 지향하는 철학과 사용 방식에 차이가 있어 프로젝트의 성격에 맞는 기술을 선택하는 것이 중요합니다. 이 글에서는 두 프레임워크를 심층적으로 비교하고, 어떤 상황에서 무엇을 선택해야 할지 명확한 가이드를 제시합니다.1. 정의: 두 거인의 등장🌱 Spring AISpring AI는 Spring 개발팀이 직접 만드는, 스프링 생태계에 AI 기능을 '네이티브'하게 통합..
안녕하세요! 오늘은 Spring MVC 컨트롤러를 테스트할 때 자주 사용되는 두 도구, MockMvc와 MockMvcTester를 비교해보겠습니다. Spring Framework는 웹 애플리케이션 테스트를 위해 다양한 도구를 제공하는데, 이 중 MockMvc는 오랜 기간 표준으로 자리 잡았고, 최근 Spring 6.2부터 소개된 MockMvcTester는 더 현대적이고 fluent한 API를 제공합니다. 이 포스팅에서는 먼저 각 개념을 설명한 후, 비교를 통해 차이점을 분석하고, 마지막으로 실제 예시 코드를 통해 어떻게 사용하는지 보여드리겠습니다.이 비교는 Spring Boot를 기반으로 한 테스트 환경을 가정하며, 실제 프로젝트에서 컨트롤러 테스트를 효율적으로 적용하는 데 도움이 될 것입니다. 그럼 시..
상황 spring rest doc이 적용된 spring boot 2.6. gradle 7버젼에서 aws codebuild 빌드단계 및 로컬빌드 중 아래와 같은 플러그인의 의존성을 가져오지 못하는 문제 발생 build.gradle 코드는 수정하지 않았음 id "org.asciidoctor.jvm.convert" version "3.3.2" // Spring REST Docs 에러 메시지 Welcome to Gradle 7.4.1! 90 91 Here are the highlights of this ***: 92 - Aggregated test and JaCoCo reports 93 - Marking additional test source directories as tests in IntelliJ 94 -..
- Total
- Today
- Yesterday
- ContentCachingRequestWrapper caching # ContentCachingRequestWrapper file upload
- ContentCachingRequestWrapper caching error
- spring test
- Controller Testing
- Spring MockMvc
- 멀티 인스턴스
- Spring Boot
- MockMvcTester
- CloudCDN
- url구조
- 톰캣 로그파일 자동삭제
- Could not find org.ysb33r.gradle:grolifant:0.16.1
- GcpFirestoreAutoConfiguration
- asciidoctor sourceDir
- RAG
- CloudStorage
- teefilter file upload error
- LangChain4j
- pessimistic lock
- org.asciidoctor.jvm.convert
- asciidoctorExtensions
- PreflightRequest
- mysql dump sql import
- springai
- 톰캣 로그파일 자동 삭제
- fetchapi
- Firebase 의존성 오류
- sql import
- springboot
- Job Lock
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |