본문 바로가기

프로그래밍21

파이썬 - 데코레이터(Decorator)의 이해와 구현 데코레이터의 본질파이썬 데코레이터는 코드를 간결하고 재사용 가능하게 만드는 강력한 도구다.데코레이터의 핵심 아이디어는 기존 함수나 클래스를 수정하지 않고도 그 동작을 확장하거나 변경할 수 있다는 점이다.이는 개방-폐쇄 원칙(Open-Closed Principle)을 따르는 우아한 방법으로, 코드의 유지보수성과 확장성을 크게 향상시킨다.데코레이터는 '@' 기호를 사용하여 함수나 클래스 위에 선언된다. 이 간단한 구문은 복잡한 로직을 숨기고, 코드의 가독성을 높이는 역할을 한다.데코레이터의 작동 원리를 이해하기 위해서는 파이썬의 일급 객체(First-Class Objects) 개념을 알아야 한다.일급 객체로서의 함수파이썬에서 함수는 일급 객체다. 이는 함수를 변수에 할당하거나, 다른 함수의 인자로 전달하거나.. 2024. 12. 1.
파이썬 - 람다 함수와 함수형 프로그래밍 기초 람다 함수의 개념과 기본 구조파이썬에서 람다 함수는 익명 함수를 생성하는 강력한 도구다.이 함수는 단일 표현식으로 구성되며, 간결하고 일회성 사용에 적합하다. 람다 함수의 기본 구조는 다음과 같다.lambda 인자: 표현식 예를 들어, 두 수를 더하는 람다 함수는 다음과 같이 작성할 수 있다add = lambda x, y: x + yresult = add(3, 5) # 결과: 8 이 예시에서 lambda x, y: x + y는 두 인자 x와 y를 받아 그 합을 반환하는 익명 함수를 정의한다.이 함수를 변수 add에 할당하여 일반 함수처럼 사용할 수 있다.람다 함수의 특징과 장점1. 간결성람다 함수는 일반 함수에 비해 매우 간결하게 작성할 수 있다. 특히 한 줄로 표현 가능한 간단한 연산에 유용하다.2... 2024. 12. 1.
파이썬 - 이터레이터(Iterator)와 이터러블(Iterable) 이터레이터와 이터러블JavaScript 개발자라면 반드시 알아야 할 중요한 개념 중 하나가 바로 이터레이터(Iterator)와 이터러블(Iterable)이다. 이 두 개념은 데이터 컬렉션을 효율적으로 순회하고 처리하는 데 핵심적인 역할을 한다. 이 글에서는 이터레이터와 이터러블의 개념, 작동 방식, 그리고 실제 활용 사례를 깊이 있게 살펴볼 것이다.이터레이터 패턴의 역사와 발전이터레이터 패턴은 객체 지향 프로그래밍에서 오래된 디자인 패턴 중 하나다. 이 패턴의 주요 목적은 컬렉션의 내부 구조를 노출하지 않고도 모든 요소에 순차적으로 접근할 수 있게 하는 것이다.JavaScript에서 이터레이터와 이터러블의 개념은 ES6(ECMAScript 2015)에서 공식적으로 도입되었다. 이전 버전의 JavaScri.. 2024. 11. 30.
파이썬 - 정규표현식 정규표현식의 기본정규표현식(Regular Expression)은 문자열을 처리하는 강력한 도구다.파이썬에서는 're' 모듈을 통해 정규표현식 기능을 제공한다.정규표현식을 사용하면 복잡한 문자열 패턴을 간단하게 표현하고 검색, 추출, 치환 등의 작업을 효율적으로 수행할 수 있다.정규표현식의 기본 문법1. 문자 클래스[abc] : a, b, c 중 하나와 매치[a-z]: a부터 z 사이의 모든 소문자와 매치[0-9]: 모든 숫자와 매치2. 메타 문자. : 모든 문자와 매치 (단, 개행 문자 제외)^ : 문자열의 시작$ : 문자열의 끝: 0회 이상 반복: 1회 이상 반복? : 0회 또는 1회 반복{m,n} : m회 이상 n회 이하 반복3. 특수 문자 시퀀스\d : 숫자와 매치\D : 숫자가 아닌 문자와 매치\.. 2024. 11. 30.
파이썬 문자열 포매팅: f-string, str.format(), % 연산자 비교 문자열 포매팅의 중요성프로그래밍에서 문자열 포매팅은 매우 중요한 기능이다.데이터를 사용자에게 보여주거나, 로그를 작성하거나, 다양한 출력 형식을 만들 때 필수적으로 사용된다.파이썬은 여러 가지 문자열 포매팅 방식을 제공하며, 각각의 방식은 고유한 특징과 장단점을 가지고 있다.% 연산자를 이용한 문자열 포매팅% 연산자는 파이썬의 가장 오래된 문자열 포매팅 방식 중 하나다.C 언어의 printf 스타일과 유사하여 다른 언어에서 넘어온 개발자들에게 친숙할 수 있다.기본 사용법name = "Alice"age = 30print("My name is %s and I'm %d years old." % (name, age))장점간단하고 직관적인 구문다른 언어에서 온 개발자들에게 익숙함단점복잡한 포매팅에서 가독성이 떨어.. 2024. 11. 30.
파이썬 - 불변(Immutable)과 가변(Mutable) 객체 1. 불변과 가변 객체의 개념파이썬에서 모든 데이터는 객체로 취급된다. 이 객체들은 크게 두 가지 범주로 나눌 수 있다: 불변(Immutable) 객체와 가변(Mutable) 객체. 이 두 종류의 객체는 메모리 관리와 데이터 조작 방식에서 근본적인 차이를 보인다.2. 불변(Immutable) 객체불변 객체는 한 번 생성된 후에는 그 내용을 변경할 수 없는 객체를 말한다. 파이썬에서 대표적인 불변 객체로는 정수(int), 부동소수점(float), 문자열(str), 튜플(tuple), 불리언(bool) 등이 있다. 이러한 객체들은 한 번 생성되면 그 값을 직접적으로 수정할 수 없다.예를 들어, 문자열을 살펴보자.s = "Hello"s[0] = "h" # TypeError: 'str' object does .. 2024. 11. 29.