본문 바로가기
반응형

전체 글117

java.lang.OutOfMemoryError: Java heap space 오류 해결 안녕하세요. 실서버에서 스프링 프로젝트를 호스팅하여 운영하던 중에 java.lang.OutOfMemoryError 가 나타났습니다. 서버관리가 초보라 처음 보는 에러였기 때문에 여기저기 구글링을 하며 오류를 미연에 방지하고 다음에 또 비슷한 유형의 에러가 나오면 빨리 해결할수 있도록 자바 메모리에 대해 깊이있게 공부를 해보았습니다. 자바 메모리 구조가 궁금하신 분들은 밑의 링크를 참조하여주세요. 제가 이번 에러를 통해 여기저기 글을 참조하며 최신 자바 버전에 맞게 변경된 내용까지 포함한 내용입니다. 글을 읽어보고 오류 해결방법을 읽어보는게 도움이 될것입니다. developer111.tistory.com/33 [자바]JVM 구조 및 자바 메모리 구조 실서버에 톰캣7과 자바8으로 호스팅한 후 한달 정도 되니.. 2021. 1. 14.
[자바]JVM의 동작방식과 구조 JVM(Java Virtual Machine)이란 자바 프로그램의 실행 환경을 만들어주는 가상 머신 JVM(Java Virtual Machine)은 자바 프로그램을 실행하는 가상 머신이다.바이트 코드 기반으로 동작하는 자바 프로그램은 기계어를 다루는 CPU나 메모리 같은 자원을 직접 활용할 수 없다.JVM 내부의 Runtime Data Area와 Execution Engine과 같은 구성 요소들이 컴퓨터 자원을 활용함으로써 자바 프로그램의 실행이 가능해진다. RuntimeDataArea가 바이트 코드 기반 데이터를 저장하고,CPU는 인터프리터를 통해 바이트 코드를 실행시킴으로써 프로그램을 동작하게 한다. 자바의 플랫폼 독립성  자바 컴파일러는 자바파일(*.java)을 자바 바이트 코드(*.class)로 .. 2021. 1. 11.
[AWS]클라우드워치로 EC2 메모리 사용량, 메모리 사용률 지표 확인하기 안녕하세요. EC2에서 Amazon Linux 서버에서 tomcat7, java8으로 배포하여 실행중에 있습니다. 프리티어환경에서 개발을 하다보니 메모리가 부족해졌더라고요. 계속해서 톰캣은 Out of Memory 에러를 뱉어내고 서버의 메모리는 85%까지 도달해버려서 로드밸런서가 healthcheck를 계속 실패하고 502 badgateway 빈도수가 점점 높아져서 어쩔수 없이 프리티어를 포기하고 메모리를 높였습니다. 메모리 스왑도 해보았지만 별 소득이 없더라고요. cloudwatch는 많은 기능을 제공하지만 서버의 메모리 사용량, 사용률, 남은 공간에 대한 지표는 제공해주지 않습니다. 따라서 개발자 또는 서버관리자가 직접 코드를 통해 cloudwatch에 지표를 남겨야 합니다. 아마존 공식 도큐멘트에.. 2021. 1. 7.
[FCM]Firebase(파이어베이스)와 스프링 연동(토큰방식 여러개 한번에 푸시알림 보내기) 구글링을 하면 파이어베이스 콘솔에서 프로젝트 만드는 방법 부터 주제구독 방식으로 푸시알림을 보내는 법, 토큰 방식으로 푸시알림을 보내는 법 자세하게 나와 있는 포스팅들이 많은데요, 푸시알림 토큰 방식을 처음 이용하시는 분들은 다른 포스팅이나 커뮤니티를 보고 구현해보고 오시기를 추천합니다. 기존의 토큰 방법에서 몇가지 변경되는 부분만 있으므로 변경되는 부분에 대해서만 다뤄보겠습니다. 참고로 따라할수 있게 하나부터 열까지의 내용을 다 적은게 아니라 제가 어떻게 구현했는지 개괄적으로 설명한 글입니다. 스프링 웹서버 의존설정 com.google.firebase firebase-admin 7.0.1 의존 모듈 7.0.1로 설명을 하도록 하겠습니다. 너무 오래된 버전은 클래스 파일을 import하지 못할수 있습니다.. 2020. 12. 21.
반응형