분류 전체보기 52

[스프링으로 배우는 안티패턴] Spring Security 6.3 부터는 왜 직렬화 버전(SERIAL_VERSION_UID)를 삭제했을까?

https://spring.io/blog/2024/01/19/spring-security-6-3-adds-passive-jdk-serialization-deserialization-forserialVersionUID 란? 자바 직렬화(Serialization)은 객체를 파일이나 네트워크로 보내기 위해서 바이트 배열로 변환하는 과정입니다. 이때 자바는 내가 지금 저장하려는 객체와 나중에 다시 읽어들일 객체가 같은 클래스를 가지고 있는가를 확인해야합니다. 이때 사용하는 것이 serialVersionUID 입니다. 저장 할 때 UID와 읽을 때의 UID가 같다면 같은 클래스라고 생각하여 데이터를 복원합니다. 값이 다르다면 InvalidClassException로 데이터를 복원하기를 거부합니다. Spring ..

Backend · Infra 2026.05.14

[Elasticsearch] Low Level Client 6.x에서 Java API Client 9.x 마이그레이션 트러블슈팅

마이그레이션 하게된 배경Elasticsearch 6.x 버전은 공식 지원 종료 (EOL) 된지 오래 되었습니다. 더이상 보안 패치나 버그 수정을 기대할 수 없기 때문에 실제로 발견된 CVE 취약점들에 무방비로 노출될 위험이 있었습니다. 서비스의 지속 가능성과 보안 안정성을 위해 최신 버전인 9.x 로의 마이그레이션을 진행하게 되었습니다. 이미 돌아가는 코드를 고치게 되다 .. 왜 ? ? 6.x 에서 9.x 버전의 차이는 3세대간의 차이라서 호환성이 단절되어있었습니다. 기존 코드로는 호환이 되지 않아서 트러블 슈팅을 하며 마이그레이션을 진행하게 되었습니다. 또한, 새로운 Java API Client 9.x 는 최소 Java 17 이상이 필요하기 때문에 Java 버전도 올려야했습니다. java 버전을 ..

Backend · Infra 2026.05.08

AI 시대의 사이버보안, Anthropic의 ‘Project Glasswing’가 의미하는 것

이 글은 Anthropic의 공식 발표인 Project Glasswing 내용을 바탕으로 정리했습니다. Anthropic이 새로운 사이버보안 프로젝트 ‘Project Glasswing’를 발표했습니다. 이번 프로젝트에는 AWS, Apple, Cisco, Google, Microsoft, NVIDIA, CrowdStrike, JPMorganChase, Linux Foundation, Palo Alto Networks 등 글로벌 기업과 기관들이 함께 참여합니다.목표는 분명합니다. AI의 급격한 발전으로 커지고 있는 사이버 위협에 대응하기 위해, 최첨단 AI를 공격이 아니라 방어에 먼저 활용하자는 것입니다. 이번 발표의 핵심에는 아직 공개되지 않은 AI 모델 Claude Mythos Preview가 있습니다...

Computer Science 2026.04.09

Windows 에서 특정 포트가 안 죽는 것처럼 보일 때 (netstat PID가 죽지 않는 이유)

파이썬 웹서버를 띄우다 보면 가끔 일어나는 일인데 제대로 정리된 블로그 글을 찾기 힘들어서직접 작성했습니다. 상황로컬에서 API서버 (python fastAPI)을 돌리다가 재실행 하려고 하는데 8000포트가 계속 점유된 것 처럼 보였다. netstat으로 확인하면 분명 LISTENING 이 있는데, taskkill은 "프로세스를 찾을 수 없습니다" 라고 뜨는 상황 netstat -abno | findstr /i ":8000"TCP 0.0.0.0:8000 0.0.0.0:0 LISTENING 42424taskkill /F /T /PID 42424오류: 프로세스 "42424"을(를) 찾을 수 없습니다.Get-Process -Id 42424프로세스를 찾을 수 없습니다. 하지만 해당 8000번 포트는 ..

Backend · Infra 2026.01.29

Windows 11 KB5074109(2026-01-13) 정리

https://support.microsoft.com/ko-kr/topic/2026%EB%85%84-1%EC%9B%94-13%EC%9D%BC-kb5074109-os-%EB%B9%8C%EB%93%9C-26200-7623-%EB%B0%8F-26100-7623-3ec427dd-6fc4-4c32-a471-83504dd081cb 2026년 1월 13일 — KB5074109(OS 빌드 26200.7623 및 26100.7623) - Microsoft 지원2026년 1월 보안 업데이트부터 Windows Server 2025에는 자체 KB 식별자와 빌드 번호가 있습니다. 이 변경 내용은 Windows Server 2025에만 적용됩니다. Windows 11, 버전 24H2 또는 Windows 11 버전 25H2에 대한..

TIL · 잡담 2026.01.15

CORS를 제대로 이해하고 안전하게 설정하기

CORS? 서버 보안 기능이 아니라 브라우저 정책!CORS(Cross-Origin Resource Sharing)의 본질은 브라우저의 동일 출처 정책(Same-Origin Policy SOP)을 예외적으로 완화하기 위한 규칙입니다. 보통 개발자는 "프론트에서 API호출이 실패했다"라고 이해하고, console창에 "blocked by CORS policy"라고 뜨기 때문에, 서버가 막았다고 생각할 수 있습니다.실제로는 브라우저가 응답을 JS에 전달하지 않은 것인데, 실패 지점이 백엔드처럼 보입니다. 또한, 해당 에러는 Access-Control-Allow-Origin 같은 헤더를 추가하면 문제가 해결되기 때문에 오해할 수 있습니다. 즉 CORS는 서버가 막는게 아니라 브라우저가 막는 것이고, 서버는 이 ..

Frontend · UI 2026.01.12

왜 FastAPI는 http로 리다이렉트 될까? Nginx 프록시 환경에서 발생하는 Redirect 문제

FastAPI + Nginx 조합으로 서비스를 배포할 때 가장 자주 겪는 문제 중 하나가 있다.HTTPS 로 접속했는데 왜 HTTP로 리다이렉트 된다."/"로 끝나는 경로만 리다이렉트가 발생한다.이 문제는 단순히 서버 한 곳의 문제가 아니라, FastAPI의 URL 정책, Nginx의 프록시 동작, Uvicorn의 proxy 설정 문제가 서로 엇갈리면서 발생하는 현상이다. 전체구조 - Nginx는 HTTPS 종료 지점 이다.우리가 사용하는 구조는 대부분 아래와 같다. 클라이언트는 HTTPS로 접속하지만, FastAPI는 내부적으로 HTTP로 톧신한다. 즉, Nginx가 SSL을 종료하고 내부 FastAPI로 요청을 넘겨주는 구조다.FastAPI는 원래 요청이 HTTPS였는지 알 수 없다.Nginx가..

Backend · Infra 2025.12.17

Ai가 브라우저 보는 눈👀 : Cursor에서 Browser Tools MCP 사용하는 방법 (윈도우 + WSL)

Browser tools mcp 는 AI가 실제 브라우저와 연결되어 웹 페이지의 행동 데이터를 직접 수집 이해할 수 있게 해주는 도구입니다.장점1. 콘솔로그 네트워크 요청 스크린샷 등을 자동으로 캡쳐해서 디버깅이나 테스트에 활용 가능 2. AI가 실제 브라우저 동작을 관찰하므로, 코드만이 아니라 실행 결과까지 분석 가능3. 웹 페이지 UI변화나 오류를 시각적으로 파악할 수 있어 QA, 프론트엔드 디버깅에 유용.4. 로컬 테스트 자동화에 적합. 5. AI가 웹을 직접 보는 눈 👀 을 갖게 되어 코드와 화면을 함께 이해하는 개발 지원 가능. 사용방법브라우저 툴 MCP를 cursor AI에서 사용하기 위해서는 1. 크롬 익스텐션 2. 커서 연동 3. 서버 실행 의 단계가 필요합니다. 크롬 익스텐션 설정1. ..

Backend · Infra 2025.10.24

사내 개발 스터디 : 첫 세미나 발표 회고

2025.07.04 - [회고] - 사내 개발 스터디를 만들었습니다 사내 개발 스터디를 만들었습니다회사에서 개발자들과 기술 이야기를 나누는 방법 크래프톤정글과 팀메이트 활동을 하며 서로 다른 회사를 다니고, 서로 다른 분야의 개발을 하는 사람들이지만개발자들과 기술 이야기를 나눌devhyen.tistory.com사내 개발 스터디를 만든 후첫 세미나 발표를 끝냈다. 기획 모두의 퇴근 후 시간이 소중하기에, 6시부터 7시까지 한 시간으로 짧고 굵게 준비했다.세미나는 매달 말 진행하기로 했고, 이번엔 동호회 창립 후 첫 세미나였기에, 서로의 일정을 조율하다 보니 7월 세미나가 8월 초에 진행되었다. 앞으로 날짜를 고정으로 진행하게 될 듯 하다. 월간 세미나에서는 3명의 발표자를 자원받는다. 다행히 첫 세미나..

회고 2025.08.05

PKCE란? OAuth2 인증을 안전하게 만드는 핵심 보안 메커니즘

PKCE란? proof key for code exchange OAuth2에서 Authorization code flow 를 더 안전하게 만들기 위해 고안된 보안 메커니즘 Authorization Code Flow 의 문제점Authorization Code Flow는 앱이 사용자에게 로그인 페이지를 열고로그인 후 code를 redirect로 전달받고그 code를 가지고 서버에서 토큰을 받아오는 구조→ 이 과정에서code가 노출되면 해커가 가로채서 토큰을 받아갈 수 있음모바일 앱이나 SPA는 client_secret을 숨기기 어려움브라우저 히스토리, 네트워크 로그 등에서 탈취 가능어떻게 PKCE가 해결 할까?앱이 인증 요청할 때 "나는 이 인증 코드를 요청한 진짜 앱이다" 라는 증명(Proof)를 같이 보..

Backend · Infra 2025.07.22