예외를 enum으로 관리한다는 것의 의미
Java 예외 처리를 enum으로 관리하면 클래스 수를 줄이고, 다국어 메시지 처리와 GlobalExceptionHandler를 단순화할 수 있습니다.
입문자부터 중급 개발자까지,
실무에서 바로 쓸 수 있는 기술 콘텐츠를 담았습니다.
Java 예외 처리를 enum으로 관리하면 클래스 수를 줄이고, 다국어 메시지 처리와 GlobalExceptionHandler를 단순화할 수 있습니다.
Access Token 탈취를 폼 검증으로 막으려 했지만 효과가 없었습니다. 토큰 보안은 토큰 레벨에서 방어해야 합니다.
bpy를 멀티프로세스 환경에서 사용할 때 fork 방식에서 초기화 충돌이 발생하는 이유를 Copy-on-Write, OS 자원 핸들, Lock 파일을 중심으로 설명합니다.
SQS를 쓰면 DLQ도 당연히 붙여야 할까요? 확정적 실패, 운영 리소스, 메시지 생명주기 관점에서 DLQ 도입을 지양한 이유와 반드시 필요한 순간을 정리했습니다.
Backend, Lambda, ECS가 SQS로 연결된 분산 AI 파이프라인에서 각 단계별 처리 시간과 큐 대기 시간을 추적하는 통합 로깅을 설계한 과정을 기록합니다.
setInterval 폴링 방식의 세션 타임아웃을 setTimeout 재설정 패턴으로 리팩토링한 과정을 정리합니다. 오차 제거, mousemove 쓰로틀링, UX 개선, 파일 분리까지 다룹니다.
Request/Response Headers의 차이, Cache-Control 값 정리, ETag 검증 흐름, 개발자 도구 Disable cache 옵션까지 브라우저 캐시의 동작 원리를 정리합니다.
Ctrl+Shift+R은 캐시를 삭제하지 않습니다. 강력 새로고침의 실제 동작, iframe이 독립된 Browsing Context를 갖는 이유, 버전 기반 캐시 무력화 전략을 정리합니다.
try-catch 중복을 invoke로 추상화했다가 흐름 제어를 잃었습니다. 중복처럼 보이는 코드가 항상 중복은 아니라는 것을 정리합니다.
bpy는 멀티스레딩과 멀티프로세싱 모두 제약이 있습니다. 초기화 비용 구조를 실측 데이터로 분석하고, 단일 프로세스와 AWS Lambda가 왜 bpy 워크로드에 최적인지 정리합니다.
subprocess로 병렬 처리를 구현했는데 Lambda보다 5배 느렸습니다. bpy 초기화와 모델 로딩이 매 요청마다 반복되는 구조적 문제를 발견하고 단일 처리로 전환한 과정을 기록합니다.
설계가 바뀌면 이름도 바뀌어야 한다. executeRequest에서 invoke로, api-executor.js에서 request-handler.js로 — 함수명과 파일명 네이밍을 다시 고민한 과정을 기록합니다.
반복되는 try-catch 패턴을 executeRequest로 추상화하는 과정을 기록합니다. 추상화 결정 기준, 예외 처리 위치, 파일 위치까지 — 실제 코드베이스에서 마주친 고민들을 정리했습니다.
파일 업로드 API에서 발생하는 Race Condition을 분석하고, DB 행 락과 조건부 UPDATE를 활용해 크레딧 이중 차감 문제를 해결하는 과정을 Java 코드와 함께 설명합니다.
파일 업로드 API에서 간헐적으로 발생하는 주문 상태 미변경 버그를 추적하고, Race Condition을 조건부 UPDATE와 트랜잭션으로 해결한 설계 개선 과정을 실제 Java 코드와 함께 기록합니다.