[Java] LinkedHashMap에서 특정 값을 가진 항목 제거하는 방법
·
개발 (Development)/Java
Java에서 LinkedHashMap을 사용할 때, 특정 값을 가진 항목을 제거하고자 하는 경우가 있습니다. 하지만 for-each 문을 사용해 직접 제거할 경우 ConcurrentModificationException이 발생할 수 있기 때문에, 안전한 방법으로 처리하는 것이 중요합니다. 이 글에서는 특정 값(ex. 0, null, 혹은 사용자 정의 값)을 가진 항목을 안전하게 제거하는 방법을 소개합니다.특정 값을 가진 항목 제거: Iterator 사용LinkedHashMap은 순서를 유지하는 특성이 있어 반복자(Iterator)를 사용하는 것이 가장 안전합니다.예제 코드import java.util.Iterator;import java.util.LinkedHashMap;import java.util.M..
[ADsP] 제45회 데이터 분석 준전문가(ADsP) 시험 합격 후기
·
자격증 (Certifications)/ADsP
지난 5월 17일, 제45회 ADsP(Data Analysis Semi-Professional) 시험에 응시한 이후 드디어 최종 합격 소식을 전하게 되어 후기를 남깁니다. 이 글은 시험 직후 작성했던 후기와 일부 내용이 중복될 수 있으며, 이번에는 최종 결과 발표 이후의 소감과 실질적인 준비 전략을 중심으로 정리하였습니다.시험 당일 일정과 분위기, 시험 난이도에 대해 궁금하신 분은 아래 글을 먼저 참고해주시면 도움이 될 것입니다.[ADsP] 제45회 데이터 분석 준전문가(ADsP) 시험 후기 (시험 직후 작성) [ADsP] 제45회 데이터 분석 준전문가(ADsP) 시험 후기지난 2025년 5월 17일 토요일, 제45회 ADsP(Data Analysis Semi-Professional) 시험에 응시하였습니..
[General] Windows에서 Plane 서비스 Docker로 로컬 실행하기
·
개발 (Development)/General
Plane은 오픈소스로 제공되는 프로젝트 관리 도구입니다. Notion과 Linear의 장점을 합쳐 만든 이 툴은 직접 서버에 설치하여 사용할 수 있는 Self-hosted 기능도 제공하는데요. 이 글에서는 Windows 환경에서 Docker를 사용해 Plane 서비스를 로컬에서 실행하는 방법을 단계별로 소개합니다.사전 준비 사항Plane을 실행하기 위해 아래 소프트웨어가 사전에 설치되어 있어야 합니다.Docker Desktop (WSL2 백엔드 사용)Git(선택) WSL2 리눅스 환경 – 설치 스크립트 실행 시 필요설치 및 실행 절차1. Plane 저장소 클론git clone https://github.com/makeplane/plane.gitcd plane2. 설치 스크립트 실행 (WSL2 환경 권장..
[Java/SpringBoot] Spring OAuth2 시스템에서 발생한 Access Token 만료 및 인증 오류 대응 기록
·
개발 (Development)/Java
Spring 기반 OAuth2 인증 시스템을 운영 중 다음과 같은 인증 관련 오류를 경험하였습니다. 해당 사례를 정리하여 공유드립니다.문제 상황애플리케이션 로그에서 다음과 같은 두 가지 유형의 에러가 반복적으로 발생하였습니다.Connection reset 에러 (POST /check_token 요청 실패)java.net.SocketException: Connection reset org.springframework.web.client.ResourceAccessException: I/O error on POST requestAccess Token 만료 에러authorization error : 400 : { "code": "...", "message": "invalid_token", "details": "..
[PostgreSQL] PostgreSQL에서 threshold 값 이력 관리 및 최신값 조회 테이블 설계하기
·
개발 (Development)/PostgreSQL
요구사항 정리PostgreSQL을 사용하여 특정 설정값(threshold 등)을 관리해야 하는 상황이 있었습니다. 요구사항은 다음과 같았습니다.설정값을 데이터베이스에 저장하고, 나중에 읽어올 수 있어야 함설정값이 변경될 때마다 이력을 남기고, 기존 값을 덮어쓰지 않아야 함항상 가장 최신의 설정값을 쉽게 조회할 수 있어야 함나중에 다른 설정값이 추가될 수도 있으므로, 확장성 있게 설계하고자 함이러한 조건을 만족시키기 위해 다음과 같은 방식으로 스키마를 설계하였습니다.테이블 설계 방향설정값의 이름과 값을 key-value 형태로 저장하는 방식으로 테이블을 구성하였고, 이력 관리를 위해 created_at 컬럼을 추가하였습니다.테이블 구조 예시CREATE TABLE config_history ( id S..