본문 바로가기
728x90
320x100

💻 하나씩 차곡차곡/Back-end47

"나도 드디어...성능 최적화를...?" - 대용량 INSERT 성능 개선: SQL Session 배치 처리로 최적화하기 [서론]2025년 1월, 새해가 되니 내가 담당자?!작년에 클라이언트가 개선사항을 요청했고 현재 '운영중'이니 내년에 개선하겠다고 약속을 했으며, 그 약속을 했던 전임자는 떠나갔다. 그럼 개선은...? 올해 담당자인 내가 해야 한다. 그래서 써보는 개선 일지.  [요청사항]"1,000건 이상 엑셀 업로드를 할 때 자꾸 에러가 떠요! 1000건 이상 업로드 되게끔 해주세요!"  [문제상황 및 원인][상황] 대량 데이터 DB INSERT 시 성능 저하 및 오류 발생 (ORA-01653 등)[원인] 기존에는 개별 INSERT 문을 실행했으며, 1건씩 처리했기 때문에 성능 저하와 에러가 발생함.[상황] API 통신을 위한 데이터 변환시 속도 저하 발생 (1,500건 2분 가량 소요)[원인] 그리드 데이터를 가공.. 2025. 2. 7.
[Java] IllegalArgumentException VS IllegalStateException : 어떨 때 뭘 써야 하지? 개발할 때 IllegalArgumentException과 IllegalStateException를 자연스럽게 많이 쓰는 경우를 봤는데 어떨 때 어떤 걸 써야 할지 알아두고 싶어서 정리!  1. IllegalArgumentException목적 : 메서드에 전달된 인자가 잘못되었을 때 사용상황값의 유효성 검사 실패 : 인자가 범위를 벗어나거나 형식이 잘못된 경우.값이 특정 제약 조건을 만족하지 않는 경우 (ex.null 값 전달 금지)사용 예시: public void setAge(int age) { if (age 150) { throw new IllegalArgumentException("Age must be between 0 and 150."); } this.age = age.. 2025. 1. 17.
[JPA] 데이터베이스 연결이 안된다, 콘솔창에 DDL문이 안보인다 등등 오늘의 문제사이드 프로젝트 중, 데이터베이스를 연결하고 엔터티를 만들고 Run 했는데 원래라면 데이터베이스가 생성되어야 하고, 콘솔창에 DDL문이 보여야 하는데 안 보임. 원인application.properties 작성이 문제였음.spring.jpa.properties.hibernate.ddl-auto=create초기에는 위와 같이 작성을 하였는데 안되서 아래와 같이 변경해주었더니 됐음.spring.jpa.hibernate.ddl-auto=create-drop 왜?Spring Boot는 spring.jpa.hibernate.ddl-auto를 기본 설정으로 사용하도록 설계 되었고 spring.jpa.properties.hibernate.ddl-auto는 더 낮은 레벨에서 Hibernate에 직접 전달되기.. 2025. 1. 6.
[스프링(Spirng)] Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. 해결방법 [문제발생]스프링스타터를 이용하여 프로젝드를 생성해서 첫 Run을 했더니 아래와 같은 에러메세지가 떴다.***************************APPLICATION FAILED TO START***************************Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following:If you want an embedded database (H2, HSQL or Derby).. 2024. 12. 24.
시스템 설계 기초 (로드밸런스, 메세지 큐, CDN, DNS 등) 아래의 내용은 을 바탕으로 정리한 내용입니다.    사용자는 웹 브라우저나 모바일 앱을 통해 도메인 이름을 이용하여 웹사이트에 접속한다. 이 접속을 위해서 DNS에 질의하여 IP주소로 변환하는 과정이 필요하다.DNS(Dmain Name Service) : 도메인 이름을 IP주소로 반환한다. ex) www.test.com -> 100.100.100.100정적 콘텐츠 (JS, CSS, 이미지 등)은 웹서버를 통해 서비스하지 않고 CDN을 통해 제공하여 더 나은 성능을 보장한다. CDN(콘텐츠 전송 네트워크) : 정적 네트워크를 전송하는데 쓰이는, 지리적으로 분산된 서버의 네트워크로  JS, CSS, 이미지 등을 캐시할 수 있다.CDN 사용시 고려해야 할 사항 : 적절한 만료 시한 설정, 비용, 장에 애 대.. 2024. 8. 12.
[HTTP] HTTP상태코드 / HTTP헤더 HTTP 상태코드HTTP 상태코드는 웹 서버가 클라이언트의 요청을 처리한 결과를 나타내는 숫자 코드이다.이 상태 코드는 크게 5개의 범주로 나뉘며, 각 범주에는 다양한 코드가 있다.  1xx: 정보응답 (Informational Responses)1xx 코드는 서버가 요청을 수신했으며, 처리가 계속되고 있음을 나타낸다.100 Continue: 클라이언트가 요청을 계속 진행해도 됨을 나타낸다.101 Switching Protocols: 서버가 클라이언트의 프로토콜 전환 요청을 수락했음을 나타낸다.2xx: 성공 (Success)2xx 코드는 클라이언트의 요청이 성공적으로 처리되었음을 나타낸다.200 OK: 요청이 성공적으로 처리되었으며, 요청된 리소스가 응답과 함께 반환됨을 나타낸다.201 Created: .. 2024. 8. 9.
728x90
320x100