[Kafka/Docker] Kafka 컨테이너에서 특정 Key의 메시지 500개 추출 및 저장하는 방법
·
개발 (Development)/Kafka
Kafka를 사용할 때 특정 key를 가진 메시지만 추출해 확인하거나 저장해야 하는 상황이 종종 발생합니다. 특히 Docker 컨테이너 환경에서 Kafka가 실행 중일 경우, 터미널 명령어만으로 이 작업을 효율적으로 처리할 수 있습니다. 이 글에서는 Kafka 컨테이너에 접속해 특정 key를 가진 메시지를 최대 500개까지 추출하고 파일로 저장하는 과정을 정리합니다.1. Kafka 컨테이너 접속Kafka가 Docker 컨테이너로 실행 중이라면 다음 명령어로 컨테이너에 접속합니다.docker exec -it kafka-container-name bashkafka-container-name은 실제 사용 중인 Kafka 컨테이너 이름으로 바꿔야 합니다.2. kafka-console-consumer로 메시지 추..
[Java] MyBatis만 쓰던 내가 JPA를 처음 접했을 때 이해한 구조 정리
·
개발 (Development)/Java
Spring Boot 프로젝트를 진행하면서 그동안은 MyBatis로만 데이터베이스를 다뤄왔습니다. 하지만 이번 프로젝트에서는 JPA를 사용하게 되었고, 처음에는 다소 생소한 개념들이 많았지만 구조를 하나하나 정리하면서 점차 이해할 수 있었습니다. 이 글에서는 MyBatis만 사용해본 입장에서 JPA의 전체 구조를 어떻게 이해했는지 순서대로 정리해보겠습니다.JPA와 MyBatis의 가장 큰 차이점MyBatis는 SQL 중심의 프레임워크입니다. XML이나 어노테이션을 통해 SQL을 직접 작성하고, 그 결과를 Java 객체에 매핑합니다. 반면, JPA는 객체 중심으로 동작합니다. SQL은 자동으로 생성되며, 객체와 객체 사이의 관계를 바탕으로 데이터베이스와 소통합니다.즉, MyBatis는 "어떤 쿼리를 실행할..
[Java] Spring Boot 프로젝트에서 MyBatis와 JPA를 함께 사용하는 방법과 오류 해결 과정
·
개발 (Development)/Java
Spring Boot 2.5.5, Java 11, Maven, MyBatis 기반의 프로젝트에 JPA를 추가하면서 겪은 설정 및 오류 해결 과정을 정리합니다.MyBatis와 JPA를 병행하고자 할 때 주의해야 할 설정 방식과 실제 발생했던 오류의 원인을 함께 소개합니다.프로젝트 환경Spring Boot: 2.5.5Java: 11빌드 도구: MavenORM 프레임워크: MyBatis (기존), JPA (추가)데이터베이스: PostgreSQL1. JPA 기본 설정 방법1-1. Maven 의존성 추가 org.springframework.boot spring-boot-starter-data-jpa org.postgresql postgresql runtime1-2. application.yml 설정 예시..
[Java] Spring Boot 2.x + Java 11 환경에서 JPA Native Query와 DTO 매핑 문제 해결 기록
·
개발 (Development)/Java
개요Spring Boot 2.x와 Java 11 환경에서 JPA와 MyBatis를 병행 사용하던 중, Native Query 처리 과정에서 다양한 오류가 발생했습니다. 특히 JPA 엔티티 인식 오류, Optional 처리의 불편함, 패키지 스캔 설정 문제, QueryDSL 관련 빈 생성 오류 등이 복합적으로 발생했습니다. 본 글에서는 이러한 문제들의 원인을 차례대로 분석하고 해결 방법을 정리합니다.엔티티가 Not a managed type 오류 발생서비스 클래스에서 JPA Repository를 주입하려 할 때 다음과 같은 오류가 발생했습니다.Not a managed type: class com.example.domain.entity.ScoreEntity이 오류는 Spring이 해당 엔티티 클래스를 JPA..
[Python] 문자열 각 단어의 첫 글자를 대문자로 만드는 방법
·
개발 (Development)/Python
Python으로 문자열을 다룰 때, 띄어쓰기를 기준으로 각 단어의 첫 글자를 대문자로 바꾸고 싶은 경우가 있습니다. 예를 들어, "hello world this is python"을 "Hello World This Is Python"처럼 만드는 것이죠.이 글에서는 이를 처리하는 방법 두 가지를 소개해 드리겠습니다.1. str.title() 메서드 사용가장 간단한 방법은 문자열의 title() 메서드를 사용하는 것입니다.text = "hello world this is python"result = text.title()print(result)출력 결과:Hello World This Is Pythontitle()은 문자열 내의 각 단어 첫 글자를 대문자로 변환해 줍니다. 다만 "i'm fine" 같은 문장은..