CS전공지식(예상질문)

박정호·2022년 7월 11일
0

CS

목록 보기
5/18
post-thumbnail

옵저버 패턴을 어떻게 구현하나요?

  • 여러가지 방법이 있지만 프록시 객체를 써서 구현하곤 합니다. 프록시 객체를 통해 객체의 속성이나 메서드 변화 등을 감지하고 이를 미리 설정해 놓은 옵저버들에게 전달하는 방법을 구현합니다.

프록시 서버를 설명하고 사용 사례에 대해 설명해보세요.

  • 프록시 서버란 서버 앞단에 둬서 캐싱, 로깅, 데이터 분석을 서버보다 먼저하는 서버를 말합니다. 이를 통해 포트 번호를 바꿔서 사용자가 실제 서버의 포트에 접근하지 못하게 할 수 있으며 공격의 DDOS 공격을 차단하거나 CDN을 프록시 서버로 달아서 캐싱 처이를 용이하게 할 수 있습니다. nginx로 Node.js로 이루어진 서버의 앞단에 둬서 버퍼 오버플로우를 해결하거나 CloudFlare를 둬서 캐싱, 로그 분석 등을 하는 사용 사레가 있습니다.

MVC 패턴을 설명하고 MVVM 패턴과의 차이는 무엇인지 설명해보세요.

  • MVC패턴은 모델, 뷰, 컨트롤러로 이루아진 디자인 패턴입니다. 앱의 구성 요소를 세 가지 역할로 구분하여 개발 프로세스에서 각각의 구성 요소에만 집중해서 개발할 수 있다는점과 재사용성과 확장성이 용아하다는 장점이 있고 애플리케이션이 복잡해질수록 모델과 뷰의 관계 또한 복잡해진다는 단점이 있습니다.
    MVVM패턴은 MVC의 컨트롤러가 뷰모델오 바뀐 패턴입니다. 뷰모델은 뷰를 더 추상화한 계층이며, MVVM 패턴은 MVC 패턴과 다르게 커멘트와 데이터 바인을 가지는 것이 특징입니다. 뷰와 뷰모델 사이의 양방향 데이터 바인딩을 지원하며 UI를 별도의 코드 수정없이 재사용할 수 있고 단위 테스팅하기 쉽다는 장점이 있습니다.

OSI 7계층과 TCP/IP 4계층의 차이점은 무엇인가요?

TCP/IP 계층과 달리 OSI 계층은 애플리케이션 계층을 세 개로 쪼개고 링크 계층을 데이터 링크 계층, 물리 계층으로 나눠서 설명하는 것이 다르며, 인터넷 계층을 네트워크 계층으로 부른다는 점이 다릅니다.

HTTP/2를 설명하고 장점 두 가지를 설명하세요.

HTTP/2는 HTTP/1.x보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜입니다.

장점 두 가지로 멀티플렉싱과 서버 푸시를 들겠습니다.

멀티플렉싱이란 여러 개의 스트림을 사용하여 송수신한다는 것입니다. 이를 통해 특정 스트림의 패킷이 손실되었다고 하더라도 해당 스트림에만 영향을 미치고 나머지 스트림은 멀쩡하게 동작할 수 있습니다.

서버 푸시란 HTTP/1.1에서는 클라이언트가 서버에 요청을 해야 파일을 다운로드받을 수 있었다면, HTTP/2는 클라이언트 요청 없이 서버가 바로 리소스를 푸시하는 것을 말합니다. html에는 css나 js 파일이 포함되기 마련인데 html을 읽으면서 그 안에 들어 있던 css 파일을 서버에서 푸시하여 클라이언트에 먼저 줄 수 있습니다.

운영체제의 역할?

CPU 스케줄링 프로세스 관리

  • CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리

메모리 관리

  • 한정된 메모리를 어떤 프로세스를 얼만큼 할당해야 하는지 관리

디스크 파일 관리

  • 디스크 파일을 어떠한 방법으로 보관할지 관리

I/O 디바이스 관리

  • I/O 디바이스들인 마우스, 키보드 등과 컴퓨터 간에 데이터를 주고받는 것을 관리

PCB란?

  • 운영체제가 프로세에 대한 중요한 정보를 저장해 놓을 수 있는 저장소
  • Process Control Block은 운영체제에서 프로세스에 대한 메타데이터를 저장한 '데이터'를 의미합니다. 프로세스 제어 블록이라고도하고 프로세스가 생성되면 운영체제는 해당 PCB를 생성합니다.
    프로그램이 실행되면 프로세스가 생성되고 프로세스의 주소 값들에 스택, 힙 등의 구조를 기반으로 메모리가 할당됩니다. 그리고 이 프로세스의 메타데이터들이 PCB에 저장되어 관리됩니다. 이는 프로세스의 중요한 정보를 포함하고 있기 때문에 일반 사용자가 접근하지 못하도록 커널스택의 가장 앞부분에서 관리합니다.

메모리 계층에 대해 설명

  • 메모리 계층은 레지스터, 캐시, 메모리, 저장장치로 구성되어 있습니다.
    레지스터는 CPU 안에 있는 작은 메모리로 휘발성이고 속도가 가장 빠르고 기억 용량이 가장 작습니다.
    캐시로는 L1,L2 캐시를 지칭하며 휘발성이고 속도가 빠르고 기억 용량이 작습니다.
    주기억장치로는 RAM을 가리깁니다. 휘발성이고 속도는 보통이고 기억 용량이 보통입니다.
    보조기억장치로는 HDD, SDD를 일컬으며 휘발성이고 속도가 낮고 기억 용량이 큽니다.

필요성

  • 빠른 속도와 큰 용량의 장점을 모두 취하는 방법이 메모리 계층구조
  • CPU가 메모리에 더 빨리 접근하기 위함
profile
기록하여 기억하고, 계획하여 실천하자. will be a FE developer (HOME버튼을 클릭하여 Notion으로 놀러오세요!)

0개의 댓글