Showing posts with the label ko

Vue.js 메모리 누수 완벽 방어: beforeUnmount와 생명주기 관리

SPA에서 라우터를 10번만 전환해도 브라우저 탭이 크래시되는 현상. 디버깅에 며칠을 쏟게 만든다. 원인은 윈도우 객체에 바인딩된 전역 이벤트 리스너 단 한 줄이었다. 우리가 이 OOM(Out of Memory) 문제를 어떻게 추적하고 해결했는지 그 엔지니어링 과정을 공유한다. Vue.js 메모리 누수(Memory Leak) 는 컴포넌트가 DOM에서 …
Vue.js 메모리 누수 완벽 방어: beforeUnmount와 생명주기 관리

대용량 파일 업로드, 서버를 태우지 마라: S3 Presigned URL 및 Multipart Upload 실전 가이드

개발자가 흔히 저지르는 실수 중 하나는 기가바이트(GB) 단위의 대용량 파일을 백엔드 서버가 직접 받아서 S3로 넘겨주는 구조를 짜는 것이다. 이 방식은 EC2의 CPU와 메모리를 불필요하게 점유할 뿐만 아니라, 불필요한 대역폭 비용(Data Transfer Out)을 이중으로 발생시킨다. 브라우저에서 S3로 직접 쏘는 것 이 정답이다. AWS S3 …
대용량 파일 업로드, 서버를 태우지 마라: S3 Presigned URL 및 Multipart Upload 실전 가이드

OAuth 2.0 보안: PKCE는 이제 선택이 아닌 필수다 (구현 가이드)

아직도 모바일 앱이나 SPA(Single Page Application)에서 client_secret 을 하드코딩하거나, 보안이 취약한 Implicit Flow를 사용하고 있다면 당장 멈춰야 한다. 당신의 인가 코드(Authorization Code)는 가로채질 위험에 처해 있다. OAuth 2.1 초안부터 모든 클라이언트에게 필수로 권장되는 PKCE(…
OAuth 2.0 보안: PKCE는 이제 선택이 아닌 필수다 (구현 가이드)

Apache Spark 성능 최적화: 악명 높은 Skewed Partition 해결과 Broadcast Join 전략

Spark 작업 모니터링 중 가장 고통스러운 순간은 200개의 태스크 중 199개가 5분 만에 끝났는데, 마지막 1개의 태스크가 4시간 동안 도는 것 을 지켜볼 때다. 이는 전형적인 Data Skew (데이터 편향) 현상이다. 수십 TB 규모의 빅데이터 처리 파이프라인에서 이 병목을 해결하지 못하면 클러스터 리소스 비용은 기하급수적으로 늘어난다. 본…
Apache Spark 성능 최적화: 악명 높은 Skewed Partition 해결과 Broadcast Join 전략
OlderHomeNewest