OS: MAC
참고: 👉 점프 투 파이썬 - 라이브러리 예제 바로가기
064. 시스템 정보를 알아보려면? ― platform(플랫폼)
- 설치 스크립트에서 시스템 종류에 따라 분기 처리할 때
- 프로그램 로그에 실행 환경 기록
- 디버깅 시 OS / Python 버전 확인
- 배포 시 시스템 호환성 체크
| 구분 | 설명 | 예시 | 결과 |
| 운영체제(OS) 이름 확인 |
현재 실행 중인 OS 종류를 반환 |
import platform print(platform.system()) |
Darwin # Mac |
| 운영체제 상세 정보 |
OS 버전, 빌드 번호 등 전체 정보를 반환한다. |
import platform print(platform.platform()) |
macOS-26.1-arm64-arm-64bit-Mach-O |
| Python 버전 확인 |
실행 중인 파이썬 버전을 문자열로 반환 |
import platform print(platform.python_version()) |
3.13.2 |
| 프로세서 (CPU) 정보 |
CPU 모델명을 반환한다. | import platform print(platform.processor()) |
arm |
| 머신 종류 | 하드웨어 아키텍처 정보를 반환 | import platform print(platform.machine()) |
arm64 |
| 노드 (컴퓨터 이름) |
컴퓨터 이름(hostname) 반환 | import platform print(platform.node()) |
유저네임-ui-MacBookAir.local |
| 전체 시스템 정보 |
OS, 버전, CPU 등 종합 정보 | import platform print(platform.uname()) |
uname_result(system='Darwin', node='...', ... machine='arm64') |
라이브러리 예제 문제: 지금 사용하는 컴퓨터 사양을 알고 싶다. 사용 중인 시스템의 CPU와 OS 정보를 출력하는 프로그램은 어떻게 만들어야 할까?

065. C로 만든 라이브러리를 사용하려면? ― ctypes(씨타입스)
- C로 만든 함수(dll/so)를 파이썬 코드에서 직접 부르는 어댑터
| 구분 | 설명 | 예시 | 결과 |
| 모듈 임포트 | C 함수 쓰기 위해 ctypes 모듈을 불러온다. |
import ctypes | 모듈 로드 (화면 출력 없음) |
| ctypes 예시를 실행하기 위한 mylib.so 파일 생성 |
1단계: C 코드 만들기 (mylib.c) |
① 유저 폴더로 이동 터미널 실행 > 파일을 생성할 폴더로 이동 > 코드 입력 cd /Users/유저네임 ② mylib.c 만들기 nano mylib.c 입력 > 편집기 열림 > 코드 입력 // mylib.c int add(int a, int b) { return a + b; } ③ 저장하기 Ctrl + O→ 엔터 (저장) > Ctrl + X (편집기 종료) |
mylib.c 파일 생성 |
| 2단계: macOS에서 C 파일 컴파일해서 .dylib 만들기 |
① 터미널 실행 > 코드 입력 gcc -dynamiclib -o mylib.dylib mylib.c |
mylib.dylib 파일 생성 |
|
| 3단계: Python에서 ctypes로 로드하기 |
① 파이썬 실행 > 코드 입력 import ctypes lib = ctypes.CDLL("/Users/유저네임/mylib.dylib") print(lib.add(3, 5)) |
8 | |
| C 라이브러리 불러오기 |
.dll(Windows), .so(Linux), .dylib(macOS) 같은 C 라이브러리를 로드한다. |
# 예: C에서 만든 mylib.so 불러오기 import ctypes lib = ctypes.CDLL("./mylib.dylib") # 또는 .dll, .so |
lib 객체에 C 함수들이 담겨 있음 |
| 간단한 C 함수 호출 |
인자가 없고 정수 하나만 반환하는 함수 호출 예 | # C 코드 예시 (개념) # int get_num() { return 42; } import ctypes lib = ctypes.CDLL("./mylib.dylib") result = lib.get_num() print(result) |
42 출력 |
| 인자(파라미터) 있는 함수 호출 | C 함수의 인자 타입 / 반환 타입을 argtypes, restype 으로 지정해야 안전하다. | # C 코드 (개념) # int add(int a, int b) { return a + b; } import ctypes lib = ctypes.CDLL("./mylib.dylib") lib.add.argtypes = (ctypes.c_int, ctypes.c_int) lib.add.restype = ctypes.c_int result = lib.add(10, 32) print(result) |
42 |
| C의 기본 타입 매핑 |
C 타입을 파이썬에서 표현하기 위한 타입들. |
# C의 int / double / char* 에 해당 from ctypes import CDLL, c_int, c_double, c_char_p lib = CDLL("./mylib.dylib") # C 함수 선언: int add(int, int); lib.add.argtypes = (c_int, c_int) lib.add.restype = c_int |
출력값 없음(정상) C 함수 인자/반환 타입 지정할 때 사용 |
| 플랫폼 기본 라이브러리 사용(예: C 표준 라이브러리) | OS에 이미 있는 C 라이브러리도 불러서 사용 가능. | import ctypes import platform # OS에 따라 다른 libc 파일 로드 if platform.system() == "Darwin": # macOS libc = ctypes.CDLL("libc.dylib") elif platform.system() == "Linux": libc = ctypes.CDLL("libc.so.6") else: raise OSError("지원하지 않는 운영체제입니다.") # printf 함수 인자 타입 설정 (char*) libc.printf.argtypes = [ctypes.c_char_p] # C의 printf 호출 libc.printf(b"Hello from C!\n") |
Hello from C! 14 # 문자열 길이도 반환됨(정상) |
라이브러리 예제 문제:

신기하게도 예시에서 똑같은 수식의 파일을 생성해서 파일명만 수정해서 풀이를 진행.
