LLM 연동 기초1. Gemini API 요청 방식: REST vs SDKInteractions API: Python 코드에서 LLM에게 요청을 보내고 응답을 받는 Gemini의 APIREST API는 requests.post()로 URL, headers(인증 정보), body(모델·입력·설정)를 직접 구성해 요청SDK(google-genai)는 이 URL 구성과 JSON 변환, 응답 파싱을 감싸서 제공하는 것으로, HTTP 요청 자체가 사라지는 것은 아님응답은 여러 steps로 구성되며, 마지막 step에 모델의 최종 답변이 들어있음SDK의 output_text는 이 최종 텍스트를 꺼내주는 편의 속성장점SDK: URL/headers/JSON 직접 작성 없이 client.interactions.creat..
파이썬 심화 문법 정리 (가변 인자, 복사, 매직 메서드, 타입, 제너레이터)1. *args, **kwargs*args: 여러 개의 위치 인자를 튜플로 받는 문법.`kwargs`**: 여러 개의 키워드 인자를 딕셔너리로 받는 문법.함수를 정의할 때는 여러 인자를 하나로 모으고, 함수를 호출할 때는 *, **로 묶인 값을 펼쳐서 전달함.2. 패킹과 언패킹패킹: 여러 값을 하나로 묶는 것.언패킹: 묶인 값을 다시 펼치는 것.함수 호출에서 *는 리스트나 튜플을 펼치고, **는 딕셔너리를 펼침.3. 리스트의 얕은 복사와 깊은 복사b = a는 복사가 아니라 두 변수가 같은 리스트를 가리키는 대입임.얕은 복사바깥 리스트만 새로 만들고 내부 리스트는 원본과 공유함.깊은 복사내부 리스트까지 모두 새로 만들어 원본과 완..
파이썬 클래스와 객체지향: 클래스, 상속, 추상클래스, 타입 힌팅, 독스트링1. 클래스 (Class)클래스: 객체(인스턴스)를 만들기 위한 설계도이자 속성(변수)과 동작(메서드)을 묶은 자료형클래스로부터 생성된 실체를 인스턴스라고 함__init__ 메서드는 인스턴스 생성 시 자동으로 호출되는 생성자 역할을 함self는 인스턴스 자기 자신을 가리키며, 인스턴스 메서드의 첫 번째 매개변수로 항상 전달됨동작/흐름class 키워드로 클래스 정의__init__ 메서드에서 인스턴스 속성 초기화클래스명 뒤에 괄호를 붙여 호출하면 인스턴스 생성생성된 인스턴스로 속성 접근 및 메서드 호출2. 상속 (Inheritance)상속: 기존 클래스(부모 클래스)의 속성과 메서드를 새로운 클래스(자식 클래스)가 그대로 물려받는 것..
Python requests를 활용한 API 통신1. requests 모듈과 API 요청requests: 파이썬에서 HTTP 요청을 보내기 위한 라이브러리터미널(ctrl + j)에서 pip install requests 명령으로 설치requests.get(url) 등으로 요청을 보내면 Response 객체가 반환됨응답 본문은 response.json()으로 파싱해 확인하며, 요청 성공 여부는 response.status_code로 확인 가능response.text로도 본문 확인이 가능하나, 이 경우 결과는 str 타입2. requests의 HTTP 메서드GET서버에서 데이터나 목록을 조회하는 메서드단일 리소스 조회와 전체 목록 조회 모두 가능POST서버에 새로운 데이터를 생성하는 메서드전달할 데이터는 j..
HTTP 프로토콜과 웹 통신 기초1. HTTP 프로토콜HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 주고받기 위한 통신 규약클라이언트와 서버 사이에서 메시지를 주고받는 방식을 정해놓은 약속클라이언트와 서버 구조클라이언트: 서비스를 요청하는 주체이며 웹 브라우저나 모바일 앱이 이에 해당함서버: 요청에 대해 응답을 제공하는 주체2. HTTP의 주요 특징비연결성클라이언트의 요청에 서버가 응답을 마치면 즉시 연결을 끊는 방식서버 자원을 효율적으로 관리할 수 있으나 매번 새로운 연결을 맺어야 하는 비용이 발생함무상태성서버가 클라이언트의 이전 상태를 기억하지 않는 특징각 요청은 독립적이며 필요한 모든 정보를 매번 전달받아야 함이 특징 덕분에 서버 확장이 용이함3. HTTP 메시지 구..
2차원 배열, 델타 탐색, 회문, 정렬 알고리즘 기초1. 2차원 배열 기본 다루기2차원 배열(행렬): 리스트 안에 리스트가 들어있는 구조로, mat[i][j] 형태로 i행 j열 원소에 접근함가로(행) 순서로 순회할 때는 바깥 반복문이 i(행), 안쪽 반복문이 j(열)를 담당함세로(열) 순서로 순회하려면 반대로 바깥 반복문이 j, 안쪽 반복문이 i를 담당함관례적으로 바깥 반복문 변수는 i, 안쪽 반복문 변수는 j로 고정해서 사용함흐름 — 세로 방향 합계 구하기열 인덱스 j를 고정그 열에 속한 모든 행 i를 순회하며 값을 누적열마다 합계를 구해 리스트에 저장N×M 2차원 배열 만들기이중 반복문으로 행마다 리스트를 만들어 채우는 방식이 기본리스트 컴프리헨션으로 mat = [[식 for j in range(m)..