분류 전체보기
-
LangChain을 활용한 LLM 애플리케이션 개발 프로젝트 회고프로그래밍/Project 2024. 9. 1. 01:14
부트캠프 기간 중에 진행되는 첫 팀 프로젝트가 끝났고, 프로젝트에 대해서 정리해보려고 한다. 프로젝트 주제 우리 팀은 "항공편 정보 특화 QA Engine" 이라는 주제로 진행하기로 했다. 여러가지 주제가 나왔지만 외부에서 비교적 정확한 정보를 가져올 수 있으면서, QA Engine 특성 상 좀 더 명확한 답을 낼 수 있는 주제로 선정하는 것이 LLM을 통해 구현하기에 더 적합하다고 생각하기도 했고, 최근 해외 여행을 가는 경우가 많지만 ChatGPT, Gemini 등과 같은 서비스에서는 실시간 정보가 중요한 항공편과 같은 질문이 불가능했기에 메리트가 있다고 판단했다. 구현하고자 했던 기능 QA Engine에서 사용할 핵심 정보인 항공편 정보를 가져오는 기능불러온 항공편 정보를 RDB에 저장하는 기능LL..
-
운영체제 (2)프로그래밍/CS 2024. 8. 31. 21:20
> 운영체제가 제공하는 동기화의 의미실행 순서 제어 : 프로세스를 올바른 순서로 실행상호 배제 : 동시에 접근해서는 안 되는 자원에 하나만 접근 공유 자원 : 공도의 자원 (파일, 전역 변수, 입출력장치 등)임계 구역 : 동시에 접근하면 문제가 발생할 수 있는 공유 자원에 접근하는 코드블록 레이스 컨디션 (race condition) : 임계 구역을 동시에 실행하여 자원의 일관성이 깨지는 현상 생산자와 소비자 문제 : 동기화가 이루어지지 않았을 때 발생할 수 있는 문제를 보여주는 고전적인 문제producer : 생산을 하는 프로세스(스레드)consumer : 소비를 하는 프로세스(스레드)=> 동기화되지 않은 상태에서 실행되기 때문에 똑같은 코드라도 결과 값이 예상했던 것과는 다르게 나오고 그 값이 계속 ..
-
Github 연결프로그래밍/Git 2024. 8. 12. 23:58
Github 연결$ git remote add origin '깃허브 주소' Github 연결 해제$ git remote rm origin Github 소스 코드 현재 main 브랜치에 다운로드$ git pull origin main main 부분은 설정된 branch 명에 따라 달라질 수 있음fetch 후 merge 하는 것과 같음 Github 소스코드 바로 다운로드$ git clone '깃허브 주소' 작동 프로세스 : init - remote add - pull 순으로 진행 주의! main 브랜치는 직접적으로 보이지만, origin/main 브랜치는 숨김 폴더인 .git 폴더 내부에 있어서 보이지 않음 Github에 소스 코드 업로드$ git push '원격저장소' 'push할 브랜치 명'$ git..
-
Git프로그래밍/Git 2024. 8. 12. 23:39
최초 설정$ git config --global user.name 'name'$ git config --global user.email 'email' git을 사용하기 전에 git 변경 내용 저장 시 같이 저장될 이름과 이메일 설정해야 함 작업 영역 생성(선언)$ git init git 작업할 폴더로 이동 후 명령어 실행 => git 작업 가능해짐 변경 내용 인덱스 영역에 저장$ git add . # '.' : 해당 경로의 모든 변경 사항 add 뒤에 특정 파일 선택해서 저장하는 것도 가능하지만, 한번 저장할 때 모든 변경사항 저장하는 게 좋음 인덱스 영역에 있는 변경 내용 영구적으로 저장$ git commit -m 'commit한 내용' commit 까지 완료해야 저장된 것 현재 작업 영역 상태 확인$..
-
[Python] 조건문 (if, elif, else)프로그래밍/Python 2024. 8. 6. 23:52
비교 연산a = 5b = 7a == b # 같다a != b # 다르다 a =! b 라고 쓰면 에러 발생a > b # a가 b보다 크다a = b # a가 b보다 크거나 같다 a => b 라고 쓰면 에러 발생a 논리 연산a = 5A = (a == 5) # A : TrueB = (a > 10) # B : False# and 연산은 두 값이 모두 True 일 때 True 반환A and B # 결과값 : False# or 연산은 두 값 중 하나만 True여도 True 반환A or B # 결과값 : True# not 연산은 입력된 값의 반대값으로 반환not A # 결과값 : False 조건문 (if)a = 5if a == 5: # a가 5와 같으면 print(True) # True 출력 예제. 윤년 ..
-
[Python] 데이터 타입프로그래밍/Python 2024. 8. 6. 02:27
변수 (Variable) : 메모리에 데이터를 저장하기 위한 공간을 가리키는 말로 실제 물리적인 메모리 주소공간을 가리킴=> 사용자는 변수의 이름으로 데이터를 인식하고, 컴퓨터는 변수의 주소로 데이터를 인식함 = (assignment operator) : 데이터 "할당" 연산자# 변수 a에 10이라는 정수 데이터 할당(assign)a = 10# 파이썬에서 a라는 변수를 인식하고 있는 identifier 확인id(a) 숫자 데이터 (Numeric Data Types)정수, 실수, 복소수, 2진수, 8진수, 16진수를 포함하며 대부분의 연산을 그대로 지원함파이썬은 숫자의 표현 범위가 무한대 정수형 (Integer)a = 10 실수형 (Floating point)c = 3.14# 1.34 x 10^6을 의미..
-
운영체제 (1)프로그래밍/CS 2024. 8. 6. 00:17
운영체제 : CPU, 메모리, 디스크 할당 및 반환 등 각종 자원 관리커널 : 운영체제의 핵심부 (kernel.org 에서 리눅스 커널 소스코드 확인 가능)+ 운영체제 중에서 커널이 아닌 것 : UI=> 메모리에서 운영체제가 적재되는 공간 = 커널 영역 모든 응용 프로그램은 자원에 임의 접근이 불가능 = 반드시 운영체제를 통해서만 가능=> 운영체제는 일종의 문지기 역할을 수행함 이중 모드커널 모드 : 운영체제 서비스를 제공 받을 수 있음 (입출력 가능) = 커널 영역의 코드 실행 가능사용자 모드 : 운영체제 서비스를 지공 받을 수 없음 (입출력 불가능) = 커널 영역의 코드 실행 불가능운영체제 서비스 : 프로세스 관리, 자원(CPU, 메모리, 디스크) 관리 접근 및 할당, 파일 시스템 관리 시스템 콜 :..
-
컴퓨터 구조 (2)프로그래밍/CS 2024. 8. 5. 01:06
RAM(Random Axxess Memory) - 휘발성 저장장치 : 전원 꺼지면 저장된 내용 지워짐램 크기 클수록 많은 프로그램을 동시에 빠르게 실행하는데 유리함 = 성능에 영향 끼침DRAM(Dynamic RAM) : 시간 지나면 점차 저장된 데이터가 사라짐 = 주로 메인 메모리로 사용SRAM(Static RAM) : 시간 지나도 저장된 데이터 사라지지 않음 (단, 전원 꺼지면 지워짐) = 주로 캐시 메모리로 사용SDRAM(Synchromous Dynamic RAM) : 클럭과 동기화된 DRAM = 클럭 타이밍에 맞춰 CPU와 정보 교환 가능 =SDRSDRAM(Single Data Rate SDRAM)이라고도 함DDR SDRAM(Double Data Rate SDRAM) : 대역폭을 넓혀 속도를 높인..