전체 글 167

Python, Pytest Fixture 에 관한여

Fixture란?Fixture는 테스트를 실행하기 위해 필요한 사전 준비 상태나 환경을 의미함. 원래는 "고정 장치"라는 뜻이지만, 테스팅 용어로는 "테스트가 일관되게 실행되도록 만드는 고정된 기준 환경"을 뜻함.테스트 픽스처(Test Fixture)의 구성 요소테스트 데이터: 테스트에 사용할 샘플 데이터모킹 객체: 외부 의존성을 대체하는 가짜 객체초기 상태: 데이터베이스 초기화, 파일 생성 등환경 설정: 설정 파일, 환경 변수 등pytest의 @pytest.fixturepytest에서 fixture는 @pytest.fixture 데코레이터로 정의하며, 테스트 함수에 자동으로 주입됨.기본 사용법import pytest@pytest.fixturedef sample_data(): """테스트용 샘플 데..

learning 2026.01.14

Python, @property 데코레이터

@property 데코레이터@property는 메서드를 속성처럼 접근할 수 있게 만드는 파이썬 데코레이터임. 메서드로 정의하지만, 사용할 때는 괄호 없이 일반 속성처럼 접근할 수 있음.기본 사용법class ImageGenerator: def __init__(self): self._model_name = "imagen-3.0" @property def model_name(self) -> str: return self._model_name# 사용 예시generator = ImageGenerator()print(generator.model_name) # 괄호 없이 접근# 출력: imagen-3.0# 일반 메서드였다면# print(generator.model_name(..

learning 2026.01.14

Python 3.7+ 의 @dataclass 데코레이터

@dataclass는 Python 3.7+에서 제공하는 데코레이터로, 데이터를 저장하는 클래스를 자동으로 생성해주는 편리한 기능임.자동으로 생성되는 것들@dataclass를 사용하면 다음 메서드들이 자동으로 생성:__init__() - 생성자__repr__() - 문자열 표현__eq__() - 동등성 비교예시 비교@dataclass 없던 시절:class ImageGenerationRequest: def __init__(self, prompt: str, aspect_ratio: str = "1:1"): self.prompt = prompt self.aspect_ratio = aspect_ratio def __repr__(self): return f"Image..

learning 2026.01.14

__pycache__, .pytest_cache 폴더에 대하여

언재부터 있었는지 모르겠는 두개의 폴더에 대해 알아보자pycache/Python이 .py 파일을 실행할 때 생성하는 바이트코드 캐시 폴더 __pycache__/ └── module.cpython-314.pyc.py → .pyc (컴파일된 바이트코드)다음 실행 시 컴파일 과정을 건너뛰어 시작 속도 향상Python 버전별로 파일 생성 (예: cpython-314)소스 파일 변경 시 자동 갱신.pytest_cache/pytest가 테스트 실행 정보를 저장하는 캐시 폴더 .pytest_cache/ ├── .gitignore ├── CACHEDIR.TAG └── v/ └── cache/ └── lastfailed # 마지막 실패한 테스트 목록--lf (last failed):..

learning 2026.01.14

Python, typing.Protocol: 유연한 인터페이스 정의 방법

Opus 4.5 모델이 가르쳐 준 내용 정리입니다. Python 3.8부터 도입된 typing.Protocol은 구조적 서브타이핑(Structural Subtyping)을 지원하는 기능입니다. 기존의 ABC(Abstract Base Class) 방식과 달리, 명시적 상속 없이도 인터페이스를 구현할 수 있습니다.기존 방식: ABC를 이용한 명목적 타이핑전통적인 Python에서 인터페이스를 정의할 때는 abc 모듈을 사용합니다.from abc import ABC, abstractmethodclass ImageGenerator(ABC): @abstractmethod def generate(self, prompt: str) -> GeneratedImage: pass# 반드시 상속해야 함c..

learning 2026.01.13

Addy Osmani 의 'My LLM coding workflow going into 2026' 글 요약

원문: https://medium.com/@addyosmani/my-llm-coding-workflow-going-into-2026-52fe1681325e아래 내용은 Haiku 4.5 을 이용해서 한글로 요약한 내용입니다. 제목: 2026년으로 향하면서 내 LLM 코딩 워크플로우 (My LLM coding workflow going into 2026) 작성자: Addy Osmani (Google Chrome 엔지니어) 발행일: 2025년 12월 20일 길이: 22분 읽기 핵심 주제: LLM을 효과적으로 활용하기 위한 체계적이고 규칙 기반의 AI-보조 소프트웨어 엔지니어링 워크플로우 --- 🎯 기본 철학 "AI는 자율 판단이 아닌 명확한 방향, 컨텍스트, 감시가 필요한 강력한 페어 프로그..

bookmark 2026.01.12

🙅 `push -f` (AKA. force push) 는 이제 그만

AI 가 오늘 알려줬다. 강제로 푸시가 너무 하고 싶거든, --force-with-lease 로 푸시 하라고,git push -f (force push):로컬 브랜치가 원격 브랜치를 완전히 덮어씁니다다른 사람이 그 사이에 푸시한 커밋이 있어도 무시하고 덮어씁니다팀 작업에서 다른 사람의 커밋을 실수로 잃을 수 있습니다git push --force-with-lease:로컬에서 마지막으로 fetch한 원격 상태를 기준으로 비교합니다그 이후 누군가 원격에 새로운 커밋을 푸시했다면 거부합니다안전장치가 있는 force-push입니다 매번 헉 누가 벌써 그 사이에 땡겨간거 아닌가 싶어 조마조마 했었는데 너무 유익한 옵션이 나왔구나. https://git-scm.com/docs/git-push#Documentation..

learning 2026.01.09

'바이브 코딩 과몰입(터널)에서 빠져나오는 방법' 을 읽고

요즘 바이브 코딩? 에 기가 빨리는 느낌인데, 아래 글을 읽고 비록 늦어질 것 같더라도, 글에서 알려준 방법으로, 잘 관리해봐야겠다. 바이브 코딩 과몰입(터널)에서 빠져나오는 방법, 몰입 하는 방법바이브 코딩 중 과몰입(터널)을 알아차리고, ‘지금 할 일 하나→바로 확인 하나→막히면 다음 선택 하나’ 루프로 의도적 몰입을 설계하는 실전 가이드www.haegyung.com 아래 내용은 본문 중 일부입니다.루프를 “시간”이 아니라 “이벤트”로지금 할 일 하나를 정한다(가장 작은 실행).필요한 최소 정보만 묻는다.바로 실행한다.바로 확인한다.지금 할 일 하나로 다시 돌아온다.산더미 같은 코드를 손쉽게 파악할 수 있게 되는 날 까지는 AI 가 만든 Plan을 스스로 하나하나 치면서 코드를 산더미 처럼 만드는 ..

bookmark 2026.01.07