[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" 같은 문장은..
[Python] 폴더 내 CSV 형식 로그 파일 시각화하기
·
개발 (Development)/Python
시간에 따라 주기적으로 수집된 로그 데이터를 시각화해야 하는 경우가 종종 있습니다. 본 글에서는 여러 날짜 폴더에 저장된 CSV 형식의 로그 파일을 Python으로 읽어 들여, 특정 시간 기준 컬럼을 활용해 관심 있는 데이터를 시간 순으로 시각화하는 방법을 소개드립니다.문제 상황파일은 .csv 또는 유사한 포맷이며, 쉼표로 구분된 텍스트 형식으로 저장됨상위 폴더 아래 YYYYMMDD 형태의 날짜별 폴더가 존재하고, 각 폴더 내에는 5분 간격으로 생성된 로그 파일이 저장됨각 파일의 첫 줄은 컬럼명이 포함되어 있고, 그 아래에는 여러 줄의 데이터가 있음시간 기준은 예를 들어 Timestamp_UTC 같은 컬럼에 저장되어 있으며, 이 값은 UTC(협정 세계시) 기준시각화 대상이 되는 데이터는 예를 들어 Sen..
[Python] requests 요청 후 기다리는 로직과 타임아웃 설정
·
개발 (Development)/Python
Python에서 API 요청을 보낼 때 가장 많이 사용하는 라이브러리 중 하나가 requests입니다. 이 라이브러리를 사용할 때 요청 후 응답을 얼마나 기다리는지에 대한 로직을 이해하고, 타임아웃 설정을 적절히 사용하는 것이 중요합니다.이번 글에서는 requests 라이브러리의 응답 대기 방식과 타임아웃 기본값, 그리고 안정적인 요청 처리를 위한 팁을 정리해보겠습니다.요청을 보낸 후 어떻게 동작할까?requests 라이브러리는 기본적으로 동기(synchronous) 방식으로 작동합니다. 즉, 요청을 보내면 응답이 올 때까지 프로그램 실행을 멈추고 기다립니다.예를 들어 다음과 같은 코드는:import requestsresponse = requests.get("https://example.com")prin..