본문 바로가기

Room 102. Back-end/JAVA

뉴 렉쳐 [Java 프로그래밍] 강의 (4) - 출력 스트림과 버퍼

14강 ~ 16강 수강 후
 메모하고자 하는 내용 정리 !

 14강 변수 선언

  • 선언이란?
    • 모든 키워드는 선언하고 사용해야만 한다.
    • 변수 : int pjc;
    • 함수 : void add(int x, int y);
    • 참조변수 : Animal Kuma;

 15강 출력 스트림 객체와 API

  • 스트림 객체와 용어에 대해

  • 출력버퍼가
  • 어플이 비동기식으로 실행환경에서 실행되도록 하는 것.

  • 개체(Entity) : 실체가 있기 위해서 사용되는 타입.
  • 객체(Object) : 실존하는 것. 실체
  • ex) K7 하이브리드 자동차 그 실물은 객체. 개체는 K7 하이브리드 라는 타입. 객체가 있게 한 개체.
  • 동기 : 일렬로 세우는 것.
  • 비동기 : 일렬로 세우지 않고 실행환경이 되면 바로바로 받아서 하는것.
  • 버퍼 : 어플에서 요청한 것들을 비동기로 처리하도록 도와주는 원통 같은 것!!
  • 스트림 : 단방향 버퍼. 출력버퍼는 출력으로 가는 단방향 버퍼. 

 16강 콘솔 출력과 문자코드

  • 그렇다면, 키보드를 통해 버퍼로 들어간 입력 문자들을 keycode 로 변환하여 버퍼에 담고,
  • CPU를 통해 해석되어 모니터로 출력됩니다.
  • 그런데 여기서, 버퍼로 들어간 문자들이 어떻게 버퍼에 저장되었다가 활용될까요???

  • 숫자 2를 눌렀을 때, 2가 저장되지 않고 KeyCode 로 저장됩니다.
  • 그런데, KeyCode는 a와 A 를 구분하기 힘들죠. 그래서
  • ASCII(American Standard Code for Information Interchange) 를 활용합니다.
    • 이 아스키코드는 총 128개고 비트고 따쳤을때 7비트입니다.
    • 영문 기준으로 7비트 아스키코드, 8비트 아스키코드가 있음.
    • 그렇다면 다른 언어들은 어떻게 표현할까요?
    • 바로 ASCII 코드에 추가로 한국어/중국어/일본어 등을 추가하여 사용합니다.
    • EUC-KR, EUC-JP, EUC-CN 종류가 있죠.
    • 여기서 하나의 문제점이 있는데, KR과 JP는 동시에 쓸수 없습니다.
    • 왜냐하면 효 라는 한국어와 일본어의 저 문자는 같은 코드를 쓰고 있기 때문에요.
    • 그래서 요즘같은 글로벌 시대에 EUC-@@로 안쓰고,
    • 전세계 각국의 언어가 충돌나지 않게 UNICODE 라는 것을 사용합니다.

  • 다시 본론으로 돌아와서, 우리가 문자를 출력하려고 합니다.
    • system.out.write(3) 하면 버퍼에 3이 담겨서, 버퍼는 3을 아스키코드로 활용하여 다른 문자가 보임.
    • system.out.flush() 를 하지 않으면 버퍼가 꽉 차지 않는 한 출력되지 않음!
    • system.out.write(51)을 해야 버퍼에 51이 담기고 아스키코드 51에 해당하는 숫자 3이 쓰임!
      • >>> 아스키코드를 다 외울 수 없으니 '3' 을 활용하게 됨.
    • 아래는 아스키코드를 출력하는 예제.