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이 아닌 정수 값을 갖는다.
- 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)의 구조가 결정된다.
- Stream
- OS 차원에서 지원하는 기능
- 파일을 읽거나 쓸 때, 네트워크 소켓을 거쳐 통신할 때 쓰이는 추상적인 개념
- 🔗 https://ko.wikipedia.org/wiki/스트림_(컴퓨팅)
1. Stream Socket
양방향 통신을 제공
L4에서 TCP를 사용한다.
TCP는 패킷이 오류 없이 순서대로 도착하는 것은 보장한다.
사용 - 웹서버, 메일서버, FTP
- TCP :전송 제어 프로토콜(Transmission Control Protocol)
- 3-way handshaking
- 🔗 https://velog.io/@minpic/TCPIP-송수신에-대한-이해
- TCP 통신에 관한 동료분의 설명
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 |