나는 어떤 히스토리를 가지고 데이터 분석트랙에 참여하게 되었나요?원래 전공은 전기공학이었으나 3학년 2학기부터 세부전공으로 머신러닝 강의를 수강하였고, 주어진 데이터를 분석하여 의미있는 예측을 한다는 것이 무척 흥미롭게 느껴졌습니다. 마침 ChatGPT 열풍이 불면서
1. 필요한 문자 포맷이 다를 때, SQL로 가공하기 (replace, substr, concat) 1) 특정 문자를 다른 문자로 변경(replace) 2) 전체가 아닌 필요한 특정 문자만 조회(substr) 3) 여러 컬럼의 문자를 합치기(concat) 2. 조
1) Subquery가 필요한 경우여러번의 연산을 수행해야 할 때조건문에 연산 결과를 사용해야 할 때조건에 query 결과를 사용하고 싶을 때2) Subquery 문의 기본 구조1) JOIN이 필요한 경우필요한 데이터가 하나의 테이블에 모여있지 않을 때2) JOIN의
<결과>각 행의 관계를 정의하기 위한 함수로 그룹 내의 연산을 쉽게 만듦복잡한 Subquery 문이나, 여러번의 연산을 수행하지 않도록 해줌\[실습] 음식 타입별로 주문 건수가 가장 많은 상점 3개씩 조회하기\[실습] 각 음식점의 주문건이 해당 음식 타입에서 차지
JavaScript로도 모든 기능을 구현할 수 있지만, 코드가 복잡하고 브라우저 간 호환성 문제도 고려해야함이를 해결하기 위해 jQuery 라는 라이브러리 등장jQuery를 사용하기 위해서는 임포트 필요jQuery 임포트하기아래의 주소에서 jQuery CDN 부분을 참
route() 부분의 <name> 와 같이 <> 를 사용하면, URL 주소에 따라서 name을 변수처럼 사용 가능RDBMS(SQL) \- 엑셀에 데이터를 저장하는 것과 유사. 행/열의 생김새에 따라 정형화된 데이터를 가짐 \- 장점: 데이터의 일관성, 용
그 동안은 로컬 개발 환경이었기 때문에 내 컴퓨터가 꺼져있으면 웹서비스에 접근할 수 없었음서버를 구매하여 언제나 내 웹서비스에 접근 가능하도록 설정클라우드 서비스: 인터넷을 통해 제공되는 IT 자원 및 서비스개인이나 기업이 하드웨어를 구입하거나 관리하지 않아도 필요한
대규모의 텍스트 데이터를 학습하여 언어의 구조와 의미를 이해하고, 그 학습을 바탕으로 텍스트 생성, 번역, 요약, 질문에 대한 답변 등 다양한 언어 관련 작업을 할 수 있는 인공지능 모델자연어 처리(NLP)에서 사용되는 기술의 한 종류광범위한 지식 활용뛰어난 언어 이해
설치가 간편함: SQLite는 별도의 서버 설정이 필요 없으며, 파일 기반으로 작동하기 때문에 쉽게 설정하고 실행할 수 있음. 이를 통해 복잡한 서버 환경이 불필요.높은 성능: 소규모 웹사이트나 트래픽이 많지 않은 사이트의 경우, SQLite는 빠르고 안정적인 성능을
객체 지향 프로그래밍(OOP)에서 코드 재사용을 목적으로 사용하는 클래스의 일종일반적인 상속과는 다르게 여러 클래스 간에 공통 기능을 공유하는 데 주로 사용클래스 간 다중 상속의 복잡성을 줄이면서 필요한 기능을 쉽게 추가 가능 독립성: 믹스인은 자체적으로 인스턴스화(i
1) try block: 에러를 일으킬 수도 있는 코드 블럭2) catch block: try block에서 에러가 발생했을 때, 그 에러를 다루는 코드 블럭1) try block: 에러를 일으킬 수도 있는 코드 블럭2) except block: try block에서
Max() 함수는 컬럼에서 가장 큰 값을 반환하는 집계 함수그룹 내에서 최대값을 찾거나 테이블 전체에서 최대값을 찾을 때 사용각 그룹에서 최대값을 찾을 때는 Group by와 함께 Max()를 사용최대값을 가진 행 전체를 반환할 때 사용데이터를 정렬한 후 LIMIT만큼
Meta AI에서 개발한 첨단 이미지 분할(Image Segmentation) AI 모델다양한 이미지 속 물체나 영역을 자동으로 분할1) 이미지 분할의 정의 \- 디지털 이미지에서 픽셀 단위로 특정 영역이나 객체를 나누는 컴퓨터 비전 기술 \- 이미지 속에서 서로 다른
자바스크립트 앱에서 사용되는 여러 파일들을 하나의 번들로 묶어주는 도구CSS, 이미지 등 다양한 파일 형식을 함께 묶을 수 있고, 그 과정에서 의존성을 관리해줌파일 로딩 시간을 줄이고, 앱의 성능을 최적화하는 데 도움을 줌앱에서 사용되는 여러 파일을 하나의 큰 파일로
Node.js 프로젝트의 필수 파일로, 프로젝트에서 사용하는 모든 패키지(라이브러리)와 스크립트를 정의하는 역할패키지의 이름, 버전, dependencies, devDependencies, 실행 스크립트 등이 기록됨npm install을 실행할 때 자동으로 생성pack
서버는 인터넷에 연결되어 있으며 24시간 꺼지지 않는 컴퓨터 서버는 클라이언트에서 보낸 request 를 받고 response 보냄클라이언트와 서버는 개방된 포트를 통해 request 와 response 를 송수신서버는 request 를 받으면 반드시 response
작업중인 주제를 기반으로 컨트롤러나 url를 그룹화 해 관리를 쉽게 해줌함수 선언 앞에 export 붙여주기
프로그래머가 매번 변수에 맞게 라우터를 생성할 수는 없기 때문에 이를 변수로 처리express에게 변수임을 알려주기 위해 ':' 사용:id는 어떤 숫자나 문자열일 수 있으며, 요청이 들어왔을 때 req.params를 통해 접근 가능기존에는 /upload 부분을 /:id
res.send() 함수로도 HTML을 보낼 수도 있지만 그러기엔 HTML이 너무 큼이것을 효율적으로 처리하기 위해 pug 사용HTML의 문법을 단순화 시켜서 간편하게 HTML 코드를 작성할 수 있게 해줌express에게 view engine은 pug로 사용할 것임을
템플릿에 변수로 받고 싶은 부분을 - pug 파일을 렌더링 하는 부분은 컨트롤러이므로, 컨트롤러에서 템플릿으로 보낼 변수를 보낸다.최소한의 스타일을 제공하는 CSS 프레임워크간결하고 직관적인 디자인으로 웹 페이지를 자동으로 보기 좋게 구성웹 페이지 디자인보다는 기능 구
함수 정의 시 매개변수에 미리 지정된 값을 의미매개변수에 기본값을 줬으므로 함수 호출 시 인수 생략 가능==인수가 전달되지 않으면 기본값이 사용됨==여러 매개변수에 대해 기본값을 가질 수 있음그러나 기본값이 있는 매개변수는 항상 기본값이 없는 매개변수 뒤에 와야 함프로
객체(Object)를 만들기 위한 설계도속성(Attributes)과 메서드(Methods)로 구성속성: 클래스에 정의된 변수. 객체의 상태나 특징을 나타냄메서드: 클래스에 정의된 함수. 객체가 수행할 수 있는 행동을 나타냄클래스로부터 실제로 생성된 구체적인 데이터와 기
하나씩 차례대로 값을 꺼내올 수 있는 객체python에서 list, tuple, string, dictionary 등은 모두 iterable이들은 for 루프에서 반복 가능, 내부적으로는 \_\_iter\_\_() 메서드를 통해 이터레이터를 반환반복 가능한 객체의 요소
NumPy에서 서로 다른 크기의 배열 간의 연산을 가능하게 하는 기능크기가 다른 배열이라도 특정 규칙을 따를 경우, 크기를 맞추는 것처럼 연산을 수행1) 두 배열의 차원 수가 다르면, 더 작은 배열의 앞쪽(왼쪽)에 1을 추가하여 차원 수를 맞춤3) 크기가 1이 아닌 차
기본 조건부 필터링 \- <, >, \\==, <=, >= 등의 조건 사용 가능 \- df\[df\['Job'] == 'tutor'] - 여러 조건을 사용한 필터링 \- AND(&), OR( | ) 연산자 사용 \- df\[(df'Job' == 't
index: 행 인덱스로 사용할 열을 지정columns: 열로 사용할 열을 지정values: 셀의 값으로 사용할 열을 지정aggfunc: 집계 함수로, 기본 값은 mean이며 sum, min, max, count 등 다양한 함수도 사용 가능기본적으로 모든 인자가 선택적
각 행(row) 또는 열(column)에 적용할 수 있는 함수데이터를 변환하거나 계산하는 데 매우 유용function: 각 행 또는 열에 적용할 함수axis: 함수를 적용할 축을 지정 \- axis=0 (default): 열 단위로 함수를 적용 \- axis=1:
다양한 언어 모델(LLM)을 통합하고 활용할 수 있도록 해주는 오픈소스 프레임워크여러 AI 언어 모델 API와의 통합을 쉽게 해주고, 체인을 구성하도록 도와줌모델 연결 및 관리: 다양한 언어 모델(GPT-3, GPT-4 등)을 쉽게 연결하고 사용 가능하게 함체인 구성:
OpanAI의 chat model(GPT-3.5 또는 GPT-4 등)을 활용하여 대화형 AI 애플리케이션을 구축할 때 사용되는 인터페이스LangChain 프레임워크 내에서 OpenAI의 chat model을 쉽고 유연하게 활용할 수 있도록 도와주는 중요한 컴포넌트대화형
LLM의 출력을 받아 더 적합하고 유용한 형식으로 변환하는 중요한 컴포넌트구조화된 데이터 생성에 매우 유용LangChain 프레임워크에서 다양한 종류의 출력 데이터를 파싱하고 처리다양성: LangChain은 많은 종류의 outputParser를 제공스트리밍 지원: 많은
이를 통해 모델이 어떤 형태와 스타일로 답변해야 할지 학습하게 도와줌Prompt로 내가 원하는 것을 설명하는 것보다 몇 개의 답변 예제를 보여주는 방식이 더 효과적인 경우가 많음예제를 제공하면 모델이 해당 예제들을 기반으로 응답 패턴을 학습하여, 일관성 있고 정확한 답
모든 사례들을 다 예제로 선택할 수는 없기 때문에 example selector가 필요LengthBasedExampleSelector는 기본적으로 예제를 형식화하고, 예제의 길이에 기반해서 적절한 예제를 선택하는 역할을 수행. 이를 통해 예제의 양을 조절하고 관리함예제
여러 개의 머신러닝 모델을 결합하여 예측 성능을 향상시키는 기법하나의 모델이 예측할 때 발생할 수 있는 오차를 줄이고 더 안정적이고 정확한 결과를 얻을 수 있음1) 배깅(Bagging) \- 여러 개의 모델을 병렬적으로 학습하고, 각 모델의 결과를 평균 내거나 다수결로
조건부 확률을 계산하는 중요한 통계 이론관측된 데이터를 바탕으로 사건의 확률을 갱신하는 방법을 제공'사전 확률'을 '사후 확률'로 갱신하는 데 사용$$P(A|B) = \\frac{P(B|A)⨉P(A)}{P(B)}$$$P(A|B)$: B가 발생했을 때 A가 발생할 확률
iterator로부터 다음 항목을 반환하는 함수iterable한 객체는 next()와 직접 사용될 수 없기 때문에 iterator로 변환해야 함반복 가능한 객체 -> iter() -> next()
역전파 도중, 특정 시점에서 loss의 기울기가 너무 커지는 현상weights 업데이트가 비정상적으로 커지고, network가 불안정해지며 학습이 망가짐RNN에서는 모든 구조가 동일한 가중치를 가짐역전파 도중, 동일한 가중치가 반복해서 곱해지면서 기울기 값이 지수적으로
시퀀스 데이터에서 중요한 부분에 더 많은 가중치를 할당하여 정보를 효율적으로 처리하는 기법RNN 구조는 LSTM, GRU와 같이 변형을 거쳤음에도 긴 문장을 처리할 때 기억력 한계가 생기고, 문장의 앞뒤 정보가 잘 연결되지 않는 문제가 발생문장 내의 특정 단어에 가중치
Github에서 소스코드 다운로드Github에서 내 브렌치(branch) 만들기내 브렌치에 소스코드 업데이트하기마스터 브렌치에서 소스 가져오기(pull)브렌치끼리 이동하는 법
자연어 처리를 위한 파이썬 라이브러리텍스트 토큰화 (Tokenization): 문장을 토큰으로 나누어 해석
자연어 처리(NLP)와 기계 학습(ML)을 위한 다양한 도구와 라이브러리를 제공하는 플랫폼연구 및 개발, 상용화에 필요한 다양한 오픈 소스 모델과 데이터셋을 지원하여, 많은 개발자와 연구자들이 NLP 프로젝트를 효율적으로 구축할 수 있도록 함Transformers 라이
6.0 Introduction 1. What is RAG? RAG(Retrieval Augmented Generation): 검색 증강 생성 기법 이미 학습된 LLM에 외부의 지식 베이스를 참조하도록 하는 프로세스 2. RAG 구조 Indexing: 외부 지식 소스에
프로그램 간에 데이터를 주고받을 수 있게 해주는 인터페이스서버와 클라이언트 간에 요청과 응답을 주고받는 방식으로 작동복잡한 기능을 직접 구현할 필요 없이, 이미 만들어진 서비스를 활용할 수 있게 해줌장점 1\. 손쉬운 사용: 간단한 API 호출로 AI 모델의 다양한
python 설치Anaconda3 설치Nvidia 드라이버가 설치되어 있는지 확인 1) 시작 - cmd 입력 2) 명령 프롬프트 창에 nvisia-smi 입력 \- 우측 상단의 CUDA Version은 설치 가능한 버전의 최대 범위이지 설치된 것은 아님 3) 만약
알고리즘이나 함수가 실행되는 데 걸리는 시간을 데이터 입력 크기에 따라 분석하는 방법특정 코드가 얼마나 효율적으로 수행되는지 평가주로 Big-O 표기법으로 표현알고리즘이 가장 큰 입력 크기에서 수행되는 최대 시간을 나타냄O(1): 상수 시간 복잡도 \- 입력 크기에
CTE \- 복잡한 쿼리에서 반복적으로 사용되는 서브쿼리 부분을 별도의 임시 테이블처럼 만들어 재사용할 수 있게 해주는 기능 \- 코드의 가독성, 재사용성, 유지 보수성을 높이기 위해 사용Recursive CTE \- MySQL 8.0 이상에서 사용 가능 \-
목적: 이미 임베딩된 텍스트가 다시 요청될 때, 다시 임베딩하는 것을 피하고 기존 임베딩 결과를 빠르게 반환하기 위함동작 방식: 캐시 저장소에 저장해두고, 중복 요청 시 캐시된 결과를 반환==임베딩 단계에서 중복 요청을 최소화해주는 역할==목적: 대량의 임베딩된 벡터를
개인정보보호 \- LLM은 사용자의 민감한 정보(이름, 전화번호, 신용카드 정보 등)을 접할 수 있기 때문에 이런 데이터가 저장되거나 유출될 경우 큰 문제로 이어짐데이터 저장 및 전송 \- LLM이 처리한 데이터가 어디에 저장되는지, 어떻게 전송되는지 반드시 확인
데이터 분석과 시각화를 함께 간편하게 수행할 수 있는 파이썬 오픈 소스 라이브러리python 코드 만으로 웹 애플리케이션을 개발할 수 있도록 함데이터 시각화, 프로토타이핑, 결과 공유 및 웹 기반 앱 개발에 최적화되어 있어 데이터 분석과 시각화를 더욱 효율적으로 수행
Transformer 아키텍쳐를 기반으로 하는 문서 작업에 특화된 GPT문서의 요약, 정리 분석 및 다양한 문서 기반 작업을 수행언어 모델의 기술적 원리를 바탕으로 문서에서 중요한 정보만을 효율적으로 추출하고, 긴 문서의 흐름과 논리 구조를 이해하여 사용자의 다양한 요
MagicStreamlit의 다목적 함수로, 다양한 형식의 데이터를 화면에 출력하는 기능을 제공다양한 형식을 자동으로 인식하고 렌더링하기 때문에, st.write() 하나로 간편하게 구현 가능별도의 st.write() 호출 없이도 파이썬 코드에 나타나는 데이터를 화면에
주로 데이터(ex. DataFrame, NumPy array, API query 등)를 캐싱하는데 사용주기적으로 변경되거나 업데이트 될 수 있는 데이터(ex. 웹 API에서 가져오는 정보)를 캐싱할 때 유용입력 인자와 반환값을 기반으로 데이터를 캐싱데이터가 업데이트 되
언어 모델 개발 및 배포를 돕는 도구로, 언어 모델 기반 앱을 효율적으로 관리하고 최적화할 수 있도록 설계됨주로 LangChain 라이브러리와 함께 사용되며, LLM을 활용하는 과정에서 성능을 모니터링하고 최적화하는 데 도움을 줌logging, tracing, 성능 모
LangChain 라이브러리에서 프롬프트와 모델, 체인, 에이전트 등을 중앙 저장소에서 불러와 쉽게 사용할 수 있게 해주는 기능자주 사용되는 프롬프트 템플릿이나 에이전트를 미리 정의해두고, 이를 쉽게 호출하고 관리할 수 있도록 지원중앙화된 프롬프트 및 체인 관리lang
애플리케이션과 다른 서비스(혹은 애플리케이션) 간에 데이터나 기능을 교환할 수 있도록 설계된 인터페이스두 소프트웨어가 서로 상호 작용할 수 있도록 도와주는 중간 다리 역할외부 데이터 연동: Google Maps API를 사용해 내 앱에 지도를 삽입결제 처리: Strip
웹 브라우저 자동화를 위한 오픈 소스 프레임워크주로 웹 애플리케이션을 테스트하거나 특정 작업을 자동화하기 위해 사용크롬, 파이어폭스, 엣지 등 여러 웹 브라우저에서 작동 가능이전에는 특정 브라우저에서만 동작하는 테스트 도구들이 많아서, 여러 브라우저에서 작동을 시험해보
사용자가 로컬에서 AI 모델을 실행하여 데이터를 처리하는 방식데이터의 프라이버시를 보장하는 것이 핵심 \- 일반적인 GPT 모델은 클라우드 서버에서 동작하므로, 데이터가 외부 서버로 전송됨 \- PrivateGPT는 모든 연산이 사용자의 로컬 환경에서 실행되기 때문
Hugging Face 모델을 로컬에서 실행할 수 있도록 해주는 클래스Hugging Face의 transformers 라이브러리를 통해 로컬 컴퓨터에서 모델을 실행모델을 로컬 머신에 다운로드하여 실행python 코드로 간단히 사용 가능네트워크 요청 없이 작동하여 클라우
소프트웨어 개발을 위한 구조적인 틀 \- 개발자들이 프로그램을 만들 때 자주 사용하는 여러 도구를 모아놓은 것 \- 특정한 작업이나 목적을 수행하기 위한 코드 뭉치프레임워크를 사용하는 이유 \- 높은 생산성 \- 빠르고 안정적이며, 높은 품질의 소프트웨어 개발
OpenAI에서 개발한 다목적 음성-텍스트 변환 모델웹에서 수집한 68만 시간의 다국어 데이터로 학습된 자동 음성 인식(ASR) 시스템음성을 텍스트로 변환하거나 번역할 수 있는 능력을 갖춘 Transformer 기반의 딥러닝 모델Transformer 기반의 Encode
print()처럼 함수가 받을 인자의 개수를 유연하게 지정하기 위한 python 기능인자로 받은 여러 개의 값을 하나의 객체(tuple)로 합쳐서 받을 수 있도록 함위치 인자 패킹은 \* 한 개를 매개변수 앞에 붙여서 사용키워드 인자는 패킹한 인자들을 키워드와 인자 쌍
대화의 모든 내용을 문자열로 저장하는 방식오래된 대화까지 모두 그대로 담기 때문에 메모리 사용량에 주의Window의 크기만큼만의 최신 대화 내용을 저장window size를 넘어가는 메세지가 들어오면 제일 오래된 메세지가 탈락장점: 버퍼가 너무 커지지 않도록 관리단점:
Markdown에서 다이어그램과 차트를 생성할 수 있는 도구코드 블록 내에 간단한 언어로 정의하여 시각적인 내용을 표현 가능하게 해줌개발 문서, 프레젠테이션, 또는 협업 중 시각적인 구조나 흐름을 명확히 표현하는 데 유용graph TD(위에서 아래) 또는 graph L
1. 챌린지 반 과제 1번: AI 뉴스 정보 제공 및 요약 RAG 과제 사항 확인
제주도의 소비 현황을 관찰 및 시장 분석추후 전국 단위의 소비 현황 분석을 위한 연습 데이터 확보성별 카드 이용금액 비율.csv2018년 1분기 ~ 2024년 3분기연도 / 분기 / 업종 / 성별 / 연령대 / 사용량시간대별 카드 이용금액 현황.csv2018 1월 ~
파일 한번에 여러 개 올리기단순히 csv 파일만 올려도 분석이 가능한 지 확인향후 프로젝트 진행 방향을 잡기 위한 프로토타입 제작사용할 라이브러리 및 API key 불러오기streamlit에서 여러 csv파일 업로드모든 csv 파일을 데이터프레임으로 로드사용자 질문이
FAISS 벡터 스토어에서 검색된 벡터가 어떤 원본 데이터를 나타내는지 추적하기 위한 부가 정보FAISS는 벡터에 대한 추가 정보를 제공하지는 않고, 벡터를 저장하고 검색하는 데 특화됨검색된 벡터가 어떤 데이터와 연결되어 있는지 확인검색 결과를 사용자에게 텍스트 형태로
기본적인 UI 설계 구성 완료사이드바에 선택 사항들 게시사용자의 질문과 챗봇의 답변이 말풍선 형태로 메인 화면에 보이도록 구성대화가 이어지면 이전 말풍선이 위로 올라가며 대화 기록을 계속 보여줌!\[UI 설계 구성.png]기본적인 Fast API 구조 설계 완료fron
대화의 긴 맥락을 요약하여 유지하는 메모리 방식대화가 진행될수록 메모리가 쌓이는데, 이전 메시지들의 주요 내용을 요약(summary)하여 저장요약된 정보를 바탕으로 대화의 흐름을 이해하거나 관련성을 유지메모리 크기를 줄이고 모델의 처리 부담을 줄이는 데 유용효율성: 이
창업 아이디어 및 사업계획서 작성 과정을 지원하는 AI 기반 챗봇입니다.사용자가 입력한 데이터를 기반으로 투자 전략, 시장 분석, 고객 페르소나 등 사업계획서 작성의 핵심 섹션을 자동화합니다. 창업 과정의 효율성 향상 사업계획서 작성 및 분석 과정을 자동화하여 시간
Conversation Knowledge Graph Memory의 약자대화 중에 얻은 정보를 지식 그래프 형태로 저장하고 불러오는 역할대화의 맥락을 구조화된 방식으로 유지하고, 축적된 지식을 기반으로 대화를 진행해야 할 때 적합주요 기능 \- 지식 그래프 생성 및 관
대화형 애플리케이션에서 사용자의 컨텍스트를 저장하고 관리하는 데 초점을 둔 메모리 시스템대화 컨텍스트 유지 \- 사용자와의 대화 흐름을 기반으로 정보를 저장 \- 이전 메시지나 맥락을 활용해 현재 대화를 개선저장 방식 \- 이전 대화 기록을 순차적으로 저장 \-
CI/CDContinuous Integration / Continuous Deployment(Delievery)의 약자로, 지속적인 통합과 지속적인 제공을 의미기본 개념지속적인 통합(Continuous Integration)지속적인 서비스 제공 (Continuous D
빌드 자동화 도구로, 주로 Java, Kotlin, Groovy 같은 JVM 기반 언어 프로젝트에서 사용현재는 다양한 언어 프로젝트에서도 사용 가능할 정도로 범용적으로 이용빌드 도구소스 코드를 컴파일, 테스트, 패키징, 배포 등 프로젝트를 빌드하는 작업을 자동화하는 도
파이썬 데이터 검증 및 설정 관리를 위한 라이브러리데이터 모델을 정의하고 유효성을 검사하는 데 주로 사용\*\*<span style="color:\*\*<span style="color: 입력 데이터가 모델에 정의된 타입과 조건을 자동으로 검증\*\*&
LangChain 프레임워크에서 다양한 종류의 출력 데이터를 파싱하고 처리하기 위한 중요한 컴포넌트대형 언어 모델을 활용하여 텍스트 기반 애플리케이션을 만들 때 사용됨모델의 출력 결과를 적절한 형식으로 변환하고, 이를 애플리케이션의 다음 단계로 전달하는 역할출력 데이터
Docker 이미지를 생성하기 위한 스크립트사용자가 정의한 명령어를 통해 애플리케이션 환경을 설정하고 필요한 소프트웨어를 설치<span style="color:2. <span style="color:3. <span style="color:<span
1. Docker Volume Docker Volume 컨테이너 간 데이터 공유 및 영구 데이터 저장을 위해 사용 컨테이너는 기본적으로 독립된 환경을 가지며, 컨테이너 내부에서 생성된 데이터는 컨테이너가 삭제되면 함께 삭제됨 이를 방지하고 데이터를 컨테이너 간 공유하거나 영구적으로 유지하기 위해 Docker Volume을 사용 특징 데이터 영속성: 컨테이...
Docker Hub: Docker의 공식 Registry (hub.docker.com) \- registry: Dockerfile로 생성한 이미지나 docker commit으로 생성된 이미지를 저장하는 곳 \- public registry: 공개적으로 사용할 수 있
디자인 패턴: <span style="color:- 디자인 패턴의 필요성 \- 공통적으로 발생하는 문제에 대해 재사용 가능한 해결 방법을 제시 가능 \- 특정 구조에 대한 빠른 설계가 가능 \- 즉, 프로그래머가 시스템을 디자인할 때 발생하는 공통된 문제를
GET \- 원하는 리소스를 가져올 때 사용 \- 생성할 때도 사용 가능하지만, 묵시적으로 리소스 조회용으로 사용하기로 약속 \- DB에 변화를 주지 않는 요청 (Read에 해당)POST \- 서버로 데이터를 전송할 때 사용 \- 특정 리소스를 생성 혹은 수정
GET \- 원하는 리소스를 가져올 때 사용 \- 생성할 때도 사용 가능하지만, 묵시적으로 리소스 조회용으로 사용하기로 약속 \- DB에 변화를 주지 않는 요청 (Read에 해당)POST \- 서버로 데이터를 전송할 때 사용 \- 특정 리소스를 생성 혹은 수정
Django는 서로 다른 앱에서 동일한 URL Name을 사용하는 경우, 고유하게 구분할 수 있도록 namespace를 지원url에 이름 공간을 만들어주고 나면, namespace:url_name형태로 사용처음부터 namespace를 지정하고 프로젝트를 진행하는 것을
Django의 기본 회원가입 ModelForm: UserCreationForm \- username과 password로 새로운 user를 생성하는 ModelForm \- username, password1, password2를 가짐DB에서 User를 지우는 로직회원
정적 파일(멈춰있는 파일)을 의미서비스 로직에서 별도의 처리 없이 보여주기만 하면 되는 파일을 의미 \- 로고, 광고 이미지 등 서비스 이미지 파일 \- javascript file, CSS file 등무조건 주기만 하면 되는 파일들이기 때문에 모아서 따로 제공 가
Article에 Author라는 개념을 둔다면,하나의 Article은 한 명의 Author를 가질 수 있음<span style="color:- 만약 Article에 Comment라는 개념을 둔다면,<span style="color: - 하나의 Comme
M:N 관계 설정시 사용하는 모델 필드예시) 좋아요 → 한 명의 유저는 여러개의 게시글을 좋아할 수 있어요! → 하나의 게시글도 여러명의 유저에게 좋아요를 받을 수 있어요! 중계 테이블을 이용해서 관계를 표현<span style="color:- M2M 관계가
가상환경 생성 및 활성화Django 설치: pip install django==4.2 (LTS version)requirements.txt 생성: pip freeze > requirements.txt프로젝트 생성: django-admin startproject <
개인의 Django models에 맞게 test data를 생성해주는 라이브러리적용 방법 1) pip install django-seed 2) settings.py에 django_seed 추가 3) python manage.py seed <앱 이름> --nu
ModelSerializer \- Model의 여러가지 필드들을 어떻게 직렬화해서 데이터의 포맷을 잡을지가 핵심 \- Django의 Model → ModelForm 사용과 굉장히 유사한 형태API 설계articles/urls.pyarticles/views.py@ap
Nested Relationships \- Serializer는 기존 필드를 override하거나 추가적인 필드를 구성 가능 \- 이때 모델 사이에 참조 관계가 있다면 해당 필드를 포함하거나 중첩 가능즉, Serializer를 조작하여 Article에 Comment
Token: 랜덤하게 생긴 문자열<span style="color:- JWT 방식으로 Auth를 처리하면 Session DB나 인증을 위한 여러가지 로직 처리가 필요 없음클라이언트가 ID/PW를 서버로 전송서버에서 ID/PW를 검증하고 유효하다면 일정한 형식으로
CBook FigJam
<span style="color: - makemigrations와 migrate를 제대로 수행하지 않아 테이블이 생성되지 않음. \- 데이터베이스와 모델 정의가 일치하지 않음. \- INSTALLED_APPS에 앱이 등록되지 않음.<span style=
Django REST Framework의 APIView를 사용하여 POST 요청을 처리하는 방법을 학습했다.request.data.get()으로 클라이언트의 데이터를 안전하게 추출하고, 필수 필드의 유효성을 확인하는 방법을 연습했다.클라이언트가 필요한 데이터를 제공하지
Django REST Framework의 APIView를 활용하여 POST 요청 처리 로직을 작성했다.request.data.copy()와 serializer를 사용하여 클라이언트 데이터를 검증 및 저장하는 방식을 학습했다.필수 필드 누락 시 400 Bad Reques
Django의 OneToOneField를 사용하여 ChatRoom과 TestPlan 간 1대1 관계를 설정했다.순환 참조 문제를 방지하기 위해 모델 참조를 문자열("app_name.ModelName")로 변경하여 초기화 순서를 유연하게 조정했다.unique_togeth
OneToOneField를 활용하여 ChatRoom과 TestPlan 간 1대1 관계를 설계.모델 간 <span style="color:- 데이터 무결성을 보장하기 위해 unique_together를 설정, 각 chat_id에 대해 고유한 plan_id를 유지하도
<span style="color:- 임베딩 벡터를 서버에 저장하는 방안을 학습:FAISS의 write_index와 read_index를 통해 인덱스를 디스크에 저장 및 로드.벡터와 메타데이터(문서 ID, 텍스트)를 분리 관리하는 방법 익힘.<span sty
FAISS Vectorstore를 사용해 문서 임베딩을 저장하고 검색하는 RAG(참조 기반 생성) 시스템 설계.로컬의 JSON 데이터를 읽어 FAISS 인덱스와 메타데이터 파일로 변환하는 작업:FAISS의 write_index와 read_index를 활용해 벡터 인덱스
Query 분석 Agent 작성:대화 내역과 사용자 질문을 분석해 도서 검색, 시험 계획 생성, 일반 대화로 분류.AgentExecutor와 OpenAI LLM을 조합한 동적 툴 실행 로직 구현.검색 결과 반환 개선: \- 하이브리드 검색 결과에 책의 전체 정보를
Query 분석 로직 점검 및 수정:ChatPromptTemplate에서 사용자 질문이 {user_query}로 제대로 치환되지 않는 문제 확인.템플릿과 변수 전달 방식 개선.벡터스토어 및 메타데이터 관리:FAISS 기반 벡터스토어 생성 및 로드 로직 작성.메타데이터
search_books 동작 문제: \- 프로젝트 기능에서 가장 중요한 것이 도서를 검색하는 챗봇 기능 \- 경로 문제 및 벡터스토어 파일 확인에 문제가 있음을 확인<span style="color: - 벡터스토어 생성 및 로드를 할 때 올바른 경로를 전
도커 컨테이너:Dockerfile을 작성하고 컨테이너를 생성하는 기본 과정을 학습.Django 프로젝트를 예로 들어 도커 이미지를 빌드하고 컨테이너를 실행.docker run 명령어로 컨테이너를 실행하고 관리하는 방법 실습.Docker-Compose: \- 여러
LFS: \- Git 리포지토리에 업로드할 수 있는 파일 용량은 최대 500 MB로 제한되지만, Git LFS(Large File System)를 활용하면 Git 리포지토리에서 대용량 파일(파일 당 최대 5 GB)의 버전 관리를 수행 가능 \- Git LFS는 대용량
Docker 환경 구성:Dockerfile을 작성하여 Django 백엔드와 MySQL 데이터베이스를 컨테이너화.docker-compose.yml을 활용하여 서비스 간의 의존성을 정의하고 데이터베이스와의 연결 설정.서비스 분리:Django 프로젝트를 backend 서비스
<span style="color: - 기존 스파르타 캠프에서 MySQL을 사용해본 경험 덕분에 MySQL과 호환성이 좋은 MariaDB를 선택함.PHP, Django, Node.js 등 다양한 웹 프레임워크와의 친숙한 연동을 제공하며, 마이그레이션 과정이 단순함
docker-compose는 기존의 Python 패키지 기반 명령어이며, 현재는 docker compose가 기본으로 권장됨.docker compose는 Docker CLI에 기본적으로 포함되어 있어 별도 설치가 필요하지 않음.<span style="color:D
<span style="color:- root에 로그인이 되지 않던 문제<span style="color:- db의 healthcheck에 아래의 문구로 수정<span style="color:- Django 컨테이너가 반복적으로 재시작되며 health
MobaXterm을 사용하여 AWS EC2에서 실행 중인 <span style="color:MobaXterm을 실행합니다.상단 메뉴에서 "Session" → "New Session"을 클릭합니다."SSH"를 선택하고 다음 정보를 입력합니다:Remote host:
정의 \- Nginx는 <span style="color: - 정적 파일 서빙과 로드 밸런싱, 리버스 프록싱에 강점을 가짐주요 특징 \- 리버스 프록시 \- 클라이언트의 요청을 받아 내부 서버(Gunicorn 등)로 전달하고, 서버의 응답을 클라이언트에게
Docker를 사용해 Django 애플리케이션을 AWS EC2에 배포하며, Nginx와 Gunicorn을 포함한 배포 환경을 구축한다.Windows 에서 MobaXterm을 사용해 AWS EC2 인스턴스 관리1) AWS EC2 인스턴스 생성 \- Ubuntu 24.04
구조: header.payload.signature 형태의 JSON 기반 토큰사용 방식: 서버에서 발급하고 클라이언트가 저장 후 요청 시 포함하여 인증저장 위치: 일반적으로 Local Storage 또는 HTTP-Only 쿠키장점: \- 자체적으로 사용자 정보를 포함
특정 형식을 강제하여 일관된 프롬프트 구조를 유지할 수 있음LLM이 일관된 형식으로 응답을 하도록 유도할 수 있음{}: prompt에 어떤 값을 주입하고 싶을 때 사용{{}}: prompt에서 format 하지 않았으면 하는 부분들을 지정할 때 사용LLM 응답을 특정