본문 바로가기

학습/이해하고 쓰는 작동원리

(3)
가비지 컬렉션 작동 원리 가비지 컬렉션 이란? Garbage Collection 쓰레기 수집, 여기서 쓰레기는 프로그램이 동적으로 할당 했던 메모리 영역 중에서 필요없게 된 영역을 의미한다. 필요 없게 된 영역을 그대로 둔다면, 사용하지 않지만 선점하고 있는 메모리의 양이 늘어나게 되며, 그만큼 메모리가 낭비된다. 이런 현상을 메모리 누수 ( Memory Leak ) 라고 한다. Unmanaged 언어인 C, C++ 등은 이런 메모리 누수 현상을 직접 다뤄야 하지만, Managed 언어인 Java 는 가비지 컬렉션이라는 개체가 알아서 이를 해결해 준다. name 이라는 변수에 "홍길동" 이라는 객체가 담겨 있다가 "강백호" 객체를 name 에 할당해주면, "홍길동" 객체는 참조되지않는 객체가 된다. 이런 객체들을 Java 의 G..
웹 서비스 작동원리 웹 서비스란 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템 클라이언트 와 웹서버의 통신을 살펴보겠다. 클라이언트와 웹 서버는 HTTP 프로토콜을 통해서 통신한다. HTTP 프로토콜은 서로 통신하기 위한 규약이다. 클라이언트는 요청에 맞게 무엇을 어떻게 등을 표현하는 Method, URL 등을 보내며, 웹 서버는 응답에 맞게 요청이 적절했는지, 어떤형식의 데이터를 보내는지 등에 맞는 Status, Content-Type 등을 보낸다. 웹 서버의 단점은 정적 데이터만 보낼 수 있다는 것이다. 그래서 웹 컨테이너 가 생겼다. Web Application Server, 즉 WAS 는 웹 서버와 웹 컨테이너를 포함한 용어다. 정적 데이터만 응답 할 수 있다는 단점을 Web..
JVM 작동원리 JVM 은 Java Virtual Machine 의 약자로, 자바를 동작하게 해주는 소프트웨어 이다. (겪어 보지 못한) 다른 이전 언어들은 OS 마다 개발을 달리 해줘야 했다고 한다. 그러나 Java 언어 창시자는 OS 마다 개발하기 귀찮았던건지 아주 편리하게 OS 에 상관없이 개발할 수 있게 만들어 줬다. 그 역할이 JVM 이 하는 가장 큰 역할이라고 생각한다. JVM 을 살펴보겠다. JVM 은 클래스 파일을 읽는다. Class Loader 는 클래스 파일을 가져오는 역할을 한다. Execution Engine 은 가져온 클래스 파일을 번역하는 역할을 한다. Runtime Data Areas 는 코드를 진행하여 OS 에 명령을 내리는 역할을 한다. 한 단계 더 들어가 보겠다. Execution Eng..