파이썬 핵심 개념과 예제

1. Python과 Java 비교

  • Python: 인터프리터 언어로 실행 시 직접 해석. 동적 타입 지원으로 유연하나 런타임 오류 가능성 존재
  • Java: 컴파일 언어로 머신 코드 변환 후 실행. 정적 타입으로 컴파일 시 오류 검출 가능

2. 최대 재귀 깊이

기본값 998. sys.setrecursionlimit()로 조정 가능(3925-3929 범위 권장)

3. Python2 vs Python3 차이

  • 입력 함수: Py2 - raw_input(), Py3 - input()
  • 출력: Py2 - print 문, Py3 - print() 함수

4. *args와 **kwargs

  • *args: 키 없이 튜플 형식으로 가변 인자 전달
  • **kwargs: 키-값 쌍으로 딕셔너리 형식 전달

5. 주요 자료형 메서드

# 문자열
"text".upper()  # 대문자 변환
"a,b,c".split(',')  # 분할

# 리스트
nums = [1,2,3]
nums.append(4)  # 요소 추가
nums.sort()  # 정렬

# 튜플
data = (1,2,2)
data.count(2)  # 요소 카운트

# 딕셔너리
info = {'a':1}
info.get('a')  # 값 조회
info.keys()  # 키 목록

6. is와 == 차이

  • ==: 값 동등성 비교
  • is: 객체 동일성 확인 (메모리 주소 기준)

7. 람다 표현식

# 기본 형식
lambda 매개변수: 표현식

# 활용 예시
제곱 = lambda x: x**2
print(제곱(5))  # 25

# 필터링
result = filter(lambda n: n%2==0, [1,2,3,4])
print(list(result))  # [2,4]

8. pass 키워드

구문 완성을 위한 자리 표시자. 빈 블록 방지용

9. 얕은/깊은 복사

  • 얕은 복사: 외부 객체만 복제, 내부 객체는 참조
  • 깊은 복사: 모든 중첩 객체 재생성

10. 가변/불변 타입

  • 가변: 리스트, 딕셔너리, 집합 (객체 수정 가능)
  • 불변: 정수, 문자열, 튜플 (새 객체 생성 필요)

11. 내장 함수

abs(-5)  # 절대값
sorted([3,1,2])  # 정렬
list(range(5))  # 범위 생성
isinstance(5, int)  # 타입 확인

12. 고차 함수

# map: 모든 요소 변환
list(map(str.upper, ['a','b']))

# filter: 조건 필터링
list(filter(lambda x: x>0, [-1,0,1]))

# reduce: 누적 연산
from functools import reduce
reduce(lambda a,b: a*b, [1,2,3,4])  # 24

13. 생성자/반복자/반복 가능 객체

  • 반복 가능 객체: __iter__() 구현
  • 반복자: __next__()로 상태 기억
  • 생성자: yield로 지연 계산

14. functools 모듈

  • partial: 인자 고정
  • lru_cache: 결과 캐싱
  • wraps: 데코레이터 메타데이터 보존

15. isinstance() 활용

def validate(data):
    if not isinstance(data, list):
        raise TypeError("리스트 필요")
    # 처리 로직

16. 클로저

내부 함수가 외부 변수를 기억하는 구조. 함수 팩토리 구현에 활용

17. 주요 모듈

  • os: 파일 시스템 작업
  • sys: 인터프리터 제어
  • re: 정규 표현식
  • datetime: 날짜/시간 처리
  • collections: 확장 자료구조

18. random 모듈

난수 생성: random(), randint(), choice() 등 제공

19. 정적/클래스 메서드

class Example:
    @staticmethod
    def util():
        print("독립 함수")
    
    @classmethod
    def factory(cls):
        return cls()

20. 싱글톤 패턴

class Singleton:
    _instance = None
    
    def __new__(cls):
        if not cls._instance:
            cls._instance = super().__new__(cls)
        return cls._instance

21. 예외 처리

try:
    risky_operation()
except ValueError as e:
    print(f"오류: {e}")
finally:
    cleanup_resources()

22. 컨텍스트 관리자

class CustomContext:
    def __enter__(self):
        print("시작")
        return resource
    
    def __exit__(self, *args):
        print("정리")

with CustomContext() as res:
    res.operate()

23. 특수 메서드

  • __init__: 객체 초기화
  • __new__: 객체 생성 담당
  • __str__: 문자열 표현 정의

24. 로드 밸런싱

트래픽을 여러 서버에 분산하여 성능과 안정성 향상

태그: 파이썬 자료구조 함수형프로그래밍 객체지향 예외처리

6월 17일 05:28에 게시됨