Python 28

[자료구조] 선형 리스트(Linear List), 연결 리스트(Linked List), 이중 연결 리스트(Doubly Linked List)

선형 리스트 (Linear List)선형 리스트는 데이터가 순서대로 나열되어 있는 자료구조이다.일반적으로 배열(Array)처럼 연속된 기억 장치에 저장되는 구조로 생각하면 된다.선형 리스트의 특징구조가 단순하다.인덱스를 사용한 데이터 접근 속도가 빠르다.연속된 메모리 공간을 사용한다.중간 삽입과 삭제가 많을경우 비효율적이다.💡선형 리스트와 배열의 차이선형 리스트는 데이터들이 빈틈없이 순서대로 나열된 논리적인 구조이고배열은 그 선형 리스트를 컴퓨터 메모리에 연속적으로 방을 잡아 구현해낸 물리적인 형태이다. 쉽게 말해,선형 리스트가 차례대로 줄을 서서 기다리는 추상적인 규칙이라면배열은 그 규칙을 현실에서 1번자리, 2번자리, 3번자리,... 처럼 연속된 의자로 만들어둔것과 같다.연결리스트 (Linked L..

파이썬 패키지와 모듈 (모듈 생성, 모듈 가져오기, 모듈 설치, 패키지 생성, 패키지 사용하기)

Python에서 프로그램을 만들다 보면 코드의 양이 점점 많아지게 된다. 처음엔 하나의 파일에서 모든 코드를 작성해도 문제가 되지 않지만,프로젝트 규모가 커질수록 기능별로 코드를 분리하여 관리하는 것이 좋다. 이때 모듈(Module)과 패키지(Package)을 사용하게 된다.모듈(Module)이란?Python에서 모듈은 관련된 함수, 클래스, 변수들을 하나의 파일(.py)로 묶어놓은 것을 의미한다. 모듈을 사용하면 코드를 기능별로 분리할 수 있어관리가 쉬워지고, 다른 파일에서도 재사용할 수 있다. 해당 모듈 파일은 다른 사람이 만든 모듈을 가져와 사용할수도 있고내가 직접 모듈을 만들어 코드를 관리할 수도 있다.모듈의 장점기능별로 코드를 분리하여 관리할 수 있기 때문에코드 가독성이 좋고 유지보수가 편리하다..

Python/기초 2026.06.01

파이썬 매직 메서드와 제너레이터

매직 메서드(Magic Method)는 스페셜 메서드라고도 불리며,메서드 양쪽에 언더스코어(__) 두개로 감싼 형태를 가지고 있다. 매직 메서드는 클래스 내부에서 특별한 기능을 수행할 수 있으며,Python의 내장 기능과 상호작용할 때 호출된다. 주요 매직 메서드__str__()__repr__()__getitem__()__setiten__()__delitem__()__call__()__len__()__wnter__()__exit__()1. 객체를 출력하는 매직 메서드1_1) __str__()__str__()는 객체를 사람이 읽기 쉬운 문자열로 표현하기 위해 사용되는 매직 메서드이다.보통 print나 srt로 객체가 호출될 때 자동으로 실행되며이 메서드를 클래스에 정의하면객체를 출력할 때 기본 주소값 대신..

Python/기초 2026.06.01

파이썬 객체지향 프로그래밍(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