토마토의 개발일지
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • Development (144)
      • Languege (39)
        • Java & Spring (27)
        • C# & ASP.NET (5)
        • JavaScript (2)
        • Kotlin (5)
      • DB (0)
        • Oracle (0)
      • Study (72)
        • 네트워크 (3)
        • 이펙티브 자바 (41)
        • 우아한 테크 코스 (7)
        • Next Step (3)
        • Certificate (5)
        • Side Proejct (6)
      • Error (18)
        • 개발환경 (10)
        • 트러블슈팅 (6)
      • Algorithm (12)
      • 개발환경 (1)
      • 회고 (2)
  • 홈
  • 태그
  • 방명록
Error/트러블슈팅

[ORACLE] 대규모 데이터 마이그레이션 도전

제목 : [ORACLE] 대규모 데이터 마이그레이션에서 인덱스 비활성화가 가져다주는 이점⚠️ 운영 환경에서 대규모 마이그레이션 시 발생하는 문제Oracle DB에서 기존 마켓 테이블의 이미지 여러 컬럼(IMAGE_URL1 ~ 4)로 구성된 데이터를 No 체계로 별도의 테이블로 관리하고 마켓 테이블에서는 IMAGE_NO를 마이그레이션하여 별도의 이미지 관리 테이블에서 URL을 관리하도록 구조 변경을 진행할 때 대규모 UPSERT 작업이 필요했습니다.처음 배치를 통해 점진적 마이그레이션을 진행하려 했지만, 내부 의견으로는 번거로우니 서비스 중단 후 한번에 작업하자 로 결정되어 빅뱅 패치를 진행하게 되었습니다.운영 환경에서 한 번에 모든 데이터를 마이그레이션하다 보니, 개발 환경과 비교해서 처리 속도가 급격히..

2025. 4. 17. 07:48
Error/트러블슈팅

[JAVA] ENUM에 setter를 쓰면 생기는 일 (feat. 싱글턴)

⚠️운영 환경에서 Java enum의 상태 변경으로 인한 문제 발생Java에서 enum을 사용하여 미리 메시지를 설정해두고, 해당 메시지가 동적으로 변경되는 로직이 있었다. 그러나 운영 환경에서 간헐적으로 이상한 메시지가 내려가는 문제가 발생하였다. 👌문제찾기Issue에 사용자가 이상한 오류 메시지를 받는 문제가 있었다.간헐적으로 비정상적인 Validation 오류 메시지가 사용자에게 반환되었다. ex) 비밀번호를 입력해주세요 -> 잘못된 아이디 입니다처음에는 해당 메시지가 어디서 오는지 찾고 있었지만, 외부 API에서도 코드에서도 해당 메시지를 발견할 수 없었다. 하지만 DB에 특정 오류 상황에 해당 메시지가 저장되는걸 발견했지만, 해당 API에서 메시지가 변경되는걸 확인할 수 없었다.그렇다면 원인은..

2024. 12. 10. 20:16
Error/트러블슈팅

[Trouble Shooting - CORS] Spring Boot CORS 와일드카드(*) 설정방법

💥 개요 사이드 프로젝트 진행 시 항상 문제가 되던건, CORS였습니다. CORS란 CORS(Cross-Origin Resource Sharing)는 클라이언트(웹 브라우저)에 의해 제어되는 HTTP 기반 보안 메커니즘입니다. 이를 통해 서비스(API)는 클라이언트가 요청할 수 있는 오리진 이외에 요청할 수 없는 오리진도 표시할 수 있습니다. 한 오리진에서 로드한 웹사이트(HTML 문서 또는 JS 스크립트)가 다른 오리진의 리소스와 상호 작용할 수 없게하는 SOP(Same-origin policy)와 함께 설계되었습니다. CORS는 일부 크로스 오리진 요청을 명시적으로 허용하고 다른 요청은 거부하는데 사용됩니다. CORS는 기본적으로 웹 브라우저에서 구현되지만 API 클라이언트에서도 옵션으로 사용할 수 ..

2023. 7. 22. 20:35
Error/트러블슈팅

[Trouble Shooting - Transaction과 DB Session] DB 특정 테이블 (row) 업데이트 안되는 문제

💥 개요 각자 개발된 프로젝트를 병합(리펙토링)하는 과정에서 요구사항에 포함된 신규 API를 구현하는 도중, DB 특정 테이블의 Row에서 Update가 Excution time만 증가하고 update는 실행되지 문제가 발생함 ❓ 문제 원인 레거시 프로젝트 어플레케이션 로직에서 트랜잭션을 실행하고, update를 하는데 성공시 1이 return되고 실패시 -1이 반환되는 코드 개발 중간 테스트하던 도중 아래 코드와 같이 문제가 발생함. public class JdbcActorDao implements ActorDao { private JdbcTemplate jdbcTemplate; public void setDataSource(DataSource dataSource) { this.jdbcTemplate ..

2023. 7. 17. 14:19
Error/트러블슈팅

[Trouble Shooting - RequestBody와 생성자] 스프링부트 LocalDateTime JsonFormat 안됨

개발 중 있었던 일, 통합 API 테스트 코드 작성 중 특정 도메인의 생성 테스트 코드가 동작하지 않고 아래와 같이 오류가 발생했다. com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.time.LocalDateTime` from String "2023-05-19 16:51:32230519 16:51:32": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '2023-05-19 16:51:32230519 16:51:32' could not be parsed at i..

2023. 5. 19. 18:39
Error/트러블슈팅

[Trouble Shooting] Spring boot 중복 파일 업로드시 file not found에러 발생

오늘은 프로젝트를 진행하며 겪었던 파일 업로드 관련 에러를 말해보려고 한다. 프론트단에서 아래와 같은 여러개의 파일을 업로드를 구현했을때, 백엔드에서 동일한 파일 저장시 file not found에러가 발생하는 문제가 생겼다. (왜 저장이 안되는거지?) 파일1 파일2 파일3 파일4 const fileInput = document.querySelector('input[name="uploadFile"]'); const uploadButton = document.querySelector('#uploadButton'); uploadButton.addEventListener('click', function() { const files = fileInput.files; const formData = new Form..

2023. 4. 26. 22:14
  • «
  • 1
  • »

공지사항

  • GitHub & WorkSpace

전체 카테고리

  • Development (144)
    • Languege (39)
      • Java & Spring (27)
      • C# & ASP.NET (5)
      • JavaScript (2)
      • Kotlin (5)
    • DB (0)
      • Oracle (0)
    • Study (72)
      • 네트워크 (3)
      • 이펙티브 자바 (41)
      • 우아한 테크 코스 (7)
      • Next Step (3)
      • Certificate (5)
      • Side Proejct (6)
    • Error (18)
      • 개발환경 (10)
      • 트러블슈팅 (6)
    • Algorithm (12)
    • 개발환경 (1)
    • 회고 (2)
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

  • #자바
  • #제네릭
  • #스프링
  • #스프링부트
  • #Java
  • #saa
  • #구글 클라우드
  • #후기
  • #도메인 주도 개발
  • #파이썬
  • #BOJ
  • #백엔드
  • #AWS
  • #우테코
  • #트러블슈팅
  • #코틀린
  • #김영한
  • #김영한 스프링
  • #spring
  • #개발자
  • #GCP
  • #이펙티브자바
  • #클라우드
  • #effective java
  • #TDD
  • #객체지향
  • #백준
  • #spring boot
  • #kotlin
  • #이펙티브 자바
MORE

전체 방문자

오늘
어제
전체

블로그 인기글

Powered by Privatenote Copyright © 토마토의 개발일지 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바