[Python] RuntimeError: module compiled against API version 0xf but this version of numpy is 0xe 에러 해결
·
개발 (Development)/Python
파이썬 개발을 하다 보면 라이브러리 간의 버전 충돌이나 호환성 문제로 예상치 못한 오류를 만날 때가 있습니다. 최근 저도 requirements.txt에 있는 라이브러리를 설치하고 코드를 실행했을 때, 아래와 같은 RuntimeError를 겪었습니다.발생했던 문제: RuntimeError: module compiled against API version 0xf but this version of numpy is 0xepip install numpy를 성공적으로 마친 후 main.py 파일을 실행하자마자 위와 같은 오류 메시지가 떴습니다.이 메시지는 '특정 모듈이 컴파일된 파이썬 API 버전(0xf)과 현재 설치된 NumPy 버전(0xe)의 API가 서로 다르다' 는 의미입니다. 쉽게 말해, 파이썬 인터프..
[General] 세션을 끊고 UI 조작으로 로그 확인하는 방법 (테스트용)
·
개발 (Development)/General
웹 개발을 하다 보면 '세션이 만료된 상태'에서 UI를 조작했을 때, 시스템이 어떻게 동작하는지 확인해야 할 때가 있습니다. 사용자 경험 측면에서는 "세션이 만료되었습니다. 다시 로그인해주세요"와 같은 메시지가 뜨는 게 좋겠지만, 개발자는 백엔드와 프론트엔드에 어떤 로그가 남는지 확인해야 할 때가 많습니다.이 글에서는 테스트 목적으로 세션을 강제로 끊고, UI 조작을 통해 로그를 확인하는 방법을 알려드립니다.1. 가장 확실한 방법: 로그아웃 기능 사용대부분의 웹 애플리케이션에는 로그아웃 기능이 있습니다. 로그아웃 버튼을 누르면 서버에 세션 종료 요청이 전송되고, 서버는 해당 세션 정보를 무효화합니다. 이 방법은 가장 안전하고 정상적이지만, 테스트를 위해 매번 로그인과 로그아웃을 반복하는 것은 번거로울 수..
[Java/Spring Boot] "No thread-bound request found" 에러 원인과 해결법
·
개발 (Development)/Java
이 에러는 현재 실행 중인 스레드에 웹 요청(HttpServletRequest) 정보가 바인딩되어 있지 않다는 의미입니다. 주로 비동기 작업(@Async)이나 백그라운드 스레드에서 Spring MVC의 요청 컨텍스트에 접근하려 할 때 발생합니다.🔍 에러 원인과 시스템에 미치는 영향이 에러는 스레드의 경계를 넘나드는 요청 정보 접근 때문에 발생합니다. Spring MVC는 웹 요청을 처리하는 스레드에 HttpServletRequest와 같은 데이터를 연결합니다. 하지만 @Async나 new Thread()로 새로운 스레드를 생성하면, 이 스레드는 기존의 요청 정보를 공유하지 않습니다. 따라서 새로운 스레드에서 RequestContextHolder를 사용해 요청 정보에 접근하려 할 때 에러가 발생합니다.이..
[Java/Spring Boot] JdbcTemplate으로 여러 데이터베이스 연결하기
·
개발 (Development)/Java
한 프로젝트에서 하나의 데이터베이스만 다루다가, 새로운 데이터베이스가 추가되면 기존 구조를 확장해야 합니다. 이 글에서는 JdbcTemplate를 활용해 여러 개의 데이터베이스를 연결하고 선택적으로 실행하는 과정을 정리합니다.문제 정의기본적으로 JdbcTemplate는 하나의 DataSource를 참조하여 단일 데이터베이스에 접근합니다.새로운 데이터베이스를 연결해야 할 때, 별도의 설정과 JdbcTemplate 등록이 필요합니다.SQL 실행기를 공통화하여 코드 중복을 줄이고, 대상 DB만 선택해서 실행할 수 있어야 합니다.DataSource 등록Spring Boot에서는 DataSourceProperties를 통해 손쉽게 데이터소스를 생성할 수 있습니다. 데이터베이스마다 접두어를 달리 설정하면 여러 개의..
[Java/Spring Boot] Spring Boot에서 OAuth2 인증 401 오류 해결하기
·
개발 (Development)/Java
Spring Boot 기반 서비스에서 OAuth2 인증을 적용하다 보면, 어떤 API는 잘 동작하는데 특정 API에서만 401 Unauthorized 오류가 발생하는 경우가 있습니다. 이번 글에서는 실제 문제 해결 과정을 바탕으로, 원인 파악과 수정 방법을 정리해 보겠습니다.문제 상황여러 개의 API 서비스를 운영하며 공통 인증을 적용했습니다.일부 API는 정상 응답하지만, 특정 API 호출 시 401 Unauthorized 오류가 발생했습니다.서버 로그에는 별다른 오류가 없어 원인 추적이 쉽지 않았습니다.원인 후보처음에는 다양한 가능성을 의심했습니다.보안 필터 체인 매칭 문제: 특정 경로가 올바른 SecurityFilterChain을 타지 않는 경우게이트웨이/프록시 문제: Authorization 헤더..