전체 글 46

RAG 기초

아래 유튜브 영상을 보며 필기한 내용입니다https://www.youtube.com/watch?v=NbrN-NwKvuc AI 잘 모르시는 분들 중 RAG를 쉽게 이해하고 싶은 분들께 위 영상 추천드립니다.기초 개념RAG검색한 자료로 AI의 답변 능력을 업그레이드 한다 (LLM이 오픈북 시험을 보는 것)Retrieval 검색Augmented 강화된Generation 생성Embedding텍스트의 의미를 숫자로 표현해서 비슷한 의미끼리 가까운 위치에 놓는다텍스트 → 임베딩 모델 → 숫자 배열(=벡터 배열)숫자 배열의 길이 = 차원차원이 높을수록, 세밀한 의미 표현 가능 + 느린 검색 속도 + 많은 저장 공간시멘틱 서치(단어가 아니라 의미로 검색)가 가능해진다.Chunking텍스트 정보 조각, 이 조각을 어떻게..

필기 2026.08.10

FastAPI를 사용한 파이썬 웹 개발

'FastAPI를 사용한 파이썬 웹 개발'을 읽으며 정리한 글입니다.Chapter 1. Fast API 소개가상 환경 구축독립된 환경, 애플리케이션 의존성이 가상 환경 내에만 존재# 가상 환경 생성mkdir todos && cd todospython3 -m venv venv # 두 번째 venv는 가상 환경 폴더명# 가상 환경 활성화source venv/bin/activatedeactivate # 비활성화패키지 관리Python 패키지 관리 도구인 pip로 패키지 설치 과정 자동화python3 -m pip list # pip 설치 확인pip install fastapi # 설치 (가상 환경 내에서 진행)pip install --upgrade pip # ..

도서 2026.08.10

모든 개발자를 위한 HTTP 웹 기본 지식

인프런 모든 개발자를 위한 HTTP 웹 기본 지식인터넷 네트워크IP (Internet Protocol)지정한 IP 주소(IP Address)에 데이터 전달패킷(Packet)이라는 통신 단위로 데이터 전달패킷(Packet) Package + Bucket의 합성어 (출발지 IP, 목적지 IP 등의 데이터 집합)IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 패킷이 중간에 사라지거나, 패킷의 순서가 지켜지지 않을 수 있음 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우, 구분 방법 부재해결 방법으로 등장한 TCPTCP와 UDP인터넷 프로토콜 스택 4계층애플리케이션 계층 (HTTP, FTP 등)전송 계층 (TCP, UDP..

강의 2024.09.01

프론트엔드 개발자를 위한 웹팩

인프런 프론트엔드 개발자를 위한 웹팩npmNode Package Manager의 약어Javascript Library를 관리해 주는 도구npm Homepage장점쉬운 버전 관리기존 script 태그를 찾아 일일이 버전 정보 수정npm package.json 파일에서 모든 라이브러리 버전 정보 관리 가능import 정보 찾는 과정 생략기존 script 태그 내 src 등의 입력값을 인터넷에서 검색해 입력npm install 명령어로 검색 없이 라이브러리 설치초기화 (init)npm init #초기화npm init -y #기본값으로 초기화 (추천)package.json 생성지역 설치 (install)npm install {라이브러리 이름}npm i {라이브러리 이름}node-modules 폴더 내 ..

강의 2024.08.25

[LeetCode > Easy > 1] Two Sum

문제https://leetcode.com/problems/two-sum/description/Runtime: 59ms, Memory 17.99MB주어진 배열에서 합쳐서 target 값이 되는 두 개의 값을 찾는다. (두 개의 값이 아닌 인덱스를 반환)내 풀이class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: # 주어진 리스트의 index, value가 담긴 리스트 생성 pointers = list(enumerate(nums)) # value를 기준으로 리스트 정렬 pointers.sort(key=lambda x: x[1]) size = len(nums) ..

코딩테스트 2024.06.23

Python Algorithm Interview 03 - 문자열

파이썬 알고리즘 인터뷰 6장을 학습하며 작성한 글입니다.Methodsentence = "Thank you for your inviting!" count 문자열 내 특정 문자열의 개수를 찾는 함수# y 개수 반환sentence.count('y') #2# sentence[10:]에서 y 개수 반환sentence.count('y', 10) #1# sentence[10:13]에서 y 개수 반환sentence.count('y', 10, 14) #0 find, rfind 문자열 내 특정 문자열의 인덱스를 찾는 함수 (찾는 문자열이 없다면 -1 반환)# 첫 번째 y의 인덱스sentence.find('y') #6# sentence[10:]에서 첫 번째 y의 인덱스sentence.find('y', 10) #14#..

[LeetCode > Medium > 5] Longest Palindromic Substring

문제https://leetcode.com/problems/longest-palindromic-substring/description/Runtime: 4614ms, Memory 16.34MB주어진 문자열의 부분 문자열 중 가장 긴 회문을 반환내 풀이class Solution: def longestPalindrome(self, s: str) -> str: result = s[0] length = len(s) # 2개의 포인터로 모든 경우의 수를 탐색 for i in range(length): for j in range(i+1, length): # 현재 결과값보다 작으면 pass ..

코딩테스트 2024.06.09

[LeetCode > Medium > 49] Group Anagrams

문제https://leetcode.com/problems/group-anagrams/description/Runtime: 71ms, Memory 19.80MB애너그램이 같은 문자열끼리 묶은 이중 리스트를 반환내 풀이class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: # 정렬한 애너그램이 key, 해당 애너그램인 문자열 리스트가 value results = dict() for s in strs: # 문자열을 정렬해 key를 구한다. sorted_s = list(s) sorted_s.sort() ..

코딩테스트 2024.06.09

[LeetCode > Easy > 819] Most Common Word

문제https://leetcode.com/problems/most-common-word/description/Runtime: 43ms, Memory 16.57MB주어진 문자열(paragraph)에서 주어진 리스트(banned)에 없는 단어 중 가장 많이 등장하는 단어 반환내 풀이import collectionsimport reclass Solution: def mostCommonWord(self, paragraph: str, banned: List[str]) -> str: # 문자열과 띄어쓰기를 제외하고, 띄어쓰기로 변경 paragraph = re.sub("[^a-z ]", " ", paragraph.lower()) # 빈도 수를 계산 co..

코딩테스트 2024.06.09

[LeetCode > Medium > 937] Reorder Data in Log Files

문제https://leetcode.com/problems/reorder-data-in-log-files/description/Runtime: 42ms, Memory 16.56MB주어진 문자열 리스트를 아래 규칙에 따라 정렬한다.문자열은 띄어쓰기를 기준으로 분리가 가능, 분리된 첫 부분은 Key가 된다.key를 제외하고는 모두 문자열인 경우가, 모두 숫자인 경우 앞에 온다.모두 문자열인 경우는 사전순으로 나열한다.숫자는 input으로 주어진 순서 그대로 나열한다. 내 풀이class Solution: def reorderLogFiles(self, logs: List[str]) -> List[str]: letter_logs, digit_logs = [], [] for log in..

코딩테스트 2024.06.09
반응형