본문 바로가기

전체 글79

Blocking I/O 와 Non Blocking I/O | 동기(Synchronous)와 비동기(Asynchronous) 프로그래밍에 대해 공부할 때 동기 비동기, Blocking I/O Non Blocking I/O 에 대해 만나는 경우가 많은 거 같습니다. 헷갈리고 어려운 개념이라 이번에 포스팅 해보며 확실하게 공부해보려고 합니다. 그리고 동기 비동기, Blocking I/O Non Blocking I/O 을 서로 같은 개념으로 알고 있는 경우가 많고 저 또한 그랬었기 때문에 이번엔 이 두 가지 개념에 대해서 살펴보는 글을 작성해 보려고 합니다. Blocking I/O 과 Non Blocking I/O Blocking I/O 와 Non Blocking I/O 는 시스템에서 입/출력(I/O) 작업을 처리하는 방법과 관련된 개념입니다. Blocking I/O 프로그래머가 짠 코드에서 I/O(file 에서 데이터를 읽어오거나.. 2023. 7. 21.
Java의 동작 방식에 대하여 - JVM Architecture, ClassLoader Java 동작 방식 항상 Java는 어떤 식으로 실행되는지 궁금할 때가 많았습니다. 현재 이 글을 작성하는 시점에서도 그렇게 완벽한 이해라고는 생각하지 않지만 이번 글에서는 Java는 어떤 식으로 실행되는지 JVM과 ClassLoader를 중점으로 글을 작성해 보려고 합니다. What is JVM? JVM이란 Java Virtual Machine의 약자로 자바 바이트 코드를 실행시키기 위한 가상의 기계를 말합니다. 자바 프로그램을 실행하기 위해서는 반드시 JVM이 설치되어 있어야 합니다. JVM에는 메모리 영역이 할당되는데 Java 동작 방식 이해에 아주 중요한 개념입니다. Java Runtime Sytem JVM에 할당되는 메모리 영역은 5 영역으로 나뉩니다. PC (pc register) CPU에 P.. 2023. 7. 19.
filebeat, metricbeat의 module 사용해서 Kibana로 시각화해보기 Beats What is Beast? filebeat, metricbeat와 같은 Beats 제품군들은 Elastic에서 개발한 데이터 수집기 입니다. Beats는 Go 언어로 개발된 프로그램으로 설치된 서버에 큰 부담을 주지 않고, ELK와 연계되어 다양한 시스템 이벤트를 수집할 수 있습니다. https://www.elastic.co/kr/downloads/beats/ Beats 다운로드: Elasticsearch를 위한 데이터 수집기 Elastic Stack용 경량 데이터 수집기인 Beats를 사용하여 데이터를 Elasticsearch로 손쉽게 수집하고 로그 파일, CPU 메트릭, 네트워크 데이터 등을 처리하세요. www.elastic.co 설치 및 실행은 블로그에 포스팅 되어 있으니 참고 부탁드립니.. 2023. 7. 16.
Java의 람다식(Lambda expression)에 대해 알아보기 람다(Lambda expression) 람다는 자바에 함수형 프로그래밍을 가능하게 하면서 간결하고 표현력이 풍부해지며 가독성이 높아지는 등 많은 이점을 가져와 줬다고 생각합니다. 그렇다면 이 람다는 무엇이고, 어떻게 작성되는 것인지 Java API를 참고하면서 설명해보겠습니다. What is Lambda? 람다식은 Java 8부터 도입 되었고, 메서드를 하나의 식 형태로 나타낼 수 있게 해주는 기능입니다. PriorityQueue pq = new PriorityQueue((a, b) -> a[0] == b[0] ? a[1] - b[1] : a[0] - b[0]); 위의 람다식 활용은 우선순위큐의 정렬 기준을 식의 형태로 간단하게 지정해 줄 수 있음을 알게 해줍니다. 람다식이 없었다면 코드를 좀 더 작성하.. 2023. 7. 15.