최신 게시물
-
개념 @Transactional 안에서 catch해도 롤백되는 이유 (UnexpectedRollbackException) try-catch로 잡았는데 왜 전체 롤백될까? — Spring rollback-only 전파와 배치 트랜잭션 분리[Spring] 배치 루프에서 try-catch가 소용없던 이유 — rollback-only 전파와 TransactionTemplate(REQUIRES_NEW)배치 루프에서 개별 항목의 예외를 try-catch로 잡았는데도 커밋 시점에 성공분까지 전부 롤백되는 문제를 겪었다.원인은 Spring 트랜잭션의 rollback-only 마킹이었고, noRollbackFor 검토 후 기각, 최종적으로항목 단위 TransactionTemplate(REQUIRES_NEW)로 해결했다. 그 과정을 정리한다.1. 문제 상황퇴사자 정리 배치에서 한 사용자의 리소스(채팅방) 여러 건을 루프로 처리하고 있었다.한.. -
백준 [백준/C++] 1166번 선물 풀이 (탐색 횟수 설명) 문제 해석문제 풀이문제 알고리즘 선택우선 최대 박스의 크기와 갯수가 모두 10억개 이상이니 int 범위로는 overflow가 날 수 있다.단순 수학 문제로 생각했으나 정수가 아닌 실수 정답을 가지고 있어 추가적인 방법을 고민이분 탐색을 생각했고, 제출했으나 소수점 자리에서 무한 루프가 발생최대 실행 횟수를 고려하게 됨실행 횟수 풀이 과정정답은 1~109 까지 값을 가지고 소수점 역시 최대 9자리까지이므로 이분 탐색으로 log2(1018)이다.대략 18/0.3xx으로 59.x회최대 탐색횟수는 60으로 제한하고 실행하면 된다! (계산 어렵고 귀찮으면 100정도 잡아도 될 것 같다) 코 드#include using namespace std;int main() { long long int N, L, ..
-
일상+자잘한 일 [RabbitMQ] 설치부터 튜토리얼까지 for Linux 우선 APT를 사용하여 설치하는 방법과 dpkg를 직접 설치하는 방법이 있다. 공식 문서에서는 패키지 종속성(dependency)를 수동으로 설치해야 해서 dpkg 방법을 권장하지 않는다. 공식 문서는 apt 방법을 권장한다. 1. apt 설치 방법으로 바로가기2. dpkg 설치 방법으로 바로가기3. 예제로 바로 가기apt 설치 방법 https://cloudsmith.io/~rabbitmq/repos/ 이 링크에 최신 rabbitmq 버전을 올려두고 있지만 트래픽 제한으로 다운이 되지 않는 경우가 많기 때문에 아래와 같은 방법으로 따라오길 권장하고 있다. 우선 아래 코드들을 모두 빠짐없이 모두 기입해야한다.이 과정 중에서 빼먹어도 되는 부분은 없다고 공식문서에서 명시하고 있다.아래 코드는 cloudsmi..
-
개발일지-unsolved.hgu [Unsolved.ac/백엔드-2] 2번째 개발일지 개발 내용 3줄 요약1. APIs 호출 방법 정리2. Croller 공부 및 DB 연동3. RabbitMQ 공부 및 테스트 개발 소감OS에서 배운 지식이 백엔드 개발에서 필요하게 될 줄은 몰랐다. 프로세스간 통신을 위해서 message queue를 사용하게 되었는데, cs 지식이 도움이 됨을 느끼는 나날이다. 우선 rabbitMQ와 selenium을 처음 써봤는데 생각보다 다루기 쉽게 잘 만들어져있어서 좋았다.ISSUEBeautifulsoup의 동적 사이트 크롤링 불가문제 정보 크롤링시 오류 발생(문제 난이도가 없는 경우, 페이지가 없는 경우)배운 내용RabbitMQ 사용 방법 및 message queue 비교BS, Selenium과 같은 크롤러 사용법APIs 호출 방법 정리APIs 사용과 관련해서 문제..