본문 바로가기

분류 전체보기

(110)
[AI] 에이전트를 만들어보자! AI 에이전트가 뭘까?요즘 AI 에이전트라는 말을 정말 많이 들으실 겁니다.그냥 ChatGPT에게 질문하고 답변을 받는 걸 에이전트라고 부르는 걸까요? 공식 문서들을 보면 조금 더 명확한 구분이 있습니다.OpenAI의 Agents SDK 문서에서는 에이전트를 다음 요소로 구성된 LLM이라고 설명합니다.Instructions: 모델이 어떤 역할을 해야 하는지 알려주는 지시문Model: 실제로 호출할 LLMTools: 에이전트가 작업을 수행하기 위해 호출할 수 있는 함수나 APIAI 에이전트 = LLM + 역할 지시문 + 사용할 수 있는 도구 + 작업 흐름 그럼 이제 이 에이전트를 한번 만들어보겠습니다. 다들 취업을 위해서나 이직을 위해서 이력서를 작성하실 테니 이력서를 작성하는 에이전트를 만들어볼까 합니다..
[NEWS] Marrrang Dev News - 26.04.24 1. GitHub Trending Top 3현재 개발 커뮤니티에서 가장 뜨거운 관심을 받고 있는 오픈소스 프로젝트입니다.프로젝트카테고리핵심 요약elder-plinius/CL4R1T4SAI Safety/Research주요 LLM들의 시스템 프롬프트 및 내부 작동 로직 분석 데이터셋forrestchang/andrej-karpathy-skillsAI EngineeringClaude Code 및 Cursor 등 AI 에이전트 성능 극대화를 위한 워크플로우 설정bytedance/deer-flowAI Agents복잡한 다단계 과업을 스스로 계획하고 실행하는 슈퍼 에이전트 프레임워크상세 분석 및 사용법[bytedance/deer-flow]특징: 바이트댄스에서 공개한 이 프로젝트는 단순한 챗봇을 넘어 연구, 코딩, 데..
[프로그래머스] 비밀 코드 해독 (Kotlin) 카테고리DFS나만의 카테고리DFS문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/388352🧠 요점전체 조합을 생성한 후 조건에 맞는지 검증하는 방식시간 초과를 막기 위해 조건 필터링을 효율적으로 구현DFS로 조합을 생성하고, 조건 검증은 intersect와 any로 간결하게 처리📚 참고 지식DFS (조합 생성)Kotlin intersect()Kotlin any { ... } 를 활용한 조건 조기 종료💻 풀이 (Kotlin)[기존 풀이 코드]class Solution { var fullCombination: List> = emptyList() fun solution(n: Int, q: Array, ans: IntArr..
[DB] Exposed 사용해보기 Exposed란?Kotlin용 ORM 프레임워크이자 JDBC 드라이버를 사용하는 경량 SQL 라이브러리. Kotlin DSL을 활용하여 SQL을 보다 직관적으로 작성할 수 있으며, DAO 방식도 지원하여 객체지향적인 데이터 접근이 가능합니다.지원 데이터베이스MariaDBMySQLOraclePostgresMicrosoft SQLSQLITEH2 (versions 2.x; 1.x version은 deprecated 예정)(Also, PostgreSQL using the pgjdbc-ng JDBC driver)Exposed 모듈exposed-core - 기본 모듈로, DSL API와 매핑 기능을 포함exposed-crypt - 암호화된 데이터를 데이터베이스에 저장할 수 있도록 추가 컬럼 타입을 제공하며, 클라이..
[Web] 성능테스트에 대하여(with K6) 최근에 K6를 사용한 부하테스트를 진행한 경험이 있었습니다. 진행하면서 알게된 사실들을 정리해보려 합니다. 주요 용어Response Time - 응답시간사용자의 요청(Request)이 발생하고 시스템이 응답(Response) 할때 까지의 시간 Request Interval - 요청주기(Think time)사용자가 시스템에 방문 후 요청을 발생 시키는 주기 Throughput - 처리량 시스템이 주어진 시간 동안 처리할 수 있는 작업의 양을 측정하는 중요한 성능 지표단위는 tps, pps, rps, hit/sec 등등이 있다. Saturation Point - 임계점시스템이 처리할 수 있는 최대 성능에 도달했을 때를 나타내는 지점부하 테스트에서 임계점을 파악하는 것은 시스템의 한계를 이해하고 최적의 성능 ..
[Web] gRPC 사용해보기 개요gRPC는 위에서의 설명과 같이 모든 환경에서 실행할 수 있는 고성능 RPC(원격 프로시저 호출) 프레임워크입니다. 구글에서 개발해서 g를 접두사로 붙였습니다. 원격 프로시저 호출이라는 의미는 다른 서버의 함수(프로시저)를 내 서버에서 실행할 수 있다는 의미이고 gRPC는 이를 지원하는 프레임워크입니다.장점HTTP/2와 Protobuf 등을 사용하여 빠르고 효율적인 통신. 특히 대용량 데이터 전송 시 이점이 있음서버와 클라이언트의 양방향 스트리밍을 지원하여 실시간 데이터 처리에 용이거의 모든 환경에서 사용 가능단점디버깅이 어려움(Protobuf는 바이너리 방식)기본적인 브라우저 환경에서는 사용이 어려움. 추가적인 라이브러리 필요.예시(Server)이 글에서는 자주 사용하는 Web 서버의 상황을 예를 ..
[AI] Gemma 사용해보기 Gemma Google에서 공개한 경량 오픈 모델(sLLM), 경량 모델로서 온디바이스 모델로 활용하기 적합 현재는 Parameter 20억개, 70억개 모델로 gemma-2b, gemma-7b가 공개 상태 Apache-2.0 라이센스 HuggingFace Gemma 아래는 HuggingFace를 이용한 방법으로 설명 환경 세팅 HuggingFace Gemma 라이센스 승인하기 https://huggingface.co/google/gemma-2b google/gemma-2b · Hugging Face This repository is publicly accessible, but you have to accept the conditions to access its files and content. To a..
[JPA] 낙관적 Lock, 비관적 Lock 개요 JPA에는 동시에 여러 사용자가 접근하여 데이터를 조작할 때 발생할 수 있는 문제를 다루기 위해 Lock을 지원하고 있습니다. 이 중에 낙관적 Lock(Optimistic Lock), 비관적 Lock(Pessimistic Lock)에 대해서 알아보려 합니다. 낙관적 Lock 낙관적이란 단어에서 알 수 있듯이 데이터 갱신 시 충돌이 발생하는 것을 막는 것이 아닌 충돌이 일어났을 때 처리하는 Lock입니다. @Entity class Book( @Id val bookId: String, val bookName: String, @Version val version: Int ) JPA에서는 위와 같이 Entity에 version 필드를 지정하여 사용합니다. version 값을 통해서 Entity의 변경사항을..
[Kafka] Kafka를 편하게 Kafkactl 명령어 Github https://github.com/deviceinsight/kafkactl GitHub - deviceinsight/kafkactl: Command Line Tool for managing Apache Kafka Command Line Tool for managing Apache Kafka. Contribute to deviceinsight/kafkactl development by creating an account on GitHub. github.com 설치 homebrew: # install tap repostory once brew tap deviceinsight/packages # install kafkactl brew install deviceinsight/packages/kafk..
[Java] Virtual Thread(가상 쓰레드) Virtual Thread 2023년 9월에 릴리즈 예정인 Java 21부터 제공되는 기능으로써 기존의 스레드 이외에 추가되는 경량 쓰레드입니다. 기존의 스레드 VS 가상 스레드 기존 스레드 OS (Operating System)이 관리하고 스케쥴링 한다. 즉, 기존 Java에서 스레드를 사용하는 것은 OS의 스레드를 사용하는 방식이다. OS 커널 스레드를 새로 생성하는 것은 비용이 크다. 그래서 스레드 풀 (Thread Pool)을 사용했었다. OS에서 context switch가 될 경우 시간이 오래 걸리기 때문에 non-blocking I/O 방식 혹은 비동기 방식으로 사용해야 조금 더 효율적으로 스레드를 사용할 수 있다. 가상 스레드 JVM에 의해 관리되고 스케쥴링 된다. 가상 머신에 의해 관리되..