[Java] 특정 ID를 가진 노드의 하위 계층(Leaf)을 찾는 방법
·
개발 (Development)/Java
이 글은 트리 구조 데이터를 다루는 과정에서 특정 ID를 가진 노드를 찾고, 그 노드의 하위 계층 중 leaf 노드를 효율적으로 수집하는 방법에 대해 정리한 내용입니다. 실제 개발 과정에서 이러한 구조를 처리해야 할 필요가 생겼고, 해당 문제를 해결하기 위해 질의 및 코드 실험을 진행한 뒤 그 결과를 정리한 것입니다. 본 글에서는 가능한 한 일반화된 형태의 코드와 함께 그 과정을 설명드리고자 합니다.문제 정의본 글에서 다루는 트리 구조는 다음과 같은 특징을 가지고 있다고 가정합니다.루트 노드가 여러 개 존재할 수 있다: List roots각 노드는 자식 노드를 나타내는 배열을 가진다: Node[] children각 노드는 고유 ID를 가진다: String id해결해야 하는 핵심 문제는 다음과 같다.전체 ..
[Java] Object를 특정 클래스 타입으로 변환
·
개발 (Development)/Java
이 글은 Java 개발 과정에서 Object 타입 데이터를 특정 클래스(Node 클래스)로 변환하는 과정을 순서대로 정리한 내용입니다. Object가 실제 객체, Map, JSON 문자열 등 다양한 형태일 수 있기 때문에 각 경우를 안전하게 처리하는 방법을 기술 중심으로 설명합니다.핵심 요약Object를 특정 클래스 타입으로 변환하는 방법은 다음 세 가지 흐름으로 나눌 수 있습니다.실제 객체라면 단순 캐스팅Map 구조라면 수동 매핑 또는 Jackson convertValueJSON 문자열이라면 ObjectMapper readValue문제 정의Java 코드에서 Object 타입으로 전달된 데이터를 Node 객체로 변환해야 하는 상황이었습니다. 전달된 Object는 다음 세 가지 형태 중 하나일 수 있다는 ..
[Python] psycopg2에서 ALTER TABLE 실행하는 올바른 방법
·
개발 (Development)/Python
데이터베이스 작업 중 테이블 구조를 변경해야 할 때, ALTER TABLE 명령을 사용하게 됩니다. 하지만 pandas.read_sql_query()로 이 명령을 실행하려고 하면 오류가 발생합니다. 이번 글에서는 그 이유와 함께, psycopg2를 사용해 ALTER TABLE을 올바르게 실행하는 방법을 정리했습니다.1. 왜 pd.read_sql_query()로는 ALTER TABLE이 안 될까?pandas.read_sql_query()는 SELECT 결과를 DataFrame으로 읽어오는 용도로 만들어졌습니다.즉, 쿼리 실행 후 결과 집합을 반환해야 하는데, ALTER TABLE은 반환값이 없습니다.따라서 아래와 같은 에러가 발생합니다.pandas.io.sql.DatabaseError: Execution ..
[Tech Trends] MLOps란 무엇이며, 왜 필수적인가? AI 시대의 지속 가능한 운영 전략
·
기술 동향 (Tech Trends)
서문: 모델 배포가 끝이 아니다 - AI 시대의 숙제, MLOps최근 몇 년간 AI와 머신러닝(ML)은 단순한 연구 단계를 넘어 기업의 핵심 비즈니스 동력으로 자리 잡았습니다. 데이터 과학자가 뛰어난 성능의 ML 모델을 개발하는 것은 매우 중요한 일입니다. 하지만 그 모델이 실제 사용자에게 가치를 제공하려면 '프로덕션 환경'에서 안정적으로 작동해야 합니다.문제는 여기에 있습니다. 코드로만 이루어진 일반 소프트웨어와 달리, ML 모델은 코드, 데이터, 하이퍼파라미터라는 세 가지 요소에 의해 성능이 결정되며, 시간이 지나면서 새로운 데이터에 의해 성능이 저하(Data Drift)될 수 있다는 것입니다.이러한 복잡성을 해결하고 AI 시스템의 개발부터 운영까지의 전 과정을 효율적으로 통합하는 방법론이 바로 ML..
[Python] Dictionary Comprehension: 숫자 형태의 값만 필터링하는 방법
·
개발 (Development)/Python
파이썬에서 리스트 안에 있는 딕셔너리 데이터를 처리할 때, 특정 조건(예: 값의 타입)을 만족하는 요소만 새로운 딕셔너리에 담고 싶을 때가 있습니다. 특히, 문자열 형태로 저장된 값 중 실수나 정수 형태인 값만 선별해야 할 때 유용하게 사용할 수 있는 딕셔너리 컴프리헨션(Dictionary Comprehension) 기법을 소개합니다.문제 상황: 문자열 속 숫자만 골라내기원본 목표는 다음과 같은 리스트에서 param["value"]가 '20' 또는 '3.14'처럼 숫자 형태로 변환 가능한 경우에만 딕셔너리에 포함시키는 것입니다.원본 데이터 구조:parameters = [ {"id": 1, "value": "20"}, {"id": 2, "value": "abc"}, {"id": 3, "va..