파이썬 기초 — print(), 변수, 식별자, 데이터 타입
출처: Dev.to
📌 핵심 개념
| 개념 | 한 줄 정의 |
|---|---|
print() | 터미널에 데이터를 출력하는 내장 함수 |
| Variable | 메모리 안에 값을 담는 이름이 붙은 컨테이너 |
| Dynamic Typing | 파이썬이 런타임에 데이터 타입을 자동으로 판단 |
| Identifier | 변수, 함수, 클래스 등에 붙이는 이름 |
| Keyword | 파이썬 내부에서 예약된 단어 – 식별자로 사용할 수 없음 |
type() | 값의 데이터 타입을 알려주는 내장 함수 |
id() | 객체의 메모리 주소를 반환 |
print() — 기본 출력
print("Hello DevOps")
print(variable_name)
print(value, type(value)) # 값과 타입을 동시에 출력
변수 할당
port = 8080 # int
service_name = "nginx" # str
cpu_threshold = 85.5 # float
type() — 데이터 타입 확인
print(type(port)) #
id() — 메모리 주소 확인
print(id(service_name))
키워드 리스트
import keyword
print(keyword.kwlist)
input() — 사용자 입력 받기
name = input("Enter your name: ")
print("Hello", name)
print() 함수
가장 기본적인 출력 함수입니다. DevOps 스크립트에서는 상태를 로그로 남기고, 값을 디버깅하며, 결과를 표시할 때 계속 사용하게 됩니다.
print("Deployment started")
print("Server IP:", server_ip)
print("Status:", status, "| Code:", code) # 콤마로 여러 값을 출력
변수는 메모리 안의 값을 가리키는 라벨에 불과합니다. 설정값에 이름을 붙여 재사용할 수 있다고 생각하면 됩니다.
# BAD — 여기저기 하드코딩
# connect("192.168.1.10", 22)
# connect("192.168.1.10", 22)
# GOOD — 변수를 사용
server_ip = "192.168.1.10"
ssh_port = 22
connect(server_ip, ssh_port)
파이썬은 타입 선언을 요구하지 않습니다. 자동으로 타입을 감지하죠. 같은 변수에 서로 다른 타입을 할당할 수도 있습니다.
a = 10 # int
a = "hello" # 이제 str — 파이썬은 괜찮아합니다
a = 3.14 # 이제 float
⚠️ 흔한 실수: 변수를 다른 타입으로 실수로 재할당하면 자동화 스크립트에서 버그가 발생할 수 있습니다.
| 형식 | 예시 | DevOps 사용 사례 |
|---|---|---|
int | port = 22 | 포트 번호, 종료 코드 |
float | cpu = 85.5 | CPU/메모리 임계값 |
str | env = "prod" | 환경 이름, 서버 IP |
bool | is_healthy = True | 헬스 체크 플래그 |
port = 22 # int
threshold = 85.5 # float
environment = "prod" # str
is_active = True # bool
✅ 유효 ❌ 무효
server_ip 5server (숫자로 시작)
_private server-ip (하이픈 = 뺄셈 연산자)
cpu2core server ip (공백 불가)
myVar if (예약어)
EC2Instance print = 100 (내장 함수와 이름이 겹침 — 피하세요!)
DevOps 스크립트의 황금 규칙: snake_case(소문자와 언더스코어) 사용 — server_ip, max_retries, aws_region. 파이썬 관례와 일치하며 가독성이 좋습니다.
import keyword
print(keyword.kwlist)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await',
# 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
# 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
# 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
# 'try', 'while', 'with', 'yield']
클래스에서 보여준 치명적인 실수
# ❌ 절대 이렇게 하지 마세요
print = 100 # print 함수를 죽였습니다!
print("Python") # TypeError: 'int' object is not callable
# ✅ 커널을 재시작하거나 del 로 복구
del print
print("Python") # 다시 동작합니다
절대 덮어쓰면 안 되는 내장 함수: print, input, list, dict, str, int, len, open, type, id
# AWS EC2 설정 변수
instance_type = "t2.micro"
region = "ap-south-1" # 뭄바이
ami_id = "ami-0abcdef1234567890"
max_instances = 5
spot_price = 0.012 # float — USD 기준 가격
# Docker/K8s 설정
container_port = 8080
replica_count = 3
image_tag = "nginx:1.25"
is_rolling_update = True
# CI/CD 파이프라인 변수
build_status = "SUCCESS"
exit_code = 0 # 0 = 리눅스/bash 성공
artifact_size_mb = 145.7
# 로그 라인 출력 (모든 스크립트에서 사용)
print(f"Deploying {image_tag} to {region} with {replica_count} replicas")
print(f"Build: {build_status} | Exit Code: {exit_code}")
실수 | 예시 | 해결 방법
| 실수 | 예시 | 해결 방법 |
|---|---|---|
| 함수 이름 오타 | prin("Python") | 철자를 확인 — 파이썬이 NameError를 발생시킵니다 |
| 내장 함수를 가리키게 함 | print = 100 | 내장 함수 이름은 변수명으로 사용하지 마세요 |
| 키워드를 변수명으로 사용 | if = 5 | keyword.kwlist 로 확인 |
| 숫자로 시작하는 변수명 | 5server = "aws" | 문자 또는 언더스코어로 시작 |
| 변수명에 공백 포함 | server ip = "x" | `server |