본문 바로가기
KraftonJungle2기/Today I Learned

[TIL] 7주차 - 넘겼던 부분 동료학습 정리

by SooooooooS 2023. 5. 24.
728x90

1. 아침 문제 풀이

1. 2559번 - 수열 - 2023.05.24

import sys

N, K = map(int, sys.stdin.readline().split())
nums = list(map(int, sys.stdin.readline().split()))

result = sum(nums[:K]) # 구해야할 값
curr = result # 현재 0부터 K-1까지 연속된 값의 합
for i in range(K, N) :
    curr = curr - nums[i-K] + nums[i] # 맨앞의 값은 빼고 뒤에 값 추가(슬라이딩 윈도우)
    if curr > result :
        result = curr
print(result)
전에 공부했던 슬라이딩 윈도우를 사용하여 푼 문제

요즘 점점 풀수록 어떤 알고리즘을 사용해야 좋을지 금방 떠오른다.
꾸준히하니까 늘어가는게 보이니 너무 좋다.

2. file descriptor

특정한 파일에 접근하기 위한 추상적인 키
즉, 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값
파일 디스크립터는 일반적으로 0이 아닌 정수 값을 갖는다.

내가 이해한 fd

  • 0~2번은 정해져 있다. 즉, 3번 부터 시작한다.
  • 파일 디스크립터는 테이블의 인덱스이다.
    • flag : 접근 권한 등에 대한 정보가 있다.
    • pointer : 파일의 위치를 나타내는 포인터
  • 이는 파일을 Open()하면 받고 사용하지 않는 fd 숫자 중 가장 작은 값을 할당해 준다.

 

< 참고 >

🔗 https://ko.wikipedia.org/wiki/파일_서술자

🔗 https://twofootdog.tistory.com/51

🔗 https://dev-ahn.tistory.com/96

🔗 https://velog.io/@hyeseong-dev/File-Descriptor

🔗 https://velog.io/@minpic/파일-디스크립터-File-descriptor - 같이 동료학습한 분의 글 : fd의 구조를 더 자세하게 확인


3. Socket

운영체제를 통해 네트워크 통신을 하는 표준 방법
네트워크로 데이터를 주고 받는데 사용하는 도구 = 프로세스 간 통신의 종착점
L5(session)에서 이 정보가 전송되고 소켓 타입에 따라 L4(transport)의 구조가 결정된다.

1. Stream Socket

양방향 통신을 제공
L4에서 TCP를 사용한다.
TCP는 패킷이 오류 없이 순서대로 도착하는 것은 보장한다.

사용 - 웹서버, 메일서버, FTP
  • TCP :전송 제어 프로토콜(Transmission Control Protocol)
    • 3-way handshaking

https://ko.wikipedia.org/wiki/전송_제어_프로토콜

2. Datagram Socket

단방향 통신을 제공
L4에서 UDP를 사용한다.
UDP는 패킷이 순서대로 수신되는지, 오류가 없는지 확인하지 않아서 부하가 적어 속도가 빠르다.

사용 - 게임, 스트리밍, DNS
  • TCP와 다르게 헤더 정보도 적고 단순하여 신뢰성도 낮고 오류를 검출하지 않는다.
  • 일반적으로 오류의 검사와 수정이 필요없는 어플리케이션에서 수행할 것을 가정
  • TCP보다 오버헤드가 적어 빠르다.

 

< 참고 >

🔗 https://tyeolrik.github.io/network/2017/02/10/Networking-2-What-Is-Socket.html

🔗 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=mankeys&logNo=221296673493

🔗 https://ko.wikipedia.org/wiki/사용자_데이터그램_프로토콜


핀토스라는 프로젝트에 들어가기 전주이다.

그동안 바쁘게 구현만 해오다가 이번에는 동료학습 겸 넘겨왔던 개념에 대해 이야기 나누는 시간을 가졌다.

같은 개념을 공부해도 어느 부분을 집중적으로 하는지에 따라 개념이 채워져가는 것을 느꼈다.

 

728x90

'KraftonJungle2기 > Today I Learned' 카테고리의 다른 글

[TIL] OS 용어 정리  (0) 2023.05.26
[TIL] Thread 개념 정리  (0) 2023.05.25
[TIL] Proxy 개념 정리  (0) 2023.05.24
[TIL] CSAPP 11장 공부4 - tiny 서버 정리  (0) 2023.05.22
[TIL] CSAPP 11장 공부3 - 웹 서버  (0) 2023.05.21