Skip to content

0801

와 8월 진짜 거짓말 같다

python

python에서만 통용되는건 아니지만 python을 기준으로 다시 한 번 정리...

oop에서 state란?

  • 클래스나 인스턴스가 기억하고 있는 값들.
  • instance state: 특정 instance가 가진 속성
  • class state: 클래스 전체에서 공유되는 값
  • instance란 무엇인가? method를 통해 만들어진 객체

method

instance method

  • 언제 쓰이는가? 해당 인스턴스의 상태를 읽거나 바꿀 때
  • 인스턴스를 만드려면 메서드의 첫번째 인자를 self로 선언해야됨.

class method

  • 언제 쓰이는가? 클래스 전체 상태를 참고하거나, factory를 만들 때, 서브 클래싱을 고려할 때
  • 첫번째 인자를 clas로 받아서 클래스 자체에 접근.

static method

  • 클래스와 인스턴스의 state를 전혀 안 쓰는데 논리적으로 해당 클래스에 묶어는 두고 싶을 때
  • 인스턴스도, 클래스도 첫번째 인자로 받지 않음.

퀴즈

  1. 사용자 이메일 형식을 검증하는 함수를 user 클래스 안에 넣을 때는 어떤 종류의 메서드를 사용해야 될까?
    • 검증만 하는거면 상태가 필요없으니 static method
  2. 특정 사용자의 이메일을 출력하는 함수는 어떤 메서드로 만들어야할까?
    • 특정 사용자의 값을 읽어야 하니까 instance method
  3. 모든 사용자의 수를 세는 기능은?
    • 클래스 전체 상태가 필요하니까 class method

참고

  • js에서의 메서드
    • 인스턴스 메서드: 클래스 안에 그냥 정의
      • this로 인스턴스 상태에 접근할 수 있음
    • 정적 메서드: static 키워드로 정의
    • 클래스 메서드는 따로 없음. 파이썬에만 있음.
  • oop(객체지향)에서의 클래스 상태와 React에서의 상태
    • 둘 다 value를 저장한다는 점에선 일맥상통하지만
    • react는 ui 렌더링과 연결 된 상태라서 함수형 상태 관리고
    • oop에서의 클래스 상태는 데이터와 동작을 묶는.. ui와는 관련이 없음. 데이터만 바뀌는거임
  • 참고 자료

번외...

요번에 새로 나온 gpt의 공부하기 기능을 써서 퀴즈를 내달라고 해봤다. 괜찮은듯?
근데 굳이 공부하기 기능을 켜고 써야 될까란 생각이 들기도 했다.
그냥 일반에서 퀴즈 내달라고 해도 저렇게 내던데.. 켰을 때 껐을 때 뭔 차이지?
Pasted image 20250801120337

cosine similarity VS edit distance

cosine similarity

  • 벡터 간의 유사성을 측정하는데 사용
  • inner product space에서 두 벡터가 이루는 각도의 코사인 값을 측정하여 유사도를 판단
  • bag-of-words(단어주머니) 모델을 기반으로 하기 때문에 unordered set으로 간주하여 유사도를 판별함.
  • 예를 들어 "I like apples"와 "apples i like"는 순서가 달라도 구성된 단어의 요소가 같기에 코사인 유사도가 매우 높게 나옴.

edit distance (Levenshtein distance)

  • 문자열 또는 시퀀스 간의 차이를 측정하는 데 사용
  • 한 문자열을 다른 문자열로 바꾸는데 필요한 최소한의 편집 횟수(삽입, 삭제, 교체)를 계산. 해당 횟수가 적을 수록 유사성이 높다고 판단.

그래서 언제 쓰는데

  • 코사인 유사도는 임베딩에 주로 사용
    • 임베딩이 뭔데 -> 문서, 문장, 단어 등을 고차원 벡터로 변환하는 기술. 단어의 의미나 문맥적 지식을 벡터 공간에 반영하려는 것
      • 왜 벡터 공간에 반영해야되는데 -> 그래야 컴이 이해하니까..
  • 편집 거리는 의미론적 지식 없이 단순히 문자열의 유사성을 측정할 때 사용
  • 결론
    • 편집 거리는 순서를 고려한 문자열 간의 유사성
    • 코사인 유사도는 순서가 없는 벡터간의 유사성

참고

  • 편집거리와 코사인 유사도를 같이 쓸 수 있을까?
    • ㅇㅇ 당연
    • 검색 엔진에서 자동 완성과 오타를 교정해줄 때
      • 자동완성: 코사인유사도
        • 파이썬만 검색했는데 파이썬 창시자, 파이썬 뭐..... 겁나 많이 뜰거아님 물론 알고리즘도 한몫하겠지만
      • 오타교정: 편집거리
        • 내가 만약 파이썭 으로 오타를 냇으면 편집거리에서 얘가 아 파이썬 치려고했나? 생각하면서 파이썬으로 교정
  • 참고 자료