파이썬에서 변수(이름) 는 메모리에 있는 객체를 가리키는 이름표(label) 역할
변수는 객체를 담고 있는 게 아니라 객체의 메모리 주소(참조) 를 알고 있음
a = 10 # a는 10 객체의 이름표
리스트는 원소의 ‘값 자체’를 저장하지 않는다. 리스트는 원소가 가리키는 객체의 참조(주소) 만 저장한다.
L = [a]
a는 10이라는 객체를 가리킴.
L은 a라는 이름표를 담는 게 아니라, a가 가리키던 10 객체의 주소를 저장함.
그래서 L[0]의 id는 a의 id와 같다.
리스트를 복사(copy 또는 [:])하면 바깥 리스트는 새로운 객체가 되지만 안쪽 원소들은 기존 객체의 참조를 공유한다.
따라서 복사본 리스트의 id는 다르지만 원소의 id는 같다.
구분 특징
불변 객체 (int, str, tuple) 내부 값 수정 불가 → ‘수정’하면 새 객체가 만들어짐 → 참조가 갈라짐
가변 객체 (list, dict, set) 내부 값 수정 가능 → 같은 객체를 여러 곳에서 참조하면 한쪽이 바뀌면 다 바뀜
인공지능: 사람처럼 사고하는 기계. 데이터를 스스로 학습하여 의사결정을 내리고 문제를 해결
규칙기반: 패턴을 사람이 일일이 만들어서 동작하는 방식 ex.챗봇
머신러닝: 사람이 알려준 특징으로 학습(정형데이터)
딥러닝: 특징을 스스로 찾아내서 학습(비정형데이터)
LLM: 텍스트 기반의 데이터를 학습한 모델, 딥러닝으로 학습을 함
랭체인: LLM을 실제 서비스나 애플리케이션에 쉽게 연결해주는 오픈소스 프레임워크
RAG: LLM이 모르는 문제에 헛소리하는걸 방지하기 위해 데이터를 가져와 검색해서 답하게 하는 파이프라인, 패턴이다