Developer Cafe

웹개발자 기술면접 정리 5 본문

기술면접

웹개발자 기술면접 정리 5

개발자 카페 2021. 3. 29. 15:29
728x90

1. OSI 7계층

  • 7 계층(응용 계층): 사용자와 직접 상호작용하는 응용 프로그램들이 포함된 계층
  • 6 계층(표현 계층): 데이터의 형식(Format)을 정의하는 계층
  • 5 계층(세션 계층): 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층
  • 4 계층(전송 계층): 최종 수신 프로세스로 데이터의 전송을 담당하는 계층
  • 3 계층(네트워크 계층): 패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층
  • 2 계층(데이터링크 계층): 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층
  • 1 계층(물리 계층): 데이터를 전기 신호로 바꾸어주는 계층

2. 웹 동작 방식

 

  1. 사용자가 브라우저에 URL을 입력
  2. 브라우저는 DNS를 통해 서버의 진짜 주소를 찾음
  3. HTTP 프로토콜을 사용하여 HTTP 요청 메세지를 생성함
  4. TCP/IP 연결을 통해 HTTP요청이 서버로 전송됨
  5. 서버는 HTTP 프로토콜을 활용해 HTTP 응답 메세지를 생성함
  6. TCP/IP 연결을 통해 요청한 컴퓨터로 전송
  7. 도착한 HTTP 응답 메세지는 웹페이지 데이터로 변환되고, 웹 브라우저에 의해 출력되어 사용자가 볼 수 있게 됨

3. 프로세스와 쓰레드의 차이

  • 프로세스
    • 정의: 메모리에 올리와 실행되고 있는 프로그램의 인스턴스
    • 특징
      • 운영체제로부터 독립된 메모리 영역을 할당받는다. (다른 프로세스의 자원에 접근 X)
      • 프로세스들은 독립적이기 때문에 통신하기 위해 IPC를 사용해야 한다.
      • 프로세스는 최소 1개의 쓰레드(메인 쓰레드)를 가지고 있다.
  •  쓰레드
    • 정의: 프로세스 내에서 할당받은 자원을 이용해 동작하는 실행 단위
    • 특징
      • 쓰레드는 프로세스 내에서 Stack만 따로 할당 받고, Code, Data, Heap 영역은 공유한다.
        (Stack을 분리한 이유는 Stack에는 함수의 호출 정보가 저장되는데, Stack을 공유하면 LIFO 구조에 의해 실행 순서가 복잡해지기 때문에 실행 흐름을 원활하게 만들기 위함이다.)
      • 쓰레드는 프로세스의 자원을 공유하기 때문에 다른 쓰레드에 의한 결과를 즉시 확인할 수 있다.
      • 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용하여 실행된다.

4. 트랜잭션(Transaction)

하나 이상의 쿼리를 처리할 때 동일한 Connection 객체를 공유하여 에러가 발생한 경우 모든 과정을 되돌리기 위한 방법입니다.

5. C언어 포인터

포인터는 어떤 변수의 주소값을 저장하는 변수입니다. 포인터의 선언은 변수명 앞에 *을 붙이면 가능하고, 어떤 변수의 주소값을 얻기 위해서는 &를 붙이면 됩니다.

int main() {
    int* p = NULL;
    int num = 10;
    
    p = #
    printf("포인터 p의 값: %d \n", p);
    printf("num의 주소: %d \n", &num);
	
    return 0;
}

6. CDN(Content Delivery Network)

 

CDN(Content Delivery Network)는 물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공하기 위해 고안된 기술입니다. 만약 우리나라에 있는 사람이 미국에 있는 서버로부터 이미지나 파일 등을 다운받으려고 하면 시간이 오래 걸립니다. 따라서 느린 응답속도와 다운로드 시간을 극복하기 위해 서버를 분산시켜 캐싱해두고, 빠르게 다운받을 수 있게 합니다.

CDN은 콘텐츠에 대한 요청이 발생하면 사용자와 가장 가까운 위치에 존재하는 서버로 매핑시켜, 요청된 파일의 캐싱된(사전 저장된) 버전으로 요청을 처리합니다. 서버가 파일을 찾는 데 실패하는 경우 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾은 다음 엔드유저에게 응답을 전송합니다.

 

728x90
Comments