Transactional + DDD
·
devlog/TIL
2019년 12월 16일에 notion에 작성한 글을 옮겨 왔다.@Transactional + DDDfun requestRefund(request: RefundRequest): RefundResponse { val paymentInfo = 결제클라이언트.get결제정보(request.orderNo) return refund(refundDomainService.register(request, paymentInfo))}보통 외부의 호출이 일어날떄 transaction을 분리하는 경우는 다음과 같다.transaction이 이미 열렸고, 외부 호출을 하는 경우 timeout 같은 에러 발생 시, 지연된 시간만큼 transaction을 물고 있기 때문에 좋지 않다. → db lock 발생 가능 (그런데 ..
[Gradle] gradle 빌드 OOM 발생할땐?
·
devlog/TIL
CI/CD 단계중 빌드단계에서 OOM이 발생하는 경우가 얼마나 될까? 일단 지금까지 여러 어플리케이션의 빌드를 돌려봤지만 처음 경험해 봤다. 🤔 젠킨스 빌드 로그에는 아래와 같이 OutofMemoryError가 발생했다는 로그가 남아있다. 그리고 힙덤프 업로드 알림이 왔다. 힙덤프를 분석해보기 위해 MAT실행 > 분석! 이런 처음 보는 에러가 memory leak의 가장 의심되는 부분이라고 분석되었다. 원인을 위해 해당 검색을 해보았지만 딱히 도움되는 글을 발견하지는 못했다. (가장 관련있어 보이는 stackoverflow의 글 일단 링크) 빌드 oom이니까 gradle의 문제아닐까..? 일단 힙덤프를 봐도 모르겠으니, 다음 타겟인 gradle을 의심해봤다. 관련해서 자료를 찾아보니, gradle dae..
[Python] scp, paramiko 패키지 예제
·
devlog/TIL
파일 업로드에 사용할 python 패키지를 찾다가 scp, paramiko를 사용하여 아래와 같이 개발함! from paramiko import SSHClient from scp import SCPClient def upload_files(target, fileList): scp = connect_to_server() files = [] for file in fileList: filename = file.rstrip() file_full_path = "졀대/상대경로"+ filename scp.put(files=filename, remote_path=file_full_path, recursive=True) # fileList to # scp.put(files=files, remote_path=target_..
[vim] 좀 더 편-안하게 vim editor를 사용하는 설정
·
devlog/TIL
포매팅: shift, tab 4!!!!!!! 8이면 막 마음이 무너져 버려 set smartindent set tabstop=4 set expandtab set shiftwidth=4 지금당장 라인끝으로 커서를 이동하고 싶다 $ (shift + 4) 지금당장 파일의 제일 아래로 가고싶다 shift + g 지금당장 파일의 헤드로 가고싶다 shift + h
[TIL] fluentd & NGINX
·
devlog/TIL
다 설정하고 나니까 이런 에러가 로그에 남아있다 \[types removal\] Specifying types in bulk requests is deprecated. 이것은 대체 무슨 로그? https://www.elastic.co/guide/en/elasticsearch/reference/master/removal-of-types.html#_why_are_mapping_types_being_removed 엘라스틱 서치 버전8부터는 mapping type이 없어진다고 한다. 아마 엘라스틱서치 어딘가에서 mapping type을 계속 쓰고있어서 그런것 같다. 아니면 내 fluentd 설정인가? 이런 저런 이유라는데...어 읽어도 잘 모르겠다 지금은: https://www.elastic.co/guide/e..
뚝딱거리는 초보 devops의 TIL
·
devlog/TIL
max_map_count가 뭔가 https://stackoverflow.com/questions/11683850/how-much-memory-could-vm-use 이것이다. linux kernel Sonarqube의 스펙은 잘 맞춰야 한다 그렇지 않으면 이런 에러가 나기때문이다. 2020.08.28 02:28:49 ERROR es[][o.e.b.Bootstrap] node validation exception [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] ERROR: [1] bootstrap checks failed docker..
유용한 linux command 모음 (사실 나를 위한 포스트 | 계속 추가 중)
·
devlog/TIL
서버 timezone 변경 (한국시간) cp -p /usr/share/zoneinfo/Asia/Seoul /etc/localtime 서버 kernel version 확인 uname -v
[TIL] jooq 잘 모르겠다 🤔
·
devlog/TIL
삽질 로그 | 2019-05-30 갑분 1 = 0 ?! conditionStep = conditionStep.and(opo.ORDER_STATUS_TYPE.in(Lists.newArrayList(request.getOrderStatusTypes()))); 이런 경우의 jooq에서는 conditionStep.and(~~~) 자체가 AND 1 = 0 로 변경되어 쿼리가 실행됨. 고로 전 후에 무수히 추가한 and 조건들이 먹지 않음. 🐸개구려 갑자기 미국날짜? String 으로 받아온 평범한 날짜입력값이 미국식 포맷으로 바뀌는 매직. conditionStep = conditionStep.and(opo.ORDER_YMDT.between(DateUtils.forceParse(request.getStartYmdt..