전체 글 28

이벤트 루프 vs 블로킹 멀티쓰레드

이벤트 루프 개념I/O 이벤트 등록: 관심 있는 FD(파일 디스크립터)와 어떤 이벤트(읽기/쓰기)를 감시할지 커널에 등록 (epoll_ctl 등)대기: epoll_wait 같은 호출로 등록된 FD 집합에 이벤트가 생길 때까지 블록처리: 이벤트가 발생하면 깨어나서 해당 FD에 대한 작업 수행반복: 처리가 끝나면 다시 대기 단계로 돌아가 루프를 반복특징소수의 스레드로 다수의 연결 처리: 한 이벤트 루프 스레드가 수천 개의 FD를 감시 가능논블로킹 방식: 이벤트가 준비된 것만 처리하므로 CPU 사용 효율적콜백/핸들러 구조: 각 이벤트마다 지정된 콜백 함수 실행요약이벤트 루프 = I/O 이벤트 감시 + 처리의 반복 구조단일 스레드에서도 다수 FD 처리 가능 → 스레드-당-연결 구조보다 효율적블로킹 멀티스레드에서..

서버 2025.09.03

자바 메소드 레퍼런스란

자바에서 메소드 레퍼런스는 특정 메소드만을 호출하는 람다 표현식을 더 간단하게 표현할 수 있는 방법입니다. 메소드 레퍼런스는 함수형 인터페이스의 구현을 위해 이미 정의된 메소드를 참조하는 데 사용됩니다. 이 구문은 코드를 더 간결하게 만들어주며, 가독성을 향상시키는 데 도움을 줍니다.정적 메소드 참조 1. 클래스의 정적 메소드를 참조:문법: 클래스명::메소드명Arrays.sort(numbers, Integer::compare);2. 특정 객체의 인스턴스 메소드 참조:문법: 객체참조::메소드명List messages = Arrays.asList("Hello", "World");messages.forEach(System.out::println);3. 임의 객체의 인스턴스 메소드 참조: 같은 타입의 어떤 객체..

카테고리 없음 2024.05.01

내가 느낀 객체지향 프로그래밍에 대해서 (의존성을 중심으로)

객체 지향 프로그래밍은 현실의 중요한 문제를 해결 하기 위한 과정을 배치는 방법이다. 반대로, 절차 지향은 문제 해결 과정을 서술한다. 순서대로 나열된다는 뜻이다. 왜 보통 사람들에게 익숙한 문제를 서술하는 방법을 사용하지 않는 방법이 등장 했을까? 순차적으로 작성하는 방법은 마치 자전거 체인 처럼 부속품 사이에 커다란 의존성이 생긴다. 의존성이 여럿이면 문제를 해결하기 어렵게 한다. 하나의 문제가 아니라 여러개의 문제를 해결해야 하기 때문이다. 반면, 배치 하는 방식을 사용하면 의존이 생기지 않는다. 순차적인 방식보다 문제의 범위를 더 좁힐 수 있다고 생각한다.

자바 2024.04.06