파이썬

    [Web API] URL 파라미터 데이터 전송

    소개웹 개발에서 클라이언트와 서버 간의 데이터 전송 방식 중 하나인 URL 파라미터 방식에 대해 자세히 알아보겠습니다. 이 방식의 장단점, 보안 고려사항, 그리고 프론트엔드에서의 구현 방법까지 상세히 다루겠습니다.URL 파라미터의 종류Path Parameters/api/users/{user_id}/posts/{post_id}리소스를 식별하는 데 사용URL 경로의 일부로 포함필수 값으로 처리됨Query Parameters/api/users?role=admin&status=active필터링, 정렬, 페이지네이션에 사용? 뒤에 key=value 형태로 추가선택적 값으로 처리됨프론트엔드 구현fetch API 사용// Path Parameters 사용const getUserDetails = async (userI..

    [HTTP] 프론트엔드와 백엔드의 데이터 통신 Content-Type

    소개HTTP 통신에서 Content-Type은 서버와 클라이언트 간에 주고받는 데이터의 형식을 지정하는 중요한 헤더입니다. 이번 글에서는 Content-Type의 모든 것을 상세히 알아보겠습니다.Content-Type이란?Content-Type은 HTTP 헤더의 일부로, MIME(Multipurpose Internet Mail Extensions) 타입을 사용하여 데이터의 형식을 지정합니다.주요 Content-Type 형식텍스트 형식// 일반 텍스트Content-Type: text/plain// HTMLContent-Type: text/html// CSSContent-Type: text/css// JavaScriptContent-Type: text/javascript애플리케이션 데이터// JSONCont..

    requests vs aiohttp - HTTP 요청의 모든 것

    소개Python에서 HTTP 요청을 처리할 때 가장 많이 사용되는 두 라이브러리인 requests와 aiohttp의 매개변수와 사용법을 자세히 비교해보겠습니다.설치 방법# requests 설치pip install requests# aiohttp 설치pip install aiohttprequests 라이브러리의 주요 매개변수GET 요청import requestsresponse = requests.get( url="https://api.example.com/data", params={'key': 'value'}, # URL 쿼리 파라미터 headers={'Authorization': 'Bearer token'}, # 요청 헤더 cookies={'session':..

    [Pydantic] Field로 데이터 유효성 검사 마스터하기

    소개FastAPI와 함께 자주 사용되는 Pydantic의 Field를 통해 데이터 유효성 검사를 구현하는 방법을 알아보겠습니다.설치 방법# pip 사용pip install pydantic# poetry 사용poetry add pydantic# pipenv 사용pipenv install pydantic기본 사용법간단한 모델 정의from pydantic import BaseModel, Fieldclass User(BaseModel): name: str = Field(..., min_length=2, max_length=50) age: int = Field(gt=0, lt=150) email: str = Field(..., pattern=r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-..

    파이썬 개발을 위한 VSCode 셋팅 가이드

    소개VSCode에서 Python 개발을 할 때, 적절한 settings.json 설정은 개발 경험을 크게 향상시킬 수 있습니다. 오늘은 각 설정의 의미와 효과를 자세히 알아보겠습니다.Type Hint 관련 설정인레이 힌트 설정{ "python.analysis.inlayHints.variableTypes": true, "python.analysis.inlayHints.functionReturnTypes": true}이 설정들은 코드 에디터에 타입 정보를 직접 표시해줍니다. 예시:# 설정 전name = "John"def get_age(): return 25# 설정 후name: str = "John"def get_age() -> int: return 25자동 저장 및 포매팅 설정{ ..

    함수 하나로 여러 가지 처리하기? Python 오버로딩

    소개안녕하세요! 오늘은 Python에서 오버로딩을 구현하는 방법에 대해 알아보겠습니다. 오버로딩이란 무엇이고, 왜 필요한지부터 차근차근 설명드리겠습니다.오버로딩이란?오버로딩은 같은 이름의 함수나 메서드가 다른 매개변수를 받아 다르게 동작하도록 하는 기능입니다. 쉽게 말해서, 하나의 함수가 여러 가지 일을 할 수 있게 만드는 것입니다.실생활 예시계산기를 생각해봅시다:두 숫자를 더할 수도 있고세 숫자를 더할 수도 있고숫자와 문자를 연결할 수도 있죠오버로딩 방법1. singledispatch 사용하기from functools import singledispatch@singledispatchdef greet(arg): print(f"무언가를 받았어요: {arg}")@greet.register(str)def..

    자료구조 : deque, Queue, heapq

    소개Python에서 제공하는 자료구조인 collections.deque, queue.Queue, heapq의 특징과 활용법을 자세히 알아보겠습니다. 각 자료구조의 성능 특성과 적합한 사용 사례를 살펴보겠습니다.collections.dequedeque(double-ended queue)는 양쪽 끝에서 빠른 삽입과 삭제가 가능한 자료구조입니다.시간 복잡도연산시간 복잡도앞/뒤 삽입/삭제O(1)임의 접근O(n)길이 확인O(1)예시from collections import deque# 기본 사용법d = deque([1, 2, 3, 4, 5])d.append(6) # 오른쪽 끝에 추가d.appendleft(0) # 왼쪽 끝에 추가d.pop() # 오른쪽 끝에서 제거d.pople..

    next()와 제너레이터 표현식

    소개Python의 next()와 제너레이터 표현식은 메모리 효율적인 데이터 처리를 위한 강력한 도구입니다. 이번 글에서는 이들의 사용법과 실제 활용 사례를 살펴보겠습니다.next() 함수 이해하기기본 사용법# 간단한 이터레이터 생성numbers = iter([1, 2, 3])# next() 사용first = next(numbers) # 1second = next(numbers) # 2third = next(numbers) # 3# StopIteration 예외 발생try: next(numbers) # StopIteration 발생except StopIteration: print("더 이상 요소가 없습니다")next()의 기본값 활용numbers = iter([1, 2, 3])# 기본값 ..