분류 전체보기

    [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 값을 넣는 방식으로 계산..

    Airflow: 외부 시스템과 통신 | 시스템 간 데이터 이동

    Airflow: 외부 시스템과 통신 | 시스템 간 데이터 이동

    요약 Airflow 오퍼레이터로 외부 시스템에서 태스크 수행 오퍼레이터를 구현하여 A-to-B 작업(시스템 간 데이터 이동) 구현 외부 시스템에 연결하는 태스크 테스트 1. 클라우드 서비스에 연결하기 에어플로우에서는 클라우드 서비스에 요청을 보낼 수 있도록 오퍼레이터를 제공함. 내부적으로 클라우드의 sdk를 사용해서 호출 1.1 추가 의존성 패키지 설치하기 서비스 연결을 위해서는 패키지 설치가 필요함. aws pip install apache-airflow-providers-amazon gcp pip install apache-airflow-providers-google Azure pip install apache-airflow-providers-microsoft-azure 이외 다른 외부 서비스도 해당..