Blog Archive
2025
- May 30, 2025 - 클래스 기반 뷰(CBV) 탐구 시리즈③ – FormView로 폼 처리 쉽게 하기
- May 26, 2025 - 클래스 기반 뷰(CBV) 탐구 시리즈 ② - Django의 기본 View 클래스 이해하기
- May 23, 2025 - 클래스 기반 뷰(CBV) 탐구 시리즈① FBV에서 CBV로 가는 이유와 개발자의 자세
- May 21, 2025 - Fail2Ban 효과적인 운영법: IP 과다 차단을 피하는 실전 보안 전략
- May 18, 2025 - AI 시대, Django가 다시 주목받는 이유
- May 16, 2025 - 조건에 맞는 값을 꺼내는 가장 Pythonic한 방법 : next()
- May 15, 2025 - Python 초보자를 위한 try except 전략 – 예외 처리로 디버깅까지 쉽게!
- May 13, 2025 - AI 업무자동화 툴 비교: GPT-4o부터 o1-pro까지 최적 모델 선택 가이드
- May 13, 2025 - AI 음성 인식 전쟁: Whisper vs Parakeet – 실시간 전사의 승자는?
- May 12, 2025 - DGX Spark vs RTX 4090 – 온프레미스 AI 인프라 최적화의 현실적인 선택
- May 12, 2025 - NVIDIA DGX Spark - 온프레미스 AI 인프라의 새로운 기준
- May 09, 2025 - Mistral Small 3.1 분석 – 고성능 소형 LLM의 기준
- May 08, 2025 - Python 표준라이브러리 정복 3 - pathlib
- May 08, 2025 - Python표준 라이브러리 정복 ② - collections.defaultdict
- May 07, 2025 - Python표준 라이브러리 정복① - collections.Counter
- May 06, 2025 - 조건문을 Pythonic하게 우아하게 쓰는 노하우
- May 06, 2025 - APT로 설치한 앱이 메뉴에 안 보일 때? Alacarte로 해결하는 방법
- May 06, 2025 - APT vs Snap: 리눅스 패키지 시스템 비교와 선택 기준
- May 02, 2025 - 창고 속 오래된 PC, 다시 부활하다 – 리눅스 듀얼부팅 설치기
- May 02, 2025 - 하이버네이션이 뭐길래? 윈도우 전원 관리 기능의 빛과 그림자
- May 01, 2025 - AI로 완성하는 블로그 자동화, Mikihands의 새로운 글쓰기 혁신
- Apr 29, 2025 - iOS X 앱 이미지 업로드 시 MIME-type 추론 오류 사례 분석
- Apr 29, 2025 - 마메시바노 타이군, 리로드와 함께 진화 중!
- Apr 28, 2025 - 마메시바노 타이군 속 금빛 존재, 레오나 엠파이어
- Apr 28, 2025 - Conda 명령어 치트시트
- Apr 28, 2025 - Nextcloud와 Obsidian, 그리고 iPhone을 안전하게 연동한 경험
- Apr 27, 2025 - Linux 서버를 지키는 수호자, Fail2Ban
- Apr 27, 2025 - 라즈베리파이를 이용한 데스크탑 원격 전원 켜기(Wake-on-LAN 자동화)
- Apr 26, 2025 - gettext_lazy를 JSON 키에 쓰면 생기는 문제와 해결 방법
- Apr 25, 2025 - Anaconda와 Miniconda, Conda의 세계로 입문하기
- Apr 23, 2025 - Ubuntu에서 DNS 리졸버 구조의 이해
- Apr 21, 2025 - Django on_commit + Celery, 레플리카 환경에서의 문제 해결
- Apr 20, 2025 - 레플리카 환경에서 on_commit + Celery + ManyToMany 지연 이슈 분석
- Apr 20, 2025 - Django 트랜잭션과 쓰레드의 함정: on_commit() 조기 실행 이슈
- Apr 20, 2025 - transaction.on_commit() 완전 이해 가이드
- Apr 20, 2025 - AI개발을 위한 CUDA환경 구축
- Apr 20, 2025 - Python threading.Thread로 간단한 비동기 처리 구현하기
- Apr 20, 2025 - CUDA란 무엇인가? GPU와 병렬 컴퓨팅의 시작
- Apr 15, 2025 - PostgreSQL 버젼 업그레이드와 안전한 데이터 마이그레이션
- Apr 15, 2025 - Ubuntu에서 VSCode를 활용한 C++ 개발 환경 완벽 구축 가이드
- Apr 15, 2025 - 모델 선택지 정의의 진화 : TextChoices 클래스에 대하여
- Apr 10, 2025 - Docker 자주 사용하는 명령어 치트시트
- Apr 07, 2025 - Django에서 404 에러 페이지 커스터마이징 하기
- Apr 07, 2025 - Ubuntu 시스템에서 OTF 폰트를 웹용으로 활용하는 방법
- Apr 07, 2025 - TTF vs WOFF2: 웹 폰트 포맷 비교
- Apr 07, 2025 - Django 웹 프로젝트에서 Poppins 및 sans-serif 폰트 안정적으로 적용하기
- Apr 01, 2025 - 타이완 지우펀의 야경
- Apr 01, 2025 - 파이썬 기본 다지기 #1 — `None`과 `""`, 같아 보이지만 다르다
- Mar 31, 2025 - CSR 4.0 동글의 진실과 한계, 그리고 리눅스에서의 대안
- Mar 20, 2025 - JavaScript에서 브라우저 너비를 판단하는 방법, 그리고 삼성 브라우저에서 겪은 이상한 경험
- Feb 19, 2025 - Redis 최신 AOF-RDB Hybrid 방식 vs 기존 AOF 방식: 어떤 방식을 선택해야할까?
- Feb 18, 2025 - AOF를 사용하면, RDB 설정은 무의미한가?
- Feb 17, 2025 - Redis AOF Rewrite: 성능 최적화와 데이터 보존
- Feb 06, 2025 - JSON vs YAML: 데이터 포맷 전쟁의 역사
- Feb 06, 2025 - 리눅스에서 메일 서버 구축하기: 쉬어가는 페이지
- Feb 06, 2025 - 리눅스에서 메일 서버 구축하기 #7: Postfix 설정 파일 구조와 데이터베이스 연동
- Feb 06, 2025 - 리눅스에서 메일 서버 구축하기 #6: Dovecot의 auth-sql.conf.ext 설정과 비밀번호 해싱
- Feb 06, 2025 - 리눅스에서 메일 서버 구축하기 #5: Dovecot 가상 사용자 개념과 PostgreSQL 테이블 설계
- Feb 06, 2025 - 리눅스에서 메일 서버 구축하기 #4: Dovecot 필수 설정 파일 분석
- Feb 05, 2025 - 리눅스에서 메일 서버 구축하기 #3: Dovecot 설정 파일 구조와 적용 방식
- Feb 05, 2025 - 리눅스에서 메일 서버 구축하기 #2: 가상 사용자 환경을 위한 필수 패키지
- Feb 05, 2025 - 리눅스에서 메일 서버 구축하기 #1: Postfix와 Dovecot의 개념 이해하기
- Feb 03, 2025 - Django-Celery-Beat: Crontab과 Clocked를 활용한 예약 작업 설정
- Feb 03, 2025 - Django-Celery-Beat: PeriodicTask를 활용한 예약 작업 실전 예제
- Feb 03, 2025 - Django-Celery-Beat: 예약 작업을 생성하는 방법
- Feb 03, 2025 - Django의 request 객체는 언제 소멸될까?
- Feb 03, 2025 - Django의 request.session.get()은 DB 쿼리를 발생시킬까?
- Feb 01, 2025 - Django에서 '지연 평가(Lazy Evaluation)'란?
- Feb 01, 2025 - Django QuerySet의 `.only()` vs `.values()` – 차이점과 사용법 비교
- Feb 01, 2025 - Django QuerySet의 `.values()` 메서드란?
- Feb 01, 2025 - Django ORM에서 N+1 문제 해결하기 – select_related와 prefetch_related 완벽 가이드
- Feb 01, 2025 - Django ORM에서 N+1 문제란? 왜 발생할까?
- Jan 29, 2025 - Redis 네트워크 보안 설정: 안전한 Redis 환경 만들기
- Jan 29, 2025 - Redis 모듈 설정: 기능 확장과 활용법
- Jan 27, 2025 - 왜 Redis 설정 파일에서 include를 써야 할까?
- Jan 27, 2025 - Django와 HTMX로 동적 웹 개발을 단순화하기 (7편): JSON 반환 방식
- Jan 27, 2025 - Django와 HTMX로 동적 웹 개발을 단순화하기 (6편): HTML 반환 방식
- Jan 27, 2025 - Django와 HTMX로 동적 웹 개발을 단순화하기 (5편)
- Jan 27, 2025 - Django와 HTMX로 동적 웹 개발을 단순화하기 (4편)
- Jan 27, 2025 - Django와 HTMX로 동적 웹 개발을 단순화하기 (3편)
- Jan 27, 2025 - Django와 HTMX로 동적 웹 개발을 단순화하기 (2편)
- Jan 27, 2025 - Django와 HTMX로 동적 웹 개발을 단순화하기 (1편)
- Jan 27, 2025 - Django의 Request 객체: 그 정체와 동작 원리
- Jan 24, 2025 - 수학에서 영감을 얻은 Django 데코레이터: 함수 합성과 함수 공간의 아름다움
- Jan 24, 2025 - Django 커스텀 데코레이터의 동작 원리와 작성법
- Jan 23, 2025 - localhost가 127.0.0.1이 되는 원리, 그리고 `/etc/hosts`의 활용법
- Jan 18, 2025 - 하나에의 복귀 다큐멘터리: 마메시바노 타이군의 새로운 시작
- Jan 18, 2025 - Django Forms 6편 : Forms 고급 사용법
- Jan 18, 2025 - Django Forms 5편 : CSS를 활용한 스타일링
- Jan 18, 2025 - Django Forms 4편 : 유효성 검사와 커스터마이징
- Jan 18, 2025 - Django Forms 3편 : 필드와 위젯
- Jan 18, 2025 - Django Forms와 ModelForms의 차이점
- Jan 18, 2025 - Django Forms란? 기본 개념과 원리
- Jan 17, 2025 - ‘ろけっとすたーと (Rocket Start)’ by 마메시바노 타이군(豆柴の大群)
- Jan 16, 2025 - 하나에 몬스터, 마메시바노타이군의 귀환
- Jan 14, 2025 - Django ORM에서 중복이란 무엇인가? distinct() 메서드의 필요성과 사용법
- Jan 14, 2025 - "마메시바노타이군(豆柴の大群)", 그들의 새로운 시작을 응원하며
- Jan 14, 2025 - Django에서 get_language()와 request.LANGUAGE_CODE의 차이점과 활용 방법
- Jan 10, 2025 - Django에서 Q 클래스: 복잡한 조건을 손쉽게 처리하는 방법
- Jan 10, 2025 - Django 개발에서 캐시 설정하기: Redis와 함께 성능 최적화
- Jan 09, 2025 - Django에서 HTML 이메일을 보내기 위한 render_to_string 철저 분석
- Jan 07, 2025 - Django의 QueryDict: 딕셔너리처럼, 하지만 딕셔너리 이상의 객체
- Jan 07, 2025 - JavaScript, Python Dictionary, and C++'s std::map
- Jan 03, 2025 - 작은 실수, 깊은 배움
- Jan 02, 2025 - Celery Beat에서 one-off와 enabled의 관계: 올바른 이해와 사용법
2024
- Dec 15, 2024 - Django 세션 삭제 메서드 비교: flush(), pop(), del
- Dec 15, 2024 - Celery @shared_task 옵션: bind, autoretry_for, retry_backoff, max_retries 완벽 가이드
- Dec 15, 2024 - Python Dictionary에서 키와 값을 리스트로 추출하는 방법
- Dec 15, 2024 - Python @staticmethod 완벽 가이드
- Dec 15, 2024 - Python Dictionary를 다루는 다양한 방법
- Dec 15, 2024 - JSON 형식과 Python Dictionary의 차이점 이해하기
- Dec 05, 2024 - Django OAuth Toolkit(DOT)을 활용한 OAuth2 인증 서버 구성
- Dec 04, 2024 - OAuth 2.0: 누구나 쉽게 이해하는 인증 프로토콜
- Nov 16, 2024 - Django ORM에서 QuerySet과 데이터 조회
- Nov 15, 2024 - Django ORM의 objects 관리자는 무엇인가? - 깊이 있는 분석
- Nov 15, 2024 - Django ORM이란? 초보자를 위한 ORM개념입문
- Nov 14, 2024 - 유연한 코드 작성: Python `hasattr`로 객체 속성 존재 여부 확인하기
- Nov 14, 2024 - Django-celery-beat Admin에서 사용할 수 있는 주기적 작업 옵션
- Nov 14, 2024 - Celery 작업 결과 만료 설정과 주기적 클린업: 어떤 설정이 적합할까?
- Nov 14, 2024 - Django-celery-beat와 다양한 결과 백엔드의 메모리 관리 심화
- Nov 13, 2024 - Django-celery-beat와 backend 메모리 관리 (1편)
- Nov 09, 2024 - Redis 3편: Redis의 메모리 관리와 성능 최적화
- Nov 09, 2024 - Redis 2편: Redis의 데이터 보존 옵션 - RDB vs AOF
- Nov 09, 2024 - Redis 1편: Redis 기본 개념과 설정 파일 이해하기
- Nov 07, 2024 - 복싱을 패션으로 만나다: 312Toglory 소개
- Nov 07, 2024 - Django 서버, SSH 세션 끊김 없이 유지하는 3가지 실전 팁
- Nov 06, 2024 - 우리 동네의 길고양이들과 공존에 대해 생각해본 이야기
- Nov 04, 2024 - Django의 JsonResponse와 Django REST Framework의 Response 비교
- Nov 04, 2024 - 딥러닝과 텐서플로우의 고민
- Nov 03, 2024 - 파이썬 TensorFlow로 딥러닝 첫걸음 - 개발 노트
- Nov 03, 2024 - AI, 머신러닝, 딥러닝의 개념과 딥러닝 프레임워크 소개
- Nov 03, 2024 - 오이타에서 즐기는 겨울 온천 여행
- Nov 03, 2024 - Linux Daemon과 Systemd 유닛의 개념과 차이점
- Nov 03, 2024 - 리눅스 `crontab` 제대로 이해하기: 개발자가 사랑하는 자동 스케줄링 꿀팁
- Nov 02, 2024 - 파이썬의 기초개념 소개2. 에러 처리(Try-Except)로 안전하게 코딩하기
- Nov 02, 2024 - 파이썬 기초 개념 소개: 문자열 변수(String)를 다루는 파이썬의 강력함
- Nov 02, 2024 - PostgreSQL의 주요명령어
- Nov 02, 2024 - Django 모델 구조 깊이 파헤치기: 더 나은 데이터베이스 설계를 위한 접근
- Nov 01, 2024 - Django Signals 완벽 이해: pre_save와 post_save 실전 활용법
- Nov 01, 2024 - Django related_name 옵션: 왜 필요한가?
- Nov 01, 2024 - Django 모델 필드 옵션: blank=True vs null=True 차이점과 활용법
- Oct 29, 2024 - Django 모델 구조: models.Model, AbstractUser, CustomUser 그리고 관리자 클래스들
- Oct 28, 2024 - Django ORM에서의 __(더블 언더스코어): 관계형 필드와 쿼리 활용