JVM 프록시 옵션은 모든 HTTP 클라이언트에 걸리지 않는다

JVM 옵션으로 프록시를 걸면 HttpURLConnection과 RestTemplate은 따르고, Apache HttpClient와 WebClient는 무시해 코드에서 따로 지정해야 한다.

2024년 3월 17일 · 2 분

컨테이너 안에서 쓸 패키지 매니저를 찾는 한 줄

이미지가 어떤 배포판인지 몰라 패키지 매니저를 헤맬 때, type 한 줄로 후보 여섯 개를 한 번에 확인한다.

2024년 3월 4일 · 2 분

Object를 Map으로 바꾸는 데 Reflection까지 써야 할까

필드를 Reflection으로 훑던 Object→Map 변환 메서드를 ObjectMapper.convertValue 한 줄로 줄이고, 바꾸면서 달라지는 동작을 짚었다.

2024년 3월 1일 · 2 분

Spring 4.3 WAS의 세션을 암호화된 ElastiCache에 모으기

Spring 4.3.7 기반 다중 WAS의 세션을, 전송 중 암호화가 켜진 ElastiCache for Redis에 Redisson Tomcat Session Manager로 모아 클러스터링했다.

2023년 10월 3일 · 3 분

콤마와 공백으로 여러 건 한 번에 검색하기

검색어 하나만 받던 조회 화면을 콤마·공백으로 쪼개 MyBatis foreach OR 조건으로 여러 건을 한 번에 찾게 바꾸고, 다시 보니 걸리는 점을 짚었다.

2023년 9월 25일 · 4 분

Autoscaling 환경에서 @Scheduled 배치를 한 번만 실행하기

Autoscaling으로 1번 서버라는 기준이 사라지자, 스케줄 트리거를 EventBridge Scheduler와 Lambda로 옮겨 Internal ALB 호출 한 번이 배치 한 번이 되게 바꿨다

2023년 9월 21일 · 5 분

WAR를 손으로 풀어 올리던 Tomcat 배포프로세스 변경

WAR를 직접 풀어 복사하던 배포를 Tomcat 자동 배포 동작을 추적해 파일 복사 한 번으로 줄였고, 5~10분이던 배포가 30초가 됐다

2023년 5월 11일 · 6 분

argparse가 대신 만들어 주는 --help

argparse로 파이썬 스크립트에 실행 인자를 넘기는 최소 예제를 돌려 보고, 인자 하나만 등록해도 –help 사용법이 저절로 생기는 것을 확인했다.

2023년 4월 23일 · 2 분

프로젝트마다 Python 패키지를 따로 두는 venv

pip install이 한곳에 쌓여 프로젝트끼리 버전이 부딪히는 문제를 venv로 나누고, VS Code 인터프리터와 requirements.txt까지 맞추는 절차를 정리했다.

2023년 4월 22일 · 3 분

psycopg2 파라미터 바인딩과 SQL Injection

사용자 입력을 문자열로 이어 붙이던 psycopg2 쿼리를 파라미터 바인딩으로 바꾸고, 정수 컬럼과 null 처리에서 헷갈린 점을 정리했다.

2023년 4월 20일 · 5 분