[Java] 사내망에서 Gradle 빌드 시 PKIX 인증서 오류 해결기 (feat. 프록시 & 인증서 등록)
·
개발 (Development)/Java
최근 사내 개발 환경에서 Gradle 기반의 Spring Boot 프로젝트를 빌드하는 과정에서 아래와 같은 에러를 겪었다.Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.7.14PKIX path building failed: unable to find valid certification path to requested target처음에는 단순히 버전 오류나 저장소 설정 문제인 줄 알고 build.gradle과 settings.gradle을 점검했지만, 문제는 훨씬 더 깊은 곳에 있었다. 아래는 내가 이 문제를 해결해 나갔던 순차적인 과정이다.1. Gradle 설정 점검부터 시작// settings.gradlepluginMana..
[Java/MyBatis] MyBatis <foreach>에서 #{}와 ${} 차이, 그리고 item 두 번 쓰기
·
개발 (Development)/Java
MyBatis에서 는 IN 조건이나 다중 INSERT와 같이 반복적인 SQL을 작성할 때 아주 유용하게 쓰입니다. 하지만 이 안에서 item을 여러 번 참조하거나, #{}와 ${} 중 어떤 걸 써야 하는지 헷갈릴 수 있습니다. 이 글에서는 그 차이점과 실전에서 어떻게 써야 안전하고 효율적인지 정리해보겠습니다.#{} vs ${} 차이점구분#{}${}방식PreparedStatement 방식문자열 치환 방식용도값 바인딩 (WHERE, VALUES 등)컬럼명, 테이블명 등 SQL 조각 삽입장점SQL 인젝션 방지, 자동 타입 변환, 성능 최적화동적인 SQL 문 구조 만들기 가능단점컬럼명/테이블명 등 SQL 구조에는 사용 불가SQL 인젝션 위험 있음, 성능 저하 가능보안안전검증 없으면 매우 위험예시 비교 #{id..
[PostgreSQL] MyBatis에서 PostgreSQL JSON 데이터 처리하기
·
개발 (Development)/PostgreSQL
1. PostgreSQL에서 JSONB 데이터 평균 구하기JSONB 컬럼이 포함된 테이블에서 특정 키(예: "efficiency") 값을 필터링하고 평균을 구하는 기본적인 SQL 쿼리는 다음과 같습니다.SELECT key AS tag_name, AVG(value::NUMERIC) AS avg_valueFROM sensor_data, LATERAL jsonb_each_text(outputs)WHERE timestamp_col BETWEEN '2024-01-01 00:00:00' AND '2024-01-31 23:59:59' AND key ILIKE '%efficiency%' AND (value::NUMERIC) BETWEEN 0 AND 100GROUP BY key;이 쿼리는..
[Java] 리스트의 요소가 다른 리스트에 포함되지 않는지 확인 (Collections.disjoint())
·
개발 (Development)/Java
Java에서 리스트의 요소가 다른 리스트에 포함되지 않는지 확인할 때 Collections.disjoint() 메서드를 사용하면 간단하게 처리할 수 있습니다.import java.util.Arrays;import java.util.Collections;import java.util.List;public class Main { public static void main(String[] args) { List targetList = Arrays.asList("A", "B", "C"); List statusList = Arrays.asList("X", "Y", "Z"); boolean isDisjoint = Collections.disjoint(targetList, ..
[PostgreSQL] JSON 컬럼에서 Key-Value 추출 및 MyBatis 연동
·
개발 (Development)/PostgreSQL
PostgreSQL에서는 json 또는 jsonb 타입을 사용하여 JSON 데이터를 저장할 수 있습니다. 하지만 이를 테이블 형태로 변환하여 조회할 때는 추가적인 함수가 필요합니다. 특히 MyBatis를 활용하여 Java에서 HashMap 형태로 데이터를 가져오려면 적절한 쿼리 작성이 중요합니다. 이번 글에서는 PostgreSQL에서 JSON 데이터를 key-value 형태로 변환하는 방법과 MyBatis를 이용해 이를 Java에서 활용하는 방법을 알아보겠습니다.1. PostgreSQL에서 JSON 데이터를 Key-Value 형태로 변환하기1.1 테이블 및 샘플 데이터 생성먼저 JSON 데이터를 저장하는 status 컬럼을 포함한 테이블을 생성하고, 샘플 데이터를 삽입합니다.CREATE TABLE tes..