Recent Post
-
TroubleShooting
외부 API 연동 시 세션(loginInfo) 초기화 현상
1. 증상발생 시점: 외부 장비 조회 API를 호출한 뒤 페이지 새로고침 시증상: 로그인 정보(loginInfo)가 사라지고 로그인 페이지로 리다이렉트됨특이사항: 장비 조회 직후에는 화면상 loginInfo가 유지되어 보이고, 새로고침 후에만 세션이 없는 것처럼 동작2. 원인2.1 요약외부 API(프록시 경유) 응답에 포함된 Set-Cookie 헤더가 우리 도메인으로 전달되면서, 기존 세션 쿠키가 덮어쓰이거나 제거됨.2.2 상세프론트에서 장비 조회 시 같은 오리진으로 요청을 보냄예: https://our-domain.com/api/external/...이 요청은 Nginx(Vite 프록시 등)를 통해 외부 API로 프록시됨예: https://api.example-external.go.kr/...외부 AP..
-
TroubleShooting
음성인식 모바일 호환성 트러블슈팅
발생 환경: iOS Safari, iOS Chrome, Android Chrome요약Web Speech API 기반 음성인식이 모바일(iOS, Android Chrome)에서 동작하지 않던 문제를 단계적으로 해결.최종 원인은 스펙트럼 시각화의 getUserMedia 호출이 Web Speech API의 마이크 접근을 차단한 것.문제 1. iOS에서 음성인식이 아예 시작되지 않음증상마이크 버튼을 눌러도 음성인식이 시작되지 않음스펙트럼은 움직이나 인식된 내용이 표시되지 않음원인continuous: true 설정이 iOS Safari / iOS Chrome(WebKit)에서 미지원.iOS는 Android Chrome(Blink)과 달리 WebKit 엔진을 사용하며,continuous: true 상태에서 인식 세..
-
TroubleShooting
사용자 이탈 방지 로직(뒤로가기/새로고침 차단) 최적화
1. 발생 이슈활동 일지 작성 페이지에서 사용자가 입력 중인 데이터가 실수로 유실되는 것을 방지하기 위해 이탈 방지 로직을 구현했으나, 다음과 같은 기술적 결함이 발생했습니다.히스토리 스택 오염: 데이터 입력 시마다 브라우저 히스토리에 불필요한 엔트리가 계속 추가됨.뒤로가기 기능 오작동: 이탈 확인 창에서 '확인'을 눌러도 이전 페이지로 이동하지 못하고 현재 페이지에 갇힘.라이브러리 제약: useBlocker 등 최신 API 도입이 어려운 환경에서 브라우저 네이티브 API(popstate) 제어 로직의 불안정성 노출.2. 원인 분석잘못된 의존성 배열 설정: useEffect 내 로직이 formData와 selectedFiles의 변화에 반응하도록 설정되어, 값이 수정될 때마다 이벤트 리스너가 재등록되고 ..
-
TroubleShooting
리액트 API 호출 구조 리팩토링: useEffect에서 React Query로의 전환
1. 발생 이슈기존 프로젝트에서는 컴포넌트 내에서 useEffect와 axios.get을 직접 사용하는 방식으로 데이터를 페칭했습니다. 하지만 프로젝트의 규모가 커지면서 다음과 같은 관리 효율성 저하 문제가 발생했습니다.코드 중복: 모든 컴포넌트에서 인증 헤더(Token) 설정, 로딩/에러 상태 관리(useState)가 반복됨.컴포넌트 비대화: UI 렌더링에 집중해야 할 컴포넌트 파일에 API 호출, 데이터 가공 등의 비즈니스 로직이 섞여 가독성이 떨어짐.성능 문제: 동일한 데이터를 여러 곳에서 사용할 때 중복 호출이 발생하며, 클라이언트 측 캐싱이 전혀 이루어지지 않음.2. 원인 분석관심사 분리(SoC)의 부재: UI 레이어와 네트워크 레이어가 강하게 결합(Strong Coupling)되어 있어 하나를..
-
TroubleShooting
Jenkins-SonarQube 연동 에러: "The ‘report’ parameter is missing" (HTTP 400)
최근 사내 CI/CD 파이프라인을 점검하던 중, 소나큐브(SonarQube) 분석 단계에서 발생한 에러를 해결한 과정을 공유합니다. 단순한 설정 오류가 아닌 인프라 환경 이슈였기에, 비슷한 문제를 겪는 분들에게 도움이 되길 바랍니다.1. 발생 이슈 (Issue)Jenkins 빌드 로그에서 소나큐브 분석 리포트를 서버로 전송하는 과정 중 아래와 같은 에러가 발생하며 빌드가 중단되었습니다.에러 메시지:The ‘report’ parameter is missing단순히 파라미터가 누락되었다는 메시지만으로는 원인을 파악하기 힘든 상황이었습니다.2. 원인 분석 (Analysis)🔍 로그의 깊이 더하기 (-X 옵션)가장 먼저 수행한 것은 로그의 상세화입니다. Jenkinsfile의 실행 스크립트에 디버그 모드(-X..