본문 바로가기
내일배움캠프/python

중요 개념

by useSword 2024. 2. 24.

 

TODO

1. 주말에 과제 1을 함수형으로 만들어보자

2. 데코레이터를 사용해보자

 

 

1. 함수

 

파라미터가 있는 함수

파라미터가 없는 함수

어규먼트가 있는 함수

어규먼트가 없는 함수

 

ex) print()는 파라미터가 없는 함수이다

 

파라미터 : 함수가 요구할 때 필요한 변수

어규먼트 : 함수에게서 요구된 값을 넣을 떄 필요한 변수 

 

2. return

return은 결과값을 저장할 공간이 필요함. 변수에 반환하지 않고 불러오면 빈 값임

 

3. 파이썬의 모든 자료형은 class이다

컴퓨터는 변수에 id값을 저장한다. 그 객체의 대한 구별을 해야하기 떄문이다.

 

4.메소드 

class 안에서의 함수. class 밖의 함수와 구별하여 부르기 위함.

메소드는 객체를 통해 사용자에 의해 직접 호출

 

5.매직메소드

class 안의 __init__같은 함수.

Python의 내장 행동을 정의

매직 메소드는 대부분의 경우 Python 인터프리터에 의해 자동으로 호출

매직메소드 안의 변수를 인스턴스 변수라 부름

 

6.self

 클래스 내부에서 메소드를 정의할 때 사용되는 첫 번째 매개변수로, 인스턴스 자기 자신을 참조

 

명시적인 첫 번째 매개변수: Python에서 클래스의 메소드는 호출될 때 자동으로 현재 인스턴스를 첫 번째 매개변수로 받습니다. 메소드를 정의할 때 이 첫 번째 매개변수를 self로 명시해야 합니다.

 

class MyClass:
    def __init__(self, value):
        self.value = value  # 인스턴스 변수에 접근하여 값을 설정
    
    def show(self):
        print(self.value)  # 인스턴스 변수에 접근하여 값을 출력

 

self를 사용하는 이유:
인스턴스 구분: 같은 클래스의 서로 다른 인스턴스들이 메모리 상에 존재할 때, self를 통해 각 인스턴스의 고유한 데이터에 접근하고 수정할 수 있습니다.
명확성: 메소드 내에서 self를 사용하면, 해당 코드가 인스턴스 변수나 다른 인스턴스 메소드와 작업한다는 것이 명확해집니다.

 

7. 더 깊은 표현

 

print (1 + 2)

>>> 3
print 함수에서의 클래스 1의 매직메소드 __add__를 타고 3을 구함.

 

 

10. 함수와 클래스

함수와 절차 지향 프로그래밍:
절차 지향 프로그래밍은 프로그램을 일련의 순차적인 절차나 함수의 집합으로 보는 방식입니다. 코드는 위에서부터 아래로 실행되며, 데이터를 처리하기 위한 일련의 연산을 정의합니다. 이 방식에서 함수는 특정 작업을 수행하는 코드 블록으로, 입력을 받아 작업을 수행하고 결과를 출력합니다.
이 표현에서 "함수는 절차지향형. 위에서부터 아래로"는 함수가 코드의 실행 순서를 따르며, 프로그램의 흐름을 구성하는 데 사용된다는 사실을 나타냅니다. 그러나 함수 자체가 반드시 절차 지향적이라기보다는, 함수를 사용하는 방식이 절차 지향 프로그래밍의 특징을 나타냅니다.

 

클래스와 객체 지향 프로그래밍:
**객체 지향 프로그래밍 (OOP)**은 데이터와 이 데이터를 처리하는 방법들을 객체로 조직화하는 프로그래밍 패러다임입니다. 클래스는 객체를 생성하는 템플릿으로, 데이터와 이 데이터에 대한 연산(메소드)을 캡슐화합니다.
"class는 객체지향형. 자유로움"이라는 표현은 클래스(및 객체)가 높은 수준의 추상화와 캡슐화, 상속, 다형성 같은 객체 지향 프로그래밍의 핵심 원칙을 활용하여 코드를 더 유연하고 재사용 가능하게 만든다는 점을 강조합니다. 클래스를 사용하는 것은 프로그래머에게 데이터와 함수를 묶어 더 구조화된 방식으로 프로그램을 설계할 수 있는 자유를 제공합니다.

 

11. 해싱

 

SHA-512
SHA-512는 안전한 해시 알고리즘(Secure Hash Algorithm) 패밀리의 일부로, 512비트(64바이트)의 해시값을 생성합니다. 이 알고리즘은 높은 보안 수준을 제공하며, 데이터 무결성 검증과 보안 애플리케이션에서 널리 사용됩니다.
SHA-512는 충돌 저항성이 높다고 평가되어, 현재까지는 안전하다고 간주되는 해시 알고리즘 중 하나입니다. 이는 동일한 해시값을 가지는 두 개의 서로 다른 입력값(충돌)을 찾기가 매우 어렵다는 것을 의미합니다.

 


MD5 (절대 사용하지 말것)
MD5는 메시지 다이제스트 알고리즘 5(Message Digest Algorithm 5)로, 128비트(16바이트)의 해시값을 생성합니다. MD5는 과거에 널리 사용되었으나, 여러 가지 취약점이 발견되어 현재는 보안 목적으로는 권장되지 않습니다.

'내일배움캠프 > python' 카테고리의 다른 글

list와 array의 간단 비교  (4) 2024.03.05
파이썬 문법 심화과정  (0) 2024.02.22
파이썬 문법  (1) 2024.02.20
TIL(데이터를 Flask로 받기,배포하기,listplz 사이드메뉴)  (1) 2024.01.30
파이썬-2일차  (1) 2024.01.26