# leak

Heap 메모리 누수 이슈: 문제의 원인을 찾는 연역적 과정
Image by vectorjuice 문제에 접근하는 두 방향 소프트웨어에 문제가 발생했을 때, 가장 어렵고 오랜 시간이 걸리는 작업은 정확한 원인을 찾는 일이라 할 수 있습니다. 원인만 찾는다면 고치는 일은 크게 어렵지

쓰레드 누수 이슈: 문제의 원인을 찾는 귀납적 과정
Image by vectorjuice 문제에 접근하는 두 방향 소프트웨어에 문제가 발생했을 때, 가장 어렵고 오랜 시간이 걸리는 작업은 정확한 원인을 찾는 일이라 할 수 있습니다. 원인만 찾는다면 고치는 일은 크게 어렵지

[Javascript] memory leak
자바스크립트 내에서 메모리 누수에 대해 알아보려고 합니다. Memory lifecycle 메모리 할당 -> 메모리 사용 -> 메모리 해제 javascript는 high-level language 이기 때문에 메모리 사용이 끝나면 가비지컬렉터(GC)에 의해 메모리가 해제 됩니다. 자바스크립트의 저장소는 힙(heap)과 스택(stack) 두가지가 있습니다. 원시값은 스택에 저장이 되고, 참조값은 힙에 저장이 됩니다. 원시값: number, string, boolean, null, undefined, bigint, symbol 참조값: array, object, function 이때, 참조값을 가르키는 주소는 스택에 저장되며, 참조값이 가르키는 주소들은 힙에 저장 됩니다. garbage collector 가비지 컬렉터는 더 이상 사용하지 않는 메모리를 수거하는 역할을 합니다. 가비지 컬렉터가 더 이상 사용하지 않는 메모리를 찾는 두가지 알고리즘이 있습니다. r

[Android] 글로만 본 Memory Leak, 실제로 일어날까? with. Leakcanary
최근들어 개인 앱 하나 만들라고 준비중이었는데, 오랜만에 하는 개인 프로젝트라 좀 더 완벽하게 하고싶어졌다. 여태까지 경험을 통해 쌓은 코드 컨벤션이나 좀 더 수월해진 기술스택을 적재적소에 사용하고 가독성을 훨씬 높히려 했다. 동시에 최적화도 해보고 싶어 가장 효율적인 객체 생성 및 호출, 확실한 옵저빙 해제, 싱글톤 지양 등 메모리 관리에 대해서도 관심이 높았었는데 매번 글로만 "이거 이렇게 하면 메모리 누수나요~"하는 것만 봤지 그게 정말일지 궁금했다. 그러다 Android Studio에서 제공하는 Profiler를 알게 되었다. 특별히 설치하는것이 없어 바로 볼 수 있었는데 CPU, MEMORY, ENERGY 이렇게 3가지 항목 중 MEMORY영역을 보니 앱을 실행할 때 마다 메모리 값이 달라져 기준값을 잡기가 모호했다. 뭐 물론 내가 미숙한 탓이겠지.. 다시 구글링을 하다 라이브러리인 leakcanary을 찾게 되었다. 일반적인 라이브러리가 아니라

Android Memory Leak 을 찾는 방법
안드로이드 앱을 일정시간 이상 사용하다보면 매우 느려져서 사용하기 힘들게 되는 경우가 종종 발생하는 경우가 있습니다. 이런 경우 해당 앱에서 메모리 관리를 잘하지 못하는 것이 이유일 가능성이 높습니다. 안드로이드 Memory Leak이 어느 영역에서 일어나는지 확인하고 관련 영역의 코드를 디버깅한다면 더 쉽게 Memory Leak을 제거할 수 있을 것입니다. QA관련자 분들께서 가장 많이 해당 소프트웨어의 기능을 확인할 텐데 경험적으로 어느 영역이 문제가 된다는 것은 알고 있지만 어느 영역이에요라고 내용을 공유하는 것보다는 이를 조금 더 명확히 확인하고 개발팀에 공유한다면 쉽게 이 문제를 해결하는 것에 다가갈수 있을 것입니다. 서로의 영역에 대한 이해를 높이기 위해서 서로 지식을 쌓고 협업하는 방법에서 이런 접근이 중요하다고 생각합니다. 글의 처음은 안드로이드에서의 Memory Leak을 명확히 모르시는 분들에게 이해를 돕고자 다른 자료들을 이용해서 정리하는 내용으로 글

[Android] 메모리릭 과 Leak Canary
메모리릭 이란? 메모리릭이란 필요없는 객체 또는 사라진 객체를 참고하고 있을 때 OOM(Out Of Memory)로 인해 충돌이 발생하는 것을 말한다. 안드로이드에서 발생하는, 내가 겪어본 메모리릭으로는 다음과 같다. application context를 UI와 관련된 곳에서 사용했을 때 activity context를 잘못 참조하거나, 해당 activity가 사라졌음에도 어딘가에서 context를 변수화하여 참조하고 있을 때 이벤트 콜백, 비동기 작업이 제대로 종료되지 않았을 때 fragment binding의 null 처리가 되지 않았을 때 Leak Canary 이란? 안드로이드 메모리릭을 감지하고 알려주는 라이브러리이다. 사용 1. 준비 2. 다운로드 기기에 빌드를 하면 다음과 같이 다운로드된 것을 확인할 수 있다. ![](https://velog.velcdn.com/images/twaun95/post/a45
sqlite3.connect가 메모리를 많이 잡아 먹네..
DB접근이 필요할때 그때, 그때 connect하고 instance죽을때 close잘해주면 별 문제 없을 줄 알았더니.. 프로그램이 메모리를 무한정 먹네.. ㅡ.ㅡ 그래서 singleton형태로 connection을 관리해야겠다 생각했더니.. 만들고자 하는 프로그램이 적어도 3개의 thread가 필요하네... 그래서, singleton형태를 다루는 곳에서 thread id별로 connection을 singleton으로 관리할 수 있도록 하니, 메모리 누수가 더이상 없네..