호우동의 개발일지

Today :

article thumbnail
[Network] 트랜스포트 계층의 데이터 다중화와 역다중화

트랜스포트 계층의 데이터 수신 및 전달 트랜스포트 계층의 의무 목적지 호스트의 트랜스포트 계층은 바로 아래의 네트워크 계층으로부터 세그먼트를 수신 → 목적지 호스트의 트랜스포트 계층은 호스트에서 동작하는 프로세스에게 수신한 세그먼트를 전달할 의무를 지님 예시 4개의 네트워크 애플리케이션을 갖는다고 가정 트랜스포트 계층이 하위 네트워크 계층으로부터 데이터를 수신 → 4개의 프로세스 중 하나에게 데이터를 전달해야 함 트랜스포트 계층에서의 소켓 프로세스는 네트워크 애플리케이션의 한 부분으로서 소켓을 가지고 있다. 이를 통해 네트워크와 프로세스 간의 데이터를 교환하는 출입구 역할을 함 수신 측 호스트의 트랜스포트 계층은 데이터를 직접 프로세스에 전달하지 않는다. → 대신 중간 매개자인 소켓에게 전달 각각의 소켓..

[Network] 인터넷 프로토콜(IP) 개념과 UDP/TCP 서비스 모델

인터넷 트랜스포트 계층의 개요 인터넷 문서(RFC)에서 트랜스포트 계층 패킷 용어 표기 TCP → 세그먼트 UDP → 세그먼트 or 데이터그램 인터넷 프로토콜(IP) 인터넷 프로토콜(Internet Protocol) 인터넷의 네트워크 계층 프로토콜의 이름 IP 서비스 모델은 호스트들 간에 논리적 통신을 제공하는 최선형 전달 서비스 최선형 전달 서비스(best-effort delivery service) IP가 통신하는 호스트들 간에 세그먼트 전달에 최대한 노력한다. 하지만 IP는 어떤 보장도 하지 않는다. 세그먼트의 전달을 보장하지 않는다. 세그먼트가 순서대로 전달되는 것을 보장하지 않는다. 세그먼트 내부 데이터의 무결성(integrity)을 보장하지 않는다. → 이러한 이유로 IP를 비신뢰적인 서비스라..

article thumbnail
[Java/C++] 프로그래머스 Level 3 - 상담원 인원
Algorithm/Programmers 2023. 8. 10. 18:58

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/214288 2023 현대 모비스 알고리즘 경진대회 예선에서 출제된 문제. 시간제한을 두고 풀 땐 실패했지만 집에서 천천히 풀어보니 아이디어가 쉽게 떠올랐던 문제 문제 핵심 및 풀이 시간 복잡도 파악 문제 해결을 위해 시간 복잡도를 계산해야 한다. 제한 사항을 살펴보자. 상담 유형은 최대 5개, 멘토의 수는 최대 20명, 상담 요청은 최대 300개까지이다. 문제에서 핵심적으로 해야 하는 것은 멘토 n명을 상담 유형 k에 적절히 분배하는 것이다. 만약 가능한 모든 경우의 수를 구해서 찾는다면 대략 얼마나 걸릴까? k = 5, n = 20이라고 가정하자. 각 유형별로 적어도 1명은 존재해야 하므..

[Network] 트랜스포트 계층 프로토콜의 정의와 논리적 통신

트랜스포트 계층 서비스 및 개요 트랜스포트 계층 프로토콜의 논리적 통신 다른 호스트에서 동작하는 애플리케이션 프로세스 간 논리적 통신을 제공 논리적 통신(logical communication) 애플리케이션 관점, 프로세스를 동작시키는 호스트들이 직접 연결된 것처럼 보인다는 의미 호스트는 수많은 라우터와 다양한 형태의 링크를 통해 연결되어 있음 → 이를 통해 서로 다른 지역에 존재할 수 있음 애플리케이션 프로세스는 메시지 송신을 하는데 논리적 통신을 사용한다. ← 메시지 운반에 사용되는 인프라스트럭처의 세부사항에 상관없이 메시지를 송신하기 위해서 논리적 통신의 개념(과정) 트랜스포트 계층 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현됨 송신 측의 트랜스포트 계층은 송신 애플리케이션 프로세스로부터..

article thumbnail
[Network] TCP 소켓 프로그래밍 개념 및 구현(Python)

클라이언트-서버 애플리케이션 개발 애플리케이션에 TCP, UDP 중 어떤 것을 사용할지 결정해야 함 TCP : 연결지향적 서비스 신뢰적 바이트 스트림 채널 제공 해당 채널을 통해 데이터가 두 종단 시스템 사이를 흐름 UDP : 비연결형 서비스 한 종단 시스템에서 다른 곳으로 데이터를 독립적인 패킷으로 만들어 전송 전송에 대한 보장을 하지 않는다. RFC 표준 프로토콜 vs 개인 독점 프로토콜 RFC 표준 프로토콜 오늘날 대부분의 네트워크 애플리케이션 독립 개발자가 개발한 클라이언트와 서버 프로그램 간의 통신을 포함 RFC에 정의된 프로토콜을 구현할 때, 해당 프로토콜과 잘 알려진 포트 번호를 사용 개인 독점 프로토콜 공개된 프로토콜을 구현하지 않음 → 다른 독립 개발자는 이 애플리케이션과 상호작용하는 코..

article thumbnail
[Network] UDP 소켓 프로그래밍 개념 및 구현(Python)

UDP를 이용한 소켓 프로그래밍 UDP 소켓 프로그래밍 과정 송신 프로세스가 데이터 패킷을 소켓 밖으로 내기 전에 먼저 패킷에 목적지 주소를 붙여 넣음 패킷이 송신자의 소켓을 통과 해당 소켓을 인터넷을 통해 수신 프로세스에 있는 소켓으로 라우트함 패킷이 수신 소켓에 도착 수신 프로세스는 소켓을 통해 해당 패킷을 추출하고 다음에 패킷의 콘텐츠를 조사 및 동작 UDP 패킷 구성 목적지 주소 목적지 주소 = 목적지 호스트 IP 주소 + 소켓 포트 번호 목적지 호스트 IP 주소 → 이를 통해 인터넷의 라우터는 목적지 호스트로 인터넷을 통해 패킷을 라우트 가능 소켓 포트 번호 포트 번호(port number) : 소켓이 생성될 때 소켓에 할당되는 식별자 호스트는 여러 개의 소켓을 갖는 많은 네트워크 애플리케이션 ..

[Java/C++] 프로그래머스 Level 3 - 에어컨
Algorithm/Programmers 2023. 8. 9. 16:25

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/214289 2023 현대 모비스 알고리즘 대회 예선에서 올라온 문제다. 프로그래머스에 카카오 기출 말고 다른 기업 것을 풀어보는 건 처음이었는데, 확실히 유형이 다르다는 것을 느꼈다. 문제가 나온 지 얼마 안 돼서 푼 사람이 70명 남짓밖에 되지 않았다. 그래서 참고할만한 인터넷 글은 없었는데, 다행히 질문 글에 해설 글을 참고하여 풀 수 있었다. 그렇게 여차저차 2일 만에 문제를 해결했다. 문제 핵심 및 풀이 희망 온도 마치 중요한 것처럼 적혀있지만, 희망온도라는 키워드에 속지 않도록 해야 한다. 문제 설명에서 보면 "희망 온도는 에어컨의 전원이 켜져 있는 동안 원하는 값을 변경할 수 있..

article thumbnail
[Java] 함수형 인터페이스를 이해하면 코딩이 편해진다.
Back-End/Java 2023. 8. 7. 14:21

함수형 인터페이스를 알면 편한 이유 우리가 보통 코딩을 할 때, Visual Studio Code, Intellij 등 IDE 환경에서 진행한다. IDE를 사용하면 엄청나게 편리하다. 내가 여기서 말하고자 하는 것은, IDE가 클래스의 함수 이름과 기능을 제공해 주는 것에 대한 것이다. 컬렉션이 어떤 함수를 가지고 있는지를 알 수 있고, 어떤 기능을 하는지 알 수 있다. 위는 인텔리제이에서 arrayList 컬렉션에서 사용할 수 있는 함수를 IDE에서 창으로 알려주는 모습이다. 빨간 줄 부분이 전부 함수형 인터페이스 부분이다. 사실 함수형 인터페이스는 생소하지만 항상 우리 옆에 있었다. 함수형 인터페이스를 모른다면, IDE에서 해당 함수의 사용법을 알려줬는데도 사용하지 못하는 것이다. 예를 들어서 str..