Python 36

파이썬 객체지향 프로그래밍(OOP) 4대 패러다임 정리 캡슐화, 상속, 다형성, 다형성, 추상화 쉽게 이해하기

파이썬의 객페지향 프로그래밍은 간단하게데이터와 기능을 객체 단위로 묶어 프로그램을 설계하는 방식이다. 이 객체지향 프로그밍에는 4대 패러다임존재하며4대 패러다임에는 캡슐화, 상속, 다형성, 추상화가 있다. 이 개념을 활용하면Python에서는 코드의 재사용성, 확장성 그리고 유지보수성을 크게 높일 수 있다.이번 글에서는 각 프로그래밍 패러다임의 정의와 어떻게 사용하는지에 대해 정리 할 예정이다.1. 캡슐화캡슐화는 데이터(속성)와 기능(메서드)을 하나의 객체로 묶고,외부에서 내부 데이터를 직접 수정하지 못하도록 보호해주는 개념이다. Python에선 다른 언어처럼 접근 제한자를 강제하고있진 않지만,네이밍 규칙을 통해 접근 범위를 표현하고 있다. 📌 언더바를 활용한 네이밍 규칙public → 클래스 외부든 내..

Python/기초 2026.06.01

[자료구조] 배열(Array), 스택(Stack), 큐(Queue) 정리

파이썬을 깊이 있게 배우다 보면 자료구조는 필수적으로 알아야하는 개념이다. 자료구조는 데이터를 저장하고 관리하기 위한 방법을 말한다.데이터를 어떤 형태로 저장하느냐에 따라데이터를 꺼내는 방법, 추가하는 방법, 처리 속도가 모두 달라질 수 있다. 자주 사용하는 리스트, 튜플, 딕셔너리, 세트 모두 자료구조의 일종이다.이번글에서는 자료구조의 기본 개념을 설명하고,배열(Array), 스택(Stack), 큐(Queue)의 특징과 작동 원리를 정리해보려고 한다.자료구조 왜 사용할까?설명하기에 앞서 자료구조를 배워야 하는 이유가 있다. 프로그램은 결국 데이터를 저장하고, 꺼내고, 수정하고, 삭제하는 작업의 반복이다.이때 어떤 자료구조를 언제 사용하느냐에 따라프로그램의 실행 시간과 메모리 사용방식이 달라지게된다. 소..

파이썬 객체지향 프로그래밍 핵심 개념 정리(클래스와 메서드)

프로그래밍 방법론이란,컴퓨터가 이해하고 실행할 수 있는 소프트웨어를효율적으로 생산, 관리, 유지보수 하기 위해서 개발 과정과 절차를 체계화하고 표준화한 접근 방식이다. 프로젝트의 규모, 요구사항, 개발팀의 특성에 따라적합한 방법론이 달라지기 때문에 각 방법론에 대해 특징과 장단점을 이해하고 있는것이 중요하다.1. 절차적 프로그래밍 (Procedural Programming) 절차적 프로그래밍은 말 그대로 절차를 중시하는 방식으로,실행될 순서대로 명령어들을 순차적으로 처리하는 방식이다. 이는 여태 우리가 사용해왔던 방식으로위에서 아래로 물흐르듯이 실행되는 방식이라 순서가 중요한반면 이해하기엔 쉽다.하지만 데이터와 함수가 분리되어있어 규모가 커지면 관리가 어렵다. 2. 객체지향 프로그래밍 (Object-Or..

Python/기초 2026.05.28

파이썬 함수 심화 (변수 범위, 클로저, 콜백, 람다)

이전 글에서는 Python 함수가 단순한 코드 묶음이 아니라, 메모리 상에서 하나의 객체로 존재하며 스택/힙 구조와 함께 동작한다는 점을 정리하였다.이번 글에서는 그 연장선으로, 함수 내부에서 자연스럽게 이어지는 개념들인 변수 범위(scope), 클로저, 콜백 함수, 람다 함수를 정리해 볼 예정이다.1. 변수의 범위 (Scope)변수의 범위(scope)는 “이 변수를 어디까지 사용할 수 있는가”를 결정하는 규칙이다. Python에서는 LEGB 규칙(지역:Local → 인클로징:Enclosing → 전역:Global → 내장:Built-in) 순서로 변수를 찾는다. 즉, 변수와 함수의 이름이 같을 경우지역변수(Local)의 우선순위가 가장 높다.1) 지역 변수 (Local Scope)지역변수는 함수 안에서..

Python/기초 2026.05.28

파이썬 함수 이해하기 (개념과 동작 방식 정리)

Python에서 함수(Function)는특정 작업을 하나로 묶어두고, 필요할 때마다 꺼내 쓸 수 있도록 만든 코드 블록이다. 우리는 이미 print(), len(), input() 같은 다양한 내장 함수를 자연스럽게 사용하고 있다.하지만 실제로 프로그램을 만들다 보면,내가 원하는 동작을 직접 정의해야 하는 순간이 자주 등장한다.이때 사용하는 것이 바로 사용자 정의 함수(User Defined Function) 이다. 함수를 사용하는 이유는 생각보다 단순하다.같은 코드를 여러번 작성하지 않기 위해기능별로 코드를 분리하여 구조를 명확하게 하기 위해유지보수를 쉽게 하기 위해코드의 재사용성을 높이기 위해개발을 하다 보면 이런 순간이 있다. “이 계산, 앞으로도 여러 번 사용할 것 같은데?” 바로 그때 함수를 만..

Python/기초 2026.05.27

파이썬 반복문 심화 정리(enumerate, zip, iterable, iterator, comprehension)

Python에서는 단순한 반복문뿐만 아니라반복을 더 효율적으로 처리할 수 있는 여러 기능들을 제공한다. 이번 글에서는 enumerate(), zip(), iterable, iterator 그리고 comprehension까지반복문과 함께 자주 사용되는 핵심 개념들을 함께 정리해 볼 예정이다.1. enumerate() 함수enumerate()는 반복문을 사용할 때 “값 + 인덱스”를 같이 쓰고 싶을 때 사용하는 내장함수다. 주로 for문과 같이 사용하는 경우가 많고,지금 몇 번째 데이터를 처리하고 있는지 알고 싶을 때 굉장히 유용하다.enumerate(iterable, [start=0])iterable : 리스트, 튜플, 문자열 등 반복 가능한 객체start : 인덱스 시작 번호 (기본값은 0이며, 원하는 ..

Python/기초 2026.05.27

파이썬 반복문의 기초 정리(While문, for문, range 함수, continue, break, pass)

왜 반복문을 사용할까?반복문은 같은 코드를 여러 번 반복해서 작성하지 않아도 되게 해준다.즉, 컴퓨터가 반복적인 작업을 자동으로 처리하도록 만드는 방법이다. 결과적으로 반복문을 사용하면 코드가 짧아지고, 구조가 훨씬 깔끔해진다.또한 수정이나 확장도 훨씬 쉬워진다.1) 작업 효율이 좋아진다. (코드가 짧아짐)예를 들어 어떤 작업을 100번 해야 한다고 하면, 반복문 없이 작성하면 코드가 100줄까지 늘어날 수 있다. 하지만 반복문을 사용하면 몇 줄로도 충분히 처리할 수 있다. 단순히 코드가 줄어드는 게 아니라 전체 구조가 훨씬 보기 좋아진다.2) 실수를 줄일 수 있다. (휴먼 에러 방지)코드를 복사해서 반복하면 생각보다 실수가 많이 생긴다. 중간에 하나 빠뜨리거나, 잘못 수정하는 경우도 흔하다. 반면 반복..

Python/기초 2026.05.27

파이썬 조건문(if, elif, else, 조건부 표현식, 구조적 패턴 매칭 math case)

Python에서 조건문은 주어진 조건(True/False)을 판단하여,그 결과에 따라 코드 블록을 수행 할 수 있도록 해주는 구조를 말한다. 예를 들어, 특정 숫자가 짝수인지 홀수인지 판단하여짝수일 경우 "짝수입니다"라는 메시지를 출력하고음수일 경우 "음수입니다"라는 메시지를 출력하는것처럼 상황에 따라 다양한 방식의 조건문을 제공하여간단한 조건처리부터 복잡한 데이터 처리까지 유연하게 구현할 수 있다.1. if, elif, else파이썬에서는 아래와 같은 3가지 조건문을 제공한다.if문if-else문if-elif-else문1) if문if문은 가장 기본적인 조건문이다. 기본 구조는 조건식이 True 또는 False와 같은 불리언(Boolean) 값을 반환하는 형태로 이루어진다. 조건식이 참인 경우에만 코드 ..

Python/기초 2026.05.26

파이썬 컬렉션 자료형 정리(리스트, 튜플, 세트, 딕셔너리)

컬렉션(Collection) 자료형은 여러 개의 데이터를하나의 변수에 묶어 저장하고 관리할 수 있게 해주는 데이터 구조이다. 즉, 하나 이상의 값을 저장할 수 있는 자료형을 의미한다. 컬렉션은 단순히 데이터를 여러 개 저장하는 것을 넘어,아래와 같은 목적에 따라 알맞은 타입을 선택하여 사용할 수 있다.순서가 필요한지데이터 수정이 가능한지중복을 허용하는지key-value 형태로 관리할지1. 리스트(List)리스트는 여러 값을 순서대로 저장할 수 있는 가장 기본적인 컬렉션이다.리스트는 대괄호 [ ] 를 사용하며, 데이터를 자유롭게 수정할 수 있다.리스트의 특징은 아래와 같다.순서(Index)가 존재한다.데이터 수정이 가능하다.중복 데이터를 허용한다.1) 리스트 인덱싱과 값 수정리스트는 문자열처럼 인덱스를 사..

Python/기초 2026.05.26

파이썬 함수(Function)와 메소드(Method)의 차이

파이썬을 공부하다 보면 가장 많이 헷갈리는 개념 중 하나가 함수와 메소드이다. 겉으로 보기에는 둘 다 ()를 붙여서 실행되기 때문에 비슷해 보이지만,실제로는 존재하는 위치와 동작 방식이 완전히 다르다.1. 함수(Function)란?함수는 특정 작업을 수행하기 위해 독립적으로 정의된 코드 블록이다.쉽게 말해, 객체나 클래스와 관계없이단독으로 존재할 수 있으며 필요할때만 호출해서 사용하는 코드이다. 함수의 특징독립적으로 존재한다.입력값(매개변수)를 받을 수 있다.반환값(return)을 가질 수 있다.특정 객체에 종속되어있지 않다.def add(a, b): return a + bprint(add(3, 5))위 코드에 add()는 어떤 객체에도 속하지 않은 독립적인 함수이다.2. 메소드(Method)란?메..

Python/기초 2026.05.26