NEW
기술 한 스푼으로 웹앱 사용자 경험 개선하기
안녕하세요, SK플래닛에서 운영하는 블록체인 플랫폼 UPTN Station의 프론트엔드 개발을 담당하는 김찬민이라고 합니다.저는 입사하기 전부터 "나부터 사용하고 싶고, 네이티브 이상으로 부드러운 웹앱" 을 만들고 싶다는 꿈을 갖고 있었는데요,이를 이루기 위해서는 작은 디테일들을 잡아내는 것이 중요하다고 생각했습니다.약 1년간의 시간을 돌아보며, 어떤 시도를 통해 사용자 경험을 개선했는지에 대한 이야기를 사진과 함께 가볍게 풀어보려 합니다.1년 전 UPTN Station을 처음 맡게 되었을 때의 기억이 아직도 생생한데요,이 서비스가 과연 어떤 앱인지 파악하기 위해 직접 써보던 중 화면을 가득 채우는 로딩 스피너가 제일 먼저 눈에 들어왔습니다.스피너는 페이지가 데이터를 불러오는 중임을 표시하는 효과적인 수단이지만,사용자에게 어떤 화면이 나타날지를 미리 알려주지 않고 유저의 탐색 경험을 가로막는다는 점에서 좋지 않은 UI라고 생각했습니다.덧붙여 스피너를 표시하는 것은 PHP나 JSP 등 템플릿 엔진을 기반으로 한 고전적인 홈페이지에서 데이터를 불러오는 경험과 유사하다고 느꼈는데,우리는 SPA 기반의 웹뷰 어플리케이션을 개발하고 있는 만큼 이보다 나은 UX를 제공할 수 있어야 한다고 생각했습니다.동일한 화면에 스켈레톤을 적용해본 모습입니다.단순히 로딩 중임을 알리는 스피너와 달리 스켈레톤 UI는 페이지 레이아웃과 구조를 미리 보여주어, 사용자가 어떤 정보를 보게 될지 미리 예측할 수 있도록 해줍니다.또한 FCP를 최소화하기 위해 SSR을 도입하는 것처럼 스켈레톤 UI는 비록 실제 로딩 시간은 동일하더라도 사용자가 더 빠르게 콘텐츠를 접하고 있다는 인식을 줄 수 있다는 효과가 있습니다.스켈레톤을 어떻게 잘 도입할 수 있을까?하지만 스켈레톤이 언제나 로딩 경험을 향상시키는 은탄환이 되어 준 것은 아니었습니다.높이가 고정되지 않은 UI와 컨텐츠의 길이를 예측할 수 없는 상황이 겹쳐 레이아웃 시프트가 발생할 수밖에 없는 상황도 있었고,쿼리 개수가 적어 빠르게 로딩되는 페이지에서는 오히려 스켈레톤이 화면을 갑작스럽게 변화시킨다는 느낌을 주게 되었습니다.• None 현재 (스켈레톤 대신 페이지 페이드 효과 적용)그래서 모든 스피너를 일괄적으로 스켈레톤으로 교체하기보다는 발생하는 네트워크 지연을 측정해,비교적 짧은 지연이 예상되는 페이지에는 레이아웃 시프트를 발동할 염려가 없는 스피너, fade 효과 등을 대신 채택했습니다.한편, 스켈레톤이 필요할 때마다 마크업을 하는 것은 생각보다 많은 시간이 소요될 수도 있습니다.초기에는 위와 같은 형태로 스켈레톤을 페이지마다 구현하기도 했었는데요,한정된 개발기간 내에 최대한의 생산성을 발휘하기 위해서는 마크업을 보다 쉽고 빠르게 마칠 수 있는 방법이 필요했습니다.저희는 공통으로 사용되는 애니메이션이 포함된 스켈레톤을 컴포넌트로 만들고,UI의 레이아웃을 제어하는 , , 등의 컴포넌트를 적절히 섞어 사용함으로써스켈레톤 구현에 페이지당 약 5 ~ 10분 내외의 최소한의 시간만을 들이고 서비스 개발에 집중할 수 있었습니다.
11/28/2024
기술 한 스푼으로 웹앱 사용자 경험 개선하기
NEW
안녕하세요, SK플래닛에서 운영하는 블록체인 플랫폼 UPTN Station의 프론트엔드 개발을 담당하는 김찬민이라고 합니다.저는 입사하기 전부터 "나부터 사용하고 싶고, 네이티브 이상으로 부드러운 웹앱" 을 만들고 싶다는 꿈을 갖고 있었는데요,이를 이루기 위해서는 작은 디테일들을 잡아내는 것이 중요하다고 생각했습니다.약 1년간의 시간을 돌아보며, 어떤 시도를 통해 사용자 경험을 개선했는지에 대한 이야기를 사진과 함께 가볍게 풀어보려 합니다.1년 전 UPTN Station을 처음 맡게 되었을 때의 기억이 아직도 생생한데요,이 서비스가 과연 어떤 앱인지 파악하기 위해 직접 써보던 중 화면을 가득 채우는 로딩 스피너가 제일 먼저 눈에 들어왔습니다.스피너는 페이지가 데이터를 불러오는 중임을 표시하는 효과적인 수단이지만,사용자에게 어떤 화면이 나타날지를 미리 알려주지 않고 유저의 탐색 경험을 가로막는다는 점에서 좋지 않은 UI라고 생각했습니다.덧붙여 스피너를 표시하는 것은 PHP나 JSP 등 템플릿 엔진을 기반으로 한 고전적인 홈페이지에서 데이터를 불러오는 경험과 유사하다고 느꼈는데,우리는 SPA 기반의 웹뷰 어플리케이션을 개발하고 있는 만큼 이보다 나은 UX를 제공할 수 있어야 한다고 생각했습니다.동일한 화면에 스켈레톤을 적용해본 모습입니다.단순히 로딩 중임을 알리는 스피너와 달리 스켈레톤 UI는 페이지 레이아웃과 구조를 미리 보여주어, 사용자가 어떤 정보를 보게 될지 미리 예측할 수 있도록 해줍니다.또한 FCP를 최소화하기 위해 SSR을 도입하는 것처럼 스켈레톤 UI는 비록 실제 로딩 시간은 동일하더라도 사용자가 더 빠르게 콘텐츠를 접하고 있다는 인식을 줄 수 있다는 효과가 있습니다.스켈레톤을 어떻게 잘 도입할 수 있을까?하지만 스켈레톤이 언제나 로딩 경험을 향상시키는 은탄환이 되어 준 것은 아니었습니다.높이가 고정되지 않은 UI와 컨텐츠의 길이를 예측할 수 없는 상황이 겹쳐 레이아웃 시프트가 발생할 수밖에 없는 상황도 있었고,쿼리 개수가 적어 빠르게 로딩되는 페이지에서는 오히려 스켈레톤이 화면을 갑작스럽게 변화시킨다는 느낌을 주게 되었습니다.• None 현재 (스켈레톤 대신 페이지 페이드 효과 적용)그래서 모든 스피너를 일괄적으로 스켈레톤으로 교체하기보다는 발생하는 네트워크 지연을 측정해,비교적 짧은 지연이 예상되는 페이지에는 레이아웃 시프트를 발동할 염려가 없는 스피너, fade 효과 등을 대신 채택했습니다.한편, 스켈레톤이 필요할 때마다 마크업을 하는 것은 생각보다 많은 시간이 소요될 수도 있습니다.초기에는 위와 같은 형태로 스켈레톤을 페이지마다 구현하기도 했었는데요,한정된 개발기간 내에 최대한의 생산성을 발휘하기 위해서는 마크업을 보다 쉽고 빠르게 마칠 수 있는 방법이 필요했습니다.저희는 공통으로 사용되는 애니메이션이 포함된 스켈레톤을 컴포넌트로 만들고,UI의 레이아웃을 제어하는 , , 등의 컴포넌트를 적절히 섞어 사용함으로써스켈레톤 구현에 페이지당 약 5 ~ 10분 내외의 최소한의 시간만을 들이고 서비스 개발에 집중할 수 있었습니다.
2024.11.28
좋아요
별로에요
NEW
Multimodal LLM을 직접 학습시켜 보자!
최근 몇 년간 AI 기술의 발전은 대규모 언어 모델(LLM, Large Language Model)의 등장으로 새로운 국면을 맞이했습니다.특히 ChatGPT와 같은 LLM은 인간과의 자연스러운 상호작용, 창의적인 콘텐츠 생성, 그리고 지식 확장 능력으로 전 세계적으로 큰 주목을 받으며 AI 기술의 중심에 자리 잡고 있습니다.이러한 LLM의 인기는 텍스트 기반 작업에서 시작하여 이제는 멀티모달(Multimodal) 모델로의 확장이라는 또 다른 혁신을 이루며 발전하고 있습니다.GPT-4V로 시작하여 Gemini, Claude-3 등의 상용화 모델이 우후죽순 출시 됨에 따라 이미지를 활용한 상용화 UseCase들이 떠오르고 있는데요.상용화 서비스를 fine-tuning하여 서비스를 출시 할 수도 있겠지만 서비스가 커지면 비용문제로 자체 모델 개발에 관심을 갖게 될 것입니다.그래서 이번 포스팅은 Multimodal LLM(이하 MLLM)을 직접 학습하는 과정을 간단한 시나리오로 소개해 보겠습니다.간단히 소개시켜드릴 목적으로 과정을 간소화하기 위해 다음 조건의 시나리오를 구성해 보겠습니다.• None 공개 되어있는 모델과 학습 파이프라인먼저 공개되어있는 데이터를 찾고 데이터에 맞는 시나리오를 구성해 봅시다.한국어의 multimodal supervised fine-tuning(SFT) 목적의 데이터를 찾아보니 “Table-VQA-ko”라는 데이터를 찾을 수 있었습니다.이 데이터를 학습하면 한국어로 표이미지를 이해하는 chat bot을 만들 수 있을 것 같습니다.이 데이터는 6만개의 이미지 QA 셋이 존재하고 샘플 하나를 살펴보면,이런 표 이미지와표에 대한 질의 응답 내용을 담고 있는 것을 확인할 수 있습니다.이 데이터를 활용해 학습하면 표에 대해서 이해하는 MLLM을 학습할 수 있겠네요!다음은 스탭은 모델과 학습 파이프라인을 모두 공개한 repository를 찾는 것 입니다.먼저 최신 MLLM에서 SOTA의 성능을 가지는 모델들을 찾아봅시다.MLLM의 성능 leaderboard인 OpenCompass 기준으로open-source 모델인 Qwen2-VL, InternVL2, LLaVA-OneVision 세 개의 모델이 눈에 띄고 많이 알려져있는 모델입니다.• None Qwen2-VL: 모델은 공개되어있지만 학습 pipeline이 Qwen-VL까지만 공개되어있음 (Qwen2-VL은 공식 지원하지 않음)InternVL2과 LLaVA-OneVision 모두 fine-tuning을 할 수 있도록 제공하고 모델과 코드를 모두 제공하고 있는 것을 확인하였고,그 중 이번 포스팅은 InternVL2의 모델과 학습 pipeline을 선택하여 진행해 보겠습니다.Shanghai AI Laboratory에서 만든 Multimodal Model로 위 3개의 모델 중에는 가장 먼저 리더보드 상위에 자리했음에도 아직까지 상위권을 유지하고 있는 모델입니다.• None Dynamic high resolution: 이미지를 여러장의 tile로 나눠 encoding하여 image의
11/28/2024
Multimodal LLM을 직접 학습시켜 보자!
NEW
최근 몇 년간 AI 기술의 발전은 대규모 언어 모델(LLM, Large Language Model)의 등장으로 새로운 국면을 맞이했습니다.특히 ChatGPT와 같은 LLM은 인간과의 자연스러운 상호작용, 창의적인 콘텐츠 생성, 그리고 지식 확장 능력으로 전 세계적으로 큰 주목을 받으며 AI 기술의 중심에 자리 잡고 있습니다.이러한 LLM의 인기는 텍스트 기반 작업에서 시작하여 이제는 멀티모달(Multimodal) 모델로의 확장이라는 또 다른 혁신을 이루며 발전하고 있습니다.GPT-4V로 시작하여 Gemini, Claude-3 등의 상용화 모델이 우후죽순 출시 됨에 따라 이미지를 활용한 상용화 UseCase들이 떠오르고 있는데요.상용화 서비스를 fine-tuning하여 서비스를 출시 할 수도 있겠지만 서비스가 커지면 비용문제로 자체 모델 개발에 관심을 갖게 될 것입니다.그래서 이번 포스팅은 Multimodal LLM(이하 MLLM)을 직접 학습하는 과정을 간단한 시나리오로 소개해 보겠습니다.간단히 소개시켜드릴 목적으로 과정을 간소화하기 위해 다음 조건의 시나리오를 구성해 보겠습니다.• None 공개 되어있는 모델과 학습 파이프라인먼저 공개되어있는 데이터를 찾고 데이터에 맞는 시나리오를 구성해 봅시다.한국어의 multimodal supervised fine-tuning(SFT) 목적의 데이터를 찾아보니 “Table-VQA-ko”라는 데이터를 찾을 수 있었습니다.이 데이터를 학습하면 한국어로 표이미지를 이해하는 chat bot을 만들 수 있을 것 같습니다.이 데이터는 6만개의 이미지 QA 셋이 존재하고 샘플 하나를 살펴보면,이런 표 이미지와표에 대한 질의 응답 내용을 담고 있는 것을 확인할 수 있습니다.이 데이터를 활용해 학습하면 표에 대해서 이해하는 MLLM을 학습할 수 있겠네요!다음은 스탭은 모델과 학습 파이프라인을 모두 공개한 repository를 찾는 것 입니다.먼저 최신 MLLM에서 SOTA의 성능을 가지는 모델들을 찾아봅시다.MLLM의 성능 leaderboard인 OpenCompass 기준으로open-source 모델인 Qwen2-VL, InternVL2, LLaVA-OneVision 세 개의 모델이 눈에 띄고 많이 알려져있는 모델입니다.• None Qwen2-VL: 모델은 공개되어있지만 학습 pipeline이 Qwen-VL까지만 공개되어있음 (Qwen2-VL은 공식 지원하지 않음)InternVL2과 LLaVA-OneVision 모두 fine-tuning을 할 수 있도록 제공하고 모델과 코드를 모두 제공하고 있는 것을 확인하였고,그 중 이번 포스팅은 InternVL2의 모델과 학습 pipeline을 선택하여 진행해 보겠습니다.Shanghai AI Laboratory에서 만든 Multimodal Model로 위 3개의 모델 중에는 가장 먼저 리더보드 상위에 자리했음에도 아직까지 상위권을 유지하고 있는 모델입니다.• None Dynamic high resolution: 이미지를 여러장의 tile로 나눠 encoding하여 image의
2024.11.28
좋아요
별로에요
일잘러 연구소: 소프트 스킬을 키우는 효과적인 방법
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2024(10월)에서 발표되었던 세션을 공개합니다.협업이 중요한 업무 환경에서 쉽게 직면하는 소프트 스킬 문제를 유연함의 힘으로 해결한 사례를 구체적인 경험과 함께 제시합니다.소프트 스킬 문제(의사소통, 협업, 리더십, 성장 등)를 겪고 있지만 효과적인 방법을 잘 몰라 답답한 사람• None 이런 고민 다들 해보셨죠? 우리가 업무 환경에서 만나는 흔한 문제가 소프트 스킬과 관련이 있다는 걸 아시나요? 소프트 스킬은 오래 쌓인 사고 회로와 행동 양식에 기인하기에 쉽게 개선하기 어렵습니다.• None 저도 고민했어요 저도 소프트 스킬 문제로 오랫동안 고민을 해왔습니다. 이 문제를 해결할 좋은 방법이 어디 없을까요?• None 굳은 회로는 어떻게 유연해질까? 어떻게 하면 우리 머리 속의 굳은 회로를 유연하게 바꿀 수 있을까요? 유연함의 힘에서 얻은 아이디어를 살펴봅니다.• None 어떻게 써먹을까? 책에서 찾은 아이디어로 제가 현실의 문제를 해결한 사례를 공유 드릴게요.• None 문제 해결의 보편성 '소프트 스킬이 삶의 보편적인 문제를 해결하는 역량'이라면 소프트 스킬 문제를 해결한 도구로 다른 영역의 문제도 해결할 수 있지 않을까요?• None 정리 지금까지 나눈 이야기를 총정리합니다. NAVER에서는 사내 개발 경험과 기술 트렌드를 교류를 할 수 있는 프로그램이 많이 있습니다. 그중 매회 평균 70개 이상의 발표가 이루어지는 NAVER ENGINEERING DAY를 빼놓을 수 없는데요. 2016년부터 시작된 ENGINEERING DAY는 실무에서의 기술 개발 경험과 새로운 기술과 플랫폼 도입 시 유용하게 활용될 수 있는 팁 등을 공유하며 서로 배우고 성장하는 네이버의 대표적인 사내 개발자 행사입니다. 올해 진행된 NAVER ENGINEERING DAY 2024(10월)의 일부 세션을 공개합니다.
11/27/2024
일잘러 연구소: 소프트 스킬을 키우는 효과적인 방법
네이버 사내 기술 교류 행사인 NAVER ENGINEERING DAY 2024(10월)에서 발표되었던 세션을 공개합니다.협업이 중요한 업무 환경에서 쉽게 직면하는 소프트 스킬 문제를 유연함의 힘으로 해결한 사례를 구체적인 경험과 함께 제시합니다.소프트 스킬 문제(의사소통, 협업, 리더십, 성장 등)를 겪고 있지만 효과적인 방법을 잘 몰라 답답한 사람• None 이런 고민 다들 해보셨죠? 우리가 업무 환경에서 만나는 흔한 문제가 소프트 스킬과 관련이 있다는 걸 아시나요? 소프트 스킬은 오래 쌓인 사고 회로와 행동 양식에 기인하기에 쉽게 개선하기 어렵습니다.• None 저도 고민했어요 저도 소프트 스킬 문제로 오랫동안 고민을 해왔습니다. 이 문제를 해결할 좋은 방법이 어디 없을까요?• None 굳은 회로는 어떻게 유연해질까? 어떻게 하면 우리 머리 속의 굳은 회로를 유연하게 바꿀 수 있을까요? 유연함의 힘에서 얻은 아이디어를 살펴봅니다.• None 어떻게 써먹을까? 책에서 찾은 아이디어로 제가 현실의 문제를 해결한 사례를 공유 드릴게요.• None 문제 해결의 보편성 '소프트 스킬이 삶의 보편적인 문제를 해결하는 역량'이라면 소프트 스킬 문제를 해결한 도구로 다른 영역의 문제도 해결할 수 있지 않을까요?• None 정리 지금까지 나눈 이야기를 총정리합니다. NAVER에서는 사내 개발 경험과 기술 트렌드를 교류를 할 수 있는 프로그램이 많이 있습니다. 그중 매회 평균 70개 이상의 발표가 이루어지는 NAVER ENGINEERING DAY를 빼놓을 수 없는데요. 2016년부터 시작된 ENGINEERING DAY는 실무에서의 기술 개발 경험과 새로운 기술과 플랫폼 도입 시 유용하게 활용될 수 있는 팁 등을 공유하며 서로 배우고 성장하는 네이버의 대표적인 사내 개발자 행사입니다. 올해 진행된 NAVER ENGINEERING DAY 2024(10월)의 일부 세션을 공개합니다.
2024.11.27
좋아요
별로에요
Next.js 그만 쓰세요! 면접관이 진짜 원하는 것!? | 모닥불 EP.8
토스 채용 꿀팁, 면접관들이 직접 말합니다!토스의 문동욱 님과 이성준 님이 채용 과정에 대한 솔직한 이야기부터 실질적인 꿀팁까지, 지원한다면 꼭 알아야 할 정보를 모두 모았습니다. 절대 놓치지 마세요!
11/27/2024
Next.js 그만 쓰세요! 면접관이 진짜 원하는 것!? | 모닥불 EP.8
토스 채용 꿀팁, 면접관들이 직접 말합니다!토스의 문동욱 님과 이성준 님이 채용 과정에 대한 솔직한 이야기부터 실질적인 꿀팁까지, 지원한다면 꼭 알아야 할 정보를 모두 모았습니다. 절대 놓치지 마세요!
2024.11.27
좋아요
별로에요
현대차그룹 신입사원이 암호분석경진대회에서 최우수상을 차지한 비결
좋아하는 일을 직업으로 삼으면, 실력을 다듬는 과정도 즐거워집니다. 현대차그룹 임직원이 2024 암호분석경진대회에서 최우수상을 차지할 수 있었던 이유입니다.현대차그룹의 신입 연구원 2명이 ‘2024 암호분석경진대회’에서 최우수상을 수상했습니다. 암호분석경진대회는 한국정보보호학회가 주관하고 대한민국 국방부 국방정보본부 예하의 기능사령부인 ‘777사령부’가 후원하는 대회입니다. 암호분석 및 보안 취약점 관련 문제를 해결하는 과제를 제시하는 등 암호 분야의 최신 트렌드를 계속 반영하며 폭넓은 분야의 문제 풀이를 요구하는 대회이기도 합니다.현대차·기아 통합보안센터 CS랩의 장연석 연구원(좌)과 이나연 연구원(우)현대차그룹 이나연 연구원과 장연석 연구원은 업무 연관성을 살려 해당 대회에 도전했고, ‘좋아하는 일을 하는 것’을 수상 비결로 손꼽았습니다. 좋아하는 일을 하는 만큼, 실력을 다듬는 과정도 즐거웠다는 이야기죠. 두 연구원을 만나 업무와 암호분석경진대회에 관한 이야기를 나눴습니다.현대자동차를 선택한 이유자동차의 스마트키는 해킹에 대비한 높은 수준의 보안이 필요합니다이나연 연구원과 장연석 연구원은 현대차·기아 통합보안센터 Cybersecurity랩(이하 CS랩)에서 근무하고 있습니다. CS랩은 현대차·기아의 IT 관련 서비스 제공 및 관리를 담당하는 조직이며, 사이버 공격으로부터 자산과 고객을 보호하는 역할도 맡고 있습니다. 이곳에서 두 연구원은 차량 및 IT 시스템의 사이버 보안 취약점을 진단하고 실제적인 개선을 진행하며, 제품과 IT 인프라에 최적화된 보안 기술을 도출하고 적용하고 있습니다.이나연 연구원과 장연석 연구원은 지난해 11월 현대자동차에 입사한 동기입니다. 보안 분야의 전문가를 목표로 하는 두 연구원이 현대차에 입사한 이유가 궁금했습니다. 이나연 연구원은 “석사 과정 중에 자동차 스마트키를 대상으로 한 암호 해킹과 관련된 논문을 읽게 되었고, 해당 논문의 실험을 재연해봤습니다”고 말했습니다. 그 과정에서 자동차 보안에 대해 흥미를 느끼고 현대차에 지원했다는 설명이죠.장연석 연구원은 “현대차그룹에서는 자동차 보안과 IT 보안을 모두 경험할 수 있다는 점에서 매력을 느꼈다”고 말합니다장연석 연구원은 “석사 과정 중에 자동차에 탑재된 AVNT(오디오·비디오·내비게이션·텔레매틱스)를 대상으로 한 취약점 찾기 프로젝트를 한 경험이 있습니다. 해당 과정에서 자동차에도 IT 기술이 많이 사용된다는 것을 느꼈고, 현대차그룹에서는 자동차 보안과 IT 보안을 모두 경험할 수 있다는 점에서 매력을 느꼈습니다”라며 보다 폭 넓은 경험이 가능한 환경을 입사 이유로 꼽았습니다.이나연 연구원과 장연석 연구원의 설명처럼 IT와 결합된 지금의 자동차 산업은 보안 분야의 인재들이 꿈을 펼칠 수 있는 토양이 되었습니다. 두 연구원 또한 자동차 산업에서 보안 전문가로서의 꿈을 펼치고 있죠. 이나연 연구원은 차량 보안과 관련된 실무를 맡고 있습니다. 차량 사이버보안과 관련된 국내/외 이슈를 식별하고, 차량에 영향이 있는 사이버보안 사고에 대응하며, CSMS(Cyb
11/27/2024
현대차그룹 신입사원이 암호분석경진대회에서 최우수상을 차지한 비결
좋아하는 일을 직업으로 삼으면, 실력을 다듬는 과정도 즐거워집니다. 현대차그룹 임직원이 2024 암호분석경진대회에서 최우수상을 차지할 수 있었던 이유입니다.현대차그룹의 신입 연구원 2명이 ‘2024 암호분석경진대회’에서 최우수상을 수상했습니다. 암호분석경진대회는 한국정보보호학회가 주관하고 대한민국 국방부 국방정보본부 예하의 기능사령부인 ‘777사령부’가 후원하는 대회입니다. 암호분석 및 보안 취약점 관련 문제를 해결하는 과제를 제시하는 등 암호 분야의 최신 트렌드를 계속 반영하며 폭넓은 분야의 문제 풀이를 요구하는 대회이기도 합니다.현대차·기아 통합보안센터 CS랩의 장연석 연구원(좌)과 이나연 연구원(우)현대차그룹 이나연 연구원과 장연석 연구원은 업무 연관성을 살려 해당 대회에 도전했고, ‘좋아하는 일을 하는 것’을 수상 비결로 손꼽았습니다. 좋아하는 일을 하는 만큼, 실력을 다듬는 과정도 즐거웠다는 이야기죠. 두 연구원을 만나 업무와 암호분석경진대회에 관한 이야기를 나눴습니다.현대자동차를 선택한 이유자동차의 스마트키는 해킹에 대비한 높은 수준의 보안이 필요합니다이나연 연구원과 장연석 연구원은 현대차·기아 통합보안센터 Cybersecurity랩(이하 CS랩)에서 근무하고 있습니다. CS랩은 현대차·기아의 IT 관련 서비스 제공 및 관리를 담당하는 조직이며, 사이버 공격으로부터 자산과 고객을 보호하는 역할도 맡고 있습니다. 이곳에서 두 연구원은 차량 및 IT 시스템의 사이버 보안 취약점을 진단하고 실제적인 개선을 진행하며, 제품과 IT 인프라에 최적화된 보안 기술을 도출하고 적용하고 있습니다.이나연 연구원과 장연석 연구원은 지난해 11월 현대자동차에 입사한 동기입니다. 보안 분야의 전문가를 목표로 하는 두 연구원이 현대차에 입사한 이유가 궁금했습니다. 이나연 연구원은 “석사 과정 중에 자동차 스마트키를 대상으로 한 암호 해킹과 관련된 논문을 읽게 되었고, 해당 논문의 실험을 재연해봤습니다”고 말했습니다. 그 과정에서 자동차 보안에 대해 흥미를 느끼고 현대차에 지원했다는 설명이죠.장연석 연구원은 “현대차그룹에서는 자동차 보안과 IT 보안을 모두 경험할 수 있다는 점에서 매력을 느꼈다”고 말합니다장연석 연구원은 “석사 과정 중에 자동차에 탑재된 AVNT(오디오·비디오·내비게이션·텔레매틱스)를 대상으로 한 취약점 찾기 프로젝트를 한 경험이 있습니다. 해당 과정에서 자동차에도 IT 기술이 많이 사용된다는 것을 느꼈고, 현대차그룹에서는 자동차 보안과 IT 보안을 모두 경험할 수 있다는 점에서 매력을 느꼈습니다”라며 보다 폭 넓은 경험이 가능한 환경을 입사 이유로 꼽았습니다.이나연 연구원과 장연석 연구원의 설명처럼 IT와 결합된 지금의 자동차 산업은 보안 분야의 인재들이 꿈을 펼칠 수 있는 토양이 되었습니다. 두 연구원 또한 자동차 산업에서 보안 전문가로서의 꿈을 펼치고 있죠. 이나연 연구원은 차량 보안과 관련된 실무를 맡고 있습니다. 차량 사이버보안과 관련된 국내/외 이슈를 식별하고, 차량에 영향이 있는 사이버보안 사고에 대응하며, CSMS(Cyb
2024.11.27
좋아요
별로에요
Keycloak 활용한 SSO 구현 : #3 Keycloak 설치부터 설정까지: SSO를 위한 첫걸음
지난 시간에는 Kubernetes 클러스터에 Ingress 컨트롤러를 설치하고, Let's Encrypt 인증서를 통해 HTTPS를 적용하는 과정을 살펴보았습니다.또한, 샘플 Pod를 배포하고, 설정한 도메인으로 안전하게 접근하는 방법을 단계별로 안내해드렸습니다.이를 통해 클러스터 내에서 트래픽을 제어하고, 보안 설정을 강화하는 방법을 이해하셨을 거라 생각됩니다.이번 세션에서는 사용자 인증과 권한 관리를 효율적으로 해결할 수 있는 Keycloak을 설치하고, 이를 통해 SSO(Single Sign-On) 환경을 구축하는 과정을 다뤄보겠습니다.Keycloak은 다양한 인증 프로토콜을 지원하며, 사용자와 애플리케이션을 손쉽게 관리할 수 있는 오픈소스 솔루션입니다.특히, Helm을 사용하여 Keycloak을 Kubernetes 클러스터에 배포하는 방법과 필수적인 설정 과정을 차근차근 설명해드리겠습니다.지금부터 함께 시작해 보겠습니다.• None 완벽한 HTTPS 보안: Ingress 컨트롤러와 Let's Encrypt으로 무료 인증서 설정하기• None Keycloak 설치부터 설정까지: SSO를 위한 첫걸음• None SSO 연동 샘플 애플리케이션 구성하기: 실전 가이드• None SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합Keycloak은 오픈소스 인증 및 권한 부여 관리 솔루션입니다.이를 통해 SSO(Single Sign-On) 기능을 손쉽게 구현할 수 있으며, 기업의 애플리케이션과 사용자 관리가 더욱 편리해집니다.특히, Keycloak은 다양한 프로토콜을 지원하여 OAuth2, OpenID Connect, SAML2와 같은 표준 기반의 인증 방식을 사용할 수 있어 많은 시스템과의 연동이 가능합니다.이외에도 소셜 로그인, MFA(다단계 인증), 사용자 연동 관리 등 여러 기능을 제공합니다.OAuth 가 권한 부여만 다루는 것이라면 OIDC 는 OAuth 를 포함하여 인증과 권한부여를 모두 포함한 것이다. 인증, 권한 부여가 적용되는 범위를 나타내는 단위이다. SSO 를 적용한다고 했을때 해당 SSO 가 적용되는 범위는 Realm 단위이다. 인증, 권한 부여 행위를 대행하도록 맡길 어플리케이션을 나타내는 단위이다. 그 단위는 웹사이트 혹은 REST API 를 제공하는 서비스도 될 수 있다. 하나의 Realm 에 n개의 Client 를 생성, 관리할 수 있다. Client 에 인증을 요청할 사용자를 나타낸다. 하나의 Realm 에는 Realm 에 종속된 n개의 User 를 생성하고 관리할 수 있다. 기본적으로 User 는 Username, Email, FirstName, LastName 으로 구성되어 있지만 Custom User Attribute 를 사용하면 사용자가 원하는 속성을 추가할 수 있다. 여기에는 Keycloak 의 REST API 를 사용할 권한을 부여할 수 있고 사용자가 정의한 권한을 부여할 수도 있다.Keycloak을 설치하는 방법은 여러 가지가 있지만, 이번 가이드에서는 Helm 차트를 이용하여 이전에
realm
11/27/2024
Keycloak 활용한 SSO 구현 : #3 Keycloak 설치부터 설정까지: SSO를 위한 첫걸음
지난 시간에는 Kubernetes 클러스터에 Ingress 컨트롤러를 설치하고, Let's Encrypt 인증서를 통해 HTTPS를 적용하는 과정을 살펴보았습니다.또한, 샘플 Pod를 배포하고, 설정한 도메인으로 안전하게 접근하는 방법을 단계별로 안내해드렸습니다.이를 통해 클러스터 내에서 트래픽을 제어하고, 보안 설정을 강화하는 방법을 이해하셨을 거라 생각됩니다.이번 세션에서는 사용자 인증과 권한 관리를 효율적으로 해결할 수 있는 Keycloak을 설치하고, 이를 통해 SSO(Single Sign-On) 환경을 구축하는 과정을 다뤄보겠습니다.Keycloak은 다양한 인증 프로토콜을 지원하며, 사용자와 애플리케이션을 손쉽게 관리할 수 있는 오픈소스 솔루션입니다.특히, Helm을 사용하여 Keycloak을 Kubernetes 클러스터에 배포하는 방법과 필수적인 설정 과정을 차근차근 설명해드리겠습니다.지금부터 함께 시작해 보겠습니다.• None 완벽한 HTTPS 보안: Ingress 컨트롤러와 Let's Encrypt으로 무료 인증서 설정하기• None Keycloak 설치부터 설정까지: SSO를 위한 첫걸음• None SSO 연동 샘플 애플리케이션 구성하기: 실전 가이드• None SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합Keycloak은 오픈소스 인증 및 권한 부여 관리 솔루션입니다.이를 통해 SSO(Single Sign-On) 기능을 손쉽게 구현할 수 있으며, 기업의 애플리케이션과 사용자 관리가 더욱 편리해집니다.특히, Keycloak은 다양한 프로토콜을 지원하여 OAuth2, OpenID Connect, SAML2와 같은 표준 기반의 인증 방식을 사용할 수 있어 많은 시스템과의 연동이 가능합니다.이외에도 소셜 로그인, MFA(다단계 인증), 사용자 연동 관리 등 여러 기능을 제공합니다.OAuth 가 권한 부여만 다루는 것이라면 OIDC 는 OAuth 를 포함하여 인증과 권한부여를 모두 포함한 것이다. 인증, 권한 부여가 적용되는 범위를 나타내는 단위이다. SSO 를 적용한다고 했을때 해당 SSO 가 적용되는 범위는 Realm 단위이다. 인증, 권한 부여 행위를 대행하도록 맡길 어플리케이션을 나타내는 단위이다. 그 단위는 웹사이트 혹은 REST API 를 제공하는 서비스도 될 수 있다. 하나의 Realm 에 n개의 Client 를 생성, 관리할 수 있다. Client 에 인증을 요청할 사용자를 나타낸다. 하나의 Realm 에는 Realm 에 종속된 n개의 User 를 생성하고 관리할 수 있다. 기본적으로 User 는 Username, Email, FirstName, LastName 으로 구성되어 있지만 Custom User Attribute 를 사용하면 사용자가 원하는 속성을 추가할 수 있다. 여기에는 Keycloak 의 REST API 를 사용할 권한을 부여할 수 있고 사용자가 정의한 권한을 부여할 수도 있다.Keycloak을 설치하는 방법은 여러 가지가 있지만, 이번 가이드에서는 Helm 차트를 이용하여 이전에
2024.11.27
realm
좋아요
별로에요
TAG를 활용한 실용적 AI 서비스 구축하기
요즘 RAG를 계속 검토해 오고 있습니다.데보션에서 TAG (Table-Augmented Generation) 개념을 접하게 되었습니다.현재 RAG로 시맨틱 검색을 개발기 수준으로 구축해서 동작 중에 있는데요. 검색 품질이 기대에 미치지 못한다고 느끼던 중, TAG의 아이디어가 훌륭한 대안이 될 수 있다는 생각이 들었습니다.TAG는 구조화된 데이터(테이블 형식)를 언어 모델(LM)과 통합하여 자연어 질문에 대한 더 정교한 답변을 제공하는 기술입니다.Berkeley와 Stanford 대학의 연구진이 제안한 혁신적인 접근 방식으로, AI 시스템과 데이터베이스를 보다 긴밀하게 통합해 자연어 질문에 답하는 새로운 패러다임을 제시합니다.기존의 AI 기반 질의응답 시스템들이 데이터베이스와 상호작용하는 데 있어 제한적인 SQL 쿼리나 단순 데이터 조회에 의존했다면,TAG는 이를 뛰어넘어 언어 모델의 추론 능력과 데이터베이스의 확장성을 결합한 종합적인 솔루션을 제공합니다.TAG는 복잡한 자연어 질문을 처리할 수 있도록 설계되었으며, 관계형 대수에 국한되지 않고 다양한 형태의 질의를 포괄적으로 처리합니다.예를 들어, 사용자 질문이 데이터베이스에서 단일 값을 찾아내는 것뿐만 아니라, 다중 테이블 간의 관계를 분석하거나 데이터 패턴을 추론하는 것까지 가능하게 합니다.이를 통해 AI가 데이터베이스 상에서 단순히 데이터를 조회하는 것이 아니라, 맥락과 세계 지식을 활용해 더 깊이 있는 답변을 생성할 수 있습니다.특히, TAG는 단순한 쿼리 처리에서 벗어나 AI 모델이 데이터를 기반으로 복잡한 추론을 하거나 다중 소스 데이터를 조합해 의미 있는 답변을 생성하는 능력을 부여함으로써,기존 Text2SQL이나 RAG 방법론이 해결하지 못했던 많은 문제를 해결합니다.이러한 점에서 TAG는 데이터베이스 질의응답 분야의 큰 도약으로 평가받고 있으며, 향후 AI와 데이터베이스 상호작용의 미래를 선도할 중요한 기술로 주목받고 있습니다.자연어 질문을 데이터베이스로 처리하는 AI의 새로운 가능성데이터에 대해 복잡한 질문을 간단한 자연어로 묻고, 즉각적으로 정교한 답변을 받을 수 있는 세상을 상상해 보세요.AI 시스템은 점점 더 이러한 비전을 현실로 만들고 있습니다. 자연어로 데이터베이스에 질문을 던질 수 있게 해주는 이 시스템들은,강력한 언어 모델(LM)의 추론 능력과 데이터 관리 시스템의 계산 능력을 결합해 사용자에게 엄청난 가치를 제공할 수 있습니다.이를 통해 사용자는 복잡한 질문을 직관적으로 던지고 데이터에서 직접 인사이트를 얻을 수 있습니다.그러나, 현재 사용되고 있는 대부분의 접근 방식은 이러한 잠재력을 충분히 발휘하지 못하고 있습니다.Text2SQL과 Retrieval-Augmented Generation (RAG) 같은 방법들이 많이 사용되지만, 이들은 제한된 범위 내에서만 동작하고 있습니다.이에 대응해 등장한 새로운 개념이 바로 **Table-Augmented Generation (TAG)**입니다.TAG는 자연어로 데이터베이스와 상호작용할 수 있는 더욱 포괄적이고
11/27/2024
TAG를 활용한 실용적 AI 서비스 구축하기
요즘 RAG를 계속 검토해 오고 있습니다.데보션에서 TAG (Table-Augmented Generation) 개념을 접하게 되었습니다.현재 RAG로 시맨틱 검색을 개발기 수준으로 구축해서 동작 중에 있는데요. 검색 품질이 기대에 미치지 못한다고 느끼던 중, TAG의 아이디어가 훌륭한 대안이 될 수 있다는 생각이 들었습니다.TAG는 구조화된 데이터(테이블 형식)를 언어 모델(LM)과 통합하여 자연어 질문에 대한 더 정교한 답변을 제공하는 기술입니다.Berkeley와 Stanford 대학의 연구진이 제안한 혁신적인 접근 방식으로, AI 시스템과 데이터베이스를 보다 긴밀하게 통합해 자연어 질문에 답하는 새로운 패러다임을 제시합니다.기존의 AI 기반 질의응답 시스템들이 데이터베이스와 상호작용하는 데 있어 제한적인 SQL 쿼리나 단순 데이터 조회에 의존했다면,TAG는 이를 뛰어넘어 언어 모델의 추론 능력과 데이터베이스의 확장성을 결합한 종합적인 솔루션을 제공합니다.TAG는 복잡한 자연어 질문을 처리할 수 있도록 설계되었으며, 관계형 대수에 국한되지 않고 다양한 형태의 질의를 포괄적으로 처리합니다.예를 들어, 사용자 질문이 데이터베이스에서 단일 값을 찾아내는 것뿐만 아니라, 다중 테이블 간의 관계를 분석하거나 데이터 패턴을 추론하는 것까지 가능하게 합니다.이를 통해 AI가 데이터베이스 상에서 단순히 데이터를 조회하는 것이 아니라, 맥락과 세계 지식을 활용해 더 깊이 있는 답변을 생성할 수 있습니다.특히, TAG는 단순한 쿼리 처리에서 벗어나 AI 모델이 데이터를 기반으로 복잡한 추론을 하거나 다중 소스 데이터를 조합해 의미 있는 답변을 생성하는 능력을 부여함으로써,기존 Text2SQL이나 RAG 방법론이 해결하지 못했던 많은 문제를 해결합니다.이러한 점에서 TAG는 데이터베이스 질의응답 분야의 큰 도약으로 평가받고 있으며, 향후 AI와 데이터베이스 상호작용의 미래를 선도할 중요한 기술로 주목받고 있습니다.자연어 질문을 데이터베이스로 처리하는 AI의 새로운 가능성데이터에 대해 복잡한 질문을 간단한 자연어로 묻고, 즉각적으로 정교한 답변을 받을 수 있는 세상을 상상해 보세요.AI 시스템은 점점 더 이러한 비전을 현실로 만들고 있습니다. 자연어로 데이터베이스에 질문을 던질 수 있게 해주는 이 시스템들은,강력한 언어 모델(LM)의 추론 능력과 데이터 관리 시스템의 계산 능력을 결합해 사용자에게 엄청난 가치를 제공할 수 있습니다.이를 통해 사용자는 복잡한 질문을 직관적으로 던지고 데이터에서 직접 인사이트를 얻을 수 있습니다.그러나, 현재 사용되고 있는 대부분의 접근 방식은 이러한 잠재력을 충분히 발휘하지 못하고 있습니다.Text2SQL과 Retrieval-Augmented Generation (RAG) 같은 방법들이 많이 사용되지만, 이들은 제한된 범위 내에서만 동작하고 있습니다.이에 대응해 등장한 새로운 개념이 바로 **Table-Augmented Generation (TAG)**입니다.TAG는 자연어로 데이터베이스와 상호작용할 수 있는 더욱 포괄적이고
2024.11.27
좋아요
별로에요
제7회 Kakao Tech Meet에 초대합니다!
Kakao Tech Meet은 작년부터 이어온 카카오의 공개 기술 세미나입니다. 올해에도 계속 최신 기술 트렌드와 경험 및 노하우를 자주, 지속적으로 공유하며 개발자 여러분과 함께 성장을 도모하고 긴밀한 네트워크를 형성하고자 합니다.일곱 번째 Kakao Tech Meet에서는 지난 if(kakaoAI)2024 컨퍼런스에서 많은 인기 기술 세션을 모아 리캡 형태로 공유합니다. 또한 발표에서 못다 한 질문과 이야기를 나눌 수 있도록 패널토의를 진행합니다.판교역에 연결된 카카오 아지트에서 열리는 이번 기술 세미나에 많은 관심과 참여 부탁드립니다. 앞으로도 카카오는 개발자 커뮤니티의 일원으로서, 개발자 커뮤니티와 함께 성장하기 위해서 꾸준히 노력하겠습니다.12월 18일(목) 19:00 - 21:30 (18:30부터 입장 가능합니다)• 참가 신청 결과는 이메일로 안내드립니다.• 참가자로 선정된 분에게는 행사장 입장을 위한 ‘웰컴패스’를 카카오톡으로 보내 드립니다.• festa에 등록한 이메일 주소와 휴대폰 번호가 정확한지 확인해 주세요.AI Agent 플랫폼과 이에 기반한 서비스까지 개발하면서 AI Agent로는 어떤 서비스를 개발하는 게 좋을지 고민했던 내용을 공유합니다. 그리고 그 사례로 저희가 개발한 Jira, Wiki 등 업무를 관리하는 시스템으로부터 업무 내용을 찾아와 OKR 기반으로 성과 노트를 작성하는 서비스를 소개합니다.• 최진원(royce.won) - 카나나 엑스 조직에서 AI Agent 플랫폼을 개발하고 있는 Royce입니다.• 이동준(genos.lee) - 카나나 엑스 조직에서 AI 학습 플랫폼을 개발하고 있는 Genos입니다.(2) TDD로 앞서가는 프론트엔드: 디자인, API 없이도 개발을 시작하는 방법1년간 진행된 카카오맵 매장관리 프로젝트에서 TDD를 활용하여, 디자인, 마크업, API 없이도 프론트엔드 개발을 사전에 진행했던 경험을 바탕으로 새로운 프로세스를 제안합니다. 이를 통해 프론트엔드 개발을 더욱 효율적으로 진행할 수 있는 방법론을 소개하고자 합니다.단위 테스트 도입에 관심있는 프론트엔드 개발자, 협업 부서의 지연으로 일정이 밀리는 경험을 해본 프론트엔드 개발자에게 추천합니다.• 김선호(cayde.abdo) - 카카오의 지도서비스 및 매장관리 서비스 프론트엔드 업무를 담당하고 있습니다.카카오 내에 수많은 데이터에서 원하는 데이터를 빠르게 찾아주는 '0depth 사내봇 개발기’를 공유합니다.RAG에 관심이 있는 모든 개발자에게 추천합니다.• 이혜림(tory.lee) - 데이터 조직에서 데이터 기반으로 AI프로덕트를 개발하고 있습니다. AI 기술을 효과적으로 녹여내어 더 나은 사용자 경험을 제공하는 데 관심이 있습니다.• 이재윤(jennie.py) - 카카오 내에 다양한 AI 프로덕트를 생산하는 jennie입니다. 특히 RAG에 많은 관심을 가지고 있습니다.• 공간 제약상, 오프라인 참여를 신청해 주신 분들 중 일부만 초대드리는 점 양해 부탁드립니다.• 오프라인 참석이 선정된 분들께는 12/11(수) 이후, 이메일
11/26/2024
제7회 Kakao Tech Meet에 초대합니다!
Kakao Tech Meet은 작년부터 이어온 카카오의 공개 기술 세미나입니다. 올해에도 계속 최신 기술 트렌드와 경험 및 노하우를 자주, 지속적으로 공유하며 개발자 여러분과 함께 성장을 도모하고 긴밀한 네트워크를 형성하고자 합니다.일곱 번째 Kakao Tech Meet에서는 지난 if(kakaoAI)2024 컨퍼런스에서 많은 인기 기술 세션을 모아 리캡 형태로 공유합니다. 또한 발표에서 못다 한 질문과 이야기를 나눌 수 있도록 패널토의를 진행합니다.판교역에 연결된 카카오 아지트에서 열리는 이번 기술 세미나에 많은 관심과 참여 부탁드립니다. 앞으로도 카카오는 개발자 커뮤니티의 일원으로서, 개발자 커뮤니티와 함께 성장하기 위해서 꾸준히 노력하겠습니다.12월 18일(목) 19:00 - 21:30 (18:30부터 입장 가능합니다)• 참가 신청 결과는 이메일로 안내드립니다.• 참가자로 선정된 분에게는 행사장 입장을 위한 ‘웰컴패스’를 카카오톡으로 보내 드립니다.• festa에 등록한 이메일 주소와 휴대폰 번호가 정확한지 확인해 주세요.AI Agent 플랫폼과 이에 기반한 서비스까지 개발하면서 AI Agent로는 어떤 서비스를 개발하는 게 좋을지 고민했던 내용을 공유합니다. 그리고 그 사례로 저희가 개발한 Jira, Wiki 등 업무를 관리하는 시스템으로부터 업무 내용을 찾아와 OKR 기반으로 성과 노트를 작성하는 서비스를 소개합니다.• 최진원(royce.won) - 카나나 엑스 조직에서 AI Agent 플랫폼을 개발하고 있는 Royce입니다.• 이동준(genos.lee) - 카나나 엑스 조직에서 AI 학습 플랫폼을 개발하고 있는 Genos입니다.(2) TDD로 앞서가는 프론트엔드: 디자인, API 없이도 개발을 시작하는 방법1년간 진행된 카카오맵 매장관리 프로젝트에서 TDD를 활용하여, 디자인, 마크업, API 없이도 프론트엔드 개발을 사전에 진행했던 경험을 바탕으로 새로운 프로세스를 제안합니다. 이를 통해 프론트엔드 개발을 더욱 효율적으로 진행할 수 있는 방법론을 소개하고자 합니다.단위 테스트 도입에 관심있는 프론트엔드 개발자, 협업 부서의 지연으로 일정이 밀리는 경험을 해본 프론트엔드 개발자에게 추천합니다.• 김선호(cayde.abdo) - 카카오의 지도서비스 및 매장관리 서비스 프론트엔드 업무를 담당하고 있습니다.카카오 내에 수많은 데이터에서 원하는 데이터를 빠르게 찾아주는 '0depth 사내봇 개발기’를 공유합니다.RAG에 관심이 있는 모든 개발자에게 추천합니다.• 이혜림(tory.lee) - 데이터 조직에서 데이터 기반으로 AI프로덕트를 개발하고 있습니다. AI 기술을 효과적으로 녹여내어 더 나은 사용자 경험을 제공하는 데 관심이 있습니다.• 이재윤(jennie.py) - 카카오 내에 다양한 AI 프로덕트를 생산하는 jennie입니다. 특히 RAG에 많은 관심을 가지고 있습니다.• 공간 제약상, 오프라인 참여를 신청해 주신 분들 중 일부만 초대드리는 점 양해 부탁드립니다.• 오프라인 참석이 선정된 분들께는 12/11(수) 이후, 이메일
2024.11.26
좋아요
별로에요
RAG의 발전과 효용성에 대한 소회
작년에 이어 올해에도 정말 많은 LLM 모델이 나왔고, 유료와 무료 모델을 두루 사용해본 결과확실히 유료모델이 성능이나 속도측면에서 가성비가 좋았고, 당연하게도 비싼 모델일수록 결과가 매우 좋았습니다.특히, 글 이해 분야에서는 이제 LLM의 성능이 사람을 능가하고 특히 속도측면에서 더욱 강점을 가지는 것으로 보입니다.그럼에도 사람이 모든 세상의 지식을 알고 있지 못하듯이, LLM도 비슷한 한계가 있고, 이로 인해 RAG라는 방식이 대안으로 등장하였는데,올해는 거의 대부분의 작업이 RAG를 기반으로 이루어질 만큼 성능과 활용도가 뛰어나고 앞으로도 현업에서는 필연적으로 사용할 수밖에 없는 방식이라고 봅니다.저는 개인적으로 다양한 툴 중에서 Qdrant 백터 디비와 llamaindex 패키지를 활용하여 python을 통한 작업을 진행하였는데, 너무 만족스러웠습니다.Qdrant 디비의 경우에는 docker나 k8s에 helm 차트로 쉽게 배포가 가능하며, 이를 통해 다양한 config값의 변경이 쉬웠으며 대시보드 UI도 제공되며 특히 llamaindex와의 결합이 좋았습니다.llamaindex의 경우에는 자체적으로 다양한 임베딩 방식을 내재하며, huggingface 모델의 적용이 쉽고, 기본 세팅으로는 단 3줄로도 RAG를 구성할 수 있다는 극강의 효율을 보여줍니다.이를 통해 코딩의 시간을 줄이고, 실무에서 다양한 임베딩 모델을 테스트해보고, 모델을 최적화하는데 초점을 맞출 수 있다는 점이 좋았고, 개발 속도가 매우 빨랐습니다.다만, 이게 또 단점이 될 수 있는게, 그냥 잘 된다고 믿으면 편하지만, 뒷단의 작동방식을 파고 들면 들수록 복잡한 코드를 모두 다 찾아봐야되는...당연하면서도 지난한 작업이 필요하고, 커스터마이징을 하려면 결국 이 지난한 과정이 필요하다는 점이였습니다.나름 커스터마이징을 위한 튜토리얼도 제공되긴 하지만, 구체적으로 어느 단계에서 수정이 이루어져야 원하는 커스터마이징이 될지는 코드를 다 까봐야 알 수 있습니다...더불어 최신의 기술들이 바로바로 반영이 되지는 않아서 직접 만들어야하는 부분이 있고, 이때는 기존 프레임워크의 이점을 크게 가져갈 수 없다는 단점이 있었습니다.RAG의 성능은 Vector 디비에서 연관된 문서 추출과 이를 이용한 prompt 설계 그리고 최종 사용할 llm 모델 이 세 파트에서 결정된다고 보는데,그 중에서도 연관된 문서 추출이 가장 중요하다고 봅니다.실제로 다양한 개선된 모델들은 이 부분에서 최적의 문서 추출을 위한 다양한 기법들이 나와있고, 이는 문서의 수가 늘어날수록 더욱 중요해진다고 봅니다.그리고 임베딩 모델의 선택도 중요한데, 임베딩 모델별로 특화된 언어가 있고, cross lingual에 성능이 천차만별이라 어느 한 모델이 가장 좋다고 하기 어렵습니다.상황에 맞게 최적의 임베딩 모델을 사용해야합니다.그리고 문서에 일부러 중복이 되도록 chunk를 나누는 기법이 있는데, 문서가 방대해질수록 이렇게 설계해서 디비에 저장하는것이 성능 향상에 큰 도움이 되는 것으로 보입니다.개인적으로는 디비에
11/26/2024
RAG의 발전과 효용성에 대한 소회
작년에 이어 올해에도 정말 많은 LLM 모델이 나왔고, 유료와 무료 모델을 두루 사용해본 결과확실히 유료모델이 성능이나 속도측면에서 가성비가 좋았고, 당연하게도 비싼 모델일수록 결과가 매우 좋았습니다.특히, 글 이해 분야에서는 이제 LLM의 성능이 사람을 능가하고 특히 속도측면에서 더욱 강점을 가지는 것으로 보입니다.그럼에도 사람이 모든 세상의 지식을 알고 있지 못하듯이, LLM도 비슷한 한계가 있고, 이로 인해 RAG라는 방식이 대안으로 등장하였는데,올해는 거의 대부분의 작업이 RAG를 기반으로 이루어질 만큼 성능과 활용도가 뛰어나고 앞으로도 현업에서는 필연적으로 사용할 수밖에 없는 방식이라고 봅니다.저는 개인적으로 다양한 툴 중에서 Qdrant 백터 디비와 llamaindex 패키지를 활용하여 python을 통한 작업을 진행하였는데, 너무 만족스러웠습니다.Qdrant 디비의 경우에는 docker나 k8s에 helm 차트로 쉽게 배포가 가능하며, 이를 통해 다양한 config값의 변경이 쉬웠으며 대시보드 UI도 제공되며 특히 llamaindex와의 결합이 좋았습니다.llamaindex의 경우에는 자체적으로 다양한 임베딩 방식을 내재하며, huggingface 모델의 적용이 쉽고, 기본 세팅으로는 단 3줄로도 RAG를 구성할 수 있다는 극강의 효율을 보여줍니다.이를 통해 코딩의 시간을 줄이고, 실무에서 다양한 임베딩 모델을 테스트해보고, 모델을 최적화하는데 초점을 맞출 수 있다는 점이 좋았고, 개발 속도가 매우 빨랐습니다.다만, 이게 또 단점이 될 수 있는게, 그냥 잘 된다고 믿으면 편하지만, 뒷단의 작동방식을 파고 들면 들수록 복잡한 코드를 모두 다 찾아봐야되는...당연하면서도 지난한 작업이 필요하고, 커스터마이징을 하려면 결국 이 지난한 과정이 필요하다는 점이였습니다.나름 커스터마이징을 위한 튜토리얼도 제공되긴 하지만, 구체적으로 어느 단계에서 수정이 이루어져야 원하는 커스터마이징이 될지는 코드를 다 까봐야 알 수 있습니다...더불어 최신의 기술들이 바로바로 반영이 되지는 않아서 직접 만들어야하는 부분이 있고, 이때는 기존 프레임워크의 이점을 크게 가져갈 수 없다는 단점이 있었습니다.RAG의 성능은 Vector 디비에서 연관된 문서 추출과 이를 이용한 prompt 설계 그리고 최종 사용할 llm 모델 이 세 파트에서 결정된다고 보는데,그 중에서도 연관된 문서 추출이 가장 중요하다고 봅니다.실제로 다양한 개선된 모델들은 이 부분에서 최적의 문서 추출을 위한 다양한 기법들이 나와있고, 이는 문서의 수가 늘어날수록 더욱 중요해진다고 봅니다.그리고 임베딩 모델의 선택도 중요한데, 임베딩 모델별로 특화된 언어가 있고, cross lingual에 성능이 천차만별이라 어느 한 모델이 가장 좋다고 하기 어렵습니다.상황에 맞게 최적의 임베딩 모델을 사용해야합니다.그리고 문서에 일부러 중복이 되도록 chunk를 나누는 기법이 있는데, 문서가 방대해질수록 이렇게 설계해서 디비에 저장하는것이 성능 향상에 큰 도움이 되는 것으로 보입니다.개인적으로는 디비에
2024.11.26
좋아요
별로에요
Koyeb 에 docker 로 나만의 서비스 배포하기
Koyeb 플랫폼을 활용해 Docker로 나만의 서비스를 손쉽게 배포하는 방법에 대해서 공부및 정리후 나만의 노하우와 지식을 공유한다.1. Koyeb에 대해서 알아본다.2. Koyeb 및 docker 를 활용해 간단하게 나만의 서비스를 배포하는 방법을 정리해본다.클라우드의 새로운 가능성? Koyeb과 Docker의 조합클라우드 컴퓨팅 시대에 효율적이고 간단한 서비스 배포는 더 이상 선택이 아닌 필수가 되었습니다.이번 블로그에서는 Koyeb 플랫폼을 활용해 Docker로 나만의 서비스를 손쉽게 배포하는 방법을 안내드립니다.Koyeb은 서버리스 클라우드 플랫폼으로, 빠르고 간편하게 애플리케이션을 배포할 수 있는 환경을 제공합니다.다음과 같은 특징으로 정리해볼 수 있는데요.서버리스 아키텍처로 관리할 서버가 없어 배포와 운영에만 집중 가능하게 되고요.자동 스케일링으로 인해서 트래픽 증가에도 유연한 대응할 수 있다고 하네요.통합 환경인 Docker, API, 파일 처리 등 다양한 워크로드 지원하고요.무엇보다도 제가 개인적으로 생각하는 Koyeb의 장점은 Docker 컨테이너 이미지를 직접 활용하여, 개발자가 기존에 작성한 애플리케이션을 간단히 무료로 배포할 수 있다는 점입니다.배포 관련 무료 사양은 아래와 같습니다.아무튼 간단한 어플리케이션 테스트및 배포로 사용하면 좋을것 같해요.우선 배포 하기 전 필요한 것은 아래와 같습니다.Koyeb 계정을 만들어야 하는데요 Koyeb 홈페이지에서 가입하시면 됩니다.계정이 만들어져있으면 docker 이미지로 만들 나만의 서비스가 구현되어야 하겠죠?나만의 서비스를 구현 후 윈도우의 경우 Docker Desktop 을 기동시켜야 합니다.아무튼 그래야 docker 관련 명령어를 사용할 수 있거든요...아래는 제가 요즘에 개인적으로 꾸준하게 구현해 나가고 있는 "오늘을 잘 사는 팁" 서비스입니다.그리고 사전에 저는 아래와 같이 간단하게 Dockerfile 을 작성했습니다.그리고 Docker Hub 또는 harbor 같은 레지스트리가 필요한데요 저는 docker hub 를 이용했습니다.그러면 아래와 같이 dockerhub 에 이미지가 올라간것을 확인할 수 있습니다.저는 Web 서비스를 Docker 를 통해서 배포하기를 원하기 때문에 아래와 같이 선택합니다.그리고 아래와 같이 image 를 기입합니다.그외에 아래와 같이 선택을 하시면 됩니다.그리고 마지막으로 서비스 이름까지 적으시고 Save and deploy 를 누르시면 배포가 됩니다아래 화면으로 진행이 되다가...아래와 같이 배포가 되죠그리고 위의 URI로 접속해보면 아래와 같이 서비스가 잘되고 있음을 확인할 수 있습니다.예를들어 블로그 검색 을 하면 아래와 같이 잘 나옵니다.여기까지가 오늘 내용이였고요..Koyeb 을 직접 사용해보고 제 개인적인 생각을 정리해보자면요Docker와 Koyeb의 조합은 간단하면서도 강력한 클라우드 배포 방법을 제공합니다.이 글을 따라 여러분만의 서비스를 클라우드에 올려보세요.더 이상 복잡한 서버 관리에 시간을 낭비하지 않아도 됩니다!
docker
11/26/2024
Koyeb 에 docker 로 나만의 서비스 배포하기
Koyeb 플랫폼을 활용해 Docker로 나만의 서비스를 손쉽게 배포하는 방법에 대해서 공부및 정리후 나만의 노하우와 지식을 공유한다.1. Koyeb에 대해서 알아본다.2. Koyeb 및 docker 를 활용해 간단하게 나만의 서비스를 배포하는 방법을 정리해본다.클라우드의 새로운 가능성? Koyeb과 Docker의 조합클라우드 컴퓨팅 시대에 효율적이고 간단한 서비스 배포는 더 이상 선택이 아닌 필수가 되었습니다.이번 블로그에서는 Koyeb 플랫폼을 활용해 Docker로 나만의 서비스를 손쉽게 배포하는 방법을 안내드립니다.Koyeb은 서버리스 클라우드 플랫폼으로, 빠르고 간편하게 애플리케이션을 배포할 수 있는 환경을 제공합니다.다음과 같은 특징으로 정리해볼 수 있는데요.서버리스 아키텍처로 관리할 서버가 없어 배포와 운영에만 집중 가능하게 되고요.자동 스케일링으로 인해서 트래픽 증가에도 유연한 대응할 수 있다고 하네요.통합 환경인 Docker, API, 파일 처리 등 다양한 워크로드 지원하고요.무엇보다도 제가 개인적으로 생각하는 Koyeb의 장점은 Docker 컨테이너 이미지를 직접 활용하여, 개발자가 기존에 작성한 애플리케이션을 간단히 무료로 배포할 수 있다는 점입니다.배포 관련 무료 사양은 아래와 같습니다.아무튼 간단한 어플리케이션 테스트및 배포로 사용하면 좋을것 같해요.우선 배포 하기 전 필요한 것은 아래와 같습니다.Koyeb 계정을 만들어야 하는데요 Koyeb 홈페이지에서 가입하시면 됩니다.계정이 만들어져있으면 docker 이미지로 만들 나만의 서비스가 구현되어야 하겠죠?나만의 서비스를 구현 후 윈도우의 경우 Docker Desktop 을 기동시켜야 합니다.아무튼 그래야 docker 관련 명령어를 사용할 수 있거든요...아래는 제가 요즘에 개인적으로 꾸준하게 구현해 나가고 있는 "오늘을 잘 사는 팁" 서비스입니다.그리고 사전에 저는 아래와 같이 간단하게 Dockerfile 을 작성했습니다.그리고 Docker Hub 또는 harbor 같은 레지스트리가 필요한데요 저는 docker hub 를 이용했습니다.그러면 아래와 같이 dockerhub 에 이미지가 올라간것을 확인할 수 있습니다.저는 Web 서비스를 Docker 를 통해서 배포하기를 원하기 때문에 아래와 같이 선택합니다.그리고 아래와 같이 image 를 기입합니다.그외에 아래와 같이 선택을 하시면 됩니다.그리고 마지막으로 서비스 이름까지 적으시고 Save and deploy 를 누르시면 배포가 됩니다아래 화면으로 진행이 되다가...아래와 같이 배포가 되죠그리고 위의 URI로 접속해보면 아래와 같이 서비스가 잘되고 있음을 확인할 수 있습니다.예를들어 블로그 검색 을 하면 아래와 같이 잘 나옵니다.여기까지가 오늘 내용이였고요..Koyeb 을 직접 사용해보고 제 개인적인 생각을 정리해보자면요Docker와 Koyeb의 조합은 간단하면서도 강력한 클라우드 배포 방법을 제공합니다.이 글을 따라 여러분만의 서비스를 클라우드에 올려보세요.더 이상 복잡한 서버 관리에 시간을 낭비하지 않아도 됩니다!
2024.11.26
docker
좋아요
별로에요