Programming Fundamentals – 파이썬으로 배우는 프로그래밍 기초

gigyesik·2025년 7월 24일

Programming Fundamentals – 파이썬으로 배우는 프로그래밍 기초

프로그래밍 언어는 다양하지만, 어떤 언어를 배우든 프로그래밍의 기본기는 동일하다. 이 글에서는 Roadmap.sh의 Data Structures and Algorithms 로드맵 중 “Programming Fundamentals” 섹션을 따라가며, 파이썬을 기준으로 핵심 개념들을 정리한다.


1. 프로그래밍 기초란?

프로그래밍의 기초란, 컴퓨터에게 무엇을 어떻게 하라고 명령할 것인가를 다루는 기본적인 개념들을 의미한다.

  • 변수(Variables): 데이터를 저장하기 위한 이름
  • 제어 구조(Control Structures): 프로그램 흐름 제어 (조건문, 반복문)
  • 자료구조(Data Structures): 데이터를 효율적으로 구조화
  • 알고리즘(Algorithms): 문제 해결을 위한 단계적 절차

이 기본 개념을 이해하고 있어야 어떤 언어든 응용할 수 있다.


2. 언어 문법 (Language Syntax)

각 언어는 고유한 문법을 가진다. 문법을 지키지 않으면 SyntaxError가 발생하며, 프로그램이 실행되지 않는다.

# 올바른 문법
x = 10
print(x)

# 잘못된 문법
x = 10
print x    # SyntaxError: Missing parentheses

문법은 마치 인간 언어의 문장 구성 규칙과 같다. 언어마다 다르므로 익숙해질 때까지 많이 써보는 것이 중요하다.


3. 제어 구조 (Control Structures)

조건문 (Selection)

x = 5
if x > 0:
    print("양수")
else:
    print("0 이하")

반복문 (Iteration)

# for loop
for i in range(3):
    print(i)

# while loop
count = 0
while count < 3:
    print(count)
    count += 1

순차 흐름 (Sequential)

별다른 조건 없이 위에서 아래로 코드가 순차적으로 실행되는 기본 흐름이다.


4. 의사코드 (Pseudocode)

의사코드는 실제 코드는 아니지만, 알고리즘이나 로직을 사람이 이해하기 쉽게 설명하는 데 유용하다.

1. 시작
2. 사용자로부터 숫자 입력 받기
3. 숫자가 짝수면 "Even" 출력
4. 그렇지 않으면 "Odd" 출력
5. 종료

프로그래밍 언어를 배우기 전, 또는 협업 시 로직을 정리하기에 매우 좋다.


5. 함수 (Functions)

함수는 재사용 가능한 코드 블록이다. 입력을 받고, 어떤 처리를 한 뒤 결과를 반환한다.

# 사용자 정의 함수
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]

함수를 적절히 분리하면 코드가 훨씬 읽기 쉽고, 유지보수도 쉬워진다.


6. 객체 지향 기초 (OOP Basics)

객체 지향 프로그래밍은 현실 세계의 개념을 코드로 모델링할 수 있게 해준다. 파이썬에서는 class 키워드를 사용해 클래스를 정의한다.

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        return f"안녕하세요, {self.name}입니다."

p = Person("홍길동")
print(p.greet())  # 안녕하세요, 홍길동입니다.
  • 캡슐화: 내부 구현을 감추고 인터페이스만 제공
  • 상속: 기존 클래스를 확장
  • 다형성: 동일한 인터페이스, 다른 동작 가능

마무리

프로그래밍의 기초는 어렵지 않지만, 절대 가볍게 보면 안 되는 영역이다. 실제 개발에서 수없이 반복해서 사용하게 되므로, 처음부터 제대로 이해하고 익혀두는 것이 중요하다.

profile
Server Dev

0개의 댓글