WIL

WIL 08

pwerty 2025. 5. 8. 00:55

적당히만 놀았는데 왜 나 1인분도 못하는 것 같지..

라는 기분으로 임한 이번 주였다. 아니 진짜 적당히 놀았는데..? 왜 다들 저만치 후다닥 호다닥 앞서가있을까? 죽어도 놀지 않겠다는 소리보단 시간을 충실히 보내는 마음가짐을 다시 잡아야한다고 느낀다.

갈 길이 많이 멀다고 느끼는 지금 숲 속에서 숲의 전경을 볼 수 없다는 말이 공감된다. 내일 시작되는 pintOS는 어찌든 해야지 뭐..

과거 비슷한 과정을 수료한 주니어 코치 왈 : 그 때의 나에게 해줄 말이 있다면 성급하지 말고 꼭꼭 씹어 잡수기

꿈보다 해몽인가 싶은데, 남들 따라가다가 컨디션 말리지말고, 본인 결대로 간다는 느낌이다.

 

 

이번 주 하려고 했던 퀴즈 문제를 간략하게 정돈해본다.

1. HTTP 응답 코드 404의 의미는? 그리고, 서버가 요청을 처리 할 수 없을 때 반환하는 HTTP 번호는?

  • 404 : Not Found, 서버가 요청받은 리소스를 찾을 수 없는 경우 띄운다.
  • 500 : Internal Server Error, 서버가 요청을 처리 할 수 없을 때 반환하는 HTTP 상태 코드이다.

 

 

2. HTTP GET 요청과 POST 요청의 가장 큰 차이는? 이로 인한 요청 헤더나 데이터 전송에 어떤 영향을 미칠까?

  • GET 요청은 데이터를 URL의 일부로 전송한다. (query string을 말함)
  • POST 요청은 데이터를 요청 본문(body)에 포함한다.
  • 이 차이로 인해, GET 요청의 URL 길이에는 브라우저나 서버에 따라 제한이 있다. 이로 인해 전송 할 수 있는 데이터의 양이 제한된다.
  • POST 요청은 'Content-Length'나 'Content-Type' 같은 추가적인 헤더 정보를 필요로 한다.

 

 

3. 파일 디스크립터란 무엇인지 간단하게 설명하고, UNIX/Linux 시스템에서 표준 입출력/에러의 파일 디스크립터 번호를 적기

  • 파일 디스크립터는 운영 체제나 파일에서 다른 입출력 리소스에 대한 접근을 추상화하는데 사용하는 정수이다. 파일 디스크립터를 이용하면 운영체제는 파일, 파이프, 소켓 등 다양한 입출력 리소스를 일관되게 관리 할 수 있다.
  • UNIX/Linux 시스템에서 표준 입력의 파일 디스크립터 번호는 0, 표준 출력은 1, 그리고 표준 오류는 2이다.

 

 

4. 3-way handshake의 절차는?

  • 클라이언트가 서버에 SYN(Synchronize) 패킷을 보내 연결 요청을 한다.
  • 서버는 SYN-ACK(Synchronize-Acknowledge) 패킷으로 응답하여 연결 요청을 받았음을 알리고, 자신도 연결 준비가 되었음을 나타낸다.
  • 클라이언트는 ACK(Acknowledge) 패킷을 서버에 보내 연결을 확정한다.

 

 

5. TCP와 UDP에서 패킷 손실 시 대처 방법에는 어떤 차이가 있게?

TCP는 패킷 손실이 발생하면 자동으로 재전송을 시도한다. 수신자는 받은 패킷에 대해 확인 응답(ACK)를 보내고, 송신자는 ACK를 받지 못한 패킷을 재전송한다.

반면, UDP는 패킷 손실에 대해 자체적으로 대처하지 않는다. UDP는 확인 응답이나 재전송 기능이 없어, 패킷 손실이 발생하면 이를 App Level에서 처리해야한다.

 

 

6. 결과는?

#include <stdio.h>
int main(int argc, char *argv[])
{
 int x = 1, z[2] = {10, 11};
 int *p = NULL;
 p = &x;
 *p = 10;
 p = &z[1];
 *(&z[0] + 1) += 3;
 printf("%d, %d, %d\n", x, z[0], z[1]);
 return 0;
}
  • 답 : 10, 10, 14
  • p는 x를 가리킨다.
  • p를 10으로 수정한다.
  • p는 z[1]을 가리킨다.
  • z[1]에 대한 값에 + 3을 더한다.

x는 10으로 수정 됐고, z[0]은 뭔 일 없고, z[1]은 3이 더해져서 14. 그래서 10 10 14가 답이다.