🐍 파이썬 문법
함수 시그니처(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())
와 같이ptr
이NULL
일 경우ptr->method()
를 실행하지 않아 오류를 막음 - 성능 최적화: 불필요한 연산이나 함수 호출을 방지하여 성능을 높임
- 제어 구조 역할: 간단한 조건문처럼 활용 가능함
⚠️ 주의사항
- 모든 언어에서 지원하는 것은 아님 (예: Fortran)
- XOR 연산 등은 단락 평가가 불가능함
- 부작용(side effect)이 있는 함수와 함께 사용할 때 의도치 않은 결과가 발생할 수 있어 주의가 필요함
참고: 단락 평가는 안전성과 효율성을 높여주는 중요한 기법이지만, 언어별 지원 여부와 복잡한 논리식에서의 사용에 주의해야 함.
📚 용어정리
용어 | 요약 |
---|---|
머신러닝(ML) | 데이터를 통해 스스로 학습하고 성능을 개선하는 AI의 한 분야 |
딥러닝(DL) | 인공신경망 기반의 다층 구조로 복잡한 패턴을 학습하는 머신러닝의 하위 분야 |
텐서플로우(TensorFlow) | 구글이 개발한 오픈소스 딥러닝 프레임워크로, 대규모 데이터 처리와 AI 작업에 적합함 |
파이토치(PyTorch) | 페이스북이 개발했으며, 동적 계산 그래프와 직관적인 파이썬 문법으로 연구에 널리 사용됨 |
체이너(Chainer) | 파이썬 기반의 딥러닝 프레임워크로, 동적 계산 그래프를 지원하여 유연한 모델 개발이 가능함 |
아파치 MXNet | 다양한 언어를 지원하며, 멀티 GPU 환경에서 뛰어난 성능을 보이는 딥러닝 프레임워크 |
테아노(Theano) | 파이썬용 수치 계산 라이브러리로, 심볼릭 계산과 자동 미분을 지원했음 (2017년 개발 중단) |
주피터 노트북 | 웹 기반의 인터랙티브 환경으로, 코드, 수식, 시각화, 설명을 한 문서에서 작성하고 실행할 수 있음 |
Pandas | 파이썬 데이터 분석 라이브러리로, 데이터프레임 구조를 통해 데이터를 조작하고 분석하는 데 최적화됨 |
Keras | 딥러닝 모델을 쉽고 빠르게 구축하게 해주는 고수준 API로, 주로 TensorFlow를 백엔드로 사용함 |