Terminal

Façade
퍼사드는 프랑스어로 출입구가 있는 건물의 앞부분을 의미한다.
Terminal(kernel)
- Buffer
버퍼에는 렌더링할 문자들이 저장된다. 일반적으로 메모리에 char/wchar_t타입의 1 혹은 2차원 배열로 구성
버퍼는 항상 현재의 입력 라인을 포인팅하는 표시를 가진다. 표시를 이용해 버퍼가 가득 찼을 때,
새로운 라인을 할당하는 것이 아닌 가장 오래된 라인부터 덮어쓰면서 새로운 데이터를 받는다.
- Viewport
뷰포트는 버퍼의 특정 영역을 화면에 렌더링한다.
(뷰포트는 항상 버퍼의 크기보다 작거나 같다)
- Console(Termianl window)
콘솔은 뷰포트를 화면에 보여주고 사용자로부터 입력을 받는다.
(뒤에서 일어나는 연산을 단순화해서 출력)-퍼사드 역할