[CrewAI] CrewAI 시작하기아래 포스팅에서 CrewAI에 대한 간략한 설명과, 설치 방법에 대해서 알아보았다.리포터를 생성하기 위한 리서치 크루를 생성하는 과정을 이어서 진행해보자 😚 [CrewAI] CrewAI란?[CrewAI] CrewAI란?❗ 해당 포스팅에선 CrewAI Open Source Platform에 대해 알아본다. CrewAI?CrewAI는 롤플레잉, 자율 AI 에이전트를 사용하기 위한 최첨단 파이썬 프레임워크다.역할을 정해 상호작용함으로heywantodo.tistory.com Crew 생성하기다음 CLI 명령어로 crew_test라는 크루를 생성해준다.아래 사진과 같이 사용할 모델과 API KEY를 입력해주면 앞선 포스팅에서 말했던 폴더 구조가 생성된다. crewai crea..
[CrewAI] CrewAI란?❗ 해당 포스팅에선 CrewAI Open Source Platform에 대해 알아본다. CrewAI?CrewAI는 롤플레잉, 자율 AI 에이전트를 사용하기 위한 최첨단 파이썬 프레임워크다.역할을 정해 상호작용함으로써, 복잡한 작업을 처리할 수 있도록 지원한다.💡 AI Agent란?사람의 개입 없이 특정 작업을 수행하는 자율 지능형 시스템이다.환경과 상호작용하고, 데이터를 수집하고, 테이터를 사용하여 사전 결정된 목표를 달성하기 위해 필요한 작업을 스스로 결정해서 수행할 수 있다. 반복 작업을 AI 에이전트에게 위임하여 생산성을 향상시킨다. CrewAI의 장점CrewAI는 다른 에이전트(Autogen, LangGraph)들에 비해 간단한 사용성과 빠른 에이전트 구축을 지원하..
[AWS] IAM Role for SeviceAccount (IRSA) IAM과 RBACEKS 환경에서 사용자가 kubectl 명령어를 실행하면, 클러스터는 IAM을 통해 권한을 확인한다.EKS에서의 인증, 인가 구조는 다음과 같다.💡 자세히 알아보기요청이 들어오면 IAM Client에 요청을해서 bearer 토큰을 받게 된다.그 이후 Pre-signed URL이 생성되고 API 서버에서 Id Token을 확인한다 (AWS-IAM-Authenticator Server)토큰 값이 일치하면 ConfigMap(AWS-Auth)와 K8s RBAC이 Rolebinding을 하여 Role을 확인한다. IAM Roles for Service Accounts (IRSA)AWS IRSA는 AWS EKS의 클러스터에서 ..
[Python] Asyncioasyncioasyncio는 asycn/await 구문을 사용하여 동시성 코드를 작성하는 라이브러리다.asyncio는 고성능 네트워크 및 웹서버, 데이터베이스 연결 라이브러리, 분산 작업 큐 등을 제공하는 여러 파이썬비동기 프레임워크의 기반으로 사용된다. import asyncioasync def main(): print('Hello ...') await asyncio.sleep(1) print('... World!')asyncio.run(main()) asyncio는 다음과 같은 API를 제공한다.고수준 API코루틴, 네트워크 IO/IPC, Queue, 동기화 저수준 API이벤트 루프, Transport, Future Runnerasyncio.run(coro..
[Python] 동시성 프로그래밍 (2) 코루틴(Coroutine) 동시성 (Concurrency) 과 병렬성 (Parallelism) 동시성(Concurrency)이란, 여러 작업이 겹쳐서 실행될 수 있는 방식을 의미한다.이를테면, 여러 작업이 동시에 실행되는 것처럼 보이지만, 실제로는 CPU가 짧은 시간 단위로 여러 작업을 번갈아가면서 처리하는 방식이다. 병렬성(Parallelism)이란, 여러 작업을 실제로 동시에 처리하는 것을 의미한다. 즉, 여러 CPU코어가 각각 별도의 작업을 동시에 수행하는 방식이다. 병렬성은 실제로 물리적인 여러 프로세서나 CPU 코어가 필요하다. 즉, 동시성은 "논리적"에 가깝고 병렬성은 "물리적"에 가깝다. 코루틴(Coroutine)코루틴은 파이썬을 비롯한 여러 프로그래..
[Git] tracked & untracked files Git의 라이프사이클이전에 Git에 대해 포스팅을 할때, Git은 Committed, Modified, Staged 이렇게 세개의 상태로 관리한다고 언급 했었다.해당 상태는 Git 프로젝트의 세 가지 단계(Working Directory, Staging Area, Repository)와 연결되어 있다.Committed데이터가 로컬 데이터베이스에 안전하게 저장된 상태Modified수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 상태Staged현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태 워킹 디렉토리의 파일은 크게 Tracked(관리 대상)과 Untracked(관리대상이 아님)으로 나뉜다. Tracked & UntrackedTrackedT..
[Python] 동시성 프로그래밍 (1) 프로세스, 스레드동시성 프로그래밍은 여러 작업을 동시에 수행할 수 있도록 하는 프로그래밍 기법이다.이는 여러 프로세스나 스레드를 사용하여, 동시에 실행되는 프로그램을 작성하는 것을 포함한다. 동시성 프로그래밍은 특히 멀티코어 프로세서와 네트환경에서 중요하며, 이 방식은 다음과 같은 두 가지 주요 개념들을 포함한다.병렬성 (Parallelism)여러 작업이 동시에 실행되는 것비동기성 (Asynchrony)작업이 시작된 후, 그 작업이 완료될 때 까지 기다리지 않고 다른 작업을 수행 프로세스(Process) 스레드(Thread)멀티코어 프로세서의 발전으로, CPU의 모든 코어를 활용하여 작업을 병렬로 처리함으로써 처리 시간을 단축할 수 있다. CPU는 프로세스를 실행..
[etc] 동기(Synchronous)와 비동기(Asynchronous) 이번에 Tornado 웹프레임워크를 알게되었는데, 해당 웹프레임워크는 비동기 네트워킹을 지원하는 것이 주요 특징이다. 토네이도의 동작 방식을 이해하기 전 동기와 비동기에 대해서 조금 자세히 알아보고자 한다. 프로그래밍에서 동기(Synchronous)와 비동기(Asynchronous)는 작업 처리 방식의 두 가지 주요 패턴이다. 동기(Synchronous)"순서대로" 처리되는 방식이다.말그래도 한 작업이 완료되어야 다음 작업이 시작된다. 예를 들어, 버스가 한 곳에 정차하면 승객이 모두 타고 내린 후에야 출발한다. 승객이 다 탑승할 때까지 기다려야하기 때문이다. 동기 방식은 코드가 간단하고 이해하기 쉬우며, 디버깅이 용이하지만 (문제..
[Tornado] Tornado 알아보기 TornadoTornado는 FriendFeed 에서 개발된 Python 웹 프레임워크이자 비동기 네트워킹 라이브러리다.비차단 네트워크 I/O를 사용하여 Tornado는 수만 개의 개방형 연결로 확장이 가능하다. 따라서 long polling, WebSockets 및 각 사용자에 대해 같이 장기적인 연결 유지가 필요한 애플리케이션에 이상적이다. Threads and WSGI토네이도는 대부분의 Python의 웹프레임워크와 다르게 WSGI(Webserver Gateway Interface) 기반이 아니며, 일반적으로 프로세스 당 하나의 스레드로만 실행된다. 모듈에서 WSGI를 일부 지원하지만, 대부분의 애플리케이션은 WSGI를 사용하는 대신 토네이도 자체 인터페이스..
[K8s][Security] Mutating, Validating이전에 Admission Controller에 대해 포스팅 한 적이 있다. [K8s][CKS] Admission Controller[K8s][CKS] Admission Controller쿠버네티스의 접근제어에는 크게 3가지가 있다.Authentication접속한 사람의 신분을 시스템이 인증Authorization누가 어떤 권한을 가지고 어떤 행동을 할 수 있는지 확인Admissionheywantodo.tistory.com Admission 컨트롤러는 요청이 인증(Athentic)되고 승인된 후에 Kubernetes API 서버에 대한 요청을 가로채어,객체를 변형(Mutating)하고 검증(Validating)한다. Admission Cont..
[etc] STRIDE 위협 모델 개발자와 엔지니어가 개발 수명 주기(SDLC)에서 가능한 일찍 보안을 채택하도록 권장한다.그러한 보안 관행 중 하나가 바로 Treat Modeling(위협 모델링)이다. Threat Models(위협 모델)은 소프트웨어의 보안 위험을 식별하고 완화하는 체계적이고 구조화 된 방법이다.위협 모델을 만드는 다양한 방법과 방법론이 있지만, 그중 하나인 STRIDE라는 프로세스에 대해 알아보고자 한다. STRIDE란?Microsoft에서 대중화 한 프로세스로스푸핑(Spoofing), 변조(Tampering), 부인(Repudiation), 정보 공개(Information Disclosure), 서비스 거부(Denial of Service), 권한 승격(Elevation of Pr..