"나는 어떤 사람일까?" 누구나 한 번쯤 궁금해하는 질문입니다.

무료성격테스트는 이런 궁금증을 해소하는 가장 쉬운 방법이죠. 요즘은 온라인성격테스트로 간편하게 나의성격유형을 알아볼 수 있습니다.

 

 

오늘은 2026년 현재 인기 있는 성격유형테스트 사이트들을 비교 분석해드리려고 합니다.

 

성격검사의 정확도, 사용 편의성, 결과 분석의 깊이까지 꼼꼼하게 살펴봤으니

성격테스트사이트를 찾는 분들께 도움이 되길 바랍니다.

 

 

 

 

1. 성격 테스트의 종류와 특징

1-1. MBTI 기반 성격유형테스트

가장 대중적인 성격검사 방식입니다. 16가지 성격 유형으로 분류하는 무료성격테스트가 많아요.

유형 그룹 특징 대표 유형
분석가형 논리적, 전략적 INTJ, INTP, ENTJ, ENTP
외교관형 공감적, 이상적 INFJ, INFP, ENFJ, ENFP
관리자형 실용적, 안정적 ISTJ, ISFJ, ESTJ, ESFJ
탐험가형 자유로운, 융통성 ISTP, ISFP, ESTP, ESFP

성격유형테스트를 통해 나의성격유형이 어느 그룹에 속하는지 확인할 수 있습니다.

1-2. Big5 성격 모델

심리학에서 가장 과학적으로 인정받는 성격분석테스트입니다. 5가지 특성으로 성격을 분석해요.

Big5 5가지 요소:

  • 개방성: 새로운 경험에 대한 태도
  • 성실성: 목표 지향성과 자기 통제력
  • 외향성: 사회적 상호작용 선호도
  • 친화성: 타인과의 협력 정도
  • 신경성: 정서적 안정성

무료심리테스트 중 Big5 기반 성격검사는 학술적 신뢰도가 높습니다.

 

 

1-3. AI 기반 성격 분석

2026성격테스트 트렌드는 단연 AI성격테스트입니다. 답변 패턴을 분석해서 더 정교한 성격분석테스트 결과를 제공합니다.

 

기존 온라인성격테스트와 달리 AI는:

  • 답변 일관성 체크
  • 미세한 성향 차이 분석
  • 개인화된 결과 제공

성격테스트사이트 선택 시 AI 기능 여부를 확인해보세요.

 

 

 

 

 

 

2. 2026년 추천 무료 성격 테스트 사이트

2-1. 16Personalities

전 세계적으로 가장 유명한 성격유형테스트 사이트입니다. 무료성격테스트로 MBTI 기반 분석을 제공합니다.

 

 

장점:

  • 상세한 나의성격유형 설명
  • 직업, 연애, 우정 등 다양한 영역 분석
  • 다국어 지원

단점:

  • 질문이 93개로 많음
  • 번역이 다소 어색
  • 결과 저장 시 회원가입 필요

성격검사의 정석이라 할 수 있지만, 시간이 오래 걸리는 편입니다.

 

2-2. Solastar AI Test Lab

최근 주목받는 AI성격테스트 전문 사이트입니다. https://i.solastar.net에서 다양한 무료성격테스트를 즐길 수 있습니다.

 

장점:

  • 깔끔한 UI
  • AI가 만들어낸 정교한 성격분석테스트
  • 각 성향별 퍼센티지 제공
  • 회원가입 없이 바로 테스트
  • 성격유형테스트 외 다양한 테스트 모음

 

단점:

  • 상대적으로 신생 사이트
  • 커뮤니티 기능 없음

 

개인적으로 성격테스트사이트 중 가장 마음에 드는 곳입니다. 온라인성격테스트를  집중해서 할 수 있어요.

세부적으로 나의성격유형을 파악할 수 있습니다.

 

 

 

 

 

 

3. 정확한 성격 테스트를 위한 5가지 팁

3-1. 솔직하게 답변하기

성격유형테스트의 정확도는 솔직함에 비례합니다. "이렇게 답하면 좋아 보이겠지"라는 생각을 버리세요. 무료성격테스트는 나를 평가하는 게 아니라 이해하는 도구입니다.

 

3-2. 현재의 나로 답하기

과거의 나, 이상적인 나가 아닌 지금 이 순간의 나를 기준으로 성격검사에 답하세요. 온라인성격테스트는 현재 시점의 성격 경향을 측정합니다.

3-3. 컨디션 좋을 때 하기

피곤하거나 스트레스 받은 상태에서 성격분석테스트를 하면 결과가 왜곡될 수 있습니다. AI성격테스트도 마찬가지예요. 마음이 편안할 때 무료심리테스트를 진행하세요.

 

3-4. 충분한 시간 확보하기

성격유형테스트를 서두르면 정확도가 떨어집니다. 최소 15-20분은 여유를 두고 성격테스트사이트에서 테스트에 집중하세요.

 

 

3-5. 여러 사이트 비교하기

하나의 무료성격테스트만 맹신하지 마세요. 2-3개 사이트에서 성격검사를 해보고 일관된 결과가 나오는지 확인하는 게 좋습니다.

 

 

 

 

 

 

4. 성격 테스트 결과 활용법

4-1. 자기 이해에 활용

나의성격유형을 알면 "내가 왜 이런 행동을 하는지" 이해할 수 있습니다. 성격분석테스트 결과를 자기 반성의 도구로 활용하세요.

상황 활용 방법
반복되는 갈등 성격적 원인 파악
진로 고민 적성에 맞는 직업 탐색
대인관계 어려움 소통 스타일 개선
스트레스 관리 나에게 맞는 해소법 찾기

4-2. 대인관계에 활용

성격유형테스트로 상대방의 성향을 이해하면 소통이 수월해집니다. 무료심리테스트를 함께 해보고 서로의 차이를 인정하세요.

4-3. 커리어에 활용

성격검사 결과는 직업 선택에도 참고가 됩니다. 물론 온라인성격테스트 결과만으로 중요한 결정을 내리면 안 되지만, 방향 설정에는 도움이 됩니다.

4-4. 주의할 점

무료성격테스트는 과학적 진단 도구가 아닙니다. 2026성격테스트 트렌드가 AI를 활용해 정확도가 올라갔다고 해도, 결과를 절대적으로 받아들이면 안 됩니다.

 

 

5. 성격유형별 특징 간단 정리

성격테스트사이트에서 결과를 받았다면 아래 표를 참고하세요.

5-1. 외향형 vs 내향형

구분 외향형 (E) 내향형 (I)
에너지 원천 사람들과의 교류 혼자만의 시간
사고 방식 말하면서 생각 정리 생각 후 말함
선호 환경 활발한 분위기 조용한 공간
스트레스 해소 사람 만나기 혼자 쉬기

5-2. 감각형 vs 직관형

구분 감각형 (S) 직관형 (N)
정보 수집 구체적 사실 중시 전체 패턴 중시
관심사 현재, 현실 미래, 가능성
업무 스타일 단계적 진행 영감에 따라
의사소통 구체적, 명확 추상적, 비유적

5-3. 사고형 vs 감정형

구분 사고형 (T) 감정형 (F)
의사결정 논리와 분석 가치와 감정
갈등 해결 객관적 기준 조화 추구
피드백 직설적 배려적
중시하는 것 진실, 공정함 관계, 화합

AI성격테스트에서는 이런 성향들의 퍼센티지를 보여줘서 더 세밀하게 나의성격유형을 파악할 수 있습니다.

 

 

 

6. 2026년 성격 테스트 트렌드

6-1. AI 기반 분석 고도화

2026성격테스트의 가장 큰 변화입니다. https://i.solastar.net같은 성격테스트사이트에서 AI를 활용한 성격분석테스트가 늘어나고 있어요.

 

무료 MBTI 테스트 | 성격유형·궁합·직업추천 한번에 - 솔라스타

솔라스타에서 제공하는 무료 MBTI 및 심리테스트 모음. 성격 유형, 연애 궁합, 직업 추천 등 다양한 무료 게임 테스트를 통해 나를 발견해보세요.

i.solastar.net

 

AI성격테스트의 장점:

  • 답변 패턴 분석으로 일관성 체크
  • 개인화된 상세 결과
  • 시간에 따른 변화 추적

6-2. 짧은 테스트 선호

성격검사보다 5-10분 내에 끝나는 무료성격테스트가 인기입니다. 온라인성격테스트의 접근성이 중요해진 거죠.

 

6-3. 결과 시각화

성격유형테스트 결과를 그래프, 차트로 보여주는 성격테스트사이트가 늘어나고 있습니다. 퍼센티지 막대그래프로 나의성격유형을 한눈에 파악할 수 있어요.

6-4. 다양한 테스트 모음

MBTI만 있던 시대는 지났습니다. 무료심리테스트로 성격, 연애, 직업, 대인관계 등 다양한 영역을 한 곳에서 분석할 수 있는 성격테스트사이트가 인기예요.

 

 

 

 

 

#!/bin/bash

# 루트 권한 체크
if [ "$EUID" -ne 0 ]; then
    echo "루트 권한으로 실행해주세요."
    exit 1
fi

# 사용자 정보 입력받기
read -p "생성할 사용자 이름: " username
read -p "사용자 실제 이름: " realname
read -s -p "초기 비밀번호: " password
echo

# 사용자가 이미 존재하는지 확인
if id "$username" &>/dev/null; then
    echo "사용자 $username 가 이미 존재합니다."
    exit 1
fi

# 사용자 생성
useradd -m -s /bin/bash "$username"

# 비밀번호 설정
echo "$username:$password" | chpasswd

# 홈 디렉토리 권한 설정
chmod 700 /home/$username
chown $username:$username /home/$username

# 사용자의 기본 그룹만 유지하고 다른 그룹에서 제거
usermod -G "" "$username"

# 첫 로그인시 비밀번호 변경 강제
chage -d 0 "$username"

# 결과 출력
echo "사용자 계정이 생성되었습니다:"
echo "사용자명: $username"
echo "홈 디렉토리: /home/$username"
echo "권한 설정: 홈 디렉토리만 접근 가능"

terraform.tfstate 파일을 삭제하면 안되는 이유

terraform.tfstate 파일을 삭제하면 안되는 주요 이유들을 다음과 같이 설명할 수 있습니다:

## 인프라 상태 관리 손실

terraform.tfstate 파일은 Terraform이 관리하는 인프라의 현재 상태를 저장하는 핵심 파일입니다[1]. 이 파일이 삭제되면:

- Terraform이 기존에 생성한 리소스들의 상태 정보를 잃게 됩니다
- 실제 인프라와 Terraform 코드 간의 매핑 정보가 사라집니다
- 리소스들 간의 의존성 정보가 손실됩니다[1]

## 리소스 관리의 어려움

상태 파일이 삭제되면 다음과 같은 문제가 발생합니다:

- Terraform이 기존 리소스를 인식하지 못해 동일한 리소스를 중복 생성하려고 시도합니다[6]
- 리소스 수정이나 삭제가 어려워집니다
- terraform destroy 명령어로 리소스를 정리할 수 없게 됩니다[6]

## 인프라 불일치 문제

상태 파일 없이 Terraform을 실행하면:

- 실제 인프라와 코드 간의 차이를 파악할 수 없습니다[2]
- 리소스의 현재 상태를 추적할 수 없게 됩니다
- 의도하지 않은 리소스 변경이나 충돌이 발생할 수 있습니다[1]

## 권장 사항

상태 파일의 안전한 관리를 위해:

- 상태 파일을 S3, Azure Blob Storage 같은 원격 백엔드에 저장합니다[5]
- 상태 파일 잠금(State Locking) 기능을 사용하여 동시 수정을 방지합니다[5]
- 정기적으로 백업을 수행하고 버전 관리를 합니다[5]
- Git과 같은 소스 컨트롤에는 저장하지 않습니다[1]

인용:
[1] [Terraform] 인프라 리소스 관리 - state와 backend https://omoknooni.tistory.com/72
[2] State File in Terraform: What Do You Need to Know? - Anywhere Club https://aw.club/global/en/blog/state-file-in-terraform-what-you-need-to-know
[3] Recovering Lost Terraform State for Accidental Deletion or Corruption https://www.linkedin.com/pulse/recovering-lost-terraform-state-accidental-deletion-corruption-hoang
[4] State | Terraform - HashiCorp Developer https://developer.hashicorp.com/terraform/language/state
[5] What is Terraform State File? Explained With Examples https://blog.techiescamp.com/terraform-state-file/
[6] TerraWeek#Day 4-Importance of State in Terraform - Gajanan https://gajananb.hashnode.dev/terraweekday-4-importance-of-state-in-terraform
[7] Managing Terraform State - Best Practices & Examples - Spacelift https://spacelift.io/blog/terraform-state


terraform.tfstate 파일이 꼬이지 않아?
이유와 해결방법 알려줘

terraform.tfstate 파일이 꼬이는 주요 원인과 해결방법을 설명해드리겠습니다.

## 문제 발생 원인

1. **동시 작업으로 인한 충돌**
- 여러 사용자가 동시에 같은 상태 파일을 수정할 때 발생[2]
- 상태 파일의 부정합과 Race Condition 발생 가능성[2]

2. **부적절한 상태 파일 관리**
- 로컬에서만 상태 파일을 관리할 경우 발생[2]
- Git과 같은 소스 컨트롤에 직접 저장 시 문제 발생[2]

## 해결 방안

**1. 원격 백엔드 구성**

```hcl
terraform {
  backend "s3" {
    bucket = "terraform-state-bucket"
    key    = "terraform.tfstate"
    region = "ap-northeast-2"
    dynamodb_table = "terraform-lock"
    encrypt = true
  }
}
```

**2. DynamoDB를 이용한 State Locking 구현**

```hcl
resource "aws_dynamodb_table" "terraform_lock" {
  name           = "terraform-lock"
  billing_mode   = "PAY_PER_REQUEST"
  hash_key       = "LockID"
  attribute {
    name = "LockID"
    type = "S"
  }
}
```

**3. S3 버킷 버전관리 활성화**

```hcl
resource "aws_s3_bucket_versioning" "terraform_state" {
  bucket = aws_s3_bucket.terraform_state.id
  versioning_configuration {
    status = "Enabled"
  }
}
```

## 권장 사항

1. **상태 파일 중앙화**
- S3와 같은 원격 저장소 사용[2]
- 팀원 간 동일한 상태 파일 참조 가능[5]

2. **버전 관리**
- S3 버킷의 버전관리 기능 활성화[3]
- 상태 파일 변경 이력 추적 가능

3. **잠금 메커니즘 사용**
- DynamoDB를 통한 State Locking 구현[5]
- 동시 작업 방지 및 데이터 일관성 유지

4. **백업 관리**
- 상태 파일의 자동 백업 구성[5]
- 문제 발생 시 복구 가능성 확보

이러한 조치들을 통해 terraform.tfstate 파일의 무결성을 유지하고 안전하게 관리할 수 있습니다.

인용:
[1] Terraform State file의 Terraform 버전 변경하기 (AWS 기준) - velog https://velog.io/@jay-side-project/Terraform-State-file%EC%9D%98-Terraform-%EB%B2%84%EC%A0%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0-AWS-%EA%B8%B0%EC%A4%80
[2] [Terraform] 인프라 리소스 관리 - state와 backend https://omoknooni.tistory.com/72
[3] Terraform의 tfstate를 원격으로 관리하기 https://blog.outsider.ne.kr/1290
[4] Terraform 상태 관리하기 - velog https://velog.io/@jaehan/Terraform-%EC%83%81%ED%83%9C-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0
[5] [Terraform] 테라폼 Locking과 Backup (S3, DynamoDB) - kim.dragon https://kim-dragon.tistory.com/210
[6] 테라폼 Terraform 리소스 변경, 삭제 - 두두네 클라우드 - 티스토리 https://daaa0555.tistory.com/369
[7] 32탄-9. 4주 차-테라폼-State의 목적과 의미 - 브런치스토리 https://brunch.co.kr/@topasvga/3382
[8] 테라폼 t102 스터디 - state - 악분의 블로그 https://malwareanalysis.tistory.com/633







github actions로 terraform 리소스를 배포하고 있어.
강제 종료 시 에러가 왜 나는지 설명해주고, 조치 방안을 step by step으로 자세히 알려줘

GitHub Actions에서 Terraform 배포 중 강제 종료 시 발생하는 문제와 해결 방안을 설명해드리겠습니다.

## 문제 원인

GitHub Actions에서 Terraform 작업을 강제 종료하면 다음과 같은 문제가 발생합니다:

1. 상태 파일이 잠금 상태로 유지되어 후속 Terraform 작업이 실행되지 않습니다[3].
2. 작업이 정상적으로 종료되지 않아 상태 파일이 비어있거나 동기화되지 않을 수 있습니다[3].
3. 리소스는 생성되었지만 상태 파일에 기록되지 않아 관리가 어려워질 수 있습니다[3].

## 해결 방안

**1. 워크플로우 설정 개선**

```yaml
name: Terraform Deployment
on:
  push:
    branches: [ main ]
jobs:
  terraform:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      
      - name: Setup Terraform
        uses: hashicorp/setup-terraform@v1
        
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ${{ secrets.AWS_REGION }}
          
      - name: Terraform Init
        id: init
        run: terraform init
        
      - name: Terraform Plan
        id: plan
        run: terraform plan -out=tfplan
        
      - name: Manual Approval
        uses: trstringer/manual-approval@v1
        with:
          secret: ${{ github.TOKEN }}
          approvers: username1,username2
          minimum-approvals: 1
          issue-title: "Terraform Deployment Approval Required"[2]
```

**2. 상태 잠금 해제 절차**

1. DynamoDB 테이블에서 잠금 확인:
```bash
aws dynamodb get-item --table-name terraform-state-lock --key '{"LockID":{"S":"terraform-state"}}'
```

2. 강제 잠금 해제:
```bash
terraform force-unlock [LOCK_ID]
```[4]

**3. 상태 파일 복구**

1. S3 버킷에서 이전 상태 파일 버전 확인[3]
2. 최신 유효한 버전으로 복원
3. Terraform 상태 새로고침:
```bash
terraform refresh
```

## 예방 조치

1. **종료 트랩 설정**
```yaml
- name: Terraform Apply
  run: |
    trap "terraform force-unlock -force $(terraform state pull | jq -r '.serial')" EXIT
    terraform apply -auto-approve
```[3]

2. **권한 설정 확인**
- S3 버킷에 대한 DeleteObject 권한
- DynamoDB 테이블에 대한 DeleteItem 권한 추가[4]

3. **타임아웃 설정**
```yaml
jobs:
  terraform:
    timeout-minutes: 30
```

4. **승인 프로세스 추가**
- 프로덕션 환경 배포 전 수동 승인 단계 구현[2]
- 계획 결과 검토를 위한 이슈 생성

이러한 조치들을 통해 강제 종료로 인한 문제를 최소화하고, 발생 시 신속하게 복구할 수 있습니다.

인용:
[1] Can't have a terraform plan work from a github action (related to ... https://github.com/hashicorp/terraform-github-actions/issues/84
[2] Automating Terraform Deployments with GitHub Actions: A Step-by ... https://nordcloud.com/tech-community/automating-terraform-deployments-with-github-actions-a-step-by-step-guide/
[3] GitHub Actions. Canceled action leads to permanently locked state. https://www.reddit.com/r/Terraform/comments/11u508t/deploying_w_github_actions_canceled_action_leads/
[4] Error acquiring the state lock: ConditionalCheckFailedException https://stackoverflow.com/questions/62189825/error-acquiring-the-state-lock-conditionalcheckfailedexception
[5] Troubleshooting: GitHub Actions + Terraform + EKS + Helm https://dev.to/aws-builders/troubleshooting-github-actions-terraform-eks-helm-3khj
[6] Terraform with GitHub Actions : How to Manage & Scale - Spacelift https://spacelift.io/blog/github-actions-terraform

crew ai의 주요 기능에 대해서 팀원들한테 설명하려고 해.
샘플 코드와 함께 agent, task, tool 위주로 설명 작성해줘

CrewAI의 주요 기능에 대해 팀원들에게 설명하기 위해 Agent, Task, Tool을 중심으로 샘플 코드와 함께 설명을 작성해 드리겠습니다.

## CrewAI 주요 기능

CrewAI는 여러 AI 에이전트가 협력하여 복잡한 작업을 수행할 수 있게 해주는 프레임워크입니다. 주요 구성 요소는 Agent, Task, Tool입니다.

### 1. Agent (에이전트)

Agent는 특정 역할을 수행하는 AI 개체입니다. 각 에이전트는 고유한 역할, 목표, 배경 스토리를 가지고 있습니다.

```python
from crewai import Agent

researcher = Agent(
    role='연구원',
    goal='최신 AI 트렌드 분석',
    backstory='AI 분야에서 10년 경력을 가진 전문 연구원',
    verbose=True,
    allow_delegation=False
)

writer = Agent(
    role='작가',
    goal='연구 결과를 바탕으로 블로그 글 작성',
    backstory='기술 블로그 전문 작가로 5년간 활동 중',
    verbose=True,
    allow_delegation=False
)
```

### 2. Task (작업)

Task는 에이전트가 수행해야 할 구체적인 작업을 정의합니다.

```python
from crewai import Task

research_task = Task(
    description='2024년 AI 트렌드 조사 및 보고서 작성',
    agent=researcher
)

writing_task = Task(
    description='연구 보고서를 바탕으로 블로그 글 작성',
    agent=writer
)
```

### 3. Tool (도구)

Tool은 에이전트가 작업을 수행하는 데 사용하는 도구입니다. CrewAI는 다양한 내장 도구를 제공하며, 사용자 정의 도구도 만들 수 있습니다.

```python
from crewai import Tool
from langchain.tools import DuckDuckGoSearchRun

search_tool = Tool(
    name='인터넷 검색',
    func=DuckDuckGoSearchRun().run,
    description='최신 정보를 인터넷에서 검색합니다.'
)

researcher.add_tool(search_tool)
```

### 크루 구성 및 실행

Agent, Task, Tool을 정의한 후, Crew를 구성하고 작업을 실행합니다.

```python
from crewai import Crew

crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, writing_task],
    verbose=2
)

result = crew.kickoff()
print(result)
```

이 예제에서는 연구원과 작가 두 명의 에이전트가 협력하여 AI 트렌드 조사 및 블로그 글 작성 작업을 수행합니다. 연구원은 인터넷 검색 도구를 사용하여 정보를 수집하고, 작가는 이를 바탕으로 글을 작성합니다[1][2][3].

CrewAI를 사용하면 복잡한 작업을 여러 에이전트가 협력하여 효율적으로 처리할 수 있으며, 각 에이전트의 전문성을 활용하여 높은 품질의 결과물을 얻을 수 있습니다[4][5].

인용:
[1] crewai - 다중 AI 에이전트 협업 프레임워크 - TILNOTE https://tilnote.io/pages/66b05156788ca90bdea6d80d
[2] Crew AI로 에이전트 행동 구현하기 - Toolify AI https://www.toolify.ai/ko/ai-news-kr/crew-ai-1863091
[3] CrewAI로 나만의 AI Agent 만들기 https://devocean.sk.com/blog/techBoardDetail.do?ID=166150&boardType=techBlog
[4] Crew AI로 AI 에이전트 팀을 몇 분 안에 구축하기! https://www.toolify.ai/ko/ai-news-kr/crew-ai-ai-1317636
[5] CrewAI를 이용한 대규모 언어 모델 Solar와 Hermes의 협업 프로젝트 https://fornewchallenge.tistory.com/entry/CrewAI%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EB%8C%80%EA%B7%9C%EB%AA%A8-%EC%96%B8%EC%96%B4-%EB%AA%A8%EB%8D%B8-Solar%EC%99%80-Hermes%EC%9D%98-%ED%98%91%EC%97%85-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8


https://www.perplexity.ai/search/crewaie-daehaeseo-seolmyeongha-vJuDa0STTbWS2zjVTjnXdQ#2

## 기본 설정

먼저 필요한 라이브러리를 임포트하고 기본 설정을 합니다.

```python
from crewai import Agent, Task, Crew
from langchain.tools import DuckDuckGoSearchRun

# 검색 도구 설정
search_tool = DuckDuckGoSearchRun()
```

## 에이전트 정의

블로그 포스트 작성에 필요한 세 가지 역할의 에이전트를 정의합니다.

```python
# 연구원 에이전트
researcher = Agent(
    role='연구원',
    goal='주제에 대한 최신 정보와 통계를 수집',
    backstory='당신은 꼼꼼하고 정확한 정보를 찾아내는 전문 연구원입니다.',
    tools=[search_tool],
    verbose=True
)

# 작가 에이전트
writer = Agent(
    role='작가',
    goal='흥미롭고 정보가 풍부한 블로그 포스트 작성',
    backstory='당신은 복잡한 주제를 쉽게 설명할 수 있는 재능 있는 작가입니다.',
    tools=[search_tool],
    verbose=True
)

# 편집자 에이전트
editor = Agent(
    role='편집자',
    goal='글의 품질을 높이고 일관성 있는 톤을 유지',
    backstory='당신은 꼼꼼한 교정과 건설적인 피드백을 제공하는 경험 많은 편집자입니다.',
    tools=[search_tool],
    verbose=True
)
```

## 작업 정의

각 에이전트에게 할당할 작업을 정의합니다.

```python
task1 = Task(
    description='AI와 기후 변화에 대한 최신 연구와 통계를 수집하세요.',
    agent=researcher
)

task2 = Task(
    description='수집된 정보를 바탕으로 "AI가 기후 변화 대응에 미치는 영향"에 대한 1500자 블로그 포스트를 작성하세요.',
    agent=writer
)

task3 = Task(
    description='작성된 블로그 포스트를 검토하고 필요한 수정사항을 제안하세요.',
    agent=editor
)
```

## 크루 생성 및 실행

정의된 에이전트와 작업으로 크루를 구성하고 실행합니다.

```python
crew = Crew(
    agents=[researcher, writer, editor],
    tasks=[task1, task2, task3],
    verbose=2
)

result = crew.kickoff()
print(result)
```

## 실행 과정

이 코드를 실행하면 다음과 같은 과정이 진행됩니다:

1. 연구원 에이전트가 AI와 기후 변화에 관한 최신 정보를 수집합니다.
2. 작가 에이전트가 수집된 정보를 바탕으로 블로그 포스트를 작성합니다.
3. 편집자 에이전트가 작성된 포스트를 검토하고 피드백을 제공합니다.
4. 최종 결과물이 출력됩니다.

이 예제는 CrewAI의 기본적인 사용 방법을 보여줍니다. 실제 사용 시에는 더 복잡한 작업 흐름과 추가적인 도구를 통합할 수 있습니다. 예를 들어, 특정 API를 사용하여 실시간 데이터를 가져오거나, 자연어 처리 도구를 통합하여 텍스트 분석을 수행할 수 있습니다.

CrewAI의 강점은 이러한 복잡한 작업 흐름을 여러 전문화된 에이전트가 협력하여 수행할 수 있다는 점입니다. 각 에이전트는 자신의 역할에 집중하면서도 다른 에이전트와 정보를 교환하고 협력하여 전체 작업의 품질을 높일 수 있습니다.


Meta가 최근 Llama 3.2라는 최신 대규모 언어 모델(LLM) 컬렉션을 공개했습니다. 이는 AI 기술의 중요한 발전을 보여주는 사건입니다. 이번 신규 출시는 이전 버전들에 비해 여러 혁신적인 기능과 개선사항을 선보입니다.

 

Llama 3.2의 주요 특징

  1. 다중 모달 기능: Meta는 Llama 시리즈에서 처음으로 비전 모델을 도입했습니다. Llama 3.2 11B Vision과 90B Vision 모델은 텍스트와 이미지 입력을 모두 처리할 수 있어 고급 시각적 추론 작업이 가능합니다.
  2. 경량 모델: Llama 3.2는 1B와 3B 파라미터 모델을 포함하며, 이는 Meta의 첫 소형 언어 모델(SLM)입니다. 이 모델들은 기기 내 및 엣지 컴퓨팅용으로 설계되어 로컬 추론과 저비용 에이전트 애플리케이션을 가능하게 합니다.
  3. 다국어 지원: 이 모델들은 다국어 대화 사용 사례에 최적화되어 있으며, 공식적으로 영어, 독일어, 프랑스어, 이탈리아어, 포르투갈어, 힌디어, 스페인어, 태국어를 지원합니다.
  4. 성능 향상: Llama 3.2 모델은 일반적인 산업 벤치마크에서 많은 오픈소스 및 비공개 채팅 모델들을 능가하는 성능을 보여줍니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

응용 분야 및 사용 사례

  • 기업 수준 애플리케이션: 90B Vision 모델은 일반 지식, 장문 텍스트 생성, 다국어 번역, 코딩, 수학, 고급 추론 분야에서 뛰어납니다.
  • 콘텐츠 생성 및 AI 어시스턴트: 11B Vision 모델은 콘텐츠 생성, 대화형 AI, 언어 이해 작업에 적합합니다.
  • 엣지 컴퓨팅: 1B와 3B 모델은 개인 정보 관리, 다국어 지식 검색, 모바일 애플리케이션에 이상적입니다.
  • 시각적 작업: 비전 모델은 이미지 캡셔닝, 시각적 질문 답변, 문서 처리, 멀티모달 챗봇 기능을 수행할 수 있습니다.

기술 사양

  • 아키텍처: Llama 3.2는 자동 회귀 언어 모델링을 위한 최적화된 트랜스포머 아키텍처를 사용합니다.
  • 훈련 기법: 모델들은 지도 학습 미세 조정(SFT)과 인간 피드백을 통한 강화 학습(RLHF)을 사용합니다.
  • 컨텍스트 길이: 최대 128k 토큰.
  • 토큰 수: 최대 9T 토큰.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

가용성 및 배포

Llama 3.2 모델은 현재 다양한 플랫폼에서 사용 가능합니다:

 

  • Amazon Bedrock 및 AWS 서비스
  • Microsoft Azure AI 모델 카탈로그
  • IBM의 watsonx.ai 플랫폼
  • 로컬 배포를 위한 Ollama

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AI 생태계에 미치는 영향

Llama 3.2의 출시는 오픈소스 AI 모델 분야에서 중요한 진전을 나타냅니다. 다중 모달 기능과 경량 버전은 기업 애플리케이션부터 모바일 및 엣지 컴퓨팅에 이르기까지 다양한 분야에서 혁신을 이끌 것으로 예상됩니다.

 

특히 에이전트 AI 작업에서 뛰어난 성능을 보이는 이 모델들은 시장의 다른 주요 AI 모델들과 강력한 경쟁자로 자리매김할 것으로 보입니다.AI 분야가 빠르게 발전함에 따라, Llama 3.2의 개방성과 유연성은 개발자와 연구자들에게 새로운 기회를 제공하며, 이는 잠재적으로 새로운 AI 기반 애플리케이션과 서비스의 물결을 일으킬 수 있을 것입니다.

 

 

아래는 LM Studio에서 LLAMA3.2 기반 앱을 실행하는 영상과 소스코드입니다 :

 

 

 

 

1. Base Code

# Example: reuse your existing OpenAI setup
from openai import OpenAI

# Point to the local server
client = OpenAI(base_url="http://<Your IP>:5555/v1", api_key="lm-studio")


completion = client.chat.completions.create(
  model="lmstudio-community/Llama-3.2-3B-Instruct-GGUF",
  messages=[
    {"role": "system", "content": "Always answer in rhymes."},
    {"role": "user", "content": "Introduce yourself."}
  ],
  temperature=0.7,
)

print(completion.choices[0].message)

 

 

2. Streamlit 앱 코드 (Stream 응답 방식)

 

import streamlit as st
from openai import OpenAI

# OpenAI 클라이언트 설정
@st.cache_resource
def get_openai_client():
    return OpenAI(base_url="http://<Your IP>:5555/v1", api_key="lm-studio")

client = get_openai_client()

st.title("LM Studio 채팅 앱")

# 세션 상태 초기화
if "messages" not in st.session_state:
    st.session_state.messages = [
        {"role": "system", "content": "You are helpful instance."}
    ]

# 채팅 메시지를 표시할 컨테이너
chat_container = st.container()

# 입력 필드를 화면 하단에 고정
input_container = st.container()

# 대화 내용 표시
with chat_container:
    for message in st.session_state.messages:
        if message["role"] != "system":
            with st.chat_message(message["role"]):
                st.write(message["content"])

# 사용자 입력 (화면 하단에 위치)
with input_container:
    user_input = st.text_input("메시지를 입력하세요:", key="user_input")
    send_button = st.button("전송")

if send_button and user_input:
    # 사용자 메시지 추가
    st.session_state.messages.append({"role": "user", "content": user_input})
    
    with chat_container:
        with st.chat_message("user"):
            st.write(user_input)
        
        with st.chat_message("assistant"):
            message_placeholder = st.empty()
            full_response = ""
            
            # 스트리밍 응답
            for response in client.chat.completions.create(
                model="lmstudio-community/Llama-3.2-3B-Instruct-GGUF",
                messages=st.session_state.messages,
                temperature=0.7,
                stream=True
            ):
                full_response += (response.choices[0].delta.content or "")
                message_placeholder.markdown(full_response + "▌")
            
            message_placeholder.markdown(full_response)
    
    # 최종 응답 메시지 추가
    st.session_state.messages.append({"role": "assistant", "content": full_response})
    
    # 입력 필드 초기화 (st.session_state 사용하지 않음)
    st.rerun()

# 스크롤을 항상 최하단으로 이동
st.markdown('<script>window.scrollTo(0, document.body.scrollHeight);</script>', unsafe_allow_html=True)

 

+ Recent posts