Sudoers : 권한 관리
·
Linux
sudoers 파일은 Linux 시스템에서 sudo 명령어의 권한을 관리하는 핵심 설정 파일입니다. 이 파일을 통해 어떤 사용자가 어떤 명령어를 실행할 수 있는지 상세하게 제어할 수 있습니다.sudoers 파일 위치와 기본 구조# sudoers 파일 위치/etc/sudoers# 안전하게 편집하기sudo visudo기본 문법 구조# 사용자 권한 설정user HOST=(USER:GROUP) COMMANDS# 예시john ALL=(ALL:ALL) ALLmary ALL=(root) /usr/bin/apt-get주요 설정 예시# root 사용자 설정root ALL=(ALL:ALL) ALL# sudo 그룹 설정%sudo ALL=(ALL:ALL) ALL# 특정..
FastAPI-Cache로 구현하는 효율적인 API 캐싱
·
파이썬/Fast API
FastAPI-Cache 소개와 설치FastAPI-Cache는 FastAPI 애플리케이션에서 손쉽게 캐싱을 구현할 수 있게 해주는 라이브러리입니다. Redis, Memcached 등 다양한 백엔드를 지원합니다.pip install fastapi-cache2[redis] # Redis 백엔드 사용시기본 설정FastAPI 애플리케이션에 캐시를 설정하는 방법입니다.from fastapi import FastAPIfrom fastapi_cache import FastAPICachefrom fastapi_cache.backends.redis import RedisBackendfrom redis import asyncio as aioredisapp = FastAPI()@app.on_event("startup")a..
Router Tags 활용
·
파이썬/Fast API
FastAPI의 include_router에서 사용되는 tags는 OpenAPI(Swagger) 문서화와 API 그룹화에 매우 유용합니다. 특히 Enum을 활용하면 일관성 있는 태그 관리가 가능합니다.기본적인 태그 사용법가장 단순한 형태의 태그 사용입니다.from fastapi import APIRouter, FastAPIapp = FastAPI()router = APIRouter()# 문자열 리스트로 태그 지정app.include_router( router, prefix="/users", tags=["users", "auth"] # 여러 태그 지정 가능)Enum을 활용한 태그 관리대규모 애플리케이션에서는 Enum을 사용하여 태그를 체계적으로 관리할 수 있습니다.from enum imp..
테스트, 배포, 성능 최적화 - Part 3
·
파이썬/Fast API
테스트 구현테스트는 애플리케이션의 안정성을 보장하는 핵심입니다. pytest를 활용하여 체계적인 테스트를 구현해보겠습니다.# tests/conftest.pyimport pytestfrom httpx import AsyncClientfrom sqlalchemy.ext.asyncio import AsyncSession, create_async_enginefrom sqlalchemy.orm import sessionmakerfrom app.main import appfrom app.api import depsfrom app.db.base import BaseTEST_DATABASE_URL = "postgresql+asyncpg://test:test@localhost/test_db"@pytest.fixture(..
라우터 구현과 에러 처리 - Part 2
·
파이썬/Fast API
라우터 구조화대규모 애플리케이션에서는 라우터를 체계적으로 구성하는 것이 중요합니다. 버전별, 기능별로 라우터를 분리하여 관리합니다.# app/api/v1/router.pyfrom fastapi import APIRouterfrom app.api.v1.endpoints import user, itemapi_router = APIRouter()api_router.include_router( user.router, prefix="/users", tags=["users"])api_router.include_router( item.router, prefix="/items", tags=["items"])# app/api/v1/endpoints/user.pyfrom fastapi im..
프로젝트 구조와 기본 설정 - Part 1
·
파이썬/Fast API
이 시리즈에서는 FastAPI의 모범 사례를 기반으로 확장 가능하고 유지보수가 쉬운 애플리케이션을 설계하는 방법을 알아보겠습니다.프로젝트 구조 설계첫 번째로 다룰 내용은 프로젝트 구조입니다. 잘 설계된 구조는 프로젝트의 확장성과 유지보수성을 크게 향상시킵니다.├── app/│ ├── api/│ │ ├── v1/│ │ │ ├── endpoints/│ │ │ │ ├── user.py│ │ │ │ └── item.py│ │ │ └── router.py│ │ └── deps.py│ ├── core/│ │ ├── config.py│ │ └── security.py│ ├── db/│ │ ├── session.py│ ..
[FastAPI] add_api_route 파라미터
·
파이썬/Fast API
FastAPI의 add_api_route는 매우 강력한 기능을 제공하지만, 많은 매개변수로 인해 처음에는 이해하기 어려울 수 있습니다. 각 매개변수의 역할과 실제 활용 방법에 대해 알아보겠습니다.필수 매개변수 이해하기from fastapi import FastAPI, Responsefrom typing import List, Dict, Anyapp = FastAPI()# 기본적인 매개변수 사용app.add_api_route( path="/users", # 엔드포인트 경로 endpoint=get_users, # 실행될 함수 methods=["GET"] # HTTP 메서드)응답 관련 매개변수응답 형식과 관련된 매개변수들은 API의 출..
[REST API] RESTful API 설계 가이드
·
TypeScript
REST API는 현대 웹 서비스 개발에서 가장 널리 사용되는 아키텍처 스타일입니다. 이 글에서는 REST API의 핵심 개념부터 실제 설계 방법까지 상세히 다뤄보겠습니다.REST API의 기본 원칙REST(Representational State Transfer)는 다음 6가지 기본 원칙을 따릅니다:Uniform InterfaceStatelessCacheableClient-Server 구조Layered SystemCode on Demand (선택사항)RESTful한 URI 설계하기REST API에서 가장 중요한 것은 리소스를 어떻게 정의하고 표현하느냐입니다. 다음은 실제 프로젝트에서 자주 사용되는 URI 설계 예시입니다.# 좋은 URI 설계 예시GET /users # 사용자..