본문은 “그림으로 공부하는 TCP/IP 구조” 및 각종 자료를 읽고 재구성한 글임을 밝힙니다. 웹브라우저에서 웹서버에 연결하는 경우, 패킷은 물리 계층 → 데이터링크 계층 → 네트워크 계층 프로토콜을 통해 웹서버까지 전송되며, 트랜스포트 계층 프로토콜에서 HTTP 애플리케이션에 선별되고, 애플리케이션 계층 프로토콜에서 HTTP 서버 애플리...
[Network] 5. 애플리케이션 계층
[Python] 숫자의 각 자릿수 구하기
주어진 정수 num에 대해 각 자릿수를 구하는 함수는 다음과 같다. def get_number(num): i = 1 while i <= num: print(num // i % 10) i *= 10 return 실행 결과는 다음과 같다. get_number(2345) 5 4 3 2
[Python] 10진수를 n진수로 변환하는 함수
n이 16 이하인 값일 때, 10진수인 num을 n진수로 변환하는 함수는 다음과 같다. def n_base(n, num): DIGITS = '0123456789ABCDEF' if num == 0: return DIGITS[0] result = '' while num > 0: d, m =...
[Python] match-case 문, else 절
1. 패턴 매칭(Pattern Matching) C언어의 switch - case 문을 파이썬에서도 쓰고 싶다면? 패턴 매칭을 이용한다. 1-1. match 문과 case 절 | 를 사용하여 or 조건을 걸 수 있다. ['quote', x] : 'quote'로 시작하는 list를 찾을 수 있다. 각 조건의 끝 부분에 if로 gua...
[Python] 문자열 내 다중 공백 하나로 줄이는 방법
파이썬에서 문자열 내에 여러 개의 whitespace가 연달아 있는 부분을 하나의 공백으로 줄이거나 제거해야 하는 경우가 발생한다. 이러한 경우에 시도해 볼 수 있는 방법에는 두 가지가 있다. [방법 1] 정규표현식 re.sub() 다음과 같이 문자열 내에 하나 이상의 whitespace로 이루어진 부분을 공백 하나로 치환할 수 있다. re...
[Python] 컨텍스트 매니저 프로토콜(Context Manager Protocol)과 with 문
1. 컨텍스트 매니저와 with 블록 이터레이터(iterator)가 for 문을 제어하기 위해 존재하듯, 컨텍스트 매니저 객체(context manager object)는 with 문을 제어하기 위해 존재한다. 1-1. with 문 코드 블록이 어떠한 이유로든 종료되더라도, 해당 블록 이후에 특정 연산이 수행될 수 있도록 보장한다. 즉,...
[Network] 4. 트랜스포트 계층
본문은 “그림으로 공부하는 TCP/IP 구조” 및 각종 자료를 읽고 재구성한 글임을 밝힙니다. 트랜스포트 계층은 다음의 동작을 통해 네트워크와 애플리케이션을 연결하는 역할을 한다. 포트 번호를 이용하여 애플리케이션 식별 요구에 맞는 전송 제어 패킷 송수신량 제어 손실된 패킷 재전송 등 ...
[Python] 이터러블(Iterable), 이터레이터(Iterator), 제너레이터(Generator)
TL;DR 📌 [📢] Iterable vs. Iterators vs. Generators 1. 개요 파이썬에서는 이터레이션(iteration)을 통해 데이터 시리즈(data series)에 연산을 적용할 수 있으며, 이터레이터(iterator)를 통해 데이터가 메모리에 수용 가능하지 않은 경우, 필요에 따라 아이템을 lazy 하게 fetch ...
[Network] 3. 네트워크 계층
본문은 “그림으로 공부하는 TCP/IP 구조” 및 각종 자료를 읽고 재구성한 글임을 밝힙니다. 네트워크 계층은 이더넷이나 무선 LAN에서 만들어진 네트워크를 함께 연결해, 다른 네트워크에 있는 단말과의 연결성을 확보하는 계층이다. 데이터링크 계층(L2): 같은 네트워크 안에 존재하는 단말들의 연결까지만 담당한다. 네트워크 계층(...
[Python] 데코레이터(Decorator)
TL;DR 📌 데코레이터를 통해 어떤 타겟 함수에 해당 함수의 코드의 수정 없이 동작을 추가할 수 있다. 이는 타겟 함수를 (데코레이터 내부에 정의된) 데코레이터 함수로 타겟 함수를 감싼 것으로 교체함으로써 동작한다. 표준 라이브러리 functools에서 제공하는 데코레이터를 활용하면 memoization, 메서드 오버로딩 등의 동작을 편리...