[PostgreSQL] 문자열을 timestamp with time zone으로 변환하는 방법
·
개발 (Development)/PostgreSQL
PostgreSQL을 사용할 때 문자열을 timestamp로 변환해야 하는 경우가 자주 있습니다. 이때 단순히 ::timestamp로 캐스팅하면 될 것 같지만, 시간대(time zone) 를 고려해야 할 상황에서는 주의가 필요합니다. 이번 글에서는 문자열을 timestamp with time zone으로 정확하게 변환하는 방법을 정리해보았습니다.문제 상황: 단순한 캐스팅의 한계예를 들어 다음과 같이 문자열을 ::timestamp로 캐스팅하면,SELECT '2025-07-21 15:00:00'::timestamp;이 결과는 timestamp without time zone 타입으로 변환됩니다. 즉, 시간대 정보가 없는 순수한 날짜 및 시간 값만 저장됩니다. PostgreSQL에서는 timestamp와 ti..
[General] 파라미터 이름에서 특수문자를 제거해야 했던 이유
·
개발 (Development)/General
최근 내부 시스템 개선 작업을 진행하면서, 파라미터 이름에 특수문자가 포함되었을 때 발생하는 문제를 직접 경험하게 되었습니다. 단순히 UI 상에 표시되는 이름이라고 생각했던 이 값이, 실제로는 시스템 전반에 걸쳐 영향을 줄 수 있다는 사실을 알게 되었고, 그 과정에서 많은 것을 배우게 되었습니다.이번 글에서는 저의 실제 경험을 바탕으로, 왜 특수문자 제거가 필요한지, 어떤 부작용이 발생할 수 있는지를 공유드리고자 합니다.문제의 시작: 특수문자가 포함된 파라미터 이름우리는 여러 설비에서 발생하는 데이터를 주기적으로 수집해 처리하고 있습니다. 각 설비의 파라미터(예: 온도, 압력 등)는 사용자가 등록할 수 있도록 되어 있는데, 이 이름에 #, %, @, - 같은 특수문자가 포함되면 문제가 생기기 시작합니다...
[Python] Pandas DataFrame에서 조건에 따라 행 삭제 및 특정 데이터 추출하는 방법 정리
·
개발 (Development)/Python
Pandas를 활용해 데이터를 전처리하다 보면, 특정 조건에 따라 행을 삭제하거나 인덱스와 컬럼명을 기준으로 값을 가져오는 일이 자주 발생합니다. 이번 글에서는 DataFrame에서 조건에 맞는 행을 안전하게 삭제하는 방법과 특정 셀의 값을 가져오는 여러 가지 방식을 함께 정리해보겠습니다.DataFrame에서 조건에 맞는 행 삭제하기1. 반복문 없이 조건 필터링으로 삭제 (추천)Pandas에서는 반복문보다 조건 필터링을 사용하는 것이 훨씬 효율적이고 안전합니다.# 예: 'boundary' 컬럼이 빈 문자열("")인 행 제거df = df[df['boundary'] != '']혹은 drop() 메서드를 사용하는 방식도 가능합니다.df.drop(df[df['boundary'] == ''].index, inpl..
[Java] ISO 8601 형식의 시간 출력하기 (현재 시간과 과거 시간 구하기)
·
개발 (Development)/Java
Java를 사용하여 현재 시간과 과거 시간을 ISO 8601 형식(예: 2025-07-13T15:00:00Z)으로 출력하는 방법에 대해 정리해보았습니다. 특히, UTC 기준으로 현재 시간과 3시간 전 시간을 구하는 예제를 중심으로 설명드리겠습니다.1. 문제 상황로그나 데이터 처리, 외부 API와의 연동 시 국제 표준 시간 형식인 ISO 8601을 사용하는 경우가 많습니다.예를 들어, 2025-07-13T15:00:00Z와 같은 형식은 UTC(협정 세계시)를 기준으로 한 ISO 포맷입니다.이 글에서는 현재 시간과 현재로부터 3시간 전 시간을 자바 코드로 계산하고, 이를 ISO 8601 형식으로 출력하는 방법을 알아봅니다.2. 해결 방법사용 도구java.time.Instantjava.time.temporal..
[Java] MyBatis foreach에서 빈 배열이 들어올 경우 예외를 방지하는 방법
·
개발 (Development)/Java
Java에서 MyBatis를 사용할 때, foreach 구문에 빈 배열이나 리스트가 들어오는 상황은 종종 발생합니다. 이때 적절한 처리를 하지 않으면 SQL 문법 오류나 의도치 않은 전체 조회와 같은 문제가 생길 수 있습니다.저는 최근 IN 절을 동적으로 구성하기 위해 태그를 사용하던 중, 전달받은 리스트가 빈 배열일 경우 SQL 오류가 발생하는 문제를 겪었습니다. 이 문제를 해결하기 위해 어떤 방식들이 있는지 조사하고, 실제로 적용해 보면서 가장 적합한 해결 방법을 찾게 되었습니다.문제 상황: 빈 배열이 들어오면 SQL 오류 발생예를 들어 아래와 같이 idList라는 리스트를 기반으로 사용자 정보를 조회하는 SQL을 구성한다고 가정합니다. SELECT * FROM users WHERE id IN ..