728x90
반응형
생성형 AI와 관련해서 듣거나 이야기할 때 헷갈리는 용어들이 많아 정리한 포스팅입니다.
올바르지 않은 내용이 있다면 댓글로 알려주세요.
용어 정리
| 용어 | 개념 | 예시 |
| AI | - 인간의 인지 능력, 학습, 문제 해결 등을 모방하는 기술 및 시스템 - 좁게는 특정 과제를 수행하는 프로그램부터, 넓게는 인간처럼 사고하고 행동하는 로봇까지 포함하는 포괄적인 개념 |
AlphaGo 자율 주행 자동차 Siri, 빅스비 |
| LLM | - 대규모 언어 모델(Large Language Model)로, 방대한 양의 텍스트 데이터를 학습하여 자연어를 이해하고 생성하는 AI 모델 (생성형 AI의 한 범주) - 사람의 언어처럼 문맥을 파악하고 대화, 요약, 번역, 창작 등 다양한 언어 작업을 수행할 수 있음 |
OpenAI의 GPT-4 Google의 Gemini Anthropic의 Claude |
| 생성형 AI | - Generative AI라고 하며, 기존 데이터를 바탕으로 새로운 컨텐츠(텍스트, 이미지, 오디오, 비디오 등)를 만들어내는 AI | ChatGPT Midjourney (이미지 생성) Cursor (코드 생성) |
| 모델 | - 데이터를 학습하여 특정 작업을 수행하도록 훈련된 프로그램 - 문맥에 따라 구체적인 AI 모델 버전을 의미할 수도 있음 |
이미지 분류 모델 자연어 처리 모델 |
| 프롬프트 | - Prompt는 생성형 AI에게 원하는 결과를 얻기 위해 입력하는 명령어 또는 질문 - 프롬프트 작성하는 방법에 따라 AI가 생성하는 결과물의 품질이 크게 달라짐 |
|
| AI 어시스턴트 | - 사용자의 특정 작업을 돕기 위해 설계된 AI 기반의 소프트웨어 - 단순한 질의응답을 넘어, 사용자의 명령을 이해하고 코드를 작성하거나 문서 요약 등 복잡한 작업 도와줌 |
Cursor의 채팅기능 GitHub Copilot IntelliJ AI Chat |
| AI 코딩 에이전트 | - 자율적으로 목표를 설정하고, 여러 단계의 작업 계획하여 외부 환경과 상호작용하며 스스로 문제 해결 - AI 어시스턴트 대비 좀 더 능동적인 역할 수행 |
Cursor의 에이전트모드 IntelliJ Junie |
| MCP | - Model Context Protocol로 AI 모델이 외부 도구, 데이터베이스, 웹서비스 등과 효율적으로 상호작용하도록 돕는 오픈 표준 프로토콜 - AI가 다양한 외부 시스템과 통신할 수 있게 해주는 AI 생태계의 USB-C 포트 |
Notion, GitLab 등 AI에게 기능을 제공하는 서비스 |
궁금증
Cursor와 IntelliJ AI 차이점
Cursor와 IntelliJ AI Assistant는 모드 AI 어시스턴트지만, 강조하는 기능과 설계 철학에 차이가 있다.
- Cursor: 처음부터 AI를 중심으로 설계된 코드 에디터로 코드베이스 전체를 이해하고 멀티-파일 편집, 웹 검색 기능을 통해 더 넓은 맥락에서 복잡한 작업을 수행하는 데 강점을 보임
- IntelliJ AI Assistant: 기존의 IDE 기능에 AI를 보조적인 도구로 추가하여 개발 생산성을 높이는데 초점을 맞춤. 정적 분석 기능이나 리팩토링 툴 등 기존 IDE의 강점을 AI와 결합하여 시너지 내는 것이 특징
AI 어시스턴트와 코딩 에이전트 차이점
AI 어시스턴트와 코딩 에이전트는 AI가 사용자를 돕는 방식과 역할의 자율성 수준에서 차이가 있다.
- AI 어시스턴트(AI Assistant)
- 사용자의 명령을 받아 작업을 보조하고 지원하는 역할로, 사용자에게 필요한 정보나 작업을 추천하고 제안하지만 최종 결정은 사용자가 직접 진행함(조수나 비서 역할)
- 주요 특징
- 수동적: 사용자의 명확한 프롬프트에 반응
- 단순 작업 수행: 코드 자동 완성, 문서 요약, 간단한 검색 등 단일하고 명확한 작업에 초점
- 사용자 의존적: 여러 단계의 복합적인 작업 수행 시, 각 단계별 사용자 지시 필요
- 예시
- chatGPT: 사용자의 질문에 답하고, 코드를 생성하거나 텍스트를 요약해주지만, 이 프로젝트의 버그를 찾아서 고쳐줘와 같은 복잡한 요청을 스스로 처리하지는 못함
- github copilot: 코드를 작성할 때 다음 줄에 올 코드를 예측하여 자동 완성시켜 개발자의 입력을 보조하는 역할
- 코딩 에이전트(Coding Agent)
- 자율적으로 목표를 설정하고, 여러 단계의 작업을 계획하고 외부 환경과 상호작용하며 스스로 문제를 해결하는 역할을 함 어시스턴트보다 더 복합적이고 능동적인 역할을 수행함(전문가나 대리인 역할ㅇ)
- 주요 특징
- 능동적: 사용자가 목표를 제시하면, 그 목표를 달성하기 위해 필요한 작업들을 스스로 분해하고 실행함
- 복합적인 작업 수행: 이 프로젝트의 버그를 찾아 수정하고, 관련 테스트 코드를 작성해 줘와 같은 복잡한 요청을 여러 단계로 나누어 처리할 수 있음
- 도구 활용: 코드 편집기, 터미널, 웹 브라우저 등 다양한 외부 도구를 스스로 호출하고 활용해 작업 진행
- 예시
- intelliJ Junie: 사용자 지시(예: 이 기능에 대해 단위 테스트 작성해줘)를 받으면, 스스로 테스트 코드를 작성하고, 파일 수정 및 실행까지 시도함. 필요 시 에러 분석 및 코드 수정 과정을 반복하기도 함
- cursor의 에이전트모드(auto-mode): 사용자가 코드 수정 요청 시, cursor가 스스로 코드를 분석하고 필요한 부분을 수정하여 결과를 보여줌
- devin: github 이슈 해결해 줘와 같은 요청을 받으면, 스스로 코드를 작성하고 테스트 실행 및 코드 수정 후 PR까지 생성하는 AI 에이전트
CodeRabbit은 AI 에이전트일까?
codeRabbit은 AI 어시스턴트와 코딩 에이전트 중간 지점에 있는 독특한 유형이다. 일반 AI 어시스턴트보다는 능동적이지만, 모든 작업을 스스로 해결하는 완전한 코딩 에이전트로 보기엔 어렵다.
codeRabbit의 주요 기능은 코드 리뷰 자동화로, 아래와 같은 특징을 통해 AI 어시스턴트와 코딩 에이전트의 일부 기능들을 가진 특화된 AI 에이전트이다.
- AI 어시스턴트의 역할
- 코드 리뷰 추천: MR이 올라오면 자동으로 코드 변경 사항 분석 후 잠재적인 버그, 보안 취약점, 성능 문제 등을 AI가 추천함(판단은 개발자가 함)
- 정보 제공: 코드 변경 내용을 파악해서 요약 설명을 제공해 MR 내용을 이해하기 쉽도록 도움
- 대화형 피드백: AI와 대화하며 코드에 대한 질문을 할 수도 있음
- 코딩 에이전트 역할
- 자율적 실행: 사용자의 명시적인 명령이 없어도 MR이 생성되는 순간부터 스스로 코드를 분석하고 리뷰를 함
- 문제 해결 제안: 단순히 문제 제기를 하는게 아닌, 해결 방안도 스스로 제안함
- 외부 환경 상호작용: GitLab, GitHub과 같은 Git 서비스와 통합하여 MR에 자동으로 코멘트 남기는 등 외부 시스템과 상호작용
MCP(Model Context Protocol, 모델 컨텍스트 프로토콜)
AI 에이전트가 복잡한 작업을 수행하려면 외부 정보를 활용하고 도구를 사용해야 한다. 기존에는 각 서비스마다 AI가 이해할 수 있는 별도의 통합 작업이 필요했다. MCP는 이러한 비효율성을 해결하기 위해 모든 시스템이 AI에게 자신들의 기능과 데이터를 표준화된 방식으로 제공하도록 돕는다.
- AI 에이전트(클라이언트): Cursor, IntelliJ의 Junie와 같은 AI 코딩 에이전트
- MCP 서버: Notion, Figma, GitLab 등 AI에게 기능 제공하는 서비스들
- 작동 방식
- 사용자가 Cursor에 이 프로젝트의 모든 테스트 케이스를 GitLab에 업로드해줘라고 요청
- Cursor는 내부적으로 MCP를 통해 GitLab 서버에 어떤 작업 할 수 있는지 확인
- GitLab MCP 서버는 파일 업로드 기능을 AI에게 제공한다고 응답
- Cursor는 이 정보를 바탕으로 필요한 작업 실행 후 GitLab에 파일 업로드
728x90
반응형