본문 바로가기
728x90
반응형

Python312

[Ex] 이미지 해상도·DPI 통계 분석 CLI 도구 작성 명세아래 명세에 따라 Python 스크립트 ds_ck_img_with_tqdm.py 하나를 작성할 것.1. 목적디렉터리(재귀 탐색) 또는 ZIP 파일 내부의 이미지들을 스캔하여해상도(width×height)와 DPI 통계를 계산하고, 읽기 쉬운 리포트를 출력하는 CLI 도구.2. 실행 환경 및 의존성Python 3.10+ (from __future__ import annotations 사용, X | Y 타입 힌트 표기)필수: Pillow선택: tqdm — 설치되어 있지 않아도 동작해야 함.import 실패 시 stderr로 설치 안내 메시지를 출력하고 진행률 표시 없이 진행.그 외에는 표준 라이브러리만 사용 (argparse, zipfile, statistics, collections.Counter 등).. 2026. 7. 25.
EXIF와 IFD: Pillow로 이미지 메타데이터 읽기 이 글에서는 IFD의 구조를 정리하고, Pillow로 각 IFD의 정보를 읽는 방법을 다룸.EXIF (EXchangeable Image File format) 는 디지털 카메라가 촬영 조건과 위치 등의 정보를 이미지 파일에 함께 기록하는 metadata 규격임.이 규격은 TIFF 구조를 그대로 차용하며, 실제 데이터는 IFD (Image File Directory) 라는 tag 묶음 단위로 저장됨.1. EXIF는 독자 포맷이 아니라 TIFF의 재사용임EXIF (EXchangeable Image File format)디지털 카메라가 기록하는 이미지 metadata 규격.자체적인 binary layout을 새로 정의한 것이 아님.TIFF Rev. 6.0 (1992년) 의 metadata 구조를 그대로 차용함.. 2026. 7. 25.
[Ex] 구구단 문제for 문을 사용하여 구구단 2단부터 9단까지 출력하는 Python module을 작성하시오.단, 사용자가 출력하지 않을 단을 입력하면, 해당 단은 제외하고 나머지 단만 출력해야 한다.예를 들어 사용자가 5를 입력하면, 2단부터 9단까지 출력하되 5단은 출력하지 않는다.조건구구단은 2단부터 9단까지 출력할 것.반복문은 반드시 for 문을 사용할 것.사용자로부터 출력하지 않을 단을 입력받을 것.입력받은 단은 출력 대상에서 제외할 것.구구단 출력 기능은 Python module 안의 함수로 구현할 것.사용자가 2부터 9 사이의 숫자가 아닌 값을 입력한 경우에 대한 처리도 고려할 것.실행 예시사용자 입력:출력하지 않을 단을 입력하세요: 5 출력 예시:2단2 x 1 = 22 x 2 = 4...2 x 9 = .. 2026. 6. 12.
[Ex] 기본 Python CLI프로그램 구조 문제사용자로부터 이름을 입력받아 Hello 형식으로 출력하는 Python module을 작성하시오. 단, 다음 조건을 만족해야 한다. 1. 사용자로부터 이름을 입력받는 함수를 작성할 것. 2. 입력받은 이름을 이용하여 Hello 형식의 문자열을 출력하는 함수를 작성할 것. 3. 위 두 함수를 하나의 Python module에서 제공하도록 구현할 것. 추가 가산점: 위 module을 직접 실행하는 방식이 아니라, 별도의 main script에서 해당 module을 import한 뒤 module이 제공하는 함수를 호출하여 같은 기능이 동작하도록 구현할 것. https://youtu.be/uwavU-76opM 참고자료__name__ 스페셜변수에 대하여 https://ds31x.tistory.com/129.. 2026. 6. 12.
Entry Point - Python 과 C Entry PointEntry point는 program의 실행 흐름이 처음으로 진입하는 지점을 의미함.entry는 enter에서 온 말로, 기본 의미는 들어감, 진입, 들어가는 곳임.entry point는 말 그대로 들어가는 지점, 즉 진입점을 의미함.enter : 들어가다, 진입하다entry : 들어감, 진입, 들어가는 곳entry point : 들어가기 시작하는 지점. 진입점.전통적인 C 언어에서의 Entry Point전통적인 C 언어에서는 보통 main() 함수가 program의 entry point로 사용됨.int main(void) { return 0;}C program이 실행되면, 다음과 같은 흐름을 거쳐서 main()함수가 호출됨:program 실행OS가 program을 memory에.. 2026. 6. 12.
Lock and GIL GIL (Global Interpreter Lock) GIL을 이해하려면 먼저 lock의 개념부터 짚어야 하므로,lock 에 대한 설명과 synchronous object에 대한 소개를 하고 나서 GIL을 다룸.Lock이란Lock (잠금):여러 thread가 동시에 공유 자원(shared resource)에 접근할 때 발생하는 문제를 막는동기화(synchronization) 기법.예를 들어, 두 thread가 동시에 같은 변수를 수정하는 상황을 가정함.counter = 0# Thread Acounter += 1# Thread Bcounter += 1결과가 2여야 할 것 같지만, 실제로는 1이 될 수 있음. counter += 1이 원자적(atomic) 연산처럼 보이지만, 내부적으로는 세 단계로 분해되기 .. 2026. 6. 1.
728x90
반응형