본문 바로가기
728x90

Java14

[Java] Java Memory Leak 안녕하세요. 오늘은 자바의 메모리 누수에 대하여 알아보겠습니다. 자바 개발 시에는 메모리를 고려하지 않아도 된다고 생각하실 수 있습니다. 하지만 자칫하면 메모리 누수가 일어날 수도 있는데요. 메모리 누수의 개념과 발생 원인에 대하여 정리해 보았습니다. 메모리 누수란? 일반적 의미의 메모리 누수는 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상입니다. 할당된 메모리의 사용을 마친 불필요한 메모리를 반환하지 않는 것이 반복된다면 메모리가 낭비되겠죠? Java의 메모리 관리 자바는 개발자가 메모리 할당과 해제를 명시적으로 수행하지 않습니다. 해서 GC의 개념이 존재하는데요. GC는 Mark and Sweep이라는 알고리즘을 이용해 가비지 컬렉션을 수행합니다. Mark는 모든 변수를 스캔하며 각각 어.. 2023. 1. 11.
[Java] Primitive Type & Reference Type 안녕하세요. 씨위드입니다. 오늘은 자바의 데이터 타입에 대하여 포스팅해보려고 합니다. Java의 데이터 타입은 크게 기본타입(Primitive Type)과 참조타입(Reference Type)으로 나눌 수 있습니다. 각각의 특징과 차이점에 대하여 알아보겠습니다. Primitive Type 기본 타입은 실제 데이터 값을 저장하는 타입입니다. 다른 이름으로는 원시타입이라고도 부르는데요. 정수, 실수, 문자, 논리, 리터럴을 저장하며 기본타입의 자료형은 아래와 같이 나눌 수 있습니다. 문자 char 정수 byte, int, short, long 실수 float, double 논리 boolean 리터럴 데이터 그 자체의 값 즉 소스 코드 내에 직접 입력된 데이터를 의미 직접 데이터 값을 저장하기 때문에 변수마다.. 2023. 1. 9.
[Java] JNA? JNI? 안녕하세요. 오늘은 JNA 와 JNI 에 대하여 알아보려고 합니다. 두 가지 모두 Java의 Native와 관련된 개념들입니다. 때로는 기능 개발을 위해서 네이티브 코드 사용이 필요한 경우가 존재하는데요. 이때 사용할 수 있는 것이 바로 JNA, JNI입니다. 두 가지의 개념과 차이점은 무엇일까요? JNI (Java Native Interface) Java에서 C의 Native Lib를 접근하기 위해 이용하는 인터페이스입니다. JNI는 Java에서 Native 영역으로 들어가 호출 하거나 혹은 그 반대로 Native 에서 Java 로 호출하는 Interface로 C / C++ 로 만든 라이브러리 또는 솔루션을 Java 에서 바로 사용할 수 있도록 돕습니다. 실행 과정은 아래와 같습니다. Native Me.. 2023. 1. 4.
[Java] Java Memory 이번 포스팅에서는 자바의 메모리 영역에 대하여 알아보겠습니다. 본격적으로 알아보기에 앞서 왜 메모리 영역을 알아야 하는 걸까요? 자바에는 가비지 컬렉터(Garbage Collector)가 존재하여 사용하지 않는 메모리는 자동으로 회수해 줍니다. 개발자가 따로 메모리를 관리하지 않아도 손쉽게 프로그래밍을 진행할 수 있습니다. 하지만 메모리 설계가 잘 되어있는 프로그램과 그렇지 않은 프로그램은 속도나 안정성 면에서 차이가 날 것입니다. 메모리 구조를 이해하면 더욱 완성도 높은 프로그램 개발이 가능합니다. 그럼 본격적으로 메모리 구조를 알아보기 전에 먼저 자바 프로그램의 실행 절차에 대하여 알아보겠습니다. JVM의 개념에 대해서 잘 모르시는 분들은 지난 포스팅을 읽어보시는 것을 추천합니다. JDK, JVM, .. 2022. 12. 28.
728x90