전체 글 32

GC(Garbage Collector) 관련

현업에서 일하다 보니 OOM도 만나게 되고, 메모리 누수, 원인모를 에러 등.. 많은 부분을 겪어보게 되었다. 개인 프로그램에서는 신경도 쓰지 않았던 것들을 생각해야 했고, 원인을 해결하기 위해서 폭 넖은 생각과 다양한 지식이 필요했다. 그 중 중요하게 생각하는 것 중 하나는 GC이다. GC란? Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 JVM의 프로세스이다. 장점 : 개발자가 안쓰는 힙 영역 객체를 지우거나 하는 작업을 안해도되며, 힙영역의 메모리가 부족해지면 알아서 작동한다. 단점 : GC가 언제 작동하지 모르며, Major GC가 동작할 때는 모든 쓰레드가 멈추며, 이를 Stop-The-World 라고 부른다. 학교 다닐 때,..

OOM(Out Of Memory) 관련

초보 개발자(본인)가 입사 후 첫번째 프로젝트가 끝나고, 다른 프로젝트를 하러 갔다. 어느날, 이전 프로젝트의 사람을 만나서 이야기를 하는데 이전의 코딩방식의 문제점을 듣고 꼭 고쳐야겠다는 생각과 함께 이 글을 작성하게 되었다. 메모리 : 컴퓨터가 연산을 위해 참조하는 공간이다. 그림 참조 : https://jinshine.github.io/2018/05/17/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B8%B0%EC%B4%88/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0/ 프로그램을 실행하게 되면, OS는 메모리에 실행할 프로그램의 소스코드를 올린다. 이를 코드 영역이라고 한다. 프로그램이 사용하는 전역변수, 정적변수는 데이터 영역 사용자의 동적 ..

02. 변수와 타입

변수란? 값을 저장할 수 있는 메모리 공간 -> 메모리 공간을 차지한다. 현업에서는 메모리가 한정이 되어 있으므로 무작정 크게 만들지 않게 조심하자. 1. 변수의 선언 : 메모리 주소에 붙여진 이름 타입 + 변수이름 ; int test; 2. 변수에 값을 저장 : 대입 연산자(=)를 이용하여, 좌변의 변수(메모리공간)에 값(데이터)를 저장하는 것 int score = 100; (score라는 메모리 공간에 100이라는 값을 저장) 리터럴 : 소스코드에서 직접 입력된 값을 의미한다. 여기서는 100이라는 정수가 이에 해당한다. 예시 : ( 0 , 0.25, 'A', "test", true ) 3. 변수의 값 쓰기 : 변수에 저장된 값을 이용하는 방법 int total = 100 + score; (100 +..

01. 자바 시작하기

1. 프로그래밍 언어 컴퓨터가 이해할 수 있는 기계어, 사람이 이해하는 자연어의 사이에서 다리역할을 하는 언어 고급언어 : 사람이 이해하기 쉬운 언어, 컴파일러를 통해 기계어로 변환되는 언어(C,C++,Java) 저급언어 : 기계어에 더 가까운 언어(어셈블리어) 소스 : 이러한 프로그래밍 언어로 작성된 내용 컴파일러 : 프로그래밍 언어를 기계어로 변환하는 소프트웨어 프로그램 : 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것 2. 자바의 특징 이식성이 높은 언어 : 대부분의 운영체제에서 사용할 수 있다. (Window, Linux, Unix) 객체지향 언어 : 객체를 만들고 이것들을 조립, 연결하여 전체 프로그램을 완성하는 객체지향 언어이다. 함수적 스타일 코딩을 지원 : Java 8버전 부터 람다식..

1. 자료형 정리

1. 자료형 [기본형] : 실제 값을 변수에 가지고 있음. [참조형] : 실제 값이 들어 있는 메모리 주소를 가지고 있음. [기본형] - 논리형 (boolean) - true,false - 문자형 (char) - 'a', '1' , '-' - 정수형 (byte, short, int, long) - byte : -128 ~ 127 short : -32,768 ~ 32,767 int : -2,147,483,648 ~ 2,147,483,647 long : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 - 실수형 (float, double) float : (3.4 X 10-38) ~ (3.4 X 1038) double : (1.7 X 10-308) ~ (1.7..