
프로그래밍 언어는 다양하지만, 어떤 언어를 배우든 프로그래밍의 기본기는 동일하다. 이 글에서는 Roadmap.sh의 Data Structures and Algorithms 로드맵 중 “Programming Fundamentals” 섹션을 따라가며, 파이썬을 기준으로 핵심 개념들을 정리한다.
프로그래밍의 기초란, 컴퓨터에게 무엇을 어떻게 하라고 명령할 것인가를 다루는 기본적인 개념들을 의미한다.
이 기본 개념을 이해하고 있어야 어떤 언어든 응용할 수 있다.
각 언어는 고유한 문법을 가진다. 문법을 지키지 않으면 SyntaxError가 발생하며, 프로그램이 실행되지 않는다.
# 올바른 문법
x = 10
print(x)
# 잘못된 문법
x = 10
print x # SyntaxError: Missing parentheses
문법은 마치 인간 언어의 문장 구성 규칙과 같다. 언어마다 다르므로 익숙해질 때까지 많이 써보는 것이 중요하다.
x = 5
if x > 0:
print("양수")
else:
print("0 이하")
# for loop
for i in range(3):
print(i)
# while loop
count = 0
while count < 3:
print(count)
count += 1
별다른 조건 없이 위에서 아래로 코드가 순차적으로 실행되는 기본 흐름이다.
의사코드는 실제 코드는 아니지만, 알고리즘이나 로직을 사람이 이해하기 쉽게 설명하는 데 유용하다.
1. 시작
2. 사용자로부터 숫자 입력 받기
3. 숫자가 짝수면 "Even" 출력
4. 그렇지 않으면 "Odd" 출력
5. 종료
프로그래밍 언어를 배우기 전, 또는 협업 시 로직을 정리하기에 매우 좋다.
함수는 재사용 가능한 코드 블록이다. 입력을 받고, 어떤 처리를 한 뒤 결과를 반환한다.
# 사용자 정의 함수
def greet(name):
return f"Hello, {name}"
print(greet("Gigyesik")) # Hello, Gigyesik
# 익명 함수 (lambda)
square = lambda x: x * x
print(square(4)) # 16
# 고차 함수 (map, filter 등)
nums = [1, 2, 3, 4]
doubled = list(map(lambda x: x * 2, nums))
print(doubled) # [2, 4, 6, 8]
함수를 적절히 분리하면 코드가 훨씬 읽기 쉽고, 유지보수도 쉬워진다.
객체 지향 프로그래밍은 현실 세계의 개념을 코드로 모델링할 수 있게 해준다. 파이썬에서는 class 키워드를 사용해 클래스를 정의한다.
class Person:
def __init__(self, name):
self.name = name
def greet(self):
return f"안녕하세요, {self.name}입니다."
p = Person("홍길동")
print(p.greet()) # 안녕하세요, 홍길동입니다.
프로그래밍의 기초는 어렵지 않지만, 절대 가볍게 보면 안 되는 영역이다. 실제 개발에서 수없이 반복해서 사용하게 되므로, 처음부터 제대로 이해하고 익혀두는 것이 중요하다.