반응형 Spring Data JPA 에는 ON DUPLICATE KEY UPDATE 가 없다 ! 어떻게 해야할까 ! 이번에 새로운 서비스를 개발하다가 필요한 기능이 생겼다.이번 서비스는 일종의 크롤링과도 관련이 있다. 주기적으로 타 API를 호출하여 데이터를 가져와서1. 기존 데이터셋에 추가하거나2. 기존 데이터의 필드 중 변경사항이 있다면 업데이트해주어야 한다. 문제는, 타 API에서 하나의 데이터를 두 개로 관리해주고 있다.그래서 나는 이 데이터를 합쳐서 하나의 테이블로 관리해주어야 한다. API 1은 기본 정보에 관한 것이다.{ userId: 1, name: "john", phone: "012-3456-789"} API 2는 세부 정보에 관한 것이다.{ userId: 1, job: "Student", introduce: "Hello, my name is jonh", vi.. 2025. 2. 19. AWS 불완전한 멀티파트 업로드 용량 관리하기 백엔드 서버를 개발함에 있어서 파일 업로드 기능을 구현할 때 대표적인 방법은 3가지가 있습니다. 1. Stream2. MultipartFile3. AWS Multipart upload 1, 2번 방식을 이용하면 파일 업로드나 임시 파일 관리에서 결국 서버를 경유해야 하기 때문에하나의 통합된 서버에서 서버의 리소스가 충분치 않다면, 업로드 작업을 처리하느라 다른 작업들에 대해 영향을 받을 수 있게 됩니다. 적은 자원으로 서버를 운영하면서 파일 업로드도 구현하기 위해서는 3번 방법이 적절하나, 구현 난이도는 제일 복잡하며이는 단순 이미지 파일만 업로드가 필요한 서비스의 경우에는 오버엔지니어링이라고 볼 수도 있습니다. 저는 파일/이미지 업로드를 제공하는 서비스이기에 3번(AWS Multipart uploa.. 2025. 2. 19. Spring Kotlin에 Ktlint 적용하기 Ktlint는 Kotlin 언어의 공식적인 컨벤션을 준수할 수 있도록 스타일을 검사해 주는 도구입니다.깔끔한 코드를 작성하는데 있어서의 약속이자 규약이기도 합니다. 꼭 지켜야 하는 것은 아니지만, 가독성을 고려하여 협업을 위해선 권장되는 방식입니다.우아한테크코스 6기를 진행하는 동안에도 현직자분들과 코드리뷰를 할 때 Ktlint를 적극적으로 활용하고 있습니다.개행이나 들여쓰기가 제각각 멋대로라면 코드 읽기가 불편하겠죠? 협업을 한다면 적극적으로 활용하시길 바랍니다! build.gradle.kts에 다음 의존성을 추가합니다.plugins { id("org.jlleitschuh.gradle.ktlint") version "12.1.0"} 그러면 설정이 끝났습니다! 2가지 방법으로 사용합니다대표적으로.. 2025. 2. 19. Exceeded limit on max bytes to buffer: 해결하기 AWS EC2 서버에서 크롤링을 진행하는 과정에서 문제가 발생하였다.API 호출에 대해 3번까지 retry를 걸었지만, 3번 모두 실패한 경우가 발생하였고특정 페이지 특정 데이터를 가져오려고 할 때에만 문제가 발생한다는 특이점을 얻었다. 처음 마주한 Exception은 아래와 같았다org.springframework.web.reactive.function.client.WebClientResponseException: 200 OK from GET 내 EC2 서버에서는 WebClient를 사용했고, 이 에러는 WebClient를 사용해서 데이터는 200 OK로 성공적으로 호출했으나데이터 변환 등의 과정에서 문제가 발생했다는 오류였다. 곧바로 내 로컬 서버에서도 돌려본 결과 마찬가지로 특정 페이지에 대해서만 .. 2024. 11. 5. 이전 1 2 3 4 5 ··· 243 다음 반응형