22P by xguru 1달전 | favorite | 댓글 10개

테크닉/도구/플랫폼/개발언어 및 프레임워크 분야의 최신 트렌드들을 Hold/Assess/Trial/Adopt 4단계로 시각화 및 설명

코딩 어시스턴스 안티패턴

  • 놀랍지 않게도, 이번 Radar에서는 개발자들이 일반적으로 사용하는 생성 AI와 LLM에 대한 논의가 주를 이룸
  • 패턴은 필연적으로 안티패턴으로 이어지는데, 이는 개발자가 피해야 할 상황화된 상황을 의미함
  • 과열된 AI 공간에서 일부 안티패턴이 나타나기 시작하고 있음:
    • 사람이 AI를 동반자로 페어 프로그래밍을 완전히 대체할 수 있다는 잘못된 생각
    • 코딩 지원 제안에 과도하게 의존
    • 생성된 코드의 코드 품질 문제
    • 코드베이스의 더 빠른 성장률
  • AI는 추상화를 사용하기보다는 무차별적인 방식으로 문제를 해결하는 경향이 있음
    • 예: Strategy 디자인 패턴 대신 수십 개의 조건문을 사용
  • 특히 코드 품질 문제는 개발자와 아키텍트가 "작동은 하지만 끔찍한" 코드에 빠지지 않도록 지속적인 주의를 기울여야 할 영역을 강조함
  • 따라서 팀원들은 단위 테스트, 아키텍처 적합성 함수 및 기타 입증된 거버넌스 및 검증 기술과 같은 우수한 엔지니어링 관행에 더욱 주력해야 함
    • 이는 AI가 복잡성으로 코드베이스를 암호화하는 대신 노력을 돕고 있는지 확인하기 위함

Rust is anything but rusty - Rust는 녹슬지 않음

  • Rust는 점차 선호되는 시스템 프로그래밍 언어가 되고 있음
  • 매 Radar 세션에서 Rust는 대화의 맥락에서 반복적으로 등장함
  • 논의되는 많은 도구들이 Rust로 작성됨
  • Rust는 오래된 시스템 수준 유틸리티를 대체하거나 성능 향상을 위해 에코시스템의 일부를 재작성할 때 선호되는 언어임
  • Rust 기반 도구에 대한 가장 흔한 수식어는 "엄청나게 빠른"으로 보임
  • 예를 들어 Python 에코시스템에는 현저히 더 나은 성능을 지원하기 위해 Rust 기반 대안이 있는 여러 도구가 있음
  • 언어 설계자와 커뮤니티는 선행 언어의 많은 함정보다 더 적은 함정으로 탁월한 실행 속도를 제공하면서 핵심 SDK, 라이브러리 및 개발 도구의 잘 좋아하는 에코시스템을 만드는 데 성공함
  • 팀의 많은 사람들이 Rust의 팬이며, Rust를 사용하는 대부분의 개발자가 Rust를 높이 평가하는 것으로 보임

WASM의 점진적 부상

  • WASM(WebAssembly)은 스택 기반 가상 머신을 위한 바이너리 명령어 형식임
  • 대부분의 개발자 관심사에는 너무 난해하고 낮은 수준으로 들리지만, 사람들은 그 의미를 봄: 브라우저 샌드박스 내에서 복잡한 애플리케이션을 실행할 수 있는 능력
  • WASM은 기존 JavaScript 가상 머신 내에서 실행될 수 있어, 개발자가 이전에는 네이티브 프레임워크와 확장에서만 구현할 수 있었던 애플리케이션을 브라우저에 내장할 수 있게 함
  • 4대 주요 브라우저(Chrome, Firefox, Safari, Edge)는 이제 WASM 1.0을 지원하여, 정교한 이식 가능하고 크로스 플랫폼 개발을 위한 흥미로운 가능성을 열어줌
  • 지난 몇 년 동안 이 표준을 큰 관심을 가지고 지켜봤으며, 이제 합법적인 배포 대상으로서의 능력을 발휘하기 시작하는 것을 기쁘게 생각함

생성 AI 도구의 캄브리아기 대폭발

  • 지난 몇 권의 Radar에서 제시된 궤적을 따르면, 생성 AI가 우리의 논의에서 두드러지게 다뤄질 것으로 예상했음
  • 그럼에도 불구하고 우리는 언어 모델을 지원하는 기술 생태계의 폭발에 여전히 놀랐음:
    • 가드레일, 평가, 에이전트 구축 도구, 구조화된 출력 작업을 위한 프레임워크, 벡터 데이터베이스, 클라우드 서비스 및 관찰 가능성 도구
  • 이러한 빠르고 다양한 성장은 많은 면에서 완벽하게 이해됨
  • 초기 경험, 즉 일반 텍스트 프롬프트를 언어 모델에 제공하는 단순성은 소프트웨어 제품 엔지니어링으로 이어졌음
  • 이는 사람들이 ChatGPT에 첫 번째 프롬프트를 보낸 후 만들어진 꿈과 과장된 주장에는 미치지 못할 수 있지만, 우리는 많은 고객에게서 생성 AI의 현명하고 생산적인 사용을 볼 수 있으며 이러한 모든 도구, 플랫폼 및 프레임워크는 LLM 기반 솔루션을 프로덕션에 도입하는 데 중요한 역할을 함
  • 2015년경 JavaScript 생태계 폭발의 경우와 마찬가지로 이러한 혼란스러운 성장은 한동안 계속될 것으로 예상됨

[Techniques]

Adopt

  • 1% canary

    • 카나리 배포를 사용해 새 소프트웨어 버전에 대한 초기 피드백 장려 및 위험 감소
    • 새 기능을 1%의 사용자에게 롤아웃하는 기술로 팀이 피드백 캡처, 영향 관찰, 필요시 대응 가능
    • 모바일 앱이나 엣지 컴퓨팅 장치, 소프트웨어 정의 차량 등의 대규모 배포에 중요
  • Component testing

    • 테스트 자동화는 효과적인 소프트웨어 개발의 초석
    • 프론트엔드 테스트에 초점을 맞추어 안정성과 속도 확보
    • 컴포넌트 테스트에 jsdom 사용하여 메모리에서 수행
    • 엔드투엔드 테스트에는 브라우저 툴 사용
  • Continuous deployment

    • 가능한 지속적 배포 실천 채택
    • 자동화된 테스트를 통과한 모든 변경 사항을 자동으로 운영에 배포
    • 빠른 피드백 루프와 고객에 대한 신속한 가치 전달 가능
    • 필요한 성숙도 달성을 위한 로드맵 제공한 Valentina Servile의 저서 "Continuous Deployment" 참고
  • Retrieval-augmented generation (RAG)

    • 대규모 언어 모델의 응답 품질을 개선하기 위한 선호 패턴
    • Jugalbandi AI 플랫폼 등의 프로젝트에서 성공적으로 사용
    • 관련성 있고 신뢰할 수 있는 문서에 대한 정보를 데이터베이스에 저장
    • 프롬프트에 대한 관련 문서 검색 및 증강하여 풍부한 컨텍스트 제공
    • 더 나은 출력 품질 산출 및 환각 크게 감소

Trial

  • Domain storytelling

    • 도메인 주도 설계(DDD)가 우리 소프트웨어 개발 접근 방식의 기반이 됨
    • 많은 팀에서 DDD 시작이 어려움
    • 도메인 스토리텔링은 초기 도메인 모델 개발에 대한 대안 또는 보완책
    • 비즈니스 전문가들의 활동 설명을 도식화하여 이해 공유 명확화
  • Fine-tuning embedding models

    • 검색 증강 생성을 기반으로 한 LLM 앱 구축 시 임베딩의 품질이 검색 및 응답에 직접적 영향
    • 특정 작업 또는 도메인에 대한 임베딩의 정확도와 적절성 향상 가능
    • 도메인별 LLM 앱에서 정밀한 정보 추출이 중요한 경우 우리 팀이 임베딩 파인튜닝 수행
    • 이 접근 방식의 장단점 고려 필요
  • Function calling with LLMs

    • 주어진 쿼리와 관련 문서를 기반으로 LLM이 적절한 함수를 결정하고 호출하는 기능
    • LLM이 텍스트 생성 이상의 기능을 수행할 수 있게 확장
    • 함수 또는 API 트리거를 통해 LLM이 이전에는 독립적 기능 범위를 벗어나는 작업 수행
    • LLM이 내부 시스템, 데이터베이스 연결하거나 브라우저를 통한 인터넷 검색도 가능
    • 검색 증강 생성과 에이전트 아키텍처의 맥락에서 이해되어야 할 추상 패턴
  • LLM as a judge

    • 대규모 데이터셋에 대한 질문을 기반으로 답변을 제공할 수 있는 시스템을 구축하지만 답변에 도달한 방법을 따라가기 어려움
    • LLM을 사용하여 또 다른 시스템(LLM 기반일 수도 있음)의 응답 평가
    • 제품 카탈로그의 검색 결과 관련성 및 LLM 기반 챗봇의 사용자 안내 방향 평가에 사용
    • 평가자 시스템의 신중한 설정 및 보정 필요
    • 효율성 향상과 비용 절감으로 이어질 수 있음
  • Passkeys

    • FIDO 연합이 주도하고 Apple, Google, Microsoft가 지원하여 주류 사용성에 근접 중
    • 새로운 로그인 설정 시 키 페어 생성 - 웹사이트는 공개 키 수신, 사용자는 개인 키 보관
    • 비대칭 암호화를 사용하여 로그인 처리
    • 사용자 장치에 저장되고 웹사이트로 전송되지 않는 개인 키 소유 증명
    • Passkey에 대한 액세스는 생체 인식 또는 PIN으로 보호
    • 멀티플랫폼 사용자를 위해 CTAP를 통해 키 생성 또는 로그인 필요 장치 이외의 다른 장치에 Passkey 보관 가능
  • Small language models

    • 큰 언어 모델(LLM)은 유용하지만 크기로 인한 문제 발생 가능
      • 프롬프트 응답에 많은 계산 자원 필요하여 느리고 비쌈
      • 모델이 전용이고 크기 때문에 제3자의 클라우드에서 호스팅해야 하는데 민감한 데이터에 문제
      • 대부분의 경우 모델 훈련이 지나치게 비쌈
    • RAG 패턴으로 기본 모델의 훈련 및 파인튜닝 필요성은 해결 가능하나 비용 및 개인정보 문제는 여전히 남음
    • 작은 언어 모델(SLM)에 대한 관심 증가
      • 가중치와 정밀도가 더 적음(일반적으로 35억~100억 개 매개변수)
      • 적절한 컨텍스트에서 올바르게 설정되면 LLM만큼 또는 더 뛰어난 성능 발휘 가능
      • 크기 때문에 에지 장치에서 실행 가능
      • Google의 Gemini Nano, Microsoft의 Phi-3 시리즈 등 빠르게 진화 중인 분야
  • Synthetic data for testing and training models

    • 민감하거나 액세스가 제한된 데이터 소스에 의존하지 않고 실제 시나리오를 모방할 수 있는 인공 데이터 생성 포함
    • 구조화된 데이터 세트에 대한 합성 데이터는 광범위하게 탐구됨
    • 비정형 데이터에 대한 합성 데이터의 재사용 증가
    • 특히 LLM 학습 또는 파인튜닝을 위한 레이블이 있는 도메인별 데이터 부족에 직면한 기업
    • Bonito 및 Microsoft의 AgentInstruct와 같은 도구는 텍스트 문서 및 코드 파일과 같은 원시 소스에서 합성 지침 조정 데이터 생성 가능
    • 수동 데이터 큐레이션에 대한 비용 및 의존성 감소하면서 모델 학습 가속화
    • 불균형하거나 희박한 데이터 문제 해결을 위한 합성 데이터 생성도 중요한 사용 사례
      • 사기 탐지 또는 고객 세분화와 같은 작업에서 흔함
    • SMOTE와 같은 기술은 소수 계층 인스턴스를 인위적으로 생성하여 데이터 세트의 균형을 맞춤
    • 금융과 같은 산업에서는 GAN을 사용하여 드문 거래 시뮬레이션하여 모델이 엣지 케이스 탐지에 강건하게 하고 전반적인 성능 개선
  • Using GenAI to understand legacy codebases

    • 생성 AI(GenAI)와 대규모 언어 모델(LLM)은 개발자가 코드를 작성하고 이해하는 데 도움
    • 특히 문서화가 부실하거나 오래되었거나 오해의 소지가 있는 레거시 코드베이스에 유용
    • 레거시 코드베이스 이해를 위한 GenAI 사용 기술과 제품이 더욱 발전
    • 특히 메인프레임 현대화를 위한 역설계 작업 지원에 성공적으로 사용
    • 코드베이스에 대한 지식 그래프에서 정보 검색이 수행되는 검색 증강 생성(RAG) 접근 방식이 유망
    • 지식 그래프는 LLM이 텍스트 코드에서 파생할 수 있는 것 이상의 코드베이스에 대한 구조적 정보 보존 가능
    • 자체 설명력과 응집력이 떨어지는 레거시 코드베이스에 특히 도움
    • AI의 작업을 용이하게 할 수 있는 기존 및 AI 생성 문서, 외부 종속성, 비즈니스 도메인 지식 등으로 그래프를 추가로 보강하는 기회도 존재

Assess

  • AI team assistants

    • AI 코딩 지원 도구는 주로 개별 기여자의 작업 지원 및 향상 맥락에서 논의됨
    • 그러나 소프트웨어 제공은 팀워크였고 앞으로도 그럴 것이므로 10배 엔지니어 대신 10배 팀 창출을 돕는 AI 팀 어시스턴트 만드는 방법 모색 필요
    • 최근 도구 시장 발전으로 이를 현실화하는 데 한 걸음 더 다가섬
      • Unblocked는 팀의 모든 지식 소스를 통합하고 팀원의 도구에 지능적으로 통합하는 플랫폼
      • Atlassian의 Rovo는 가장 널리 사용되는 팀 협업 플랫폼에 AI 도입하여 문서에 대한 새로운 유형의 검색 및 액세스 제공
    • 우리는 지식 증폭 및 팀 실천 지원을 위한 AI의 잠재력을 직접 탐구
      • Haiven 팀 어시스턴트를 오픈소스로 제공하고 요구 사항 분석과 같은 비코딩 작업에 대한 AI 지원으로 학습 시작
  • Dynamic few-shot prompting

    • few-shot 프롬프팅을 기반으로 모델 응답을 안내하기 위해 특정 예제를 프롬프트에 동적으로 포함
    • 이러한 예제의 수와 관련성을 조정하여 컨텍스트 길이와 관련성을 최적화하여 모델 효율성과 성능 개선
    • scikit-llm과 같은 라이브러리는 사용자 쿼리와 일치하는 가장 관련성 높은 예제를 가져오기 위해 최근접 이웃 검색을 사용하여 이 기술 구현
    • 모델의 제한된 컨텍스트 창을 더 잘 활용하고 토큰 소비 감소
    • 오픈소스 SQL 생성기 vanna는 응답 정확도 향상을 위해 동적 few-shot 프롬프팅 활용
  • GraphQL for data products

    • 데이터 제품의 출력 포트로 GraphQL을 사용하여 클라이언트가 제품을 소비하는 기술
    • GraphQL을 사용하여 기본 데이터 복잡성을 추상화하고 클라이언트에 더 일관되고 관리하기 쉬운 인터페이스를 제공하는 통합 API 계층 생성
    • 데이터 제품에 GraphQL 사용 시 소비자가 GraphQL 스키마로 데이터 형식과 관계를 원활하게 발견하고 친숙한 클라이언트 도구 사용 가능
    • 우리 팀은 LLM의 도움으로 빅데이터 통찰력을 탐색하고 발견하기 위한 특정 사용 사례에서 이 기술 탐구 중
      • LLM이 사용자 프롬프트와 참조용 GraphQL 스키마를 기반으로 GraphQL 쿼리 구성
  • LLM-powered autonomous agents

    • Autogen 및 CrewAI와 같은 프레임워크의 등장으로 단일 에이전트 및 정적 다중 에이전트 시스템을 넘어 발전 중
    • 복잡한 활동을 여러 작은 작업으로 분해하고 각 에이전트에 특정 역할 할당하여 수행하는 기술
    • 개발자는 작업 수행을 위한 사전 구성된 도구를 사용하고 에이전트는 서로 대화하며 흐름 조율 가능
    • 아직 초기 개발 단계로 우리 팀은 에이전트가 연속 루프에 빠지거나 제어되지 않는 동작 등의 문제 직면
    • LangGraph와 같은 라이브러리는 흐름을 그래프로 정의할 수 있는 기능으로 에이전트 상호작용에 대한 더 큰 제어력 제공
    • 이 기술 사용 시 타임아웃 및 사람의 감독을 포함한 장애 안전 메커니즘 구현 제안
  • Observability 2.0

    • 전통적이고 이질적인 모니터링 도구에서 단일 데이터 저장소의 구조화되고 높은 카디널리티의 이벤트 데이터를 활용하는 통합 접근 방식으로의 전환
    • 풍부하고 원시적인 이벤트를 상세한 메타데이터와 함께 캡처하여 포괄적 분석을 위한 단일 진실 원천 제공
    • 이벤트를 원시 형태로 저장하여 상관관계를 단순화하고 실시간 및 포렌식 분석을 지원하며 복잡하고 분산된 시스템에 대한 더 깊은 통찰력 가능
    • 고해상도 모니터링과 동적 조사 기능 제공
    • 성능 병목 현상 없이 상세 검사를 위해 높은 카디널리티와 고차원 데이터 캡처에 우선순위
    • 통합 데이터 저장소는 복잡성을 줄이고 시스템 동작에 대한 일관된 보기를 제공하며 관찰 가능성 실천 방식을 소프트웨어 개발 수명 주기와 더 밀접하게 정렬
  • On-device LLM inference

    • 이제 웹 브라우저 및 스마트폰, 노트북과 같은 에지 디바이스에서 대규모 언어 모델(LLM) 실행 가능
    • 클라우드 전송 없이 민감한 데이터를 안전하게 처리하고, 에지 컴퓨팅 및 실시간 이미지/비디오 처리와 같은 작업에 매우 낮은 지연 시간을 제공하며, 로컬에서 계산을 수행하여 비용을 절감하고, 인터넷 연결이 불안정하거나 사용할 수 없는 경우에도 기능 제공
    • 연구 개발이 활발한 분야로 이전에 Apple 실리콘에서 효율적인 기계 학습을 위한 오픈 소스 프레임워크인 MLX 강조
    • Transformers.js 및 Chatty와 같은 새로운 도구 등장
      • Transformers.js는 ONNX Runtime을 사용하여 브라우저에서 변환기 실행 가능(PyTorch, TensorFlow, JAX에서 변환된 모델 지원)
      • Chatty는 WebGPU를 활용하여 LLM을 브라우저에서 기본적이고 비공개로 실행하여 풍부한 기능의 AI 경험 제공
  • Structured output from LLMs

    • 언어 모델의 응답을 정의된 스키마로 제한하는 관행 의미
    • 일반화된 모델에 특정 형식으로 응답하도록 지시하거나 JSON과 같은 "기본" 출력을 위해 모델을 파인튜닝하여 달성 가능
    • OpenAI는 이제 구조화된 출력을 지원하여 개발자가 JSON 스키마, pydantic 또는 Zod 객체를 제공하여 모델 응답을 제한할 수 있음
    • 함수 호출, API 상호작용, 외부 통합 등에서 정확성과 형식 준수가 중요한 경우 특히 유용
    • 코드와의 인터페이스 방식 개선뿐 아니라 차트 렌더링을 위한 마크업 생성과 같은 광범위한 사용 사례 지원
    • 모델 출력 내 환각 가능성 감소에도 도움 됨

Hold

  • Complacency with AI-generated code

    • GitHub Copilot 및 Tabnine과 같은 AI 코딩 어시스턴트가 매우 인기
    • StackOverflow의 2024년 개발자 설문조사에 따르면 "모든 응답자의 72%가 개발을 위한 AI 도구에 호의적이거나 매우 호의적"
    • 우리도 그 이점을 인식하지만 코드 품질에 미치는 중장기적 영향에 대해 경계하고 개발자에게 AI 생성 코드에 대한 자족에 주의 당부
    • 몇 번의 긍정적인 경험 후 AI 제안을 검토할 때 경계심을 늦추기 쉬움
    • GitClear의 연구에 따르면 더 빠르게 성장하는 코드베이스 추세를 보여주며, 이는 더 큰 풀 요청과 일치한다고 의심
    • GitHub의 이 연구는 언급된 풀 요청 병합률 15% 증가가 실제로 좋은 일인지 아니면 사람들이 AI 결과를 너무 많이 신뢰하여 더 큰 풀 요청을 더 빨리 병합하는 것인지 의문
    • 우리는 여전히 1년 전에 제공한 기본 "시작하기" 조언을 사용 중이며, 자동화 편향, 매몰 비용 오류, 고정 관념, 검토 피로에 주의해야 함
    • 또한 프로그래머가 AI를 사용하고 신뢰하지 말아야 할 곳과 시기에 대한 좋은 정신적 프레임워크를 개발하는 것이 좋음
  • Enterprise-wide integration test environments

    • 일반적이고 낭비적인 관행으로 모든 것을 느리게 만듦
    • 복제하기 어렵고 개발의 병목 현상이 되는 소중한 자원이 되기 마련
    • 환경 간 불가피한 데이터 불일치 및 구성 오버헤드로 인해 거짓 보안 감각 제공
    • 대안(임시 환경 또는 여러 온프레미스 테스트 환경)에 대한 일반적인 반대 이유는 아이러니하게도 비용
    • 그러나 기업 전체 통합 테스트 환경으로 인한 지연 비용을 고려하지 않음
      • 개발 팀이 다른 팀이 완료되거나 종속 시스템의 새 버전이 배포되기를 기다리는 동안 발생
    • 대신 팀은 임시 환경을 사용하고 실제 복제본 대신 가짜 스텁을 사용하여 개발 팀이 소유한 테스트 세트를 저렴하게 시작하고 폐기해야 함
    • 이 대안을 지원하는 다른 기술은 계약 테스트, 배포와 릴리스 분리, 평균 복구 시간 및 프로덕션 테스트에 중점을 둠
  • LLM bans

    • 직장에서 포괄적인 LLM 금지를 제정하는 대신 승인된 AI 도구 세트에 대한 액세스 제공에 중점
    • 금지는 직원들이 승인되지 않고 잠재적으로 안전하지 않은 해결 방법을 찾도록 할 뿐
    • 개인용 컴퓨터 초기처럼 사람들은 장벽에 관계없이 효과적이라고 느끼는 도구를 사용하여 작업 수행
    • 안전하고 보증된 대안을 제공하지 않으면 기업은 직원들이 승인되지 않은 LLM을 사용하여 지적 재산권, 데이터 유출 및 책임 위험 초래
    • 대신 안전하고 기업에서 승인한 LLM 또는 AI 도구를 제공하면 안전성과 생산성 모두 보장
    • 잘 관리되는 접근 방식을 통해 조직은 데이터 개인 정보 보호, 보안, 규정 준수 및 비용 문제를 관리하면서 직원에게 LLM이 제공하는 기능 부여 가능
    • 가장 좋은 경우 AI 도구에 대한 잘 관리된 액세스는 직장에서 AI를 사용하는 최선의 방법에 대한 조직 학습 가속화 가능
  • Replacing pair programming with AI

    • 코딩 어시스턴트에 대해 이야기할 때 페어 프로그래밍 주제는 불가피하게 나옴
    • 우리 직업은 페어 프로그래밍과 사랑과 증오의 관계
      • 일부는 맹세하고 다른 이들은 견딜 수 없어함
    • 이제 코딩 어시스턴트는 인간이 다른 인간 대신 AI와 짝을 이루고 팀을 위해 동일한 결과를 얻을 수 있는지에 대한 의문 제기
    • GitHub Copilot은 심지어 자신을 "당신의 AI 페어 프로그래머"라고 부름
    • 코딩 어시스턴트가 페어 프로그래밍의 일부 이점을 제공할 수 있다고 생각하지만 AI로 페어 프로그래밍을 완전히 대체하는 것은 권장하지 않음
    • 코딩 어시스턴트를 페어 프로그래머로 간주하면 페어링의 주요 이점 중 하나인 개별 기여자가 아닌 팀을 더 나은 방향으로 이끄는 것을 무시하게 됨
    • 코딩 어시스턴트는 막힌 부분을 해결하고, 새로운 기술을 배우고, 온보딩하거나 전술적 작업을 더 빠르게 수행하여 전략적 설계에 집중할 수 있도록 하는 데 도움이 될 수 있음
    • 그러나 진행 중인 작업을 낮게 유지하고, 핸드오프와 재학습을 줄이며, 지속적인 통합을 가능하게 하고, 집단 코드 소유권을 개선하는 등의 팀 협업 이점에는 도움이 되지 않음

[Platforms]

Adopt : 없음

Trial

  • Databricks Unity Catalog

    • Lakehouse의 파일, 테이블, ML 모델과 같은 자산을 위한 데이터 거버넌스 솔루션임
    • 외부 저장소나 Databricks 관리 하의 데이터를 관리하고 쿼리하는데 사용할 수 있는 관리형 오픈소스 솔루션임
    • 거버넌스, 메타스토어 관리, 데이터 검색을 통합 지원하여 여러 도구 관리 필요성을 줄여주는 장점이 있음
    • Databricks 관리형 Unity Catalog의 자동 재해 복구 부재가 단점으로 확인됨
      • 팀에서 백업 및 복구 기능을 직접 구성해야 했음
    • 중앙 집중식 솔루션이지만 개별 팀이 자체 자산을 관리할 수 있도록 권한 위임이 가능함
  • FastChat

    • 대규모 언어 모델의 학습, 서빙, 평가를 위한 오픈 플랫폼임
    • 여러 모델(Llama 3.1, Mistral 7B, Llama-SQL 등)을 OpenAI API 형식으로 일관되게 호스팅 가능함
    • 컨트롤러-워커 아키텍처를 사용하여 다양한 모델을 여러 워커에서 호스팅함
    • vLLM, LiteLLM, MLX 등 다양한 워커 유형을 지원함
    • 사용 사례에 따라 다른 유형의 FastChat 모델 워커를 생성하고 확장 가능함
      • 개발자 IDE의 코드 제안은 낮은 지연 시간이 필요하여 여러 워커로 확장
      • Text-to-SQL은 수요가 낮아 다중 워커가 불필요함
    • A/B 테스트에 활용 가능함
      • 동일 모델에 다른 하이퍼파라미터 값을 설정하여 최적값 식별
      • 라이브 서비스의 모델 전환 시 무중단 마이그레이션 검증 가능
  • GCP Vertex AI Agent Builder

    • 자연어 또는 코드 우선 접근 방식으로 AI 에이전트를 만들 수 있는 유연한 플랫폼임
    • 서드파티 커넥터를 통해 기업 데이터와 원활하게 통합됨
    • AI 에이전트 구축, 프로토타입 제작, 배포에 필요한 모든 도구를 제공함
    • 개발자가 최소한의 설정으로 에이전트를 신속하게 프로토타입하고 복잡한 데이터 작업을 처리할 수 있음
    • 구조화/비구조화 데이터를 효율적으로 관리하는 지식 기반 또는 자동화된 지원 시스템 구축에 유용함
  • Langfuse

    • LLM 기반 애플리케이션의 관찰, 모니터링, 평가를 위한 도구임
    • 트레이싱, 분석, 평가 기능을 통해 완료 성능과 정확도를 분석할 수 있음
    • 비용과 지연 시간을 관리하고 프로덕션 사용 패턴을 이해하여 데이터 기반 개선이 가능함
    • 요청-응답 흐름과 중간 단계의 완전한 추적성을 제공하는 계측 데이터를 활용함
    • RAG 및 LLM 기반 자율 에이전트와 함께 사용 가능함
    • 낮은 점수의 대화 추적을 분석하여 아키텍처의 개선이 필요한 부분을 식별할 수 있음
  • Qdrant

    • Rust로 작성된 오픈소스 벡터 유사도 검색 엔진 및 데이터베이스임
    • 다양한 텍스트 및 멀티모달 밀집 벡터 임베딩 모델을 지원함
    • MiniLM-v6 및 BGE와 같은 오픈소스 임베딩을 여러 제품 지식 기반에 활용 가능함
    • 다중 테넌시를 지원하는 엔터프라이즈 벡터 스토어로 사용됨
    • 벡터 임베딩을 별도 컬렉션으로 저장하여 각 제품의 지식 기반을 격리함
    • 사용자 액세스 정책은 애플리케이션 계층에서 관리됨
  • Vespa

    • 오픈소스 검색 엔진 및 빅데이터 처리 플랫폼임
    • 낮은 지연 시간과 높은 처리량이 필요한 애플리케이션에 적합함
    • 여러 검색 기술을 사용한 하이브리드 검색 구현이 가능함
    • 다양한 메타데이터의 효율적인 필터링과 정렬을 지원함
    • 다단계 순위 지정 구현이 가능함
    • 문서당 여러 벡터를 중복 없이 인덱싱할 수 있음
    • 여러 인덱싱된 필드에서 한 번에 데이터 검색이 가능함

Assess

  • Azure AI Search

    • 지식 기반 등의 애플리케이션을 위한 구조화/비구조화 데이터 처리용 클라우드 기반 검색 서비스임
    • 키워드, 벡터, 하이브리드 검색 등 다양한 유형의 검색을 지원함
    • PDF, DOC, PPT 등 일반적인 비구조화 데이터 형식을 자동으로 수집하여 검색 가능한 콘텐츠 생성이 가능함
    • Azure OpenAI 등 다른 Azure 서비스와 통합되어 최소한의 수동 통합으로 애플리케이션 구축이 가능함
    • Azure 환경에서 호스팅되는 프로젝트에 적합하며 안정적인 성능을 보임
    • 사용자 정의 스킬을 통해 특정 데이터 처리 단계를 정의할 수 있음
  • Databricks Delta Live Tables

    • 신뢰할 수 있고 유지보수가 용이하며 테스트 가능한 데이터 처리 파이프라인 구축을 위한 선언적 프레임워크임
    • 선언적 접근 방식으로 데이터 변환을 정의하고 기반 인프라와 데이터 흐름을 자동으로 관리함
    • 강력한 모니터링 기능을 제공하며 전체 데이터 파이프라인의 DAG를 시각적으로 표현함
    • 데이터 계보와 종속성 추적에 유용함
    • Databricks 생태계와 깊이 통합되어 있어 인터페이스 사용자 정의에 제약이 있을 수 있음
  • Elastisys Compliant Kubernetes

    • 의료, 금융, 정부와 같은 고도로 규제된 산업을 위한 특수 Kubernetes 배포판임
    • 자동화된 보안 프로세스를 제공함
    • 멀티클라우드 및 온프레미스 지원이 가능함
    • 제로 트러스트 보안 아키텍처 기반으로 구축됨
    • GDPR, HIPAA 등의 법률과 ISO27001 같은 통제 준수가 내장되어 있음
  • FoundationDB

    • 2015년 Apple이 인수하고 2018년 오픈소스화된 멀티모델 데이터베이스임
    • 엄격한 직렬화 가능 트랜잭션을 제공하는 분산 키-값 저장소가 핵심임
    • 쓰기 핫스팟 방지를 위한 스마트 데이터 분산, 새로운 스토리지 엔진 등 주요 개선이 이루어짐
    • 언번들 아키텍처를 통해 클러스터의 다양한 부분을 독립적으로 확장 가능함
    • 광범위한 기능에도 불구하고 대규모 클러스터 운영이 용이함
  • Golem

    • 내구성 있는 컴퓨팅을 위한 명시적 상태 머신 아키텍처를 사용하는 분산 컴퓨팅 플랫폼임
    • 장기 실행 마이크로서비스 사가나 AI 에이전트 오케스트레이션의 워크플로우에 적합함
    • WebAssembly 컴포넌트를 지원되는 모든 언어로 작성 가능함
    • 결정론적이며 빠른 시작 시간을 지원함
  • Iggy

    • Rust로 작성된 영구 메시지 스트리밍 플랫폼임
    • 다중 스트림, 토픽, 파티션을 지원함
    • 최대 한 번 전달, 메시지 만료, QUIC/TCP/HTTP 프로토콜의 TLS 지원 등을 제공함
    • 단일 서버로 높은 읽기/쓰기 처리량을 달성함
    • 클러스터링과 io_uring 지원이 예정되어 있어 Kafka의 대안이 될 수 있음
  • Iroh

    • IPFS를 발전시킨 분산 파일 저장 및 콘텐츠 전송 시스템임
    • 최대 블록 크기 제한이 없고 범위 기반 세트 조정을 통한 데이터 동기화 메커니즘을 제공함
    • WASM을 통한 브라우저 지원이 로드맵에 포함되어 있음
    • iroh.network를 통해 클라우드 서비스 이용이 가능함
    • 다양한 언어의 SDK를 제공하며 IPFS보다 사용자 친화적임
  • Large vision model (LVM) platforms

    • 비디오 스트림과 이미지의 세그먼트화, 합성, 재구성, 분석이 가능한 대규모 비전 모델 플랫폼임
    • 확산 모델이나 표준 CNN과 결합하여 사용 가능함
    • 프로덕션 환경에서의 적용과 관련된 과제들이 존재함
      • 훈련 데이터 수집, 객체 세그먼트화 및 라벨링, 모델 미세 조정 등
    • V7, Nvidia Deepstream SDK, Roboflow 등의 도구가 이러한 과제 해결을 위해 등장함
    • Deepstream과 Roboflow는 비디오 스트림 관리를 위한 GUI와 API를 통합 제공함
  • OpenBCI Galea

    • 뇌-컴퓨터 인터페이스(BCI)를 위한 비침습적 기술 플랫폼임
    • EEG 등의 전기생리학적 신호를 사용하여 뇌 이식보다 위험이 낮은 대안을 제공함
    • VR 헤드셋 기능과 BCI를 결합한 OpenBCI의 최신 제품임
    • 시간 동기화된 생리학적 데이터 스트림과 공간 위치 센서, 시선 추적을 제공함
    • Unity나 Unreal에서 센서 데이터 사용이 가능함
    • 오픈소스 플랫폼으로 제공되어 연구자들의 혁신을 지원함
  • PGLite

    • PostgreSQL 데이터베이스의 WASM 빌드임
    • Linux 가상 머신 없이 웹 브라우저에서 직접 실행 가능함
    • 메모리 내 임시 데이터베이스 생성 또는 indexedDB를 통한 디스크 지속성 제공
    • Electric과 함께 PostgreSQL 기반의 반응형 로컬 퍼스트 애플리케이션 구축이 가능함
  • SpinKube

    • Kubernetes 상의 WebAssembly를 위한 오픈소스 서버리스 런타임임
    • WebAssembly의 밀리초 단위 시작 시간으로 온디맨드 워크로드에 더 동적이고 유연한 서버리스 솔루션 제공
    • WebAssembly 기반 워크로드의 개발과 배포를 단순화함
  • Unblocked

    • SDLC 자산 및 아티팩트 검색 도구임
    • ALM 및 협업 도구와 통합되어 코드베이스와 관련 리소스의 이해를 돕음
    • 코드에 대한 즉각적이고 관련성 높은 컨텍스트를 제공하여 복잡한 시스템의 탐색과 이해를 용이하게 함
    • 엔지니어링 팀이 작업 관련 논의, 자산, 문서에 안전하게 접근할 수 있음
    • 경험 많은 팀원들의 지식을 캡처하고 공유하여 모든 구성원이 활용할 수 있게 함

Hold : 없음

[Tools]

Adopt

  • Bruno

    • 브루노는 API 테스트, 개발 및 디버깅을 위한 포스트맨과 인섬니아의 오픈 소스 데스크톱 대안
    • 간단한 오프라인 전용 설계로 우수한 협업, 개인 정보 보호 및 보안을 제공하는 것을 목표로 함
    • 컬렉션은 사용자 지정 일반 텍스트 마크업 언어인 브루 랭으로 작성되어 파일 시스템에 직접 저장되며, Git 또는 선택한 버전 제어 도구와 공유하여 협업할 수 있음
    • 데스크톱 앱과 CLI 도구로 사용 가능하며, 공식 VS Code 확장 기능을 제공하고 추가 IDE 지원을 계획하고 있음
    • 여러 씽크웍스 팀의 기본 선택이 되었지만, VPN 및 프록시 환경에서 작업할 때 예기치 않게 실패한 요청이 보고되었기 때문에 주의해야 함
  • K9s

    • K9s는 더 자세한 그래프와 보기를 통합하여 시각화 기능을 개선했음
    • 이제 로그와 메트릭을 더 잘 표현하고 사용자 정의 리소스(CRD)를 더 유연하게 표시함
    • 포드에 대한 작업이 확장되었으며, 디버깅 도구(예: kubectl debug)와의 통합이 강화되고 다중 클러스터 환경에 대한 지원이 향상됨
    • CRD에 대한 지원이 크게 개선되어 이제 이러한 리소스를 더 잘 탐색하고 관리할 수 있으며 사용자 정의 리소스와 상호 작용이 더 원활해짐
    • 단축키 패널도 개선되어 kubectl에 익숙하지 않은 개발자가 더 쉽게 접근할 수 있게 되었음
    • K9s는 초기에 주로 데브옵스 팀에 초점을 맞추었기 때문에 이는 중요한 개선임
  • SOPS

    • SOPS는 KMS로 암호화하는 다양한 파일 형식을 지원하는 암호화된 파일 편집기임
    • 비밀 관리에 있어서 우리의 조언은 항상 소스 코드에서 분리하는 것이었음
    • 그러나 인프라 코드의 정신으로 완전 자동화와 시드 비밀을 관리, 시딩 및 순환하기 위한 몇 가지 수동 단계(금고와 같은 도구 사용) 사이에서 선택해야 할 때 팀은 종종 절충안에 직면함
    • 예를 들어, 우리 팀은 인프라 부트스트랩을 위한 시드 자격 증명을 관리하기 위해 SOPS를 사용함
    • 그러나 일부 상황에서는 레거시 코드 저장소에서 비밀을 제거할 수 없음
    • 이러한 경우 SOPS를 사용하여 텍스트 파일의 비밀을 암호화함
    • SOPS는 암호화 키의 소스로 AWS 및 GCP 키 관리 서비스(KMS) 또는 Azure Key Vault와 같은 클라우드 관리형 키 저장소와 통합됨
    • 또한 크로스 플랫폼에서 작동하며 PGP 키를 지원함
    • 코드 저장소에서 비밀을 관리해야 할 때 우리 팀 중 여러 팀이 기본적으로 SOPS를 사용함
  • Visual regression testing tools

    • 우리는 이전에 시각적 회귀 테스트 도구를 강조했으며 알고리즘이 원시 픽셀 수준 비교에서 정교한 패턴 매칭 및 광학 문자 인식(OCR)으로 진화하는 것을 관찰했음
    • 초기 시각적 회귀 테스트 도구는 많은 거짓 양성을 생성했으며 인터페이스가 안정화되었을 때 개발 후기 단계에서만 유용했음
    • BackstopJS는 셀렉터와 뷰포트를 구성하여 페이지의 특정 요소에 대한 시각적 테스트를 정확히 수행함으로써 이 문제를 피함
    • 그러나 머신 러닝은 시각적 요소가 이동했거나 동적 콘텐츠를 포함하는 경우에도 시각적 요소를 더 정확하게 감지하고 비교하는 것을 더 쉽게 만들었음
    • 이러한 도구는 점점 더 유용해졌으며 AI와 머신 러닝의 최신 개발을 활용하기에 좋은 위치에 있음
    • Applitools와 Percy와 같은 여러 상용 도구는 이제 시각적 회귀 테스트에서 AI를 사용한다고 주장함
    • 우리 팀 중 하나는 Applitools Eyes를 광범위하게 사용해 왔으며 그 결과에 만족하고 있음
    • 시각적 회귀 테스트는 잘 작성된 종단 간 기능 테스트를 대체할 수는 없지만 테스트 도구 상자에 귀중한 추가 사항임
    • 우리는 포괄적인 UI 테스트 전략의 한 요소로 안전한 기본 옵션이 되었기 때문에 이를 채택하고 있음
  • Wiz

    • Wiz는 많은 프로젝트에서 클라우드 보안 플랫폼으로 선택되었음
    • 우리 팀은 변경 사항을 지속적으로 검사하여 유사한 도구보다 위험과 위협을 더 빨리 탐지할 수 있다는 점을 높이 평가함
    • Wiz는 라이브 환경(컨테이너 이미지, 인프라 코드)에 배포되지 않은 아티팩트와 라이브 워크로드(컨테이너, VM 및 클라우드 서비스) 모두에서 잘못된 구성, 취약성 및 유출된 비밀을 탐지하고 경고할 수 있음
    • 우리는 또한 개발 팀과 리더십 모두를 위한 강력한 보고 기능을 높이 평가함
    • 이 분석은 취약성이 특정 서비스에 어떤 영향을 미칠 수 있는지 이해하여 해당 상황에서 문제를 해결할 수 있도록 도와줌

Trial

  • AWS Control Tower

    • AWS Control Tower는 다중 팀 환경에서 AWS 계정을 관리하기 위한 최선의 선택으로 남아있음
    • 새로운 랜딩 존에 자동으로 적용될 보안 및 규정 준수 제어를 사전 구성하는 편리한 메커니즘을 제공함
    • 이는 "변경 시점의 규정 준수"의 예로, 새로운 인프라가 생성될 때마다 제어가 적용되고 검증되어 나중에 수동 규정 준수 검사가 필요하지 않음
    • AWS Control Tower Account Factory for Terraform(AFT)은 마지막 볼륨 이후로 계속 진화해 왔으며 이제 더 많은 AWS 리전에서 사용 가능함
    • AFT를 사용하면 인프라 코드 파이프라인으로 Control Tower 계정을 프로비저닝할 수 있음
    • AFT는 GitHub Actions와 같은 외부 도구와 안전하고 안전하게 통합하기 위해 웹훅을 보내거나 특정 작업을 수행하도록 사용자 정의할 수 있다는 점이 마음에 듦
    • 우리 팀은 AWS Control Tower를 사용하여 계정을 관리한 결과 큰 성과를 거두었지만, 개선의 기회가 있을 때 AWS가 프로젝트에 대한 커뮤니티 기여를 수용하기를 바람
  • CCMenu

    • 지속적 통합을 실천하는 팀에게는 중앙 빌드의 상태를 지속적 통합(CI) 시스템에서 인식하는 것이 중요함
    • 팬데믹 이전에는 팀룸의 대형 TV 화면의 대시보드가 이 정보를 한눈에 제공했음
    • 원격 근무가 지속됨에 따라 개별 개발자 워크스테이션에서 작동하는 솔루션이 필요함
    • Mac의 경우 그 틈새를 CCMenu라는 Thoughtworker가 작성한 작은 앱이 커버함
    • 원래 CruiseControl의 일부였던 이 앱은 Jenkins와 TeamCity를 포함하여 cctray 형식으로 정보를 제공할 수 있는 모든 서버에서 작동함
    • 최근 다시 작성되면서 GitHub Actions에 대한 지원이 추가되었고 더 많은 CI 서버 및 인증 스타일과의 더 깊은 통합을 위한 길이 열렸음
  • ClickHouse

    • ClickHouse는 실시간 분석을 위한 오픈 소스 컬럼형 온라인 분석 처리(OLAP) 데이터베이스임
    • 2009년 실험 프로젝트로 시작되어 성능이 뛰어나고 선형적으로 확장 가능한 분석 데이터베이스로 성숙했음
    • 효율적인 쿼리 처리 엔진과 데이터 압축 기능을 통해 사전 집계 없이 대화형 쿼리를 실행하는 데 적합함
    • ClickHouse는 OpenTelemetry 데이터를 저장하기에 좋은 선택임
    • Jaeger와의 통합을 통해 대량의 추적 데이터를 저장하고 효율적으로 분석할 수 있음
  • Devbox

    • 개발 도구의 발전에도 불구하고 많은 팀에게 일관된 로컬 개발 환경을 유지하는 것은 여전히 도전 과제임
    • 새로운 엔지니어를 온보딩하려면 종종 다양한 시스템에서 예측할 수 없이 실패할 수 있는 명령이나 사용자 지정 스크립트를 실행해야 하며 이는 불일치를 초래할 수 있음
    • 이 문제를 해결하기 위해 우리 팀은 점점 더 Devbox에 의존하고 있음
    • Devbox는 가상 머신이나 컨테이너를 사용하지 않고 Nix 패키지 관리자를 활용하여 재현 가능하고 프로젝트별 로컬 개발 환경을 만들기 위한 접근 가능한 인터페이스를 제공하는 명령줄 도구임
    • 코드베이스에 대해 한 번 구성되면 새 장치에서 정의된 환경을 재현하는 데 하나의 CLI 명령(devbox shell)만 있으면 되므로 온보딩 워크플로를 크게 간소화함
    • Devbox는 VSCode와 통합하기 위해 셸 후크, 사용자 지정 스크립트 및 devcontainer.json 생성을 지원함
  • Difftastic

    • Difftastic은 구문을 인식하는 방식으로 코드 파일 간의 차이점을 강조 표시하는 도구임
    • 이는 Unix diff 명령과 같은 텍스트 차이 도구와는 상당히 다름
    • 예를 들어 Difftastic은 Java나 TypeScript와 같이 세미콜론으로 구분된 언어에서 긴 문장을 나누기 위해 삽입된 줄바꿈을 무시함
    • 이 도구는 프로그램의 구문에 영향을 미치는 변경 사항만 강조 표시함
    • 이를 위해 먼저 파일을 추상 구문 트리로 구문 분석한 다음 다익스트라 알고리즘을 사용하여 트리 간의 거리를 계산함
    • 우리는 큰 코드베이스를 검토할 때 변경 사항을 이해하는 데 특히 Difftastic이 유용하다는 것을 발견했음
    • Difftastic은 파서를 사용할 수 있는 모든 프로그래밍 언어에 사용할 수 있으며 기본적으로 50개 이상의 프로그래밍 언어와 CSS 및 HTML과 같은 구조화된 텍스트 형식을 지원함
    • 이것은 새로운 도구는 아니지만 인간이 개입하는 루프 검토가 점점 더 중요해지는 LLM 코딩 어시스턴트 시대에 주목할 만한 가치가 있다고 생각함
  • LinearB

    • 소프트웨어 엔지니어링 인텔리전스 플랫폼인 LinearB는 엔지니어링 리더에게 지속적인 개선을 지원하기 위한 데이터 기반 통찰력을 제공함
    • 벤치마킹, 워크플로 자동화, 개발자 경험 및 생산성 향상을 위한 목표 투자와 같은 주요 영역을 정렬함
    • LinearB를 사용한 경험은 엔지니어링 팀 내에서 개선과 효율성의 문화를 조성하는 능력을 강조함
    • 우리 팀은 이 플랫폼을 사용하여 핵심 엔지니어링 메트릭을 추적하고 개선이 필요한 영역을 식별하며 증거 기반 조치를 구현했음
    • 이러한 기능은 LinearB의 핵심 가치 제안인 벤치마킹, 메트릭 수집 자동화, 데이터 기반 개선 활성화와 잘 맞음
    • LinearB는 소스 코드, 애플리케이션 수명 주기, CI/CD 및 커뮤니케이션 도구와 통합되며 사전 구성된 엔지니어링 메트릭과 사용자 정의 엔지니어링 메트릭을 사용하여 개발자 경험, 생산성 및 팀 성과에 대한 포괄적인 정량적 통찰력을 제공함
    • DORA 옹호자로서 우리는 LinearB가 이러한 특정 메트릭을 강조하고 효율성 개선에 필수적인 소프트웨어 제공 성과의 주요 측면을 측정하는 능력을 높이 평가함
    • 역사적으로 팀은 DORA 특정 메트릭을 수집하는 데 어려움을 겪었으며 종종 복잡한 사용자 정의 대시보드나 수동 프로세스에 의존했음
    • LinearB는 이러한 메트릭의 추적을 자동화하고 개발자 경험, 생산성 및 예측 가능성에 대한 사전 예방적 의사 결정을 지원하는 실시간 데이터를 제공하는 매력적인 솔루션을 계속 제공하고 있음
  • pgvector

    • pgvector는 PostgreSQL용 오픈 소스 벡터 유사성 검색 확장으로, 단일 잘 설정된 데이터베이스에서 구조화된 데이터와 함께 벡터를 저장할 수 있음
    • 전문 벡터 데이터베이스의 일부 고급 기능은 부족하지만 ACID 준수, 시점 복구 및 PostgreSQL의 기타 강력한 기능의 이점을 누림
    • 생성형 AI 기반 애플리케이션의 증가와 함께 pgvector가 효과적으로 해결하는 유사성을 위해 임베딩 벡터를 저장하고 효율적으로 검색하는 패턴이 증가하고 있음을 확인함
    • pgvector의 프로덕션 환경에서의 사용 증가, 특히 관리형 PostgreSQL을 제공하는 클라우드 공급자를 이미 사용 중인 팀에서의 사용 증가와 별도의 벡터 저장소를 필요로 하지 않고 일반적인 벡터 검색 요구 사항을 충족하는 입증된 능력을 감안할 때 우리는 pgvector의 잠재력에 자신감을 가지고 있음
    • 우리 팀은 구조화된 데이터와 비정형 데이터를 비교하는 프로젝트에서 이를 유용하게 활용했으며, 이는 더 광범위한 채택 가능성을 보여줌
    • 따라서 우리는 pgvector를 시험 단계로 옮기고 있음
  • Snapcraft build tool

    • Snapcraft는 Ubuntu, 기타 Linux 배포판 및 macOS에서 스냅이라고 하는 자체 포함된 애플리케이션을 빌드하고 패키징하기 위한 오픈 소스 명령줄 도구임
    • 스냅은 Linux 컴퓨터, 가상 환경 및 차량 온보드 컴퓨터 시스템을 포함한 하드웨어 플랫폼 전반에 걸쳐 쉽게 배포하고 유지 관리할 수 있음
    • Snapcraft는 스냅 게시를 위한 공개 앱 스토어를 제공하지만, 우리 팀은 빌드 도구를 사용하여 자율 주행 시스템을 스냅으로 패키징하되 공개 앱 스토어에 게시하지 않음
    • 이를 통해 내장형 소프트웨어 시스템을 로컬에서 빌드, 테스트 및 디버그하는 동시에 내부 아티팩트 리포지토리에 게시할 수 있음
  • Spinnaker

    • Spinnaker는 Netflix에서 만든 오픈 소스 지속적 제공 플랫폼임
    • 1급 기능으로 클러스터 관리와 baked 이미지를 클라우드에 배포하는 기능을 구현함
    • 우리는 마이크로서비스를 배포하기 위한 Spinnaker의 독선적인 접근 방식을 좋아함
    • 이전 버전에서는 코드로 파이프라인을 구성할 수 없다는 점을 지적했지만, spin CLI의 추가로 이 문제가 해결되었음
    • 우리는 단순한 CD 시나리오에는 Spinnaker를 권장하지 않지만, 복잡한 상황에서 동등하게 복잡한 배포 파이프라인과 함께 많은 사람들의 선택 도구가 되었음
  • TypeScript OpenAPI

    • TypeScript OpenAPI(또는 tsoa)는 코드에서 OpenAPI 사양을 생성하기 위한 Swagger의 대안임
    • 코드 우선이며, TypeScript 컨트롤러와 모델을 단일 진실 출처로 사용하고, TypeScript에서 OpenAPI 도구를 사용할 때 더 복잡한 파일과 구성이 필요한 대신 TypeScript 주석이나 데코레이터를 사용함
    • 2.0과 3.0 API 사양을 모두 생성하며 Express, Hapi 및 Koa용 경로를 생성할 수 있음
    • TypeScript로 API를 작성하는 경우 이 프로젝트를 살펴볼 가치가 있음
  • Unleash

    • 가능한 한 가장 간단한 기능 토글을 사용하는 것이 우리가 권장하는 접근 방식으로 남아 있지만, 팀 규모 확장과 더 빠른 개발로 인해 수작업으로 제작된 토글 관리가 더 복잡해짐
    • Unleash는 이러한 복잡성을 해결하고 CI/CD를 가능하게 하기 위해 우리 팀에서 널리 사용되는 옵션임
    • 서비스로 사용하거나 자체 호스팅할 수 있음
    • 여러 언어로 SDK를 제공하며 개발자 경험과 관리를 위한 친숙한 UI가 있음
    • OpenFeature 사양에 대한 공식 지원은 아직 없지만 Go와 Java용 커뮤니티 유지 관리 제공업체를 찾을 수 있음
    • Unleash는 단순한 기능 토글뿐만 아니라 세분화 및 점진적 출시에도 사용할 수 있어 규모에 맞는 기능 관리에 적합한 옵션임

Assess

  • Astronomer Cosmos

    • Astronomer Cosmos는 Airflow에서 dbt 코어 워크플로에 대한 더 많은 기본 지원을 제공하도록 설계된 Airflow 플러그인임
    • 플러그인이 설치되면 DbtDag가 dbt 워크플로를 래핑할 때 dbt 노드를 Airflow 작업/작업 그룹으로 변환하여 엔지니어가 Airflow UI에서 직접 dbt 종속성 그래프와 실행 진행 상황을 시각화할 수 있음
    • 또한 dbt 프로필 대신 Airflow 연결을 사용할 수 있어 구성 확산을 줄일 수 있음
    • Airflow에서 dbt 작업을 더 원활하게 만들 수 있는 잠재력을 위해 이 도구를 실험하고 있음
  • ColPali

    • ColPali는 비전 언어 모델을 사용하여 PDF 문서를 검색하기 위한 새로운 도구로, 이미지, 다이어그램 및 테이블이 포함된 멀티미디어 문서에서 데이터를 추출할 수 있는 강력한 검색 증강 생성(RAG) 애플리케이션 구축의 어려움을 해결함
    • 텍스트 기반 임베딩이나 광학 문자 인식(OCR) 기술에 의존하는 기존 방법과 달리 ColPali는 전체 PDF 페이지를 처리하며, 텍스트와 시각적 콘텐츠를 모두 고려하는 임베딩을 생성하기 위해 시각적 변환기를 활용함
    • 이러한 전체적인 접근 방식은 더 나은 검색뿐만 아니라 특정 문서가 검색되는 이유에 대한 추론을 가능하게 하며 데이터가 풍부한 PDF에 대한 RAG 성능을 크게 향상시킴
    • 우리는 ColPali를 여러 클라이언트와 테스트했으며 유망한 결과를 보여주었지만 이 기술은 여전히 초기 단계에 있음
    • 특히 복잡한 시각적 문서 데이터를 가진 조직에서는 평가할 가치가 있음
  • Cursor

    • AI 지원 프로그래밍 도구 경쟁이 계속되고 있으며 가장 눈에 띄는 것은 Cursor임
    • Cursor는 코딩 워크플로에 AI를 깊이 통합하여 개발자 생산성을 높이도록 설계된 AI 우선 코드 편집기임
    • 우리는 이전 Radar 평가에서 Cursor에 주목했지만 최근 Cursor의 지속적인 개선이 질적인 변화를 가져왔다는 것은 분명함
    • 우리의 사용에서 Cursor는 기존 코드베이스를 기반으로 강력한 맥락 추론 기능을 보여주었음
    • GitHub Copilot와 같은 다른 AI 코드 도구가 코드 조각을 생성하고 협업하는 경향이 있는 반면, Cursor의 여러 줄 및 여러 파일 편집 작업은 이를 돋보이게 만듦
    • Cursor는 VSCode에서 포크되어 이를 기반으로 개발되었으며 개발자의 직관에 부합하는 빠르고 직관적인 상호 작용 방법을 제공함
    • 강력한 작업은 ctrl/cmd+K 및 ctrl/cmd+L로 완료할 수 있음
    • Cursor는 개발자 상호 작용 및 코드베이스 이해와 관련하여 AI 프로그래밍 도구의 새로운 경쟁을 선도하고 있음
  • Data Mesh Manager

    • Data Mesh Manager는 일반적인 데이터 메시 플랫폼의 메타데이터 계층을 제공함
    • 특히 OpenContract 이니셔티브를 사용하여 데이터 제품의 정의 및 데이터 계약 사양에 중점을 두며 연결된 DataContract CLI를 사용하여 빌드 파이프라인에 통합할 수 있음
    • 또한 이 애플리케이션은 데이터 제품과 해당 메타데이터를 검색하고 탐색하기 위한 데이터 카탈로그를 제공하며 데이터 품질 메트릭 정의 및 데이터 품질 규칙 관리를 포함한 연합 거버넌스를 허용함
    • 이 공간에서 처음으로 등장한 기본 도구 중 하나로, 기존 플랫폼을 데이터 메시 패러다임에 맞게 개조하려는 것이 아님
  • GitButler

    • Git의 명령줄 인터페이스는 강력하고 유용하지만 여러 브랜치를 관리하고 그 안에서 커밋을 스테이징할 때 매우 복잡하기로 악명 높음
    • GitButler는 이 프로세스를 단순화하는 것을 목표로 하는 그래픽 인터페이스를 제공하는 Git 클라이언트임
    • Git와 독립적으로 커밋되지 않은 파일 변경 사항을 추적한 다음 해당 변경 사항을 가상 브랜치에 스테이징하여 이를 수행함
    • 이는 애초에 존재해서는 안 되는 문제에 대한 해결책이라고 주장할 수 있음. 작은 변경을 자주 수행하고 트렁크에 푸시하면 여러 브랜치가 필요하지 않음
    • 그러나 워크플로에 풀 요청이 포함되는 경우, 특히 PR을 병합하기 전에 긴 검토 주기가 있는 경우 브랜칭 구조가 복잡해질 수 있음
    • 이를 해결하기 위해 GitButler는 GitHub와 통합되어 변경 사항을 선택적으로 풀 요청으로 그룹화하고 도구에서 직접 발행할 수 있음
    • GitButler는 PR 프로세스에 내재된 복잡성을 관리하기 위한 성장하는 블립 범주에 또 다른 항목임
  • JetBrains AI Assistant

    • JetBrains AI Assistant는 코드 완성, 테스트 생성 및 스타일 가이드 준수를 지원하기 위해 모든 JetBrains IDE와 원활하게 통합되도록 설계된 코딩 어시스턴트임
    • OpenAI 및 Google Gemini와 같은 모델을 기반으로 구축되었으며, 향후 세션을 위해 코딩 스타일을 기억함으로써 일관된 출력을 보장하는 능력으로 두각을 나타냄
    • 우리 개발자들은 테스트 생성 기능이 특히 유용하다고 생각했으며 안정성 문제 없이 더 긴 출력을 처리할 수 있는 능력을 주목했음
    • 그러나 일부 경쟁 업체와 달리 JetBrains는 자체 모델을 호스팅하지 않기 때문에 타사 데이터 처리에 대해 우려하는 고객에게는 적합하지 않을 수 있음
    • 그럼에도 불구하고 이 도구가 JetBrains IDE와 통합되어 있다는 점은 AI 기반 코딩 어시스턴트를 탐색하는 팀에게 유망한 선택임
  • Mise

    • 폴리글랏 환경에서 작업하는 개발자는 종종 서로 다른 언어와 도구의 여러 버전을 관리해야 하는 상황에 처함
    • mise는 nvm, pyenv, rbenv, rustup 등을 대체할 수 있는 하나의 도구를 제공하여 이 문제를 해결하는 것을 목표로 하며 asdf를 대체할 수 있음
    • Mise는 셸 상호 작용 속도를 위해 Rust로 작성되었으며, 셸 기반 shim을 사용하는 asdf와 달리 mise는 PATH 환경 변수를 미리 수정하여 도구 실행 시간이 직접 호출됨
    • 이것이 mise가 asdf보다 빠른 이유 중 하나임
    • 이미 asdf에 익숙한 개발자의 경우 mise는 동일한 기능을 제공하지만 몇 가지 주요한 차이점이 있음
    • Rust로 작성되어 더 빠르며 asdf에는 없는 몇 가지 기능이 있음. 예를 들어 동일한 도구의 여러 버전을 동시에 설치할 수 있으며 퍼지 매칭을 포함한 더 관대한 명령을 제공함
    • 또한 린터, 테스트, 빌더, 서버 및 프로젝트에 특정한 기타 작업을 실행하는 데 유용한 통합 작업 실행기를 제공함
    • 개발 환경을 관리하기 위해 여러 도구를 사용해야 하는 것과 다른 도구의 때때로 어색한 구문에 약간 질려 있다면 mise를 살펴볼 가치가 분명히 있음
  • Mockoon

    • Mockoon은 오픈 소스 API 모킹 도구임
    • 직관적인 인터페이스, 사용자 정의 가능한 경로 및 동적 응답뿐만 아니라 모의 데이터 세트 생성을 자동화하는 기능을 제공함
    • Mockoon은 OpenAPI와 호환되며 로컬에서 테스트하고 개발 파이프라인과 통합할 수 있는 다양한 시나리오를 생성할 수 있음
    • 요청을 가로채고 Mockoon에 정의된 호출만 가짜로 만들어 "부분 모의"를 만들 수도 있음
    • 부분 모의는 특정 API 경로 또는 엔드포인트를 시뮬레이션하고 다른 요청을 실제 서버로 전달하는 데 도움이 됨
    • 부분 모의는 특정 시나리오에서 유용할 수 있지만 과도하게 사용하면 불필요한 복잡성으로 이어질 위험이 있음
    • 그 외에도 Mockoon은 모의 API를 빠르게 설정하고 개발 워크플로를 개선하고 자동화하는 데 유용한 도구로 남아 있음
  • Raycast

    • Raycast는 macOS 프리미엄 런처로, 키보드에서 애플리케이션을 빠르게 실행하고 명령을 실행하며 파일을 검색하고 작업을 자동화할 수 있음
    • 우리 팀은 개발자를 위한 기본 제공 기능과 VSCode, Slack, Jira, Google 등 타사 앱 및 서비스와 상호 작용할 수 있는 쉬운 확장성을 높이 평가함
    • Raycast는 생산성에 맞춰져 있으며 컨텍스트 전환을 최소화하여 일상적인 작업을 간소화하려는 사람들에게 유용한 도구임
    • Pro 사용자는 특수 AI 기반 검색 어시스턴트인 Raycast AI에 액세스할 수 있음
  • ReadySet

    • ReadySet은 MySQL 및 PostgreSQL용 쿼리 캐시임
    • 수동 무효화에 의존하는 기존 캐싱 솔루션과 달리 ReadySet은 데이터베이스 복제 스트림을 활용하여 캐시를 점진적으로 업데이트함
    • 부분 뷰 물질화를 통해 ReadySet은 기존 읽기 복제본보다 낮은 꼬리 지연 시간을 달성함
    • ReadySet은 MySQL 및 PostgreSQL과 유선 호환되므로 애플리케이션 변경 없이 데이터베이스 앞에 배포하여 읽기 워크로드를 수평적으로 확장할 수 있음
  • Rspack

    • 웹 기반 프론트엔드에서 작업하는 우리 팀 중 많은 팀이 Webpack과 같은 이전 번들링 도구에서 Vite로 전환했음
    • 이 분야의 새로운 진입자는 Rspack으로, 18개월 개발 끝에 1.0 버전이 출시되었음
    • Webpack의 대체품으로 설계되었으며 Webpack 생태계의 플러그인 및 로더와 호환됨
    • 이는 복잡한 Webpack 설정을 마이그레이션할 때 Vite보다 이점이 될 수 있음
    • 우리 팀이 Vite 및 Rspack과 같은 최신 도구로 마이그레이션하는 주된 이유는 개발자 경험, 특히 속도임
    • 마지막 코드 변경에 대한 피드백을 받기 전에 1~2분 정도 기다려야 하는 것보다 개발 흐름을 깨는 것은 없음
    • Rust로 작성된 Rspack은 Webpack보다 훨씬 빠른 성능을 제공하며 많은 경우 Vite보다도 빠름
  • Semantic Router

    • LLM 기반 애플리케이션을 구축할 때 특정 에이전트로 요청을 라우팅하거나 특정 흐름을 호출하기 전에 사용자의 의도를 결정하는 것이 중요함
    • Semantic Router는 LLM 및 에이전트를 위한 초고속 의사 결정 계층 역할을 하여 의미론적 의미를 기반으로 요청을 효율적이고 안정적으로 라우팅할 수 있음
    • 벡터 임베딩을 사용하여 의도를 추론함으로써 Semantic Router는 불필요한 LLM 호출을 줄여 의도를 이해하기 위한 더 간단하고 비용 효율적인 접근 방식을 제공함
    • 그 잠재력은 의도 추론을 넘어 다양한 의미 작업을 위한 다재다능한 구성 요소로 확장됨
    • 제공하는 속도와 유연성으로 인해 LLM의 오버헤드 없이 빠르고 실시간 의사 결정이 필요한 환경에서 강력한 경쟁자로 자리매김함
  • 소프트웨어 엔지니어링 에이전트

    • 현재 GenAI 공간에서 가장 뜨거운 주제 중 하나는 소프트웨어 엔지니어링 에이전트의 개념임
    • 이러한 코딩 지원 도구는 엔지니어가 여기저기서 코드 조각을 작성하는 것 이상의 일을 함. 이들은 해결할 수 있는 문제의 크기를 확장하여 이상적으로는 자율적으로 그리고 인간의 최소한의 간섭으로 작업을 수행함
    • 이러한 도구가 GitHub 이슈나 Jira 티켓을 가져와 계획과 코드 변경을 제안하거나 심지어 사람이 검토할 풀 요청을 생성할 수 있다는 아이디어임
    • 이것은 AI 코딩 지원의 영향력을 높이기 위한 다음 논리적 단계이지만, 종종 광고되는 광범위한 코딩 작업을 다룰 수 있는 일반 에이전트의 목표는 매우 야심찬 것이며, 현재 툴링 상태는 이를 확실하게 보여주지 않고 있음
    • 그러나 우리는 더 복잡한 문제에 대해 개발자 시간을 확보하기 위해 더 제한된 범위의 간단한 작업에 대해 이것이 조만간 작동할 수 있다고 봄
    • 에이전트의 베타 버전이 출시된 도구로는 GitHub Copilot Workspace, qodo flow, JIRA용 Tabnine 에이전트, Amazon Q Developer 등이 있음
    • SWE Bench 벤치마크에는 해당 공간의 더 많은 도구가 나열되어 있지만 AI 공간의 벤치마크는 약간의 의심을 갖고 받아들일 것을 주의함
  • uv

    • Rust는 빠른 시작 성능으로 인해 명령줄 도구를 작성하는 데 적합하며, 우리는 사람들이 일부 도구 체인을 Rust로 다시 작성하는 것을 봄
    • 이전 Radar에서 Rust로 작성된 Python 린터인 Ruff를 언급했음
    • 이번 볼륨에서는 Rust로 작성된 Python 패키지 관리 도구인 uv를 평가했음
    • uv의 가치 제안은 "엄청나게 빠른" 것이며 벤치마크에서 다른 Python 패키지 관리 도구를 크게 능가함
    • 그러나 Radar 평가 중 우리는 빌드 도구에 대해 초 단위로 최적화하는 것이 한계 개선인지에 대해 논의했음
    • 성능에 비해 패키지 관리 시스템에 더 중요한 것은 생태계, 성숙한 커뮤니티 및 장기 지원임
    • 그렇다고 해서 프로젝트 팀의 피드백은 이 작은 성능 개선이 피드백 주기와 전반적인 개발자 경험을 개선하는 데 큰 도움이 될 수 있음을 보여주었음 - 우리는 이 작은 성능 개선을 달성하기 위해 수동으로 CI/CD 캐싱을 매우 복잡하게 만드는 경향이 있음; uv는 Python 환경 관리를 단순화함
    • Python 개발을 위한 패키지 및 env 관리에는 여전히 개선의 여지가 많이 있다는 점을 고려할 때 uv가 평가할 만한 가치가 있는 옵션이라고 생각함
  • Warp

    • Warp는 macOS 및 Linux용 터미널임
    • 가독성을 높이기 위해 명령 출력을 블록으로 분할함
    • Warp에는 지능형 명령 제안 및 자연어 처리와 같은 AI 기반 기능이 포함되어 있음
    • 또한 사용자가 명령과 출력을 구성하고 주석과 설명을 추가할 수 있는 노트북 기능도 포함되어 있음
    • 이러한 기능을 활용하여 README 파일이나 온보딩 자료를 만들고 터미널 워크플로를 구조화되고 대화형으로 제시하고 관리할 수 있음
    • Warp는 유연한 크로스 셸 프롬프트인 Starship과 쉽게 통합되어 실행 중인 프로세스, 사용 중인 도구의 특정 버전, Git 세부 정보 또는 현재 Git 사용자 등에 대한 정보를 검색하여 터미널 경험을 사용자 정의할 수 있음
  • Zed

    • Atom 텍스트 편집기 프로젝트가 종료된 후 제작자들은 Zed라는 새로운 편집기를 만들었음
    • Rust로 작성되고 최신 하드웨어를 활용하도록 최적화된 Zed는 빠르게 느껴짐
    • 많은 프로그래밍 언어 지원, 내장 터미널, 멀티버퍼 편집 등 현대 편집기에 기대하는 모든 기능을 갖추고 있음
    • AI 지원 코딩은 여러 LLM 제공업체와의 통합을 통해 사용할 수 있음
    • 열성적인 페어 프로그래머로서 우리는 Zed에 내장된 원격 협업 기능에 매료되었음
    • 개발자는 GitHub ID를 통해 서로를 찾은 다음 실시간으로 동일한 작업 공간에서 협업할 수 있음
    • 개발 팀이 Visual Studio Code 생태계의 매력에서 벗어날 수 있고 원하는지 여부를 판단하기에는 아직 이름
    • 그러나 Zed는 탐색해 볼 만한 대안임

Hold

  • CocoaPods
    • CocoaPods는 Swift와 Objective-C Cocoa 프로젝트에서 오랫동안 사랑받아온 의존성 관리 도구임
    • 10년 넘게 iOS와 macOS 개발자들에게 중요한 도구 역할을 해왔음
    • CocoaPods 팀은 이제 프로젝트가 유지 보수 모드로 전환되고 적극적인 개발은 중단될 것이라고 발표함
    • CocoaPods 도구와 관련 리소스는 계속 사용 가능하지만, 새로운 기능 개발이나 개선은 이루어지지 않을 예정임
    • 개발자들은 Swift Package Manager로의 전환을 권장받고 있음
    • Swift Package Manager는 Xcode와 네이티브 통합을 제공하며 Apple의 장기적인 지원을 받을 수 있음

[Language and Frameworks]

Adopt

  • dbt

    • 는 ELT 파이프라인에서 데이터 변환을 구현하기 위한 강력하고 현명한 옵션으로 계속 여겨지고 있음
    • 엔지니어링 엄격성을 가능하게 하고 SQL 기반 변환의 모듈성, 테스트 가능성 및 재사용성과 같은 관행을 가능하게 한다는 점이 마음에 듦
    • Snowflake, BigQuery, Redshift, Databricks, Postgres 등 많은 클라우드 데이터 웨어하우스, 레이크하우스 및 데이터베이스와 잘 통합되며 주변에 건강한 커뮤니티 패키지 생태계를 보유하고 있음
    • 최근 도입된 단위 테스트에 대한 기본 지원(dbt core 1.8+ 및 최근 도입된 dbt Cloud "versionless" 경험)은 툴박스에서의 위치를 더욱 강화함
    • 새로운 단위 테스트 기능을 사용하면 정적 테스트 데이터를 쉽게 정의하고 출력 기대치를 설정하며 파이프라인의 증분 및 전체 새로 고침 모드를 모두 테스트할 수 있어 팀에서 높이 평가하고 있음
    • 많은 경우 이를 통해 동일한 수준의 품질을 유지하면서 자체 제작 스크립트를 폐기할 수 있었음
  • Testcontainers

    • Testcontainers는 테스트 실행을 위한 신뢰할 수 있는 환경을 만드는 데 유용한 기본 옵션으로 경험되고 있음
    • 다양한 유형의 데이터베이스, 대기열 기술, 클라우드 서비스, 웹 브라우저와 같은 UI 테스트 종속성을 포함하여 일반적인 테스트 종속성을 Dockerizes하는 여러 언어로 이식된 라이브러리이며, 필요할 때 사용자 정의 Dockerfiles을 실행할 수 있음
    • 최근 테스트 세션의 시각적 관리와 더 복잡한 시나리오 관리 기능을 제공하는 데스크톱 버전이 출시되었으며, 이는 팀에서 매우 유용하다고 판단하고 있음

Trial

  • CAP

    • 분산 메시징 시스템에서 데이터베이스 업데이트와 이벤트 발행을 원자적으로 수행하기 위한 Outbox 패턴을 구현하는 .NET 라이브러리
    • 동일한 데이터베이스 트랜잭션에서 이벤트를 발행하려는 의도를 기록함으로써 문제 해결
    • 몇 가지 데이터베이스와 메시징 플랫폼을 지원하며 최소 한 번의 전달을 보장하여 유용함
  • CARLA

    • 프로덕션 배포 전 자율 주행 시스템을 테스트하는 데 사용되는 오픈 소스 자율 주행 연구용 시뮬레이터
    • 차량, 지형, 인간, 동물 등의 3D 모델을 유연하게 만들고 재사용할 수 있어 다양한 시나리오 시뮬레이션 가능
    • 자율 주행 시스템은 이러한 동적 객체를 인식하고 브레이크 등의 적절한 조치를 취해야 함
    • 자율 주행 시스템의 지속적인 개발과 테스트를 위해 활용됨
  • Databricks Asset Bundles

    • 2024년 4월 GA된 DABs는 데이터 팀에서 소프트웨어 엔지니어링 관행 채택을 촉진하는 Databricks 자산 패키징 및 배포 도구로 자리잡음
    • 워크플로 및 작업 구성과 해당 작업에서 실행될 코드를 번들로 패키징하여 CI/CD 파이프라인을 통해 여러 환경에 배포 가능
    • 일반적인 자산 유형에 대한 템플릿과 사용자 지정 템플릿을 지원하여 데이터 엔지니어링 및 ML 프로젝트에 맞춤형 서비스 템플릿 생성 가능
    • 엔지니어링 워크플로의 주요 부분으로 점점 더 많이 채택되고 있음
    • 노트북 템플릿을 포함하고 프로덕션에 배포하는 것을 지원하지만, 노트북을 프로덕션화하는 것은 권장하지 않음
    • 대신 유지 관리성, 탄력성, 확장성 요구 사항을 지원하는 엔지니어링 관행으로 의도적으로 프로덕션 코드 작성을 장려함
  • Instructor

    • LLM을 사용하여 구조화된 답변(JSON, YAML 등)을 요청하고 이를 파싱하여 애플리케이션에서 사용할 때 도움이 되는 라이브러리
    • LLM은 비결정적이므로 요청한 대로 항상 동작하지 않을 수 있음
    • 의도한 출력 구조를 정의하고 LLM이 요청한 구조를 반환하지 않을 경우 재시도를 구성할 수 있음
    • 스트림에서 부분 구조를 파싱하는 기능도 제공하여 전체 응답을 기다리지 않고 결과를 스트리밍할 수 있음
  • Kedro

    • MLOps 도구로 상당히 개선되었으며 모듈성과 엔지니어링 관행에 초점을 유지함
    • 독립형 kedro-datasets 패키지 도입으로 코드와 데이터를 분리하는 등 모듈성 강조
    • CLI, 스타터 프로젝트 템플릿, 텔레메트리 기능 향상
    • 최근 VS Code 확장 출시로 개발자 경험 향상
  • LiteLLM

    • 다양한 LLM 제공업체 API와 원활하게 통합되는 라이브러리로, OpenAI API 형식을 통해 상호 작용을 표준화함
    • 광범위한 제공업체와 모델을 지원하며 완성, 임베딩, 이미지 생성을 위한 통합 인터페이스 제공
    • 각 제공업체의 특정 엔드포인트 요구 사항과 일치하도록 입력을 변환하여 통합을 단순화함
    • 캐싱, 로깅, 속도 제한, 부하 분산 등 프로덕션 애플리케이션에 필요한 운영 기능을 구현하기 위한 프레임워크 제공
    • 다양한 모델을 쉽게 교체할 수 있도록 하여 모델이 빠르게 진화하는 현재 상황에 필요한 기능임
    • 동일한 프롬프트에 대한 모델 응답이 다양하므로 일관된 호출 방법만으로는 완성 성능을 최적화하기 어려울 수 있음을 인식해야 함
    • 각 모델은 추가 기능을 고유하게 구현하므로 단일 인터페이스로는 모든 기능을 충족하기 어려울 수 있음
  • LlamaIndex

    • 도메인 특화적이고 컨텍스트 기반의 LLM 애플리케이션을 설계할 수 있는 엔진을 포함하며, 데이터 수집, 벡터 인덱싱, 문서에 대한 자연어 질의 응답 등의 작업 지원
    • LlamaIndex를 사용하여 문서 수집을 자동화하고, 문서 임베딩을 인덱싱하며, 사용자 입력을 기반으로 이러한 임베딩을 쿼리하는 RAG(Retrieval-Augmented Generation) 파이프라인 구축 가능
    • LlamaHub를 사용하여 LlamaIndex 모듈을 확장하거나 사용자 지정하고, 선호하는 LLM, 임베딩, 벡터 저장소 제공업체와 함께 LLM 애플리케이션 구축 가능
  • LLM Guardrails

    • LLM이 유해하거나 오해의 소지가 있거나 무관한 내용을 생성하지 않도록 하는 지침, 정책 또는 필터 집합
    • 입력 조작과 같은 기술로 시스템을 오용하려는 악의적인 사용자로부터 LLM 애플리케이션을 보호하는 데에도 사용 가능
    • 모델이 콘텐츠를 처리하고 생성하는 데 경계를 설정하여 안전망 역할을 함
    • NeMo Guardrails, Guardrails AI, Aporia Guardrails 등 이 분야에서 떠오르는 프레임워크가 유용함
    • 모든 LLM 애플리케이션에 가드레일을 배치하고 규칙과 정책을 지속적으로 개선할 것을 권장함
    • 책임감 있고 신뢰할 수 있는 LLM 채팅 앱을 구축하는 데 중요함
  • Medusa

    • 대부분의 쇼핑 웹사이트 구축용 전자상거래 솔루션은 80/20 함정에 빠지는 경향이 있음
    • Medusa는 균형을 잘 맞춘 고도로 사용자 지정 가능한 오픈 소스 상거래 플랫폼으로, 개발자가 독특하고 맞춤화된 쇼핑 경험을 만들 수 있도록 함
    • Next.js와 PostgreSQL을 기반으로 구축되어 쇼핑 카트, 주문 관리부터 기프트 카드 모듈, 지역별 세금 계산 등 고급 기능까지 포괄적인 모듈 범위로 개발 프로세스 가속화
    • 몇 가지 프로젝트에 적용하여 가치 있는 프레임워크로 평가됨
  • Pkl

    • Apple에서 내부적으로 사용하기 위해 처음 만들어진 오픈 소스 구성 언어 및 도구
    • 주요 기능은 구성 오류를 배포 전에 포착할 수 있는 유형 및 유효성 검사 시스템임
    • 코드 중복을 줄이고(환경 재정의 등의 경우) 구성 변경 사항을 라이브 환경에 적용하기 전에 유효성 검사 수행 가능
    • JSON, PLIST, YAML, .properties 파일 생성 및 코드 생성을 포함한 광범위한 IDE 및 언어 통합 제공
  • ROS 2

    • 로봇 시스템 개발을 위한 오픈 소스 프레임워크
    • 프로세스 간 통신, 다중 스레드 실행, 서비스 품질 등의 기능을 다루는 애플리케이션의 모듈식 구현을 가능하게 하는 라이브러리와 도구 제공
    • 실시간 기능 개선, 모듈성 향상, 다양한 플랫폼 지원 확대, 합리적인 기본값 제공 등 이전 버전에 비해 개선됨
    • 자율 주행 기능 등 복잡하고 진화하는 차내 애플리케이션을 가진 제조업체에게 노드 기반 아키텍처와 토픽 기반 통신 모델이 특히 매력적임
    • 자동차 산업에서 점점 더 많이 사용되고 있음
  • seL4

    • SDV나 기타 안전 중요 시나리오에서 운영 체제의 실시간 안정성이 중요함
    • 높은 진입 장벽으로 인해 소수의 기업이 이 분야를 독점하고 있어 seL4와 같은 오픈 소스 솔루션이 귀중함
    • seL4는 고보증, 고성능 운영 체제 마이크로커널임
    • 형식 검증 방법을 사용하여 운영 체제의 동작이 사양을 "수학적으로" 준수하는지 확인함
    • 마이크로커널 아키텍처는 시스템 안정성을 보장하기 위해 핵심 책임을 최소화함
    • NIO와 같은 전기차 기업이 seL4 생태계와 협력하고 있으며, 향후 이 분야에서 더 많은 발전이 있을 수 있음
  • SetFit

    • 현재 AI 기반 도구의 대부분은 생성적이며, 텍스트와 이미지를 생성하고 GPT를 사용함
    • 기존 텍스트 작업(텍스트 분류 또는 의도 결정)에는 문장 변환기가 선호됨
    • SetFit은 문장 변환기를 미세 조정하기 위한 프레임워크임
    • 대조 학습을 사용하여 매우 적은 수의 예제로도 종종 명확한 분리를 달성하여 다른 의도 클래스를 분리함
    • 문장 변환기는 생성 AI 시스템에서도 역할을 할 수 있음
    • LLM을 사용하는 고객 대면 챗봇 시스템에서 SetFit을 사용하여 의도 감지에 성공했으며, 더 엄격한 필터링을 위해 SetFit 기반 분류기를 선택함
  • vLLM

    • 클라우드 또는 온프레미스에서 실행할 수 있는 고처리량, 메모리 효율적인 LLM용 추론 엔진
    • 여러 모델 아키텍처와 인기 있는 오픈 소스 모델을 원활하게 지원함
    • NVIDIA DGX 및 Intel HPC와 같은 GPU 플랫폼에 도커화된 vLLM 워커를 배포하여 개발자 코딩 지원, 지식 검색, 자연어 데이터베이스 상호 작용 등을 위한 Llama 3.1(8B 및 70B), Mistral 7B, Llama-SQL 등의 모델 호스팅
    • OpenAI SDK 표준과 호환되어 일관된 모델 서빙 촉진
    • Azure의 AI Model Catalog는 사용자 지정 추론 컨테이너를 사용하여 모델 서빙 성능을 향상시키며, 높은 처리량과 효율적인 메모리 관리로 인해 vLLM을 기본 추론 엔진으로 사용함
    • vLLM 프레임워크는 대규모 모델 배포의 기본값으로 떠오르고 있음

Assess

  • Apache XTable™

    • 사용 가능한 오픈 테이블 형식 중에서 명확한 승자가 나타나지 않음
    • Delta UniForm과 같은 도구는 이러한 형식 간의 상호 운용성을 가능하게 함
    • Apache XTable™은 Hudi, Delta, Iceberg 간의 전방향 상호 운용성을 촉진하는 Apache 인큐베이터 프로젝트
    • 이러한 형식의 기능 차이로 인해 장기적으로 전방향 상호 운용성에 크게 의존하는 것은 팀이 "최소 공통 분모" 기능만 사용할 수 있게 될 수 있음
  • dbldatagen

    • 데이터 엔지니어링을 위한 테스트 데이터 준비는 상당한 도전
    • 프로덕션에서 테스트 환경으로 데이터를 전송하는 것은 위험할 수 있으므로 팀은 종종 가짜 또는 합성 데이터에 의존
    • dbldatagen(Databricks Labs Data Generator)은 테스트, 벤치마킹, 데모 등을 위해 Databricks 환경 내에서 합성 데이터를 생성하는 Python 라이브러리
    • dbldatagen은 수십억 개의 행을 몇 분 안에 생성하여 여러 테이블, 변경 데이터 캡처, 병합/조인 작업과 같은 다양한 시나리오를 지원하면서 대규모로 합성 데이터를 생성할 수 있음
  • DeepEval

    • DeepEval은 LLM 성능을 평가하기 위한 Python 기반의 오픈 소스 평가 프레임워크
    • LlamaIndex나 LangChain과 같은 인기 있는 프레임워크로 구축된 RAG(retrieval-augmented generation) 및 기타 유형의 앱을 평가하고, 필요에 따라 다양한 모델을 비교할 때 기준선과 벤치마크를 설정하는 데 사용할 수 있음
    • DeepEval은 환각 감지, 답변 관련성, 하이퍼파라미터 최적화 등 LLM 성능을 평가하기 위한 포괄적인 메트릭과 기능 제공
    • pytest와의 통합을 제공하며, 어설션과 함께 CI(continuous integration) 파이프라인에 테스트 세트를 쉽게 통합할 수 있음
  • DSPy

    • 오늘날 대부분의 언어 모델 기반 애플리케이션은 특정 작업에 맞게 수동으로 조정된 프롬프트 템플릿에 의존
    • DSPy는 이러한 애플리케이션을 개발하기 위한 프레임워크로, 직접적인 프롬프트 엔지니어링을 없애는 다른 접근 방식을 취함
    • 대신 프로그램 흐름(서로 위에 계층화할 수 있는 모듈을 통해), 최적화할 메트릭, 훈련 또는 테스트할 데이터와 관련된 높은 수준의 추상화를 도입
    • 그런 다음 정의된 메트릭을 기반으로 기본 언어 모델의 프롬프트 또는 가중치를 최적화
    • 결과 코드베이스는 PyTorch를 사용한 신경망 훈련과 매우 유사
  • Flutter for Web

    • Flutter는 iOS 및 Android 애플리케이션에 대한 크로스 플랫폼 지원으로 알려짐
    • 이제 더 많은 플랫폼으로 확장됨
    • 동일한 코드베이스에서 iOS, Android, 브라우저용 앱을 빌드할 수 있음
    • 모든 웹 애플리케이션이 Flutter에서 의미가 있는 것은 아니지만, 프로그레시브 웹 앱, 단일 페이지 앱, 기존 Flutter 모바일 앱을 웹으로 변환하는 경우에 특히 적합
    • Flutter는 이미 실험 채널에서 컴파일 타겟으로 WebAssembly(WASM)를 지원했으며, 이는 잠재적인 버그와 성능 문제가 있는 활발한 개발 중임을 의미
    • 최근 릴리스에서는 안정화됨
    • WASM 타겟으로 컴파일된 Flutter 웹 애플리케이션의 성능은 JavaScript 컴파일 타겟보다 훨씬 우수
    • 다양한 플랫폼에서의 네이티브에 가까운 성능은 많은 개발자가 처음에 Flutter를 선택한 이유이기도 함
  • kotaemon

    • kotaemon은 지식 기반 문서를 위한 Q&A 앱을 구축하기 위한 오픈 소스 RAG 기반 도구 및 프레임워크
    • PDF 및 DOC 형식을 포함한 여러 문서 유형을 이해할 수 있으며, Gradio 기반의 웹 UI를 제공하여 사용자가 지식 기반을 구성하고 채팅 인터페이스를 통해 상호 작용할 수 있음
    • 벡터 저장소가 있는 기본 제공 RAG 파이프라인을 가지고 있으며 SDK로 확장 가능
    • 또한 웹 기반 인라인 미리보기 및 관련성 점수와 함께 응답에서 소스 문서 인용
    • RAG 기반 문서 Q&A 애플리케이션을 원하는 사람이라면 이 사용자 정의 가능한 프레임워크는 매우 좋은 출발점
  • Lenis

    • Lenis는 현대 브라우저를 위해 설계된 가벼우면서도 강력한 부드러운 스크롤 라이브러리
    • WebGL 스크롤 동기화 및 시차 효과와 같은 부드러운 스크롤 경험을 가능하게 하여 유연하고 원활한 스크롤 상호 작용이 있는 페이지를 구축하는 팀에 이상적
    • 개발자들은 Lenis가 간단하고 사용하기 쉬우며 부드러운 스크롤을 만들 수 있는 간소화된 접근 방식을 제공한다는 것을 발견
    • 그러나 라이브러리는 접근성 문제가 있을 수 있으며, 특히 수직 및 수평 스크롤 상호 작용은 장애가 있는 사용자를 혼란스럽게 할 수 있음
    • 시각적으로 매력적이지만 접근성을 유지하려면 신중한 구현이 필요
  • LLMLingua

    • LLMLingua는 작은 언어 모델을 사용하여 필수적이지 않은 토큰을 제거함으로써 프롬프트를 압축하여 성능 손실을 최소화하면서 LLM 효율성을 높임
    • 이 접근 방식은 LLM이 더 긴 프롬프트를 효율적으로 처리하면서 추론 및 컨텍스트 학습을 유지할 수 있게 하여 비용 효율성, 추론 지연 시간, 컨텍스트 처리와 같은 과제를 해결
    • 추가 훈련 없이 다양한 LLM과 호환되고 LLamaIndex와 같은 프레임워크를 지원하는 LLMLingua는 LLM 추론 성능을 최적화하는 데 적합
  • Microsoft Autogen

    • Microsoft Autogen은 AI 에이전트 생성 및 오케스트레이션을 단순화하는 오픈 소스 프레임워크로, 복잡한 작업을 해결하기 위한 다중 에이전트 협업을 가능하게 함
    • 자율 및 human-in-the-loop 워크플로를 모두 지원하며, 다양한 LLM 및 에이전트 상호 작용을 위한 도구와의 호환성을 제공
    • 한 팀에서 각 에이전트가 코드 생성, 코드 검토 또는 문서 요약과 같은 특정 기술을 나타내는 AI 기반 플랫폼을 구축하기 위해 클라이언트용 Autogen 사용
    • 프레임워크를 사용하여 적절한 모델과 워크플로를 정의함으로써 팀이 새로운 에이전트를 원활하고 일관되게 생성할 수 있음
    • LlamaIndex를 활용하여 워크플로를 오케스트레이션하여 에이전트가 제품 검색 및 코드 제안과 같은 작업을 효율적으로 관리할 수 있음
    • Autogen은 특히 프로덕션 환경에서 가능성을 보여주었지만, 더 많은 에이전트가 추가됨에 따라 확장성 및 복잡성 관리에 대한 우려가 남아 있음
    • 에이전트 기반 시스템 확장에서의 장기적인 실행 가능성을 평가하려면 추가 평가가 필요
  • Pingora

    • Pingora는 빠르고 안정적이며 프로그래밍 가능한 네트워크 서비스를 구축하기 위한 Rust 프레임워크
    • 원래 Cloudflare에서 Nginx의 단점을 해결하기 위해 개발된 Pingora는 이미 River와 같은 새로운 프록시가 그 기반 위에 구축되고 있어 큰 잠재력을 보여주고 있음
    • 대부분의 사람들은 Cloudflare 수준의 규모에 직면하지 않지만, 유연한 애플리케이션 계층 라우팅이 네트워크 서비스에 필수적인 시나리오를 마주침
    • Pingora의 아키텍처를 통해 보안이나 성능을 희생하지 않고 이러한 상황에서 Rust의 모든 기능을 활용할 수 있음
  • Ragas

    • Ragas는 검색 및 생성 구성 요소를 모두 평가하는 과제를 해결하면서 검색 증강 생성(RAG) 파이프라인의 성능을 평가하도록 설계된 프레임워크
    • 충실도, 답변 관련성, 컨텍스트 활용과 같은 구조화된 메트릭을 제공하여 RAG 기반 시스템의 효과를 평가하는 데 도움
    • 개발자들은 최상위 k개 검색 및 임베딩 모델과 같은 매개변수를 미세 조정하기 위해 정기적인 평가를 실행하는 데 유용하다는 것을 발견
    • 일부 팀은 프롬프트 템플릿이나 모델이 변경될 때마다 매일 실행되는 파이프라인에 Ragas를 통합
    • 메트릭이 견고한 통찰력을 제공하지만, 프레임워크가 복잡한 RAG 파이프라인의 모든 뉘앙스와 복잡한 상호 작용을 포착하지 못할 수 있다는 우려가 있으며, 추가 평가 프레임워크를 고려할 것을 권장
    • 그럼에도 불구하고 Ragas는 프로덕션 환경에서 RAG 평가를 간소화하고 데이터 기반 개선을 제공하는 능력으로 두각을 나타냄
  • Score

    • 자체 내부 개발 플랫폼을 구현하는 많은 조직은 개발자와 플랫폼 호스팅 팀 간에 조직 표준을 적용하기 위해 자체 플랫폼 오케스트레이션 시스템을 만드는 경향이 있음
    • 그러나 컨테이너 워크로드를 안전하고 일관되며 규정을 준수하는 방식으로 호스팅하기 위한 포장도로 배포 플랫폼의 기본 기능은 조직마다 유사
    • 이러한 요구 사항을 지정하기 위한 공유 언어가 있다면 좋지 않을까?
    • Score는 이 분야에서 표준이 될 가능성을 보여주고 있음
    • YAML 형식의 선언적 언어로, 컨테이너화된 워크로드를 배포하는 방법과 실행하는 데 필요한 구체적인 서비스 및 매개변수 설명
    • Score는 원래 Humanitec의 Platform Orchestrator 제품을 위한 구성 언어로 개발되었지만, 현재는 오픈 소스 프로젝트로 CNCF(Cloud Native Computing Foundation)의 관리 하에 있음
    • CNCF의 지원으로 Score는 Humanitec 제품을 넘어 더 널리 사용될 가능성이 있음
    • Kubernetes 및 Docker Compose라는 두 가지 참조 구현과 함께 출시
    • Score의 확장성은 다른 플랫폼에 대한 커뮤니티 기여로 이어질 것으로 기대
    • Score는 Kubevela용 Open Application Model(OAM) 사양과 유사점이 있지만, 전체 애플리케이션보다는 컨테이너 워크로드 배포에 더 초점을 맞추고 있음
    • SST와도 약간의 중복이 있지만, SSI는 내부 엔지니어링 플랫폼이 아닌 클라우드 인프라에 직접 배포하는 데 더 관심이 있음
    • Score는 발전함에 따라 관심을 가지고 지켜보고 있음
  • shadcn

    • shadcn은 재사용 가능하고 복사하여 붙여넣을 수 있는 구성 요소를 제공함으로써 기존의 구성 요소 라이브러리 개념에 도전
    • 이 접근 방식은 팀에 완전한 소유권과 제어권을 제공하여 MUI 및 Chakra UI와 같은 더 일반적인 기존 라이브러리가 종종 부족한 영역인 더 쉬운 사용자 정의 및 확장을 가능하게 함
    • Radix UI 및 Tailwind CSS로 구축된 shadcn은 모든 React 기반 애플리케이션에 원활하게 통합되므로 제어 및 확장성을 우선시하는 프로젝트에 적합
    • 프로젝트에 구성 요소를 복사하여 붙여넣는 프로세스를 지원하는 CLI 포함
    • 숨겨진 종속성을 줄이고 밀접하게 결합된 구현을 방지하는 이점도 있으므로 shadcn은 프런트엔드 개발에 대해 보다 실용적이고 적응력 있는 접근 방식을 추구하는 팀에게 매력적인 대안으로 주목받고 있음
  • Slint

    • Slint는 Rust, C++ 또는 JavaScript 애플리케이션용 네이티브 사용자 인터페이스를 구축하기 위한 선언적 GUI 프레임워크
    • 라이브 미리보기, 반응형 UI 설계, VS Code 통합 및 네이티브 사용자 경험과 같은 중요한 기능을 갖춘 멀티플랫폼 UI 프레임워크이지만, 특히 임베디드 시스템에 대한 유용성을 강조하고 싶음
    • 임베디드 애플리케이션을 개발하는 팀은 전통적으로 UI 개발을 위한 옵션이 제한적이었으며, 각각 고유한 장단점이 있었음
    • Slint는 사용하기 쉬운 HTML과 유사한 마크업 언어를 사용하고 직접 기계어로 컴파일되어 개발자 경험과 성능 사이의 완벽한 균형을 제공
    • 런타임에도 임베디드 시스템에 중요한 낮은 리소스 공간을 자랑
    • 요약하면, Slint가 웹 및 모바일 개발의 검증된 관행을 임베디드 생태계로 가져오기 때문에 마음에 듦
  • SST

    • SST는 애플리케이션을 실행하는 데 필요한 모든 서비스와 함께 클라우드 환경에 애플리케이션을 배포하기 위한 프레임워크
    • SST는 단순한 IaC 도구가 아니라 애플리케이션 환경을 정의할 수 있는 TypeScript API가 있는 프레임워크이며, Git push에서 트리거될 때 애플리케이션을 배포하는 서비스와 결과 애플리케이션을 관리하고 SST 관리 기능을 호출하는 GUI 콘솔
    • SST는 원래 AWS Cloud Formation 및 CDK를 기반으로 했지만, 최신 버전은 Terraform 및 Pulumi 위에 구현되어 이론적으로 클라우드에 구애받지 않음
    • SST는 Next.js 및 Remix를 포함한 여러 표준 웹 애플리케이션 프레임워크 배포를 기본적으로 지원하지만 헤드리스 API 애플리케이션도 지원
    • SST는 자체 범주에 속하는 것으로 보임
    • Kubevela와 같은 플랫폼 오케스트레이션 도구와 유사점이 있지만, 개발자의 로컬 머신에서 실행되는 함수로 AWS Lambda 호출을 프록시하는 라이브 모드와 같은 개발자 편의 기능도 제공
    • 현재 SST는 여전히 약간의 호기심으로 남아 있지만, 발전함에 따라 주목할 만한 프로젝트이자 도구 범주의 일부

Hold : 없음

감사합니다. 재밌네요.

수고 많으셨네요... 감사드립니다!

중간에 지나가는 Lenis 이라는 스크롤 라이브러리에 대해서 생각을 얹어보자면.. 애플의 홈페이지같은 유려한 스크롤 애니메이션이 제게는 좀 불편하게 느껴지더라구요.

마우스 스크롤 휠을 돌려가면서 보려니 계속 애니메이션이 끊기는 느낌이고, 화살표 아래키를 눌러서 이동하자니 너무 빨라서 내용을 읽기가 힘들다고 느꼈습니다.

결국 윈도우즈에서 스크롤 휠을 클릭해서, 아주 살짝 움직여서 느릿느릿 내려가는게 그런 웹사이트를 '즐기는' 유일한 방법인데, 그 정도의 가치가 있는지 잘 모르겠습니다. 한 마디로 좋은 테크닉인지 잘 모르겠음.

데이터브릭스가 무서울 정도로 많이 나오네요

읽다가 지침. ㅠㅠ

GeekNews에 올라왔던 적 있는 제품/서비스를 정리했습니다.

Platforms - Assess

Platforms - Trial

Language and Frameworks - Adopt

Language and Frameworks - Assess

Language and Frameworks - Trial

Tools - Adopt

Tools - Assess

Tools - Trial

감사합니다. 재미 있네요~

잘 봤습니다. 감사드립니다.

재밌게 잘 읽었습니다. 감사합니다.