Java

스터디할래 13주차 과제: I/O(feedback, 피드백)

2021. 3. 6. 22:34

피드백

NIO = Non blocking I/O = New I/O

InputStream : 입력받는 스트림

OutputStream : 무언가 쓰는, 보내는 스트림

InputStream과 OutputStream은 바이트 단위로 읽어 들인다.

 

✔ BufferedInputStream을 사용하면 좋은 이유, 왜 성능상의 이점이 있는지? 버퍼에 모아서 보내면 왜 빨라질까?

프로그램에서 InputStream, OutputStream을 써서 데이터 보낼 때 OS레벨의 시스템 콜을 하게 되는데

이때 버퍼에 모아서 보낼수록 시스템 콜 횟수가 줄어들면서, 성능상 이점이 생기게 된다.

 

IO는 스트림 기반, NIO는 채널 기반 우리는 NIO를 주로 사용하게 된다.

NIO 중에서도 버퍼 기반인데 채널이라는 인터페이스를 사용하면 양방향 입출력이 가능하다.

 

블로킹과 넌블로킹

블로킹 : 입력 스트림의 read()메소드를 호출하면 데이터가 입력되기 전까지 Thread가 블로킹(대기상태)이 된다.

넌 블로킹 : Thread interrupt 하면서 빠져나올 수 있다.

 

버퍼(BufferedStream)는 무조건 써야 된다.

 

다이렉트 버퍼 / 논 다이렉트 버퍼

13주차 내용 중

 

다이렉트 버퍼와 논 다이렉트와 연관된 좋은 오라클 자료

JVM밖의 메모리를 사용하는 프로그램을 만들어서, 더 큰 메모리를 사용하는 어플리케이션을 만들 수 있다.

https://blogs.oracle.com/javamagazine/post/creating-a-java-off-heap-in-memory-database

 

자바 IO의 데코레이터 패턴

자기 자신의 타입을 감싸는 형태

 

직렬화 = 이삿짐센터가 짐 싸는 작업 (객체 = 우리 집)

객체를 저장했다가 다시 불러오는 방법

Serializable, serialVersionUID

 

Q) io는 스트림 기반이고, nio는 채널 기반인데, Channel클래스는 자기 자신의 생성자를 통해 인스턴스화를 할 수 없고 오로지 InputStream/OutputStream기반의 클래스가 생성된 후 getChannel()로 만들 수 있다고 하는데 그러면 nio도 스트림 기반이 될 수 있지 않을까요?

A) 맞습니다. io제일 밑단에 있는 게 기술적으로 stream입니다.

그걸 버퍼 단위로 읽어 들이면 nio, 바이트 단위로 읽어들이면 그냥 io입니다.

 

해외 취업 별거 없다.(?)(FAANG, MANGA ...)

"왜 해외로 오고싶은지"를 먼저 생각하자.

'Java' 카테고리의 다른 글

스터디할래 15주차 과제: 람다식(feedback, 피드백)  (0) 2021.03.06
스터디 할래 13주차 과제: I/O  (0) 2021.03.06
스터디할래 14주차 과제: 제네릭  (0) 2021.03.06
(스터디 할래) 15주차 과제: 람다식  (0) 2021.03.05
스터디 할래 14주차 과제: 제네릭(feedback, 피드백)  (0) 2021.02.28
'Java' 카테고리의 다른 글
  • 스터디할래 15주차 과제: 람다식(feedback, 피드백)
  • 스터디 할래 13주차 과제: I/O
  • 스터디할래 14주차 과제: 제네릭
  • (스터디 할래) 15주차 과제: 람다식
향찡
향찡
백엔드 개발자
향찡
Dev Story
향찡
전체
오늘
어제
  • 분류 전체보기 (97)
    • Java (42)
      • design pattern (7)
      • JavaCafe Study (4)
    • Kotlin (2)
    • Spring (4)
    • TypeScript (1)
    • DevOps (2)
      • AWS (1)
    • DB (4)
      • Real Mysql (2)
      • Redis (1)
    • OS (3)
      • Linux (3)
    • Algorithm (7)
    • Clean Code (1)
    • Git (5)
    • 환경 설정 (2)
    • 그냥 생각 (1)
    • 서평 (12)
      • 한빛미디어, 나는리뷰어다 2022 (4)
    • 세미나 (11)
    • 기타 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 자바스크립트
  • 유스콘
  • java
  • 스터디올래
  • fastcampus
  • 자바
  • 스터디할래
  • 패캠
  • 패스트캠퍼스
  • 코딩테스트
  • 자바카페
  • 코딩교육
  • git #github #doit #형상관리
  • 파이썬
  • 알고리즘
  • OKKY
  • 인프런
  • 한빛미디어
  • 깃 #깃허브
  • java #study
  • Kotlin
  • 코딩자격증
  • LeetCode
  • 백준
  • Real MySQL
  • 패스트캠퍼스후기
  • 제이펍
  • 자바스터디
  • 스터디
  • 백기선

최근 댓글

최근 글

hELLO · Designed By 정상우.
향찡
스터디할래 13주차 과제: I/O(feedback, 피드백)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.