HTTP 이해하기HTTP는 HyperText Transfer Protocol의 약자로, 서버와 클라이언트 간 정보를 주고받기 위한 통신 프로토콜임. HTTP는 TCP/IP 기반으로 작동하며, 웹 상에서 HTML, JSON과 같은 데이터 형식을 주고받는 데 사용됨. HTTP의 주요 특징은 다음과 같음:Connectionless: 서버와 클라이언트는 요청(Request)과 응답(Response)이 끝나면 연결을 끊음. 동시 접속자 수가 많아도 서버 리소스를 효율적으로 사용할 수 있음Stateless: 서버는 클라이언트의 상태를 유지하지 않음.로그인 상태와 같은 정보를 유지하려면 Cookie, Session, JWT 등의 추가 기술이 필요함HTTP 메시지 구조HTTP 통신은 클라이언트가 서버로 요청(Reque..
파이썬으로 단일 연결 리스트(Linked List) 구현하기연결 리스트(Linked List)는 데이터 구조의 기본 중 하나로, 각 요소(Node)가 데이터와 다음 노드의 주소(참조)를 포함하는 방식으로 연결된 자료 구조임. 파이썬으로 단일 연결 리스트를 구현하는 방법을 예제 코드와 함께 설명함코드: LinkedList 클래스 구현아래는 Node 클래스와 LinkedList 클래스를 정의하여 연결 리스트의 기본 동작(추가, 조회, 삭제 등)을 구현한 코드임class Node: def __init__(self, data): self.data = data self.next = Noneclass LinkedList: def __init__(self, value): ..
파이썬 일급 함수와 클로저 기초 이해파이썬은 일급 함수(First-Class Function)를 지원하는 언어로, 함수를 마치 하나의 객체처럼 다룰 수 있음.이에 따라 클로저(Closure)라는 개념도 자연스럽게 등장함.클로저는 함수가 종료된 후에도 함수의 자유 변수(free variable)를 기억하고 사용할 수 있게 하는 강력한 기능을 제공함.일급 함수란?파이썬의 함수는 다음과 같은 조건을 만족하며 일급 객체로 취급됨:함수를 변수에 할당할 수 있음함수의 인수로 다른 함수를 전달할 수 있음함수의 반환값으로 다른 함수를 반환할 수 있음클로저(Closure)란?클로저는 함수가 반환된 이후에도 반환 당시의 환경을 기억하고 있는 함수임. 특히, 클로저는 외부 함수의 변수와 상태를 저장하여 이후에도 이를 참조하..
Python의 해시테이블(Hashtable) 활용: Dict와 SetPython에서 해시테이블은 적은 리소스로 대량의 데이터를 효율적으로 관리할 수 있는 핵심 구조임 특히 Dict와 Set은 데이터 중복을 허용하지 않고 빠른 검색을 가능하게 하여, 다양한 프로그래밍 문제에서 중요한 역할을 함1. Dictionary와 Set의 기본 특징Dictionary (Dict)키-값 쌍으로 데이터를 관리Key는 중복 불가, Value는 중복 허용삽입 순서를 유지Set데이터의 중복을 허용하지 않음순서가 없으며, 해싱을 기반으로 빠른 연산 가능추가적으로 frozenset을 통해 불변(immutable)한 집합을 생성 가능2. 불변 Dictionary (Immutable Dict)Python의 MappingProxyTyp..
해시 테이블 (Hash Table)란?해시 테이블은 Key-Value 형태로 데이터를 저장하는 자료구조로, Key 값을 해싱 함수(Hashing Function)를 통해 계산된 해시 주소에 매핑하여 데이터에 빠르게 접근할 수 있도록 함. Python에서는 dict와 set이 대표적으로 해시 테이블을 기반으로 구현된 자료구조임.파이썬 dict의 특징해시 값을 기반으로 한 접근성키 값의 해싱 결과에 따라 특정 메모리 주소로 바로 접근이 가능하므로 검색 속도가 매우 빠름.Mutable, Dynamicdict는 가변적이며, 필요한 만큼 동적으로 확장할 수 있음.Key의 조건 Key는 해시 가능(immutable)해야 함. 해시 가능 여부는 hash() 함수로 확인 가능.예를 들어, 튜플은 요소가 모두 immu..
Python 정렬 메서드 비교: sort와 sorted1. 차이점sorted새로운 객체 반환: 기존 리스트를 변경하지 않고, 정렬된 새로운 리스트를 반환함.사용 방식: sorted(iterable, *, key=None, reverse=False)원본 데이터는 변경되지 않음.sort원본 리스트 직접 변경: 리스트 객체에서 메서드로 호출하며, 리스트를 제자리에서 정렬함.사용 방식: list.sort(*, key=None, reverse=False)반환값: None (작업 후 리스트를 반환하지 않음).2. 예제 코드# 리스트 데이터 준비f_list = ['orange', 'apple', 'mango', 'papaya', 'lemon', 'strawberry', 'coconut']# sorted 예제print..
파이썬 namedtuple에 대한 이해와 활용파이썬의 namedtuple은 간단하고 가벼운 데이터 객체를 생성할 수 있는 표준 라이브러리 모듈인 collections에서 제공됨. 기존의 튜플과 유사하지만, 필드 이름을 지정하여 가독성을 높이고 키워드로 접근할 수 있는 점이 특징임. 1. namedtuple의 기본 사용법namedtuple은 튜플과 같은 불변 객체이지만, 필드 이름으로 값에 접근 가능함.namedtuple 정의from collections import namedtuple# Person이라는 namedtuple 정의Person = namedtuple('Person', ['name', 'age', 'city'])# 인스턴스 생성p = Person(name='Alice', age=30, city..
Python 매직 메서드(Magic Method) 이해하기파이썬에서 매직 메서드(Magic Method)는 클래스에 특별한 동작을 부여하기 위해 사용되는 특별한 형태의 메서드임. 이러한 메서드는 더블 언더스코어(__)로 시작하고 끝나는 이름을 가지며, 객체의 특정 동작을 커스터마이즈하거나 오버라이딩할 수 있도록 설계됨. 예를 들어, __init__, __str__, __add__ 등이 이에 해당함.1. 매직 메서드의 기본 개념매직 메서드는 클래스 내부에서 특별한 기능을 수행하며, Python의 빌트인 기능과 상호작용할 때 호출됨. 직접 호출하기보다는 특정 상황에서 Python이 자동으로 호출함.주요 매직 메서드 예시__init__(self, ...) : 객체 초기화__str__(self) : 객체의 문자..