본문 바로가기
반응형

전체 글95

[I/O 이해하기-2] Stream vs Channel I/O스트림과 채널은 I/O 작업을 처리하는데 사용된다.I/O란 Input/Ouput의 약자로 입력값을 읽어들이는 작업과 출력값을 쓰는 작업을 말한다. I/O 작업은 대게 애플리케이션 내에서만 이뤄지는 작업이 아니다.대표적인 I/O 작업을 통해 어떻게 동작하는지 알아보자.클라이언트의 요청을 읽어들이는 서버(전송계층 -> 애플리케이션 계층)클라이언트가 서버로 요청을 보내게되면 요청 데이터가 전송계층에 패킷 형태로 존재한다.서버의 애플리케이션에서 시스템 콜을 실행하는 프로그래밍 명령어를 통해 이를 애플리케이션으로 가져온다.디스크에 저장된 파일 읽어들이는 경우 (하드웨어 -> 애플리케이션 서버)파일이 존재하는 디스크 경로에 접근하여 해당 데이터를 읽어들여 메모리에 적재함그다음 애플리케이션에서 시스템 콜을 수행.. 2024. 5. 9.
[I/O 이해하기-1] 동기와 비동기 VS Blocking과 Non Blocking [I/O 이해하기-1] 동기와 비동기 VS Blocking과 Non Blocking[I/O 이해하기-2] Stream vs Channel 동기와 비동기는 요청 작업의 완료여부를 체크하고 작업을 순차적으로 처리하느냐의 차이로 구분할 수 있고,Blocking과 NonBlocking은 제어권을 누가 갖는지에 따른 작업 차단(block) 유무로 구분할 수 있다. 동기와 비동기는 순서에 관한 것이고, Blocking과 NonBlocking은 작업 차단 유무에 관한 것이다.동기와 비동기  동기는 요청 작업의 완료여부를 체크하고 작업을 순차적으로 진행한다. 특정 함수를 호출하면 완료 응답을 받고 다음 작업을 진행한다.통신 환경이라면 사용자의 요청에 응답을 제공한 이후 다음 요청 작업을 처리할 수 있다. 비동기는 요청.. 2024. 5. 5.
스프링 빈 생성 과정 분석 [3] - BeanFactoryPostProcessor, BeanPostProcessor 이전 포스팅에서 BeanDefinitionRegsitry와 SingletonRegistry에 관련하여 빈 생성과정에 대해 설명하였다. 이번 포스팅에서는 아래 굵은 글씨로 밑줄친 내용에 대해 알아볼 것이다.      1) 생성할 빈의 BeanDefition 정의     2) BeanFactoryPostProcessor가 BeanDefition을 BeanDefinitionResitry에 저장     3) BeanDefition을 바탕으로 빈 인스턴스화 (스프링 default 빈 생성 방식은 싱글톤)          3-1) 인스턴스화 이후 BeanPostProcessor가 빈 인스턴스의 후처리 작업 진행     4) 빈 인스턴스를 SingletonBeanRegistry에 저장 2)번 내용 ‘.. 2024. 4. 20.
스프링 빈 생성 과정 분석 [2] - BeanDefinitionRegistry, SingletonBeanRegistry BeanDefinitionRegistry, SingletonBeanRegistry1. 빈 생성 과정스프링 빈 생성과정에 대해 간단히 소개 하겠다.      1) 생성할 빈의 BeanDefition 정의     2) BeanDefition을 BeanDefinitionResitry에 저장     3) BeanDefition을 바탕으로 빈을 인스턴스화 (스프링 default 빈 생성 방식은 싱글톤)     4) 빈 인스턴스를 SingletonBeanRegistry에 저장 BeanDefition과 빈 인스턴스는 1대1 관계이다.두 저장소는 모두 Map타입이고 key값으로 빈의 이름이 사용된다.BeanDefinitionRegistry와 SingletonBeanResgistry가 별도의 공간임에.. 2024. 4. 20.
반응형