Java

Java

[GC] 나야 메모리, 근데 이제 누수를 곁들인

들어가며이번 글은 메모리 관련 이슈의 정의와 해결 과정을 공유하여, 유사한 문제를 겪는 개발자분들께 도움이 되고자 작성했습니다. 또한, GC 동작 원리를 심도 있게 탐구함으로써 이해도를 높이고, 문제 해결 과정에서 발생했던 몇 가지 오해를 바로잡아 추후 유사한 문제를 예방하는 것을 목표로 합니다. * 본 글은 Java8 버젼 JVM의 CMSGC에 대한 내용입니다.사건의 발단 - 성장하는 메모리APM을 모니터링 하던 중 이상현상을 보이는 지표를 발견했습니다. (((아 메모리 주식 살 걸) 라고 할때 살 걸) 라고 할 때 살 걸) 라고 할 때 살 걸 지속적인 성장을 보여주는 메모리를 발견했습니다.(왜 나 대신 니가 성장을) 배포하고 난 이후로 지속적인 우상향을 보여주고 있는 상황이여서 메모리 누수를 의심하게..

Java

[Base64] 빼앗긴 Parameter 찾습니다.

들어가며Base64 인코딩과 디코딩에 대한 이해 부족으로 인해 문제를 해결하는 과정에서 어려움을 겪었던 경험을 바탕으로 이 글을 작성하게 되었습니다. Base64에 대해 저와 비슷한 고민을 하신 분들, 혹은 개념은 알고 있지만 막연하게 이해하고 계신 분들에게 도움이 되고자 글을 작성했습니다. 이번 글에서는 Base64가 무엇인지, 왜 사용하는지, 어떤 특징이 있는지를 살펴보고, 그와 관련된 몇 가지 오해와 사실에 대해 이야기해 보겠습니다. Parameter 를 빼앗겼습니다.기프티콘 API 발송 작업 진행 중 기프티콘 쿠폰 코드가 화면에서 넘어오지 않는 현상이 발생했습니다. 개발자 도구로 Network를 확인 한 결과 클라이언트 에서는 정상적으로 전달 한 것으로 나오는 상황이였습니다. Payload : 전..

Java

[Transactional] 거래가 왜 없었을까요?

지난글...https://kyeum-d.tistory.com/35 [Transactional] 거래가 있었는데요.. 없었습니다거래내역의 실종입사하자마자 흥미로운 주제의 CS가 들어왔습니다. 몇달 동안 지속적으로 유입되던 문의였습니다. 내용은 "거래를 분명히 했고 잘 됐다고 떳는데요.." "거래내역에 제 거래가kyeum-d.tistory.com 지난 포스팅에서 @Transactional 이 붙어있음에도 DB Stored Procedure 의 Rollback 을 감지하지 못하고  이후의 프로세스를 처리하는 문제를 식별했습니다. 이번 포스팅에서는 Transactional 이 어떻게 동작하는지 이해하고 왜 이런 현상이 발생했는지 분석하는 시간을 가져보겠습니다. * 이번 포스팅은 TransactionManager..

Java

[Transactional] 거래가 있었는데요.. 없었습니다

거래내역의 실종입사하자마자 흥미로운 주제의 CS가 들어왔습니다. 몇달 동안 지속적으로 유입되던 문의였습니다. 내용은 "거래를 분명히 했고 잘 됐다고 떳는데요.." "거래내역에 제 거래가 없는데요?" 가장 먼저 확인했던 것은 메서드에 @Transactional 이 걸려있는가 였습니다. 문제 없이 걸려있던 점을 확인했고 그렇다면 어딘가 Exception 이 발생하여 Rollback 된 것으로 보였습니다. 그런데 말입니다. 쿠폰, 포인트는 사용 됐어요 @Transactional 이 적용된 메서드에서 거래내역은 저장이 안되고 거래내역 저장 후 일어나는 동작인 쿠폰 사용 처리와 포인트 사용 처리는  정상적으로 적용이 된 것이였습니다. 당연히 checked Exception 을 catch 로 잡은게 아닐까 생각했지..

동겸동
'Java' 카테고리의 글 목록