분류 전체보기

에러 발생MSSQL을 사용하면서 JPA와 QueryDSL을 활용하여 페이징 처리를 하다가 첫 페이지 조회 할때는 TOP 쿼리를 사용하여 데이터를 성공적으로 가져오지만, 두 번째 페이지부터는 OFFSET을 사용해야 하는데 이때 OFFSET이 존재하지 않는다는 에러가 발생했다.  에러 로그에러 로그는 다음과 같다. [12:27:08.181][DEBUG] org.springframework.orm.jpa.JpaTransactionManager[doCleanupAfterCompletion:648] - Closing JPA EntityManager [SessionImpl(1815722544)] after transaction [12:27:08.181][INFO ] org.springframework.test.c..
📌 서론Java의 JPA에서 복합키를 관리하는 방법에는 주로 @Embeddable, @EmbeddedId 어노테이션을 사용한다. 복합 키, 즉 복수의 필드로 구성된 기본 키를 사용하는 경우에 이러한 어노테이션을 활용하여 테이블의 기본 키를 엔티티에서 표현할 수 있다.이번 글에서는 @Embeddable과 @EmbeddedId에 대해서 알아보자 @Embeddable과 @EmbeddedId의 역할@Embeddable복합 키를 정의할 때 사용하는 어노테이션. 이 어노테이션을 사용하여 클래스를 정의하면, 해당 클래스는 다른 엔티티에서 임베디드 타입으로 사용될 수 있다. 복합 키 클래스 자체는 어떠한 생명주기도 갖지 않으며, 단지 엔티티의 일부로서 기능한다. @EmbeddedId 엔티티에서 복합 키를 사용할 때,..
코틀린과 스프링 부트 3에서 DynamoDB 항목 추가하기 📌 서론 이전 글에서 DynamoDB에 테이블을 생성했고 항목을 추가해 봤다. 이제 스프링 부트에서 DynamoDB를 연동해서 스프링 부트 코드에서 DynamoDB 테이블에 항목을 추가해 보자 dependencies 추가 코틀린과 DynamoDB와 연동하려면 일단 디펜던시가 필요하다. 나는 아래 링크에서 디펜던시를 가져왔다. https://central.sonatype.com/artifact/aws.sdk.kotlin/dynamodb Maven Central: aws.sdk.kotlin:dynamodb Discover dynamodb in the aws.sdk.kotlin namespace. Explore metadata, contributors..
코루틴과 suspend로 간단한 비동기 처리 📌 서론 이 글에서는 코루틴과 suspend 함수를 사용하여 복잡한 비동기 작업을 간단하게 처리하는 방법을 정리해보려고 한다. 코루틴(Coroutines) 기본 코루틴은 비동기 프로그래밍을 단순화하는 코틀린의 기능으로, 비동기 작업을 동기 작업처럼 쉽게 작성할 수 있게 해 준다. 코루틴을 사용하면, 복잡한 콜백(callbacks)이나 별도의 스레드 관리 없이 비동기 코드를 작성할 수 있다. 비동기 프로그래밍을 단순화하는 코틀린의 기능으로, 경량 스레드(lightweight threads)라고도 불린다. 그리고 비동기 작업을 동기 작업처럼 쉽게 작성할 수 있게 해준다. 코루틴을 사용하면, 복잡한 콜백(callbacks)이나 별도의 스레드 관리 없이 비동기 코드를..
· AWS
DynamoDB 테이블 생성하기 서론 알림 서버에서 사용할 닉네임 관련 테이블을 DynamoDB를 이용해 생성해 보자. RDB로 치면 member_nickname 테이블에 Long member_id(pk), Varchar nickname로 컬럼 두 개인 테이블인데 이것과 비슷하게 DynamoDB에서 테이블을 생성해 보자 DynamoDB 기본 개념 1. 테이블 이름 테이블 이름은 테이블을 고유하게 식별하는 이름이다. 내가 만들 테이블은 멤버의 ID와 닉네임을 저장하는 용도로 member_nickname라는 이름을 사용할 것이다. 2. 기본 키 기본 키는 DynamoDB의 각 항목을 고유하게 식별하는 데 사용되는 키다. 기본 키는 파티션 키만으로 구성되거나, 파티션 키와 정렬 키의 조합으로 구성될 수 있다...
코틀린과 스프링 부트 3에서 Feign Client 적용하기 📌 서론 코틀린을 적용한 알림 서버에 feign client를 적용하는 방법을 알아보자 현재 프로젝트 기술 스택이다. 코틀린 1.9.22 버전 스프링 부트 3.2.2 버전 1. build.gradle.kts에 openfeign 의존성 주입 2024년 2월 기준으로 build.gradle.kts에 추가해줘야 할 의존성은 다음과 같다. extra["springCloudVersion"] = "2023.0.0" dependencies { implementation("org.springframework.cloud:spring-cloud-starter-openfeign") } dependencyManagement { imports { mavenBom("o..
스프링 부트, 카프카, 슬랙 연동 - 실시간 에러 알림 시스템 구축 📌 서론 이전 글에서 로컬 환경에서 도커로 Kafka를 실행하고, 스프링 부트에서 카프카로 메시지를 전송했다.(producer) 이제 Kafka에서 특정 토픽으로 메시지가 들어왔을 때 해당 메시지를 슬랙에 알림으로 전송하는 프로세스만 남았다. (consumer) 이번 글에서 슬랙과 스프링 부트를 연동하고 스프링 부트에서 에러가 발생하면 해당 에러가 슬랙으로 잘 전달이 되는지 확인하자. 이전 글에서 이미 kafka를 실행시켜줬고, kafka producer까지는 완료된 상황이다. 만약 이 두 개 중 하나라도 안되어있다면 해당 글을 읽고 오는 걸 권장한다. 🔻 docker-compose로 kafka 실행 🔻 macOS에서 docker-com..
스프링 부트에서 Kafka로 메시지 전송하기: 실시간 에러 로그 처리 📌 서론 이전 글에서 docker-compose로 로컬 환경에 카프카를 실행했다. 스프링 부트 프로젝트에서 에러가 발생하면 Slack으로 알림을 보내기 위해서 Kafka를 사용하기 위해서 이전 글에서 로컬 환경에서 docker-compose로 카프카를 실행했다. 이제 스프링 부트에 에러 핸들링하는 부분에 카프카 메시지를 전송(producer)하는 코드를 추가하는 과정을 함께 살펴보자 🔻 macOS 환경에서 도커로 카프카를 실행하는 방법이 궁금하다면? 🔻 macOS에서 docker-compose로 Kafka 설치하기 (Zookeeper 사용 X) macOS에서 docker-compose로 Kafka 설치하기 (Zookeeper 사용 X)..
평양냉면7
'분류 전체보기' 카테고리의 글 목록 (13 Page)