🐍 Python
-
이펙티브 파이썬 8장 - 강건성과 성능
Better way 65 try/except/else/finally의 각 블록을 잘 활용하라블록용도try예외가 발생할 수 있는 최소한의 코드만 포함except예외 처리else예외 없이 성공한 경우의 처리 (except으로 빠진 경우 실행 X)finally예외 여부와 무관하게 반드시 실행되어야 하는 부분 (파일 닫는 등) 안 좋은 예시 - try문 안에 예외 발생 코드 & 안하는 코드가 섞여 있음import threadinglock = threading.Lock()def critical_section_basic(): lock.acquire() try: result = 10 / 0 # ❗ 예외 발생 가능 print("✅ 작업 성공:", result) except ..
2025.04.09
-
이펙티브 파이썬 7장 - 동시성과 병렬성
동시성 vs 병렬성구분동시성 (Concurrency)병렬성 (Parallelism)의미여러 작업을 번갈아가며 처리 (겉으로는 동시에)여러 작업을 실제로 동시에 처리처리 방식하나의 코어가 작업을 빠르게 전환하며 처리여러 코어가 각 작업을 동시에 실행예시카페에서 혼자 주문 받고, 계산하고, 음료 만들기카페에서 세 명이 각각 주문, 계산, 음료 만들기목적응답성 향상, I/O 대기 시간 활용처리 속도 향상파이썬스레드, 코루틴 (asyncio)하위 프로세스, C 확장, 시스템 콜자바스크립트이벤트 루프, 프로미스, async/await Web Workers, Node.js의 Worker Threads GIL (Global Interupt Lock)파이썬에는 GIL이라는 전역 인터프리터 락이 존재함하나의 스레드만 파..
2025.04.01
-
이펙티브 파이썬 6장 - 메타클래스와 애트리뷰트
Better way 44 세터와 게터 메서드 대신 평범한 애트리뷰트를 사용하라 setter, getter 메서드 활용이 아닌 애트리뷰트를 직접 활용하자# 안 좋은 예시 - getter, setter 활용class Person: def __init__(self): self._name = '' def get_name(self): return self._name def set_name(self, value): self._name = valuep = Person()p.set_name('Sungchan')print(p.get_name()) # 좋은 예시 - 애트리뷰트 활용class Person: def __init__(self): self.n..
2025.03.30
🚀 Backend
-
[Database] CAP 이론 (CAP Theorem)
1. CAP 이론🎯 핵심 한 줄 요약분산 시스템에서 일관성, 가용성, 분할허용성 중 2개만 선택 가능📖 기본 개념CAP란?C: Consistency (일관성) - 모든 노드가 같은 데이터A: Availability (가용성) - 항상 응답 가능P: Partition Tolerance (분할허용성) - 네트워크 끊어져도 동작왜 3개 다 안 되나?네트워크 분할 시 → 일관성 vs 가용성 중 선택해야 함 ⚖️ 3가지 조합선택의미사용 용도예시CP정확성 우선 서비스 중단 허용돈, 의료MongoDB, RedisAP속도 우선 데이터 차이 허용SNS, 영상Cassandra, DynamoDBCA이론상만 존재 분산환경 불가단일서버MySQL, PostgreSQL 💡 실무 선택법CP 선택 → 정확해야 하는 것은행 (..
2025.05.12
-
[FastAPI] N+1 Problem
1. N+1 ProblemORM으로 관계형 데이터를 가져올 때, 한번의 쿼리(N) 로 가져온 각 항목에 대해 추가적인 쿼리 (+1)가 반복 실행되는 문제예시블로그 글(Post) 10개를 가져오면 (SELECT * FROM post)각 글의 작성자(User)를 가져오기 위해 추가로 10개의 쿼리 (SELECT * FROM user WHERE id = ?) 실행됨 2. FastAPI + SQLAlchemy 예제모델 정의# models.pyfrom sqlalchemy import Column, Integer, String, ForeignKeyfrom sqlalchemy.orm import relationshipfrom app.database import Baseclass User(Base): __tab..
2025.05.07
-
[Swift + Supabase] OAuth - Sign in with Apple
Swift에서 Supabase 를 활용해서 Apple OAuth 구현 방법(삽질 후기) 1. Apple Developer Console 설정Service ID 생성Apple Developer -> Certificates, Identifiers & ProfilesSign in with Apple 활성화Key 생성 Certificates -> Key + 버튼"Sign in with Apple" .p8 파일 다운로드Redirect URI 등록2.Supabase 에서 만들어진 redirect URL 추가 .p8 파일에서 Secret Key 뽑기secret Key 를 내가 뽑아야한다# Pythonimport jwtimport datetimeTEAM_ID = ''CLIENT_ID = ''KEY_ID = ''with..
2025.04.28