본문 바로가기

전체 글

(92)
접근제어자의 종류 / 왜 사용할까? 프로젝트를 진행하면서 사용했던 접근제어자는 public 과 private만 사용해봤었다. 이외에 2가지의 접근제어자가 있다고는 알고 있었지만 사용해보진 못했다. 이번 기회에 접근제어자에 대해 정확히 이해하고 넘어가야겠다. 1. 접근제어자(Access Modifier)란? 접근제어자는 클래스나 변수, 메서드의 접근을 제어하기 위해 적어주는 예약어를 말한다. 접근제어자는 생략이 가능하며 생략했을 경우 자동으로 default 임을 뜻한다. 접근제어자를 사용하는 이유? 은행에 비유해보자면 은행에 있는 창구에는 누구나 접근하여 일처리를 할 수 있다. 하지만 은행내에 있는 금고에는 관계자외에는 출입이 엄격하게 통제되고 있다. 만약 금고에도 누구나 접근할 수 있고 사용할 수 있다면 큰 문제가 발생하지 않을까? 이처럼..
JVM 메모리 구조? JVM이란? JVM 메모리 구조를 보기전에 JVM이 무엇인지 알아야 한다. JVM은 Java Virtual Machine의 약자로 자바 가상 머신이라고 한다. 자바와 OS(운영체제) 사이에서 중개자 역할을 수행하며 자바가 OS(운영체제)에 구애 받지 않고 프로그램을 실행할 수 있도록 도와준다. 또한 가비지 컬렉터를 사용한 메모리 관리도 자동으로 수행하며 다른 하드웨어와 다르게 레지스터 기반이 아닌 스택 기반으로 동작한다. 위의 이미지는 자바 프로그램의 실행 단계이다. 먼저 자바 컴파일러에 의해 자바 소스 파일은 바이트 코드로 변환된다. 이러한 바이트 코드를 JVM에서 읽어 들인 후 복잡한 과정을 거쳐 어떤 운영체제에서든 프로그램을 실행할 수 있도록 만든다. 만약, 자바 소스 파일은 리눅스에서 만들고 윈도..
가비지 컬렉션, 컬렉터(Garbage Collection) 1. 가비지 컬렉션 Garbage Collection 약어로 GC라고 부른다. 메모리 관리 방법중 하나로 시스템에서 더이상 사용하지 않는 동적 할당된 메모리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것으로 시스템에서 가비지컬렉션을 수행하는 부분을 가비지 컬렉터라 부른다. 가비지 컬렉션이 없다면 프로그래머가 메모리를 할당한 뒤 수동으로 해제까지 직접 해야 한다. 메모리를 할당해놓고 필요 없어진 뒤에도 해제를 안하여 메모리 누수가 생기거나 해제했던 메모리를 다시 사용하는 실수 등에서 버그가 양산된다. 이러한 문제들을 해결하기 위해서 제시된게 가비지 컬렉션이다. 가비지 컬렉션에서 제공하는 할당과 해제를 이용하여 자동으로 프로그램이 실행되며 생기는 쓸모없어지는 메모리들을 알아서 수집하고 관리해준..