Language/Java
-
[Java NIO] NIO 는 어떻게 동작할까 ? (DMA, Kernel Space)Language/Java 2024. 1. 31. 06:11
- 목차 들어가며. 이번 글에서는 Java NIO 가 어떻게 동작하는지 깊이있게 다루어보려고 합니다. 앞으로 Java NIO 와 관련된 글들을 이어서 작성할 예정입니다. DMA Controller. 먼저 DMA Controller 에 대해서 알아보도록 하겠습니다. 컴퓨터를 아주 단순히 표현하면 아래 그림과 같이 표현될 수 있습니다. CPU 와 Memory 그리고 Disk 로 표현될 수 있습니다. 좀 더 나아가서 NIC 같은 네트워크 인터페이스가 추가될 수 있죠. 그래서 Disk 에 존재하는 실행파일은 메모리로 옮겨지고, CPU 는 Memory 로 적재된 실행파일의 코드를 한줄 한줄 실행하며 컴퓨터는 동작합니다. 또한 Network Card 를 통해서 유입되는 데이터를 읽어들이고, 다시 데이터를 전송하며 ..
-
Jackson 으로 JSON 다루기Language/Java 2024. 1. 22. 06:22
- 목차 들어가며. Jackson 은 JSON 데이터를 Serialization/Deserialization 하는 대표적인 자바 라이브러리입니다. 특히 JSON 과 POJO 사이의 변환을 손쉽게 할 수 있도록 여러 기능을 제공합니다. 이번 글에서는 여러 사례와 실습을 통해서 Jackson 을 활용한 Parsing 방법에 대해서 알아보도록 하겠습니다. JDK & Jackson Compatibility. 아래 URL 은 Jackson 의 Release 노트의 사이트의 주소입니다. https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.14 Jackson Release 2.14 Main Portal page for the Jackson project. Con..
-
Java off-heap 메모리 알아보기Language/Java 2023. 12. 22. 19:01
- 목차 소개. Java 로 작성된 프로그램은 JVM 이라는 가상 머신 위에서 동작합니다. OpenJDK, Correto, Zulu 등에 해당하는 여러 JDK 는 JVM 이라는 Java 가상 머신을 생성하게 되는데요. Java 프로그램이 실행될 때마다 JVM 은 생성되고, JVM 이 전적으로 Java 프로그램을 매니징하게 됩니다. ByteCode 를 실행하고 실행에 필요한 메모리를 관리하는데 Heap, Stack, Class 등으로 표현되는 여러 메모리를 관리합니다. 그리고 이러한 메모리들은 Garbage Collector 의 모니터링 대상이 되구요. Java 프로그램에서 생성하는 여러 객체들은 Garbar Collector 의 대상이 되므로 프로그래머의 관리 대상에서 제외되는 편리함이 있습니다. 오늘 ..
-
Java Thread Pool 알아보기Language/Java 2023. 9. 30. 11:48
- 목차 관련된 글https://westlife0615.tistory.com/318 Java Future 알아보기- 목차 관련된 글 https://westlife0615.tistory.com/319 Java Thread Pool 알아보기 - 목차 소개. Thread Pool 은 Worker Thread 들을 관리하는 자료구조입니다. Thread Pool 은 최대로 할당 가능한 Thread 갯수를 제한하며, Wowestlife0615.tistory.com 소개. Thread Pool 은 Thread 를 관리하는 자료구조입니다. Thread Pool 이 Thread 를 관리한다는 의미는 Thread 의 생성과 삭제 그리고 재사용성을 높이기 위한 매커니즘이 있음을 뜻합니다. 만약 어떤 프로그램이 10개의 Th..
-
Java Future 알아보기Language/Java 2023. 9. 30. 10:20
- 목차 관련된 글 https://westlife0615.tistory.com/319 Java Thread Pool 알아보기 - 목차 소개. Thread Pool 은 Worker Thread 들을 관리하는 자료구조입니다. Thread Pool 은 최대로 할당 가능한 Thread 갯수를 제한하며, Worker Thread 를 재사용할 수 있는 효율적인 방법은 제공합니다. 즉, Threa westlife0615.tistory.com 소개. java 의 Future 는 비동기 처리를 수행하도록 돕는 대상이자 java class 입니다. Future 는 javascript 의 Promise 와 유사한 행동양식을 보이며, 미래에 완료될 Task 를 의미합니다. Main Thread 에서 코드들이 처리되고 있다고 ..
-
java Annotation 이해하기Language/Java 2023. 9. 25. 22:17
- 목차 소개. java Annotation 은 일종의 마커입니다. Annotation 그 자체만으로 특별한 기능을 수행하는 것은 아닙니다. Annotation 이 붙은 class, method, field 들이 컴파일러 또는 런타임 환경을 거치면서 특별한 기능을 수행하게 됩니다. 컴파일러가 컴파일을 하던 도중에 특정 Annotation 을 발견한다면, 약속된 Annotation 의 처리방식에 따라서 어노테이션이 붙은 class, method, field 를 컴파일합니다. 그리고 Spring 과 같은 런타임 환경에 어플리케이션을 구동하는 과정에서 Annotation이 붙은 class, method, field 들을 발견하면 이에 상응하는 처리를 수행합니다. 예를 들어보겠습니다. @Deprecated. 우..