브라우저 탈취에대한 문제는 https 를 다뤄주면 해결이 된다.
쿠키세션을 쓸 때는 누가 로그인을 햇는지가 정보에 남는다.
토큰의 목적 한번 드나들때마다 db를 쓰지 않기 위해
객체 지향 프로그래밍 OOP
object oriented programming
객체 지향
순차적으로 무엇인가가 일어나서 프로그램이 진행됨
가면 갈 수록 프로그램이 덩치가 커지면서
객체지향 개념 --- 객체지향 프로그래밍 구성요소
객체 --- 클래스
상태 --- 속성 attribute
행동 --- 메소드
객체지향 <---> 절차지향
현실에서 생각하는 것처럼 코딩을 하게 하자
클래스, 상속, 추상화, 캡슐화, 다형성, 메세지 전달
클래스와 인스턴스
aws 에서 인스턴스 익시스트 인스턴스가 돌아가고 있다.
자동차 클래스를 만들어서 자동차 객체를 생성할 수 있다.
자동차 클래스느느 자동차 객체가 가져야 할 속성과 동작 정의 가능
생성될 인스턴스의 모델 이라는 변수값을 입력받은 값으로 하겠다.
속성 어트리뷰트 프로퍼티 셋다 비슷한 이야기
클래스 안에서 만드는 함수는 메소드
class car:
def __init__(self, model, color, speed):
self.model = model
self.color = color
self.speed = speed
def accellerate(self, amount):
self.speed += amount
def brake(self, amount):
self.speed -= amount
def get_speed(self):
print(self.speed)
자동차 클래스 실습
굳이 car.speed를 그냥 뽑으면 되는데 get_speed를 만들 필요 있나?
보안 문제
캡슐화 encapsulation
객체지향 프로그래밍에서는 데이터와 그 데이터를 다루는 메서드들을 하나로 묶어 캡슐화 한다.
캡슐화된 객체는 외부에서 접근 할 수 없음
상속
상속은 이미 정의된 클래스에서 속성과 메소드를 받아 수정할 수 있는것
다형성 부모 클래스의 메소드를 오버라이딩해서 클래스마다 같은함수지만 다른 효과를 낼 수 있다.
class animal():
def __init__(self, name, age):
self.age = age
self.name = name
def speak(self):
print("동물이 우는 소리")
class Dog(animal):
def __init__(self, name, age):
super().__init__(name, age)
def speak(self):
print('멍')
class Cat(animal):
def __init__(self, name, age):
super().__init__(name, age)
def speak(self):
print('미야옹')
클래스의 추상
class Shape:
def get_area():
pass
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def get_area():
print("circle")
class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width
def get_area():
print("Rectangle")
붕어빵 틀을 만드는 붕어빵 틀틀