[docker] docker-compose 업데이트! 무엇이 바뀌었고 언제까지 바꿔야 하는가?
·
DevOps/docker
무엇이 바뀌었는가 내부 코드 v1 은 python으로 개발됨 v2 는 Golang으로 개발! (from scratch!) standalone binary 파일이 아니라서 설치 방식이 v1과 좀 다름docker-compose → docker compose 명령어 사이에 - 없이 사용 가능 v1과 v2의 compatibility를 위해 compose-switch 유틸 제공 docker-compose python 코드를 docker compose Golang으로 converting! container 명명 방식 변경 언더스코어(_) 에서 하이픈 (-) 으로 변경 container 이름 기준으로 스크립트를 개발하였다면, -compatibility옵션을 사용하여 에러가 발생하지 않도록 설정 가능 BuildKit ..
[뉴비개발자 시리즈] 신입 개발자의 일탈 - 봇 만들기
·
devlog/etc
2017-09-29에 작성한 글을 옮겨왔습니다. 동기들 채팅방에서 썼던 봇에 관한 글입니다. 방정맞은 말투는 이해 부탁드립니다.. 지금 보니 신입이었을땐 딴짓도 개발로 했었네요 🙄 꿀잼 봇 만들기 도롱뇽농땡이봇이 일을 하고있다. 추석연휴를 맞아 봇을 하나 만들었습니다. 네 1분안에 완성 가능합니다. 예. 단축안해서 업무가 손에 안잡혀서 글 올려봅니다. 코드랄 것도 없지만 파이썬으로 ★우리회사★ 로 메세지를 날려보겠습니다. import requests, time, datetime, sys def let_the_world_know(): hook_url=[사내 메신저 채팅방 web hook url] image_url=[이미지 업로드된 cdn url] lunch_url=[세상에서 제일 중요한 그날의 점심 메뉴 ..
[Kotlin] Annotation Targets
·
BE
2019-06-12 에 작성한 글을 옮겨왔습니다. @Doc 어노테이션을 붙였을 때 문서화가 안되는 에러가 발생하였습니다. 디컴파일된 자바코드를 확인해보기 전까지는 다른 건 Java로 짰는데 이 클래스는 코틀린이라서 그런가? 라는 말도 안되는 의심을 했습니다..!:joy: 코틀린은... 코틀린의 property는 자바의 필드, getter, setter, 그리고 접근자의 파라미터로 해석될 수 있습니다. 그리고 코틀린의 property가 primary constructor에 선언 된 경우에는 생성자의 파라미터로도 해석이 됩니다. 의도하지 않은 방향으로 코드가 생성 될 수도 있으므로, annotation의 use-site 같이 명확한 용도를 정의해줘야 합니다. Annotation Use-site Targets..
[nginx] 서비스 점검공지 올리는 방법
·
DevOps/nginx
2019-03-04-nginx-점검-페이지.md 라는 이름으로 github.io 블로그에 올렸던 내용을 가져온 내용입니다. nginx 에서 간단하게 503 에러코드를 사용하여 점검페이지를 띄워보자 서비스 점검 공지 서비스 점검 공지 페이지가 사용되는 경우가 종종 있음. 장애 무중단이 불가능한 빅 업데이트 내가 속한 팀에서는 주로 위와 같은 사유로 점검페이지를 사용함. Nginx 를 L4 뒤, application 앞에 두는 구조이기 때문에 점검 페이지를 nginx 쪽에서 관리하고있음. 실제 점검 페이지는 html 파일로, 마크업/디자인 팀에서 전달받은 파일을 nginx 서버에 업로드 하여 사용함. nginx 설정 nginx에서 점검 페이지를 관리하려면 conf 파일에 수정을 해야함. http status..
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 발생 가능 (그런데 ..
[리팩토링] 에러로그 리팩토링에 대한 개발자1의 의식의 흐름
·
BE/BE
2019-04-11-errorlog-refactoring-devlog.md 라는 이름으로 이전 github페이지 블로그에 올렸던 글을 가져온 내용입니다. 2019년도 당시에 개발했던 내용에 대한 고민을 회고방식으로 남겼습니다. intro주문, 결제 관련 개발을 하는 파트에서 일하고 있는 개발자1입니다.   주된 업무를 마치고 잠시 쉬어가는 타이밍에 side task 정도로 기존의 에러로그 리팩토링을 진행하였는데, 간단한 업무였지만 나름의 (?!) 고민을 이것저것 하였습니다. 약간 생각의 흐름대로 작성한 리팩토링 고민 입니다. 업무를 요약하자면 다음과 같습니다.결제 관련한 에러로그를 찍을 때, 주문/결제관련 request model, 결제키를 가진 model 등 개인정보에 민감한 주문자에 대한 정보를 담고..
[성능] heap dump 분석 툴 / heap dump analyzer
·
DevOps/devops
설치 필요 X / 10mb 파일 사이즈 제한 있음 Heap Hero https://heaphero.io/ World-class heap Dump analysis - Java, Android memory dump analyzer How much memory your application wastes? Due to inefficient programming, modern applications waste 30% to 70% of memory. HeapHero is the industry's first tool to detect the amount of wasted memory. It reports what lines of source code originating the memor heaphero.io RE..
[Gradle] gradle 빌드 OOM 발생할땐?
·
devlog/TIL
CI/CD 단계중 빌드단계에서 OOM이 발생하는 경우가 얼마나 될까? 일단 지금까지 여러 어플리케이션의 빌드를 돌려봤지만 처음 경험해 봤다. 🤔 젠킨스 빌드 로그에는 아래와 같이 OutofMemoryError가 발생했다는 로그가 남아있다. 그리고 힙덤프 업로드 알림이 왔다. 힙덤프를 분석해보기 위해 MAT실행 > 분석! 이런 처음 보는 에러가 memory leak의 가장 의심되는 부분이라고 분석되었다. 원인을 위해 해당 검색을 해보았지만 딱히 도움되는 글을 발견하지는 못했다. (가장 관련있어 보이는 stackoverflow의 글 일단 링크) 빌드 oom이니까 gradle의 문제아닐까..? 일단 힙덤프를 봐도 모르겠으니, 다음 타겟인 gradle을 의심해봤다. 관련해서 자료를 찾아보니, gradle dae..