코드 구조 이해하기
코드가 “어떻게 굴러가는지” 한눈에 보자: 기본 코드 구조 이해하기
지난번에 첫 코드 실행해보기 하면서 “아, 이게 돌아가네?” 하고 감이 왔을 거야. 나도 처음엔 “왜 이렇게 조금만 써도 결과가 나오지?” 싶었거든.
이번엔 그 다음 단계로, 코드가 생긴 방식(구조)을 보면 훨씬 덜 헤매게 돼. 솔직히 말하면, 구조를 모르면 문법은 외워도 감이 안 잡히더라. 음… 그래서 이번 글은 “코드의 부품”부터 가볍게 보자!
코드 구조, 한마디로 뭐냐면?
프로그램은 보통 이런 재료들로 만들어져:
- 변수: 값을 저장하는 상자
- 함수: 작업을 한 번에 해주는 버튼(또는 기계)
- 블록: 중괄호/들여쓰기 같은 “범위”로 어디까지가 한 덩어리인지 표시
- 흐름 제어(조건/반복): 언제 실행하고, 언제 멈출지 정하는 장치
- 명령(문장): 실제로 무언가 하라고 적는 줄
이걸 알면, 코드를 읽을 때 “아 지금 저장하는구나 / 지금 반복하는구나 / 지금 함수 호출하는구나”가 보여. 어? 그럼 갑자기 덜 무서워져.
1) 변수: 값의 임시 보관함
변수는 말 그대로 값을 담아두는 통이야.
예를 들어 “나이”를 담아두면, 나중에 그 값을 계산하거나 출력할 수 있지.
age = 20
name = "민수"
print(name, age)
여기서
age = 20: 20이라는 숫자를age라는 변수에 저장name = "민수": "민수"를name에 저장print(...): 저장된 값을 보여줌
사실은 변수가 제일 자주 나와. 그래서 나름 빨리 익혀두면 체감이 큼!
처음엔 나도 막 헷갈려서 변수를 막 재사용하다가 “어? 값이 왜 바뀌지?” 하고 한 번쯤 멘붕 왔었어. (정말로… 나를 탓했지 뭐.)
2) 함수: “반복 작업을 대신 해주는 친구”
함수는 한 번 만들어두면, 필요할 때마다 그 버튼만 누르면 돼.
def add(a, b):
return a + b
result = add(3, 5)
print(result)
이 코드에서:
def add(a, b):
→add라는 함수를 만들고, 입력값은a,b로 받겠다는 뜻return a + b
→ 계산 결과를 “돌려주는” 부분add(3, 5)
→ 함수 호출. 여기선 3과 5를 넣어줘
음… 함수가 있으면 좋은 점이 딱 이거야:
- 같은 코드를 또 또 안 써도 됨
- 이름을 잘 지으면 코드가 읽기 쉬워짐
- 나중에 유지보수(고치기)가 편해짐
그래서 내가 보기엔, 함수는 기술이라기보다 생활의 편의성에 가까워. 좀 더 정확히 말하면… “귀찮음을 없애는 스킬”!
3) 블록: “여기부터 여기까지가 한 덩어리!”
코드에서 블록은 보통 중괄호(언어에 따라) 혹은 들여쓰기로 표시돼.
파이썬 기준으로는 “들여쓰기”가 블록의 기준이야.
x = 10
if x > 0:
print("양수야")
print("이 조건은 True야")
여기서
if x > 0:까지가 조건 줄- 그 아래 들여쓰기된 두 줄이 “if가 참일 때 실행되는 블록”
나도 처음에 들여쓰기 하나 잘못 넣었다가…
프로그램이 조용히(?) 다르게 동작해서 “어? 왜 이게 안 되지?” 하다가 한참 찾았었어.
솔직히 말하면 그때는 내가 뭘 잘못했는지도 못 찾았고, 나만 계속 의심했지… 하하.
4) 흐름을 바꾸는 문장들(조건/반복)은 “교통정리”
앞으로 2장(기초 문법 다지기)에서 조건문/반복문을 더 제대로 다룰 거야.
근데 지금은 “코드 구조에서 어디에 있는지” 감만 잡자.
예시로 조건을 간단히 보면:
score = 75
if score >= 80:
grade = "A"
else:
grade = "B"
print(grade)
if: 조건이 맞으면 실행else: 아니면 실행
반복문도 구조 감각만 보면:
for i in range(3):
print(i)
for: “몇 번 반복할지” 정해줌- 안쪽 블록이 반복되는 부분
이런 흐름 제어가 들어가면 프로그램이 “상황에 따라 움직이는 친구”가 돼.
그 전엔 그냥 위에서 아래로 쭉 실행하는 느낌이었는데, 이제부터는 “조건/반복으로 생각을 넣는 단계”로 가는 거지.
“코드 읽는 법” 미리 연습하기
이제부터는 코드를 볼 때 그냥 넘기지 말고, 아래 순서로 한번 훑어보면 좋아.
- 이 코드에서 값(변수)을 저장하는 부분이 어디지?
- 함수는 있는지? 있다면, “어떤 일을 하려는지” 이름이 말해주나?
- 블록이 어디부터 어디까지인지(들여쓰기/괄호) 체크했나?
- if/for 같은 흐름 제어가 “언제 실행되는지”는 이해했나?
처음엔 막 멋대로 체크하게 되는데… 괜찮아. 나도 처음엔 그렇게 했어.
근데 계속 하다 보면, 어느 순간부터 “아 이건 저장이구나, 이건 계산이구나”가 자동으로 보이더라.
마무리: 오늘은 ‘부품’만 알면 된다
오늘은 딱 이거만 잡고 가자:
- 변수 = 값 담는 상자
- 함수 = 작업을 대신하는 버튼
- 블록 = 범위(여기부터 여기까지)
- 흐름 제어 = 조건/반복으로 움직임 만들기
그리고 다음 글(1-5)에서는, 이걸 하다가 진짜 자주 만나는 친구가 나와.
바로 오류 메시지야.
솔직히 말하면, 오류는 무섭다기보다… 처음엔 읽기 어렵지.
근데 다음 편에서 “오류 메시지 읽는 법”을 같이 익히면, 오류가 와도 덜 당황하게 돼.





