Загружаем каталог…
Загружаем каталог…
전에 FMS 파일 목록을 매번 직접 검색하지 않고 한 번 인덱싱해서 H2에서 검색하게 바꿨다. 근데 실제 연결 쪽에서 또 문제가 있었다. /api/drive/list 요청이 정상적으로 끝나지 않는 경우가 있었다. 코드만 보면 요청도 보내고 있었고 URL이나 세션 설정도 들어가 있었다. 근데 어디에서 막히는지 알기가 애매했다. 그래서 이번에는 기능을 더 만드는 것보다 FMS 요청이 어느 단계에서 실패하는지 확인할 수 있게 만드는 작업 을 먼저 했다. 오류를 그냥 FMS 실패 하나로 두지 않았다 기존에는 연결이 안 되면 대부분 FMS 연결 설정과 서버 상태를 확인하세요. 정도로 끝났다. 이러면 설정 문제인지 연결 자체가 안 되는 건지 timeout인지 HTTP 오류인지 응답 형식이 이상한 건지 구분하기 어려웠다. 그래서 오류에 단계랑 종류를 따로 넣었다. Stage CONFIG LIST PERMISSION DOWNLOAD INDEX_WRITE VALIDATION 그리고 실패 종류도 나눴다. INVALID_CONFIG TIMEOUT CONNECTION_REFUSED HTTP_ERROR INVALID_RESPONSE INVALID_ROOT IO_ERROR 이제 로그를 보면 최소한 어디에서 실패했는지는 알 수 있게 했다. 그렇다고 경로나 세션을 로그에 찍지는 않았다 진단 정보가 필요하다고 해서 FMS 경로나 세션 값을 그대로 남길 수는 없었다. 그래서 로그에는 이런 정보만 남겼다. scheme host port HTTP status 요청 시간 HTTP version proxy 사용 여부 세션 존재 여부 세션 값 자체는 안 찍고 sessionPresent=true 정도로만 남긴다. 파일 경로나 요청 query도 로그에는 넣지 않았다. 그러다 HTTP 버전 쪽을 보게 됐다 로그를 추가해서 확인하다 보니까 배포된 HTTP reverse proxy 환경에서 Java HttpClient 의 cleartext HTTP/2 upgrade가 걸리는 부분을 보게 됐다. 그래서 FMS 목록 조회 요청만 builder.version(HttpClient.Version.HTTP_1_1); 로 고정했다. /api/drive/list 는 HTTP/1.1로 보내도록 바꿨다. 처음에는 FMS API 문제인가 싶었는데 실제로는 요청을 보내는 방식 쪽도 같이 봐야 했다. 이래서 로그가 필요했던 거였다. 인덱스 갱신 실패도 단계별로 남겼다 Drive 인덱스 갱신은 설정 확인 ↓ FMS 목록 조회 ↓ 파일 수집 ↓ H2 인덱스 저장 순서로 간다. 그래서 실패했을 때도 LIST에서 실패한 건지 INDEX_WRITE에서 실패한 건지 구분해서 로그를 남기게 했다. 화면에는 여전히 상세한 내부 오류를 보여주지 않는다. 사용자 화면에는 FAILED 정도만 보여주고 원인 확인은 서버 로그에서 하는 방식이다. 이번에는 기능보다 진단 가능하게 만드는 게 먼저였다 처음에는 인덱스만 만들면 FMS 검색 문제는 어느 정도 끝날 줄 알았다. 근데 실제 서버 연결까지 가니까 “왜 안 되는지 알 수 있는 구조”가 없으면 수정도 어렵다는 걸 바로 느꼈다. 이번 작업은 결국 FMS 실패 하나로 뭉뚱그리던 걸 어느 단계에서 어떤 종류로 왜 실패했는지 확인할 수 있게 바꾼 작업이었다. 그리고 그 과정에서 FMS 목록 요청은 HTTP/1.1로 보내도록 수정했다.
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
FMS 인덱스는 만들었는데 실제 서버에서 요청이 멈췄다. 전에 FMS 파일 목록을 매번 직접 검색하지 않고 한 번 인덱싱해서 H2에서 검색하게 바꿨다. 근데 실제 연결 쪽에서 또 문제가 있었다. /api/drive/list 요청이 정상적으로 끝나지 않는 경우가 있었다. 코드만 보면 요청도 보내고 있었고 URL이나 세션 설정도 들어가 있었다. 근데 어디에서 막히는지 알기가 애매했다. 그래서 이번에는 기능을 더 만드는 것보다 FMS 요청이 어느 단계에서 실패하는지 확인할 수 있게 만드는 작업 을 먼저 했다. 오류를 그냥 FMS 실패 하나로 두지 않았다 기존에는 연결이 안 되면 대부분 FMS 연결 설정과 서버 상태를 확인하세요. 정도로 끝났다. 이러면 설정 문제인지 연결 자체가 안 되는 건지 timeout인지…