본문 바로가기

전체 글24

Next.js 탄생배경 제가 QA Engineer로 일을 시작한지 벌써 10년째가 되었습니다. 그 동안 Web개발 기술스택이 변해오는 것을 지켜봐왔는데요. 현재는 Next.js가 대세로 자리잡은 것 같습니다. 이번 시간부터는 Next.js가 탄생한 배경과 대세로 자리잡은 이유를 한번 알아보려합니다. 웹 개발의 진화웹 개발은 지난 몇 년간 급격한 변화를 겪었습니다. 초기에는 서버 사이드 렌더링(SSR)이 주를 이루었지만, AJAX의 등장으로 클라이언트 사이드에서 동적인 웹 페이지 구현이 가능해졌습니다. 이후 React, Angular, Vue와 같은 프론트엔드 라이브러리와 프레임워크의 등장으로 클라이언트 사이드 렌더링(CSR)이 대세가 되었습니다. CSR의 한계와 SSR의 필요성하지만 CSR 방식에도 몇 가지 문제점이 있었습니다.. 2024. 11. 25.
LangSmith - RAG 서비스 테스트 오늘은 RAG(Retrieval-Augmented Generation) 서비스 테스트에 대해 이야기해보려고 합니다. 특히 LangSmith를 활용한 효과적인 테스트 방법에 대해 알아보겠습니다.RAG 서비스 테스트의 특별한 접근법: LLM-as-a-JudgeRAG(Retrieval-Augmented Generation) 서비스를 테스트할 때, 우리는 일반적인 소프트웨어 테스트와는 다른 접근이 필요합니다. 단순히 '맞다/틀리다'의 이분법적 판단으로는 RAG 시스템의 성능을 제대로 평가하기 어렵습니다. 대신, 우리는 '평가(evaluation)'의 개념으로 접근해야 하며, 이를 위해 'LLM-as-a-Judge' 방식을 활용할 수 있습니다.LLM-as-a-Judge 개념LLM-as-a-Judge는 대규모 언어.. 2024. 11. 21.
Story Book과 Code Push ReactNative로 앱을 개발할 때 UI 개발을 위한 Story Book과 앱에 대한 수정사항을 앱 빌드 없이 배포할 수 있는 Code Push개념이 있다. 이번 포스팅에서는 Story Book과 Code Push 개념에 대해서 알아보자.Story BookStorybook은 UI 컴포넌트를 개발하고 테스트하기 위한 강력한 오픈소스 도구입니다. React Native를 포함한 다양한 프론트엔드 프레임워크에서 사용할 수 있습니다. 장점UI 컴포넌트 개발 환경: 개발자가 애플리케이션의 전체 로직과 분리하여 UI 컴포넌트를 독립적으로 개발할 수 있게 해줍니다.시각적 테스팅 도구: 다양한 상태의 컴포넌트를 쉽게 확인하고 테스트할 수 있습니다.문서화 도구: 컴포넌트의 사용법과 속성을 자동으로 문서화합니다.협업.. 2024. 11. 11.
LangChain을 이용한 RAG 서비스 개발 LLM을 이용해 어플리케이션을 만들때 주로 사용되는 라이브러리로 LangChain이 있습니다. 오늘은 LangChain이라는게 무엇인지 어떻게 서비스를 개발하는지에 대해 알아보겠습니다.LangChain이란?LangChain은 대규모 언어 모델(LLM)을 사용하여 애플리케이션을 개발하기 위한 프레임워크입니다. 이 프레임워크는 LLM을 다른 데이터 소스 및 컴퓨팅 환경과 쉽게 통합할 수 있도록 도와줍니다. 특히 RAG(Retrieval-Augmented Generation) 시스템을 구축하는 데 매우 유용합니다.LangChain의 주요 개념Chains: 여러 컴포넌트를 연결하여 복잡한 작업을 수행합니다.Agents: 주어진 목표를 달성하기 위해 자율적으로 행동하는 엔티티입니다.Memory: 대화 히스토리나 .. 2024. 11. 4.
LLM과 성능향상 방법 ChatGPT가 발표된 이후 많은 기업들에서 LLM을 자체개발하거나 LLM을 이용한 서비스들을 출시하기 시작했는데요. 저도 LLM을 이용한여러 서비스들을 아주 잘 이용하고 있습니다. ChatGPT, 퍼플랙시티, 커서AI, 코파일럿 등 여러 서비스들 사용하고 있고 계속해서 출시되고 있는 새로운 서비스들을 눈여겨 보고있는데요. 이런 LLM을 이용한 서비스를 개발하는 과정과 이를 테스트하는 방법들을 한번 살펴보겠습니다. LLM이란?Large Language Model(LLM)은 AI 기술의 최전선에 있는 혁신적인 모델입니다. LLM은 대규모 언어 모델의 약자로, 방대한 양의 텍스트 데이터를 학습하여 인간의 언어를 이해하고 생성할 수 있는 인공지능 모델입니다. 이 모델들은 수십억 개의 매개변수를 가지고 있으며,.. 2024. 10. 28.
Refresh Token과 Access Token 웹 애플리케이션 개발에서 인증 및 권한 부여는 중요한 요소입니다. 특히, OAuth 2.0과 같은 프로토콜을 사용할 때 Access Token과 Refresh Token은 핵심적인 역할을 합니다. 이 포스팅에서는 두 토큰의 정의, 작동 방식, 그리고 사용 사례를 설명합니다. Access TokenAccess Token은 사용자 인증이 완료된 후 클라이언트가 서버에 요청을 보낼 때 사용하는 토큰입니다. 이는 주로 API 호출 시 사용되며, 특정 리소스에 대한 접근 권한을 부여합니다.특징단기 유효성: 보안상의 이유로 일반적으로 짧은 유효 기간을 가집니다.Bearer Token: 대부분의 경우 Bearer Token으로 사용되며, 이를 통해 서버는 요청자가 적절한 권한을 가지고 있는지 확인합니다.정보 포함: .. 2024. 10. 22.