관리 메뉴

나의 개발일지(김지헌)

항해 99 95일차 12/22일 본문

항해 99

항해 99 95일차 12/22일

코딩이좋아요 2022. 12. 23. 01:31

32. TCP 3 way handshake란 무엇인지 설명해주실 수 있을까요?

  • TCP 3 way handshake
    • TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish) 하는 과정
    • 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기 전에 한 쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 한다.
    • 즉, TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다.
    • TCP의 3-way Handshaking 과정
    [STEP 1][STEP 2][STEP 3]위와 같은 방식으로 통신하는것이 신뢰성 있는 연결을 맺어 준다는 TCP의 3 Way handshake 방식이다
  • A클라이언트는 B서버에게 ACK을 보내고 이후로부터는 연결이 이루어지고 데이터가 오가게 되는것이다. 이때의 B서버 상태가 ESTABLISHED 이다.
  • B서버는 SYN요청을 받고 A클라이언트에게 요청을 수락한다는 ACK 와 SYN flag 가 설정된 패킷을 발송하고 A가 다시 ACK으로 응답하기를 기다린다. 이때 B서버는 SYN_RECEIVED 상태가 된다.
  • A클라이언트는 B서버에 접속을 요청하는 SYN 패킷을 보낸다. 이때 A클라이언트는 SYN 을 보내고 SYN/ACK 응답을 기다리는SYN_SENT 상태가 되는 것이다.

33. TCP 와 UDP 를 비교하여 설명해주실 수 있을까요?

  • TCPIP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리
    • TCP
      • 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 연결형 프로토콜
      • 특징 : 연결 지향 방식이다 / 흐름 제어 및 혼잡 제어 / 높은 신뢰성을 보장한다 / UDP보다 속도가 느리다. / 전이중, 점대점 방식
  • 연결형 서비스를 지원하는 전송 계층 프로토콜로써, 인터넷 환경에서 기본으로 사용되며 호스트간 신뢰성 있는 데이터 전달과 흐름제어를 한다. 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜입니다.
  • UDP
    • UDP
      • 데이터를 데이터그램 단위로 처리하는 프로토콜
      • TCP와 달리 비연결형 프로토콜
      • 특징 : 비연결형 서비스로 데이터그램 방식을 제공한다. / 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 x / UDP 헤더의 CheckSum 필드를 통해 최소한의 오류만 검출 / 신뢰성이 낮으며 TCP 보다 빠르다.
  • 비연결형 서비스를 지원하는 전송계층 프로토콜로써, 인터넷상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지않고 보내는쪽에서 일방적으로 데이터를 전달하는 통신 프로토콜

34. 즐겁고 행복했던 경험을 하나 이야기해주실 수 있을까요?

35. Base64 인코딩이란 무엇인가요?

  • Base64
    • Binary Data를 Text로 바꾸는 인코딩 방법 중 하나로 Binary Data를 Character Set에 영향을 받지 않는 공통 ASCII 영역의 문자로만 이루어진 문자열로 바꾸는 인코딩입니다.
    • 변경 방식은 Binary Data를 6bit 씩 자른 뒤 해당 bit에 해당하는 문자를 base64 색인표에서 찾아 치환하는 방식
    • Base64 Encoding을 하게 되면 전송 데이터 양 또한 약 33% 늘어나게 된다. 이유는 6bit당 2bit의 Overhead가 발생하기 때문.
    • 위와 같은 문제로 ASCII 는 시스템간 데이터를 전달하기에 안전하지가 않다. 그러므로 Base64는 ASCII 중 제어문자와 일부 특수문자를 제외한 64개의 안전한 출력 문자만 사용한다.

36. 개발자가 되기로 한 이유에 대해 말씀해주실 수 있을까요?

37. 프로세스와 스레드를 비교하여 설명해주실 수 있을까요?

  • 프로세스 vs 스레드
    • 프로세스 : 메모리에 적재되고 CPU 자원을 할당받아 프로그램이 실행되고 있는 상태, 스레드와 다르게 자원을 공유하지 않는다. 스레드 : 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위 / 하나의 프로그램은 하나 이상의 프로세스를 가지고 있고, 하나의 프로세스는 반드시 하나 이상의 스레드를 갖는다 , 프로세스와 다르게 자원을 공유한다.

38. Call by reference란 무엇이고 보통 어떻게 쓰이나요?

  참조 타입 : object, array,function

데이터의 크기가 정해져있지 않고 변수에 할당 될 때 값이 직접 해당 변수에 저장될 수 없으며 변수에는 데이터에 대한 참조가 저장이 된다 즉 변수의 값이 힙 메모리의 주소 값을 저장하는 것

주소 값을 전달하여 실제 값에 대한 Alias를 구성함으로써 값을 수정하면 원본의 데이터가 수정되는 방식

주소값을 인자로 전달하는 방식 참조에 의한 호출은 원본값의 변경이 일어날 수도 있다는 문제점이 있음

 

'항해 99' 카테고리의 다른 글

항해 99 97일차 12/24일  (0) 2022.12.24
항해 99 96일차 12/23일  (0) 2022.12.24
항해 99 94일차 12/21일  (0) 2022.12.22
항해 99 93일차 12/20일  (0) 2022.12.21
항해 99 92일차 12/19일  (2) 2022.12.20