분류 전체보기 (31) 썸네일형 리스트형 [aws ec2] cpu 100% 점유 시 서버 죽음 최근 프로젝트에서 pytorch를 쓰는 인공지능 모델을 FastAPI 서버에 연결하는 작업을 진행하던 중 서버 전체가 다운되고 SSH 접속까지 불가능해지는 심각한 문제가 발생했다. 오늘 하루종일 문제를 찾아봤는데, 결론적으로 근본 원인은 인공지능 모델 실행 시 CPU 점유율이 100%까지 상승하는 현상 때문인 것 같다. (이하 내용은 chatGPT를 사용함)1. 문제 증상FastAPI 서버에 모델 자동화 기능을 붙인 뒤 API를 실행하자:API 요청이 들어간 순간 서버가 즉시 멈춤EC2 CPU 사용률이 100% 인접SSH 접속 불가 (포트 응답 없음)인스턴스 상태는 “정상”이라 뜨는데 실제 접근은 안 됨서버가 혼자 “복구”되기까지 매우 오래 걸림 (수십 분~수 시간)즉, CPU가 풀로 먹혀서 인스턴스 전.. [web] update api API 500/403 오류 1. 문제 증상클라이언트에서 일기 상세 조회/수정을 요청했을 때,서버는 정상적으로 동작했지만 500 오류(ambiguous handler)나 403 오류(권한 없음)가 발생함.특히 GET /api/diary/19 같은 요청 시 중복 매핑 에러로 500 발생.프런트 코드 수정 후에도, 여전히 /api/diary/{id}로 요청이 가면서 403 Forbidden이 발생함.2. 원인 분석1) 서버 라우팅 중복숫자 ID를 처리하는 매핑(/{id})이 여러 개 정의되어 있어 Ambiguous handler methods 오류가 발생.따라서 어떤 메서드를 호출해야 할지 서버가 결정하지 못함.2) 클라이언트 요청 경로 불일치서버는 /api/diary/id/{id}로 경로를 변경했는데,클라이언트는 여전히 /api/di.. [web] 서버에서 생성한 데이터가 fetch된 JSON에 보이지 않음 1. 문제 증상클라이언트에서 어떤 데이터를 서버에 전송했을 때,서버는 내부적으로 추가 계산을 해서(예: 본문 중 앞 20자만 잘라 요약 텍스트를 만듦) 새로운 값을 생성함.백엔드 로그상으로는 값이 잘 생성되고 저장까지 되었지만,클라이언트가 받은 JSON 응답에는 그 값이 보이지 않음.2. 원인 분석서버 쪽은 정상 작동서버 로그와 저장 결과를 확인해보니 값이 생성되어 처리까지 됨.따라서 직렬화 문제나 서버 로직 오류는 아님.클라이언트 요청 경로가 잘못됨클라이언트가 데이터를 조회할 때 올바른 API 주소가 아닌 다른 주소를 호출하고 있었음.그 결과 서버가 내려주는 데이터 구조가 달라져, 기대한 값이 응답에 포함되지 않음.클라이언트에서 서버 응답을 무시데이터를 보낸 뒤 서버가 돌려준 응답(JSON)을 사용하지.. [web] 로그아웃 시 cors에러 해결 문제 요약React에서 axios.post("/logout")으로 로그아웃 요청을 보냈더니,Spring Security에서 로그아웃 후 Google OAuth 로그인 URL로 리다이렉트되면서 CORS 에러가 발생.문제원인해결증상원인해결로그아웃 시 콘솔에 CORS 에러 발생 (No 'Access-Control-Allow-Origin'...)Axios 요청이 /logout → 서버가 Google 로그인 URL로 302 리다이렉트 → XHR이 cross-origin으로 이동 시도 → 구글이 CORS 허용 헤더를 안 보내서 브라우저가 차단Axios 대신 window.location.assign("/logout")으로 전체 페이지 이동 처리하여 CORS 검사 없이 동작 1. 리다이렉트와 CORS의 관계XHR/Ax.. [web] React PrivateRoute 적용 시 무한 로그인 리다이렉트 발생 문제 요약로그인하지 않은 사용자가 보호된 페이지로 접근 시 /login으로 이동시키는 PrivateRoute를 적용했으나,/login 페이지에서 계속 리다이렉트가 발생해 무한 루프가 생김.문제원인해결 증상원인해결/login 페이지 접근 시 계속 /login으로 리다이렉트isAuthenticated 초기값이 false라서 로그인 여부 확인 전에도 PrivateRoute가 실행됨로딩 상태(loading)를 추가해 인증 체크가 끝난 후에만 PrivateRoute 실행공개 페이지에서도 PrivateRoute 동작/login 같은 공개 라우트를 PrivateRoute로 감쌈/, /login, /register 등 공개 페이지는 PrivateRoute에서 제외 1. 초기값 문제isAuthenticated가 fals.. [web] db 연결 오류 - jdbc.exceptions.CommunicationsException (db없음) 문제 요약Spring Boot 프로젝트를 실행했지만 localhost:8080 접속이 되지 않았고, DB 연결이 되지 않음.DB 연결 설정은 정확했으며, RDS 퍼블릭 액세스, 보안 그룹, 비밀번호 등도 문제없었음.com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. java.sql.SQLSyntaxErrorException: Unknown database 'db이름' 원인Spring.. [web]spring, react 로 google 로그인 만들던 중 실수 모음 문제 요약구글 로그인 후 /mypage로 이동했지만,React에서 VITE_API_BASE_URL이 undefined가 되고,이후 API 요청 실패 + Spring 서버 500 오류(Whitelabel Error Page)가 발생문제원인해결 import.meta.env.VITE_API_BASE_URL 가 undefined.env는 존재했지만 Vite가 인식하는 접두어(VITE_)가 아니었거나 빌드 반영 안 됨VITE_API_BASE_URL로 변수명 변경 → npm run build 다시 실행구글 로그인 시 Invalid credentials테스트 사용자 미등록, 동의 화면 미설정Google Cloud Console에서 본인 계정 등록 + 앱 게시/api/user/me 요청이 404Spring 서버가 요청.. [네이버 부스트캠프 web 10기] 베이직 과정 회고 https://boostcamp.connect.or.kr/지원한 이유 네이버 부스트캠프 10기 베이직에 참여하게 된 이유는 1학기를 마치고 나서 구현력이 많이 부족하다는 생각이 들었기 때문이다. 이제는 어느 정도 전문성을 갖춘, 취업을 위한 공부가 필요하다고 느꼈지만 아직 진로가 확실하지 않은 상황에서 한 학기 전체를 투자하는 부트캠프에 바로 참여하기엔 부담이 있었다. 그 와중에 네이버 부스트캠프는 베이직–챌린지–멤버십의 단계적인 과정으로 진행된다고 들어, 일단 10일간의 베이직 과정에 참여해보고자 지원하게 되었다. 활동 내용과 난이도 베이직 과정의 난이도는 솔직히 쉽지는 않았다. 이전까지는 학교 과제, 동아리 팀 프로젝트, (비교적 쉬운) 백준 문제 등을 중심으로 공부해왔는데, 부스트캠프는 단순 .. 이전 1 2 3 4 다음