분류 전체보기

    [Python] 'requests' has no attribute 'delete'

    문제 상황: requests 모듈을 임포트해서 API 요청을 보내는 코드를 실행시키니 에러가 뜸. AttributeError: partially initialized module 'requests' has no attribute 'delete' (most likely due to a circular import)해결 방안: import 하는 모듈과 같은 이름으로 파이썬 파일을 생성하는 경우 발생하는 에러. so simple 파이썬 파일 이름을 requests.py -> druid_delete.py로 바꿈.

    [spring/openfeign] Multipart 파일과 함께 json을 페이로드에 담아 다른 서버로 요청보낼 때 400 에러 발생(spring->fast-api)

    문제 상황 spring-boot 프레임워크를 사용하는 서버(A)에서 다른 서버로 feign client를 통해 파일과 함께 json 형식의 데이터를 페이로드에 담아 요청하려고 할 때, 400 Bad Request Parameter 에러가 발생 Content type: multipart/form-data 원인 feign으로 content-type이 multipart/form-data인 요청을 보낼 때 파일이 아닌 사용자 지정 POJO를 담게 되면 에러가 발생하는 이슈가 있었음. 해결 JsonFormWriter를 사용해서 configuration에 빈으로 등록하면 된다! class feignClientConfiguration { @Bean fun jsonFormWriter(): JsonFormWriter {..

    [트러블슈팅] fast api 에서 ValidationError 발생 시 500 에러가 발생& payload가 맞는데도 validation error 뜸

    문제 상황 spring-boot 프로젝트에서 fast api 프로젝트 서버로 요청을 보냈는데 500 에러가 발생 디버깅 결과 요청 바디 값 일부가 누락되어서 아예 안들어왔음. spring-boot 에서는 제대로 보내고 있는 상황 원인 요청 보낼 때의 바디와 서버(fast-api 서버)에서 받고자 하는 요청 바디가 안맞아 발생하는 422 unprocessable entity 가 아닌 500 Internal Server Error으로 반환된 이유: fast api 에서 ValidationError가 발생하는 경우 코드 내부의 큰 버그라고 간주하기 때문에 클라이언트(spring-boot 프로젝트)에게는 500으로 알린다. It should be this way because if you have a Pydan..

    [Kotlin] Collection 의 크기가 작은 경우 Sequence 가 성능이 더 떨어질 수 있는 이유

    Sequence는 다음과 같은 특징이 있어 컬렉션의 크기가 큰 경우 성능면에서 적합하다. 컬렉션의 계산 결과를 저장하는 과정에서 중간 리스트가 만들어지지 않음. --> 많은 메모리를 차지하게 될 수 있음 lazy 연산 방식으로 step-by-step 연산 방식으로 이루어 지지 않음. --> 최소한의 operation 이 이루어짐 infinite sequence가 가능하다. (

    누적합 알고리즘 (2022 카카오 - 파괴되지 않은 건물)

    누적합 알고리즘 (2022 카카오 - 파괴되지 않은 건물)

    해당 문제는 정확성과 효율성을 모두 고려해야하는 문제이기 때문에 매 스킬마다 해당하는 구간을 계산하면 O(KNM)의 시간 복잡도가 나오게 되어 실패한다. 그래서 처음 생각했던 방법은 큐를 만들어 치유인 경우에는 큐에 더하고 파괴 스킬일 때 큐를 먼저 차례대로 실행 후 파괴하면 어떨까 했는데 효율성에서 1개 빼고 모두 시간초과가 떴다.. 혼자서는 방법을 못찾겠어서 찾은 방법이 누적합 알고리즘 누적합 알고리즘은 알고리즘 이름대로 나열된 수(구간)의 합을 구하는 알고리즘이다. 다만, 이전처럼 매번 모든 구간에 합을 적용하는 방식이 아니다. 문제는 2차원이지만 1차원에서부터 시작한다면.. 방식은 간단하다. 구간 [i..j] 까지 n을 더하면 arr[i] = n, arr[j+1] = -n 값을 넣는 방식으로 계산..