logo
logo
백엔드
NodeJS
오픈 소스 JavaScript 엔진인 크롬 V8에 비동기 이벤트 처리 라이브러리인 libuv를 결합한 플랫폼이며, 웹에서는 독보적인 인지도를 가지고 있다.
StackOverflow 질문 수: 474557
Github Stars : ★ 107488
사용 기업
교육
이커머스
직장
기타
금융/보험
부동산/인테리어
모빌리티
소셜/컨텐츠
푸드테크
헬스케어
인공지능
패션
여행
종합
블록체인
techstack-logo
클라썸
techstack-logo
트렌비
techstack-logo
플렉스
techstack-logo
클래스팅
techstack-logo
엔라이튼
techstack-logo
토스랩
techstack-logo
핀다
techstack-logo
뤼이드
techstack-logo
직방
techstack-logo
파운트
techstack-logo
식스샵
techstack-logo
숨고
techstack-logo
클래스101
techstack-logo
바로고
techstack-logo
디셈버앤컴퍼니
techstack-logo
당근
techstack-logo
모두싸인
techstack-logo
버킷플레이스
더 보기
기술 블로그 글
카카오
if(kakaoAI)2024, FrontEnd 기술 세션 소개
if(kakaoAI)2024의 ‘FE(Frontend)’ 세션은 총 9개 세션으로 아래와 같습니다. 효율적인 방법론에 대한 고민부터, 지표 모니터링, 뷰어/플러그인/라이브러리 개발, UX와 성능 개선기까지, 카카오의 다양한 프론트엔드 개발 경험과 기술 적용 사례를 공유합니다.• TDD로 앞서가는 프론트엔드 : 디자인, API 없이도 개발을 시작하는 방법 (김선호) 1년간 진행된 카카오맵 매장관리 프로젝트에서 TDD를 활용하여, 디자인, 마크업, API 없이도 프론트엔드 개발을 사전에 진행했던 경험을 바탕으로 새로운 프로세스를 공유 합니다. 이를 통해 프론트엔드 개발을 보다 효율적으로 진행할 수 있는 방법론을 소개하고자 합니다.• 선물하기 프론트엔드 성능 개선기 (문지호) 선물하기 프론트엔드 성능을 개선하면서 고민 했던 것들을 이야기하며, 그리고 성능 개선을 위해 적용한 기술들에 대해 공유합니다.• 서비스 UX는 내가 직접 지킨다 : 웹 이미지 뷰어 ‘포커스’ 개발 및 적용기 (송가람, 한상미) 관심과 우선순위를 받기 어려운 UX 관련 과제를 시작하고 성공적으로 적용하는 과정에서 직면한 여러 문제와 이를 극복하며 배운 경험을 공유합니다. UX 과제를 추진하는 데 필요한 노하우와 성공 사례를 소개 합니다.• 웹 성능 게이트 키퍼 : 웹 성능 모니터링 서비스, ‘파루스’의 기술과 활용 (정현규, 남민우) 좋은 품질의 웹서비스를 제공하기 위해 성능 모니터링과 개선이 중요합니다. 카카오 FE 플랫폼에서는 웹 성능 모니터링 서비스 '파루스(Pharus)'를 개발하여 100개 이상의 서비스와 1000여 개 페이지 성능을 일관되게 모니터링하고 분석 리포트를 제공한 이야기를 소개 합니다. 또한 ‘파루스’의 주요 기능과 기술, 활용 사례를 공유합니다.• 웹 카카오톡의 상태 관리 : 바닐라 상태 관리 모듈과 리액트의 조화 (이기웅) 웹카카오톡 개발 시 상태 관리 로직은 vanilla JS로, 화면 구성은 React로 분리하여 개발한 경험을 소개합니다. 리액트 생태계의 일반적인 상태 관리 도구(zustand, redux 등)를 사용하지 않고 vanilla JS로 직접 개발한 이유와, 그 과정에서 마주한 장단점을 공유합니다.• 접근성 작업을 도와주는 ESlint Plugin 개발기 (최종선) 팀 내에서 접근성 개선을 진행하면서 접근성 위반 사항을 더 쉽게 알 수 있는 방법에 대해 고민한 스토리를 기반으로, 궁금증에 대한 해결 방안으로 ‘Unit test’나 ‘story book’을 돌리지 않아도 접근성 위반 사항을 알려주는 ESLint 플러그인을 개발한 경험을 공유합니다.• Node.js(Next.js) 애플리케이션 모니터링을 위한 메모리 인사이트 (김준태) Node.js 애플리케이션의 메모리 지표와 Native API를 사용한 데이터 측정 방식을 소개합니다. 메모리 릭이 의심스러운 지표, Node.js(V8) 메모리 구조 이해, 메모리 관련 모니터링 지표 이해, 그리고 Node.js(V8) 내부 메모리 데이터 측정 과정을 공유합니다.• 우리는 왜 차트를 쪼갰
nodejs
reactjs
카카오
if(kakaoAI)2024 둘째 날, 기술 세션 소개
if(kakaoAI)2024 둘째 날은 , , , , , 개발 생산성, 개발 방법론 등에 대해 이야기합니다. 총 31개의 오후 기술 세션들이 아래와 같이 진행됩니다.• 밑바닥부터 시작하는 LLM 개발기 (김보섭, 온경운) 카카오의 자체 대규모 언어 모델(LLM) 개발 과정과 도전 과제, 해결 경험을 소개합니다. 데이터 수집과 전처리, LLM의 pre-training과 post-training을 거친 모델 개발 전반을 공유하며, 그 과정에서 마주한 주요 문제와 해결 방안에 대해 살펴보는 기술을 이야기 합니다.• 빠르고 비용 효율적으로 LLM 서빙하기 (양정석) 경제적인 LLM 서비스 개발을 목표로 LLM의 추론 비용을 최적화하기 위해 진행한 다양한 고민과 실험 내용을 기반으로, 비용 효율적인 LLM 구축을 위한 실험 과정과 최적화 전략을 살펴보는 시간을 공유합니다.• CodeBuddy와 함께하는 AI 코드리뷰 (이호정, 신현웅) 카카오의 AI 코드 리뷰어 'CodeBuddy’는 단순히 결함을 찾는 것을 넘어, 맥락과 실용성을 중시하는 코드 리뷰를 제공합니다.이번 발표에서는 카카오의 코드 리뷰 철학, 'CodeBuddy’의 아키텍처와 주요 기능, 그리고 모델 파인튜닝을 통한 리뷰의 정확성 향상 과정을 소개합니다. 카카오의 AI Native 여정을 경험해볼 수 있는 시간을 공유합니다.• AI Assistant와 통합 지식베이스를 통한 AI Native Company 구현 (황민호) 기업의 효율성과 생산성을 높이기 위해 AI 기술 도입은 필수적입니다. 이번 발표는 사내 시스템에 AI 기능을 접목해 업무 효율성을 극대화하는 과정을 소개합니다. AI Assistant와 통합 지식베이스를 구축하여 다양한 업무 도구와 시스템을 연동하고, 지능적 검색 및 자동화 기능을 제공하는 스마트 환경을 구축하는 방법을 공유합니다.• 광고 소재 심사 과정에서 AI를 도입하여 광고 서비스 생산성 향상시키기 (백수희, 이상헌) 광고 소재 심사 과정에 AI 모델을 활용해 심사 가이드라인에 부적합한 소재를 자동으로 분류하는 프로세서 도입 과정을 소개합니다. 또한, 모델의 지속적 학습이 가능한 워크플로우를 구축해 업무 생산성을 극대화한 사례를 공유하는 기술 스토리를 공유합니다.• AI기반 광고 콘텐츠 모니터링 기술 개발기 (민규식) 부적절한 광고소재 콘텐츠의 모니터링을 위해 사용한 이미지-텍스트 유사도 도출 모델의 소개와 학습 과정을 이야기 하며, 이를 고도화하기 위한 기술 개발 과정과, 기반 기술을 활용한 응용 사례를 공유합니다.• 카카오톡 미니 이모티콘 in Android (원승주, 이상훈) 카카오톡에 새롭게 출시된 미니 이모티콘의 안드로이드 개발 과정을 소개합니다. Span을 이용한 미니이모티콘 렌더링과 비트맵 관리 방법, 서로 다른 이모티콘의 동작 싱크 조정 방법을 설명합니다. 또한, 키보드에서 입력된 미니 이모티콘이 전송될 때의 데이터 추출 과정, InputFilter와 TextWatcher를 활용한 입력창의 요구 사항 달성 경험, 그리고 어려움을 극복한 과정을 공
kakaotalk
nodejs
reactjs
SK텔레콤
Keycloak 활용한 SSO 구현 : #1 eksctl로 쉽게 시작하는 Kubernetes 클러스터 및 노드그룹 생성하기
오늘날 다양한 애플리케이션을 사용하면서 여러 계정을 관리하는 것은 상당한 부담이 될 수 있습니다.이러한 문제를 해결하는 데 중요한 역할을 하는 것이 바로 SSO(Single Sign-On)입니다.SSO는 사용자가 하나의 계정으로 여러 애플리케이션에 안전하게 로그인할 수 있도록 해주며, 보안성과 사용자 경험 모두를 개선하는 핵심 기술입니다.Keycloak은 오픈 소스 Identity 및 Access Management 솔루션으로, SSO 구현을 손쉽게 도와줍니다.다양한 애플리케이션과의 통합이 용이하고, 사용자 인증, 권한 관리, LDAP 통합, 소셜 로그인 기능 등을 간단하게 설정할 수 있어 많은 개발자와 기업이 이를 채택하고 있습니다.이 글에서는 Kubernetes 환경에서 Keycloak을 활용하여 SSO를 구축하는 과정을 단계별로 안내합니다.클라우드 환경에서 Kubernetes와 eksctl을 이용해 클러스터를 설정하는 것부터 Ingress 컨트롤러와 Let's Encrypt를 통해 HTTPS 보안을 설정하는 방법까지 다룰 예정입니다.또한, Keycloak을 설치하고 샘플 애플리케이션과의 SSO 연동을 테스트하는 과정도 상세히 설명하겠습니다.SSO 구축이 처음이시거나 Keycloak에 대해 궁금한 점이 있으신 분들이라면, 이 연재를 통해 완성도 높은 SSO 환경을 구성하는 방법을 배울 수 있을 것입니다. 그럼 첫 단계부터 시작해 보겠습니다!• None 완벽한 HTTPS 보안: Ingress 컨트롤러와 Let's Encrypt으로 무료 인증서 설정하기• None Keycloak 설치부터 설정까지: SSO를 위한 첫걸음• None SSO 연동 샘플 애플리케이션 구성하기: 실전 가이드• None SSO 연동 테스트: Keycloak과 애플리케이션의 완벽한 통합다음은 eksctl을 활용하여 Kubernetes 클러스터 및 노드그룹 생성에 대한 설치 가이드 입니다.Keycloak 설정에 앞서서 eksctl 를 활용하여 간편하게 기본 인프라 구성을 진행합니다.• None AWS CLI가 설치되어 있어야 합니다.• None 적절한 AWS 권한이 있는 IAM 사용자 또는 역할이 필요합니다.• None kubectl도 설치되어 있어야 Kubernetes 클러스터와 상호작용할 수 있습니다.eksctl 명령어로 Kubernetes 클러스터를 생성할 때 직접 명령어 인수로 설정값을 지정할 수 있지만, cluster.yaml 파일을 사용하면 더욱 복잡한 설정을 한 곳에 체계적으로 관리할 수 있습니다.예를 들어, 클러스터의 이름, Kubernetes 버전, VPC 설정, 노드 그룹의 세부 구성, 태그, IAM 역할 등을 모두 정의할 수 있습니다.클러스터 생성: cluster.yaml 파일을 작성한 후 eksctl 명령어를 사용하여 해당 파일 기반으로 클러스터를 생성할 수 있습니다.유지 관리: cluster.yaml을 사용하면 동일한 설정으로 클러스터를 재생성하거나, 필요할 경우 설정을 수정하여 다시 적용할 수 있어, 클러스터 관리가 체계적으로 이루어집니다.확
kubernetes
nodejs
SK텔레콤
에이닷 RAG 기능 개발을 위한 Qdrant 벡터 DB 구축 (from source tarball)
에이닷에서 파인튜닝을 통해 각 도메인별 특화 데이터를 추가 학습시켜 맞춤형 모델을 만들고 있지만실시간으로 업데이트 되는 동적인 데이터에 대한 대응 그리고 할루시네션 억제, 모델 외부 데이터의 대한 접근을 위해서는 RAG 기능 활용하는게 옳은 선택이라고 합니다.RAG 기능 구현에 있어 VectorDB는 필수 솔루션이며, 여러 VectorDB 중에서 현재 플랫폼에서 스테이징으로 이용하고 있는 Qdrant 구축 내용을 공유하고자 합니다.일반적인 Cloud 솔루션, Kubernetes , Docker 방식이 아닌 정통(?) 방식의 source tarball를 이용한 컴파일 및 Qdrant Cluster 구성방식 입니다.위 링크 내용과 같이 Qdrant 설치에 있어 추천하는 Production 방식은 Qdrant Cloud, Kubernetes Helm, Qdrant Kubernetes Operator, Docker and Docker Compose 입니다.플랫폼에서는 대부분 On-premise 환경을 이용하기 때문에 Kubernetes와 Docker 방식이 적합한걸로 판단되었습니다.현재 내부 정책상 Redis, MongoDB, MySQL, Kafka 등 플랫폼에서 사용하는 주요 stateful 솔루션은 독립된 서버 호스트를 이용 Cluster로 구성하여 이용하고 있습니다.단일 솔루션의 장애가 다른 솔루션으로 전파되는걸 방지하는 목적이며, 그렇기 때문에 Kubernetes 방식은 차선택으로 우선순위가 밀리게 되었습니다.Docker 방식으로 구성을 검토하면서, Qdrant github의 Dockerfile 내부에서 소스파일 컴파일을 진행하는걸 확인했습니다.위 내용을 보면서 추가적인 Docker 레이어 없이 프로세스를 직접 컨트롤 할 수 있는 바이너리 형태로 서비스 운영이 가능하다고 판단하여 source tarball를 이용한 소스컴파일로 서비스 구성을 결정하였습니다.소스 컴파일은 Qdrant에서 추천하는 방식은 아닙니다. 그렇기 때문인지 컴파일을 위한 설명이 매우 미비합니다.Qdratn Github의 Dockerfile을 참고하여 컴파일 과정을 이해 하였고 아래 내용부터는 해당 과정을 정리하였습니다.• None Node : Cluster 구성을 위해 Baremetal 노드 3대 (VM구성시 최소 메모리는 6GB 이상 필요)• None 서비스 운영 환경에 따라 스펙이 변경되어야 하므로 상세 스펙은 생략• None 컴파일시 실제 메모리 사용이 6GB이상 발생하는것 확인 되었습니다.• None Network : 각 노드가 Master 역할을 하며, HA 위해 L4 스위치 이용하는걸 추천합니다.라이브러리 및 소스 다운로드로 위해 모든 노드들은 임시로 Outbound Any Open 된 상태가 되어야 합니다.참고로 Qdrant Github releases 에서 x86_64 범용 바이너리를 패키지를 제공하나 RHEL 8.x , RHEL 9.x , CentOS Stream 9 에서는 gcc 및 주요 라이브러리 버전 이슈로 사용이 어렵습니다.Qdrant는 Rus
docker
github
kubernetes
nodejs
rust
연관 기술 스택
techstack-logo
ExpressJS
techstack-logo
Fastify
techstack-logo
NestJS
Copyright © 2024. Codenary All Rights Reserved.