🐍 파이썬 문법

함수 시그니처(Signature)

  • / 왼쪽의 인자는 파라미터=아규먼트 형식으로 값을 전달할 수 없음
  • * 오른쪽의 인자는 반드시 파라미터=아규먼트 형식으로만 값을 전달해야 함
sort(self, /, *, key=None, reverse=False)
# self는 list 본인이며, key와 reverse는 반드시 키워드 인자로 지정해야 함

range()와 지연평가(Lazy Evaluation)

  • 지연평가(Lazy Evaluation): 실제 값이 필요한 시점까지 계산을 미루는 방식. range()는 조건만 메모리에 저장하고, 실제 사용할 때 값을 평가함
  • 장점: 메모리를 효율적으로 사용할 수 있음

단락 평가(Short-circuit Evaluation)

논리 연산자(AND, OR 등)에서 첫 번째 피연산자의 값만으로 전체 결과가 정해지면, 두 번째 피연산자는 평가하지 않는 방식

✔️ 장점 및 활용

  • 에러 방지: if (ptr != NULL && ptr->method())와 같이 ptrNULL일 경우 ptr->method()를 실행하지 않아 오류를 막음
  • 성능 최적화: 불필요한 연산이나 함수 호출을 방지하여 성능을 높임
  • 제어 구조 역할: 간단한 조건문처럼 활용 가능함

⚠️ 주의사항

  • 모든 언어에서 지원하는 것은 아님 (예: Fortran)
  • XOR 연산 등은 단락 평가가 불가능함
  • 부작용(side effect)이 있는 함수와 함께 사용할 때 의도치 않은 결과가 발생할 수 있어 주의가 필요함

참고: 단락 평가는 안전성과 효율성을 높여주는 중요한 기법이지만, 언어별 지원 여부와 복잡한 논리식에서의 사용에 주의해야 함.

📚 용어정리

용어 요약
머신러닝(ML) 데이터를 통해 스스로 학습하고 성능을 개선하는 AI의 한 분야
딥러닝(DL) 인공신경망 기반의 다층 구조로 복잡한 패턴을 학습하는 머신러닝의 하위 분야
텐서플로우(TensorFlow) 구글이 개발한 오픈소스 딥러닝 프레임워크로, 대규모 데이터 처리와 AI 작업에 적합함
파이토치(PyTorch) 페이스북이 개발했으며, 동적 계산 그래프와 직관적인 파이썬 문법으로 연구에 널리 사용됨
체이너(Chainer) 파이썬 기반의 딥러닝 프레임워크로, 동적 계산 그래프를 지원하여 유연한 모델 개발이 가능함
아파치 MXNet 다양한 언어를 지원하며, 멀티 GPU 환경에서 뛰어난 성능을 보이는 딥러닝 프레임워크
테아노(Theano) 파이썬용 수치 계산 라이브러리로, 심볼릭 계산과 자동 미분을 지원했음 (2017년 개발 중단)
주피터 노트북 웹 기반의 인터랙티브 환경으로, 코드, 수식, 시각화, 설명을 한 문서에서 작성하고 실행할 수 있음
Pandas 파이썬 데이터 분석 라이브러리로, 데이터프레임 구조를 통해 데이터를 조작하고 분석하는 데 최적화됨
Keras 딥러닝 모델을 쉽고 빠르게 구축하게 해주는 고수준 API로, 주로 TensorFlow를 백엔드로 사용함