목록분류 전체보기 (198)
밤빵's 개발일지
해커톤이 끝나고 유튜브로 LangChain에 대해서 여러 영상들을 보게됐다. LangChain은 AI와 언어 모델을 기반으로 한 애플리케이션 개발을 지원하는 프레임워크로, 복잡한 AI 애플리케이션을 구조화하고, 확장성 있는 방식으로 빌드할 수 있도록 돕는다. LangChain은 특히, 다양한 AI 기능을 연계하고 데이터를 효율적으로 처리하는 데 탁월한 기능을 제공하기 때문에, 이 프레임워크의 주요 구성 요소와 심화된 활용 방안에 대해 학습하기로 했다! ▶ LangChain이란?LangChain은 대형 언어 모델(LLM)을 중심으로 동작하는 애플리케이션을 구축하기 위한 프레임워크이다. LangChain은 AI를 활용한 애플리케이션이 대규모 데이터를 효율적으로 처리하고, 복잡한 작업을 분할하여 수행할 수 있..
해커톤을 통해 Streamlit을 처음 접하고, 팀원들과 함께 이를 이용하여 챗봇을 만들었다. 나는 파이썬과 관련된 지식이 거의 없었기 때문에, 이 프로젝트는 나에게 생소한? 도전이었다. 하지만 팀원들과 함께 작업하면서 Streamlit이 얼마나 똑똑한 도구인지 깨닫게 되었고, 이를 통해 실시간 데이터 처리 및 애플리케이션 개발을 손쉽게 할 수 있음을 배웠다. 이번 개발일지를 통해 Streamlit의 기본 개념, 그리고 해커톤에서 만들었던 챗봇 개발 경험을 기록하려고 한다! ▶Streamlit이란?Streamlit은 파이썬으로 웹 애플리케이션을 쉽게 만들 수 있는 오픈 소스 프레임워크이다. 웹 개발 경험이 없는 파이썬 개발자도 간단한 코드를 통해 대화형 대시보드나 애플리케이션을 개발할 수 있다. Str..
LangChain은 LLM(대형 언어 모델, Large Language Model)을 활용한 다양한 작업을 손쉽게 구성하고 실행할 수 있도록 돕는 파이썬 라이브러리로, 특히 데이터를 검색하고 필터링하거나 LLM의 성능을 최적화하는 데 유용하다. 각 구성 요소의 기능과 역할을 학습하면서, 이를 통해 다양한 작업을 어떻게 수행할 수 있는지 이해하기 위한 정리! ▶ LangChain의 역할과 구성 요소LangChain은 모듈화된 구조를 통해 각 단계를 분리하여 작업을 체계적으로 수행할 수 있다. LangChain의 주요 구성 요소들은 다음과 같다. ▶ Prompt Engineering - 질문 최적화Prompt Engineering은 LLM을 이용해 올바른 답변을 얻기 위해 질문을 최적화하는 기술이다. 적절..
RAG는 자연어 처리(NLP) 분야에서 최근 많이 주목받고 있는 기술로, 이번 해커톤을 준비하면서, 이 기술에 대해 조금은 알아 둘 필요가 있다고 느꼈다....! RAG는 챗봇, 질의응답 시스템, 문서 생성 등 다양한 프로젝트에 적용될 수 있는 도구로, 자연어 생성을 위한 AI 모델을 만들어 준다. ▶ RAG란 ?RAG(Retrieval-Augmented Generation)는 자연어 처리에서 대형 언어 모델(Large Language Models, LLM)과 검색 기술을 결합한 방식이다. 일반적인 생성형 모델은 주어진 입력에 따라 텍스트를 생성하지만, RAG는 검색 시스템을 통해 외부에서 정보를 가져와서 그 정보를 바탕으로 정확하고 더풍부한 답변을 생성하는 방식이다.이 방식은 기존의 생성형 모델보다 ..
비동기 처리와 멀티쓰레드. 이 두 개념은 자주 사용되며, 동시에 여러 작업을 처리하는 방식에서 중요한 역할을 한다. 하지만 나같은 초입자는 두 개념이 어떻게 다른지, 언제 사용하는 것이 적합한지 혼란스러울 때가 많다. 이번 기회를 통해 비동기 처리와 멀티쓰레드의 차이점과 각각의 장단점을 학습하고자 정리하기로 했다! ▶비동기 처리란?비동기 처리는 작업을 요청한 후, 그 작업이 완료될 때까지 기다리지 않고 다른 작업을 수행할 수 있는 방식이다. 작업이 완료된 후에 콜백이나 특정 이벤트가 발생하여 결과를 처리한다. 비동기 처리는 주로 I/O 작업에서 사용되며, 외부 시스템과 통신하는 작업에서 유용하다. 예를 들어, 서버가 데이터베이스에서 데이터를 가져오는 동안 다른 요청을 처리할 수 있는 비동기 방식을 사용하..
분산시스템에 대해서 관심이 많아지고, 데이터베이스의 확장성이나 성능에 대해 공부하면서 데이터 복제(Replication)와 샤딩(Sharding)이라는 용어를 알게 되었는데, 두 개념이 무엇인지, 왜 중요한지 알아보기 위해 학습을 시작했다. 데이터베이스에서의 성능 최적화와 안정성은 서비스 규모가 커질수록 중요한 요소가 되고, 이를 위한 방법인 데이터 복제와 샤딩에 대해 이해가 필요하다고 생각했다. ▶ 데이터 복제(Replication)란?데이터 복제는 하나의 데이터베이스를 여러 개의 복제본(Replica)으로 복사하여 유지하는 기술이다. 여러 개의 복제본을 통해 데이터를 분산시켜 여러 서버에서 읽기 요청을 처리할 수 있고, 이를 통해 시스템의 가용성과 읽기 성능을 향상시킬 수 있다. ▷동작 방식:→ 마스..
SSR과 CSR은 웹 애플리케이션을 만들 때 중요한 선택지인데, 각각 장단점이 있어 상황에 따라 적절히 사용하는 것이 중요하다. ▶서버 사이드 렌더링(SSR)이란?서버 사이드 렌더링(SSR)은 서버에서 HTML을 렌더링하고, 클라이언트로 전송하는 방식이다. 클라이언트는 단순히 서버로부터 받은 완성된 HTML을 브라우저에 보여준다. 클라이언트는 서버에서 생성한 결과물을 그대로 화면에 렌더링하기만 하면 된다. ▷동작 과정:클라이언트가 서버에 HTTP 요청을 보낸다.서버는 필요한 데이터를 DB에서 조회한 후, HTML 페이지를 완성하여 클라이언트에 전송한다.클라이언트는 서버로부터 받은 HTML을 렌더링하여 화면에 보여준다. ▷장점→ SEO(검색 엔진 최적화)에 유리하다. 서버에서 완성된 HTML이 전송되므로,..
H2 데이터베이스 사용법개발을 하게되면 여러 가지 데이터베이스(DB)를 다룰 필요가 있다. 특히 로컬에서 애플리케이션을 개발하고 테스트할 때는 경량화된 인메모리(In-Memory) 데이터베이스가 유용한데, 그 중에서 H2 데이터베이스라는 걸 알게되면서, 이번 개발일지를 통해 H2 데이터베이스의 개념과 설정 방법, 그리고 실제 사용 예시를 만들어봤다. ▶H2 데이터베이스란?H2 데이터베이스는 경량화된 오픈 소스 관계형 데이터베이스로, 인메모리 방식과 디스크 저장 방식을 모두 지원한다. 데이터베이스 데이터를 메모리에만 저장하거나, 파일로 저장할 수 있다. H2는 JDBC API를 통해 쉽게 접근할 수 있고, Spring Boot 같은 프레임워크에서 테스트용 데이터베이스로 자주 사용된다. 주요 특징은 다음과..
클린 코드(Clean Code)는 개발자들이 읽기 쉽고, 유지보수 가능한 코드를 작성하는 데 도움을 주는 일련의 원칙과 기법을 의미한다. 이를 통해 코드를 처음 접하는 다른 개발자도 쉽게 이해하고 확장할 수 있고, 코드 수정 시 오류 발생 가능성을 최소화할 수 있다. 클린 코드는 읽기 쉽고, 이해하기 쉬운 코드를 의미하며, 나 자신뿐만 아니라 다른 개발자들도 쉽게 이해하고 유지보수할 수 있는 코드를 작성하는 것을 목표로 한다. ▶ 클린 코드란?클린 코드(Clean Code)란, 이해하기 쉽고, 명확하며, 중복을 최소화한 코드를 말한다. 클린 코드는 단순히 컴파일러가 에러 없이 실행할 수 있는 코드가 아닌, 사람이 읽기 쉬운 코드를 지향한다. 코드의 가독성을 높이고 유지보수를 쉽게 하며, 더 적은 버그를 ..
▶ API Rate Limiting이란?API Rate Limiting은 클라이언트가 API에 보낼 수 있는 요청 횟수를 제한하는 기술이다. API는 여러 클라이언트로부터 요청을 받으며, 트래픽이 과도해지면 서버에 부하가 걸려 성능이 저하되거나 다운될 위험이 있다. 이를 방지하고 서버 성능을 보호하기 위해 일정 시간 내에 클라이언트가 보낼 수 있는 요청 수를 제한하는 것이 Rate Limiting의 목적이다. 예를 들어, 특정 API가 1분에 100번의 요청만 허용한다고 설정하면, 클라이언트가 그 이상 요청을 보낼 경우 해당 클라이언트는 일정 시간이 지나기 전까지 추가적인 요청을 처리받지 못하게 된다. ▶API Rate Limiting이 필요한 이유Rate Limiting은 API의 안정성과 성능을 보장..