반응형
반응형

[AI] 구글, '제미나이 코드 어시스트' 대규모 업데이트… 'AI 에이전트 모드' 무료 공개

 

"AI가 코드를 짜는 것"에서 나아가, "AI와 함께 코드를 설계하고 협업하는 방식"으로... 대화형 피드백 루프를 통해 보다 지능적인 개발 파트너로 진화

로고 이미지

구글이 인공지능(AI) 코딩 도우미인 '제미나이 코드 어시스트(Gemini Code Assist)'에 새로운 '에이전트 모드(Agent Mode)'를 포함한 대규모 업데이트를 17일(현지시간) 공개했다. 

제미나이 CLI(Command Line Interface) 및 에이전트 모델은 물론, 일상적인 워크플로를 더욱 원활하고 직관적으로 만들어 주는 IDE(Integrated Development Environment-통합개발환경) 기능 개선도 포함되었다. 개인 사용자는 버추얼 스튜디오 코드(Visual Studio Code-보기) 플러그인이나 젯브레인스 IDE(JetBrains IDE-보기) 확장 프로그램을 설치하여 무료로 시작할 수 있다

향후 기능 업데이트는 공식 릴리스 노트(보기)를 통해 확인할 수 있다. 이번 제미나이 코드 어시스트 업데이트를 통해  일상적인 개발 워크플로우를 더욱 원활하고 직관적으로 만들어 개발 생산성을 크게 향상시킬 것으로 기대된다.

에이전트 모드... ‘도우미’ 넘어 ‘공동 개발자’로

신규 기능인 에이전트 모드는 기존의 단일 파일 기반 코드 생성 기능을 넘어, 프로젝트 전체 구조와 코드베이스를 분석해 복잡한 멀티파일 작업까지 수행할 수 있는 AI 기능이다.

구글은 최근 개발자를 위한 두 가지 주요 AI 업데이트를 발표했다. 제미나이 CLI(보기)는 AI를 명령줄에 직접 통합하여, 개발자가 터미널에서 바로 질문하고 코드를 생성하며 디버깅할 수 있게 함으로써 컨텍스트 전환을 없앤다.

이를 더욱 발전시킨 제미나이 코드 어시스트의 새로운 에이전트 모드는 AI 페어 프로그래머 역할을 한다. 이는 전체 코드베이스를 분석하여 복잡한 다중 파일 작업을 계획하고 실행한다. 예를 들어, 새로운 기능을 구현하거나 대규모 리팩토링을 단일 프롬프트에서 수행함으로써 개발 프로세스를 크게 가속화한다. 이를 도구라기보다는 작업을 위임하는 방식으로 생각할 수 있다. 에이전트 모드는 지난달 'Insiders' 채널 개발자들에게 먼저 공개되었다.

에이전트 모드의 강점은 포괄적인 프로젝트 이해력에 있다. 에이전트는 열려 있는 파일뿐만 아니라 전체 코드베이스를 분석하여 애플리케이션의 아키텍처, 종속성, 코딩 패턴 및 다양한 구성 요소 간의 관계를 모델링한다.

이를 통해 제안 사항이 컨텍스트를 인식하게 되므로, 에이전트는 필요한 모든 구성 요소에 걸쳐 기능을 구현하는 방법을 알게 된다. 또한 기존 코딩 스타일을 존중하여 더 높은 품질의 일관된 코드를 생성한다. 이러한 프로젝트 전반에 대한 인식은 오류를 줄이고, 일치하지 않는 제안을 수정하거나 컨텍스트를 설명하는 데 드는 시간을 줄여준다.

프로젝트에 대한 완벽한 이해를 바탕으로, 코드 어시스트의 에이전트는 다중 파일 편집을 가능하게 한다. 이전에는 중요한 기능을 구현하는 것이 조각조각 진행되는 과정이었을 수 있다. 한 파일에 대한 코드를 생성하고 다른 파일에 대한 코드를 생성한 후, 모든 것을 수동으로 연결해야 했다. 에이전트 모드를 사용하면 이제 단일 요청을 통해 코드 어시스트가 코드베이스 전체의 모든 변경 사항을 조율한다.

이를 통해 개발자는 하나의 프롬프트만으로  <대규모 리팩토링> "모든 API 엔드포인트가 새 인증을 사용하도록 업데이트해줘." <기능 구현> "새로운 풀스택 사용자 설정 페이지를 추가해줘." <종속성 업그레이드> "코어 라이브러리를 업데이트하고 모든 호환성 문제를 수정해줘." 등으로 단일 프롬프트로 대규모 작업을 지시할 수 있다.

에이전트 모드는 코드 구조, 의존성, 아키텍처 패턴까지 분석해 기존 개발 스타일을 유지하면서 기능을 구현하며, 모든 변경 사항은 사전에 상세한 계획 형태로 사용자에게 제시된다. 사용자는 이를 검토, 수정 또는 거절할 수 있어 개발 주도권은 여전히 사람에게 있다.

이러한 협력적 루프는 AI의 속도와 규모를 사용자의 도메인 전문 지식 및 아키텍처 비전과 결합한다. 이는 최종 결과가 기능적일 뿐만 아니라 사용자가 정확히 의도한 대로임을 보장한다.

또한 안심할 수 있도록 지난 6월 업데이트에서는 체크포인트로 되돌리는 기능이 도입되었다. 일련의 제안을 수락했지만 올바르지 않다고 판단될 경우, 영향을 받는 모든 파일을 변경 사항이 적용되기 전 상태로 쉽게 되돌릴 수 있어 과감한 실험을 장려한다.

IDE 개선 기능으로 더 정밀한 제어와 원활한 경험

구글은 지난달 컨텍스트에 대한 더 세밀한 제어를 제공하는 업데이트를 출시했다. 코드 어시스트는 이제 .gitignore 파일을 자동으로 적용하고, 민감하거나 레거시 코드를 무시하기 위해 .aiexlude 파일을 생성할 수 있도록 한다. 반대로, 특정 코드 스니펫에 채팅 초점을 맞춰 더 정확한 질문을 할 수 있다. 또한 터미널 출력을 채팅에 직접 첨부하여 명령에 대해 묻거나 오류를 디버깅할 수 있어 로그를 복사-붙여넣기할 필요가 없다.

이러한 기능들은 신호 대 잡음비(signal-to-noise ratio)에 대한 정밀한 제어를 제공한다. 관련 없는 파일을 제외하고 특정 스니펫 또는 터미널 로그에 집중함으로써 더 빠르고 정확하며 관련성 높은 답변을 얻을 수 있어 디버깅 및 분석 속도를 크게 향상시킨다.

또한 채팅 경험이 더 반응적이고 직관적으로 개선되었다. 가독성을 높이기 위해 코드 제안이 깔끔한 미리 보기 블록으로 나타나며, 이를 접거나 확장하도록 구성할 수 있다. 프로젝트 탐색도 더 쉬워졌는데, 채팅에서 코드 어시스트가 언급하는 파일 이름은 이제 편집기에서 즉시 열리는 클릭 가능한 링크가 되었다.

긴 응답의 경우, 제미나이 코드 어시스트가 입력하는 동안 채팅이 자동으로 스크롤되지만, 원하면 이 기능을 비활성화할 수 있다. 또한 질문을 했는데 잘못된 질문이었거나 응답이 너무 오래 걸린다고 판단되면, 진행 중인 채팅 응답을 즉시 중지할 수 있어 시간과 좌절감을 줄여준다.

이러한 개선 사항들은 제미나이 코드 어시스트를 더 원활하고 효율적으로 사용할 수 있게 한다. 스크롤하거나, 텍스트를 파싱하거나, 파일을 수동으로 탐색하는 데 시간을 덜 소비하게 하여 개발자가 '몰입 상태(state of flow)'를 유지하고 가장 중요한 문제 해결에 집중할 수 있도록 한다.

한편, 제미나이 코드 어시스트는 단순한 코드 생성기를 넘어, 코드 품질 유지, 개발자 스타일 학습, 대화형 피드백 루프를 통해 보다 지능적인 개발 파트너로 진화하고 있다. 특히 이번 업데이트는 "AI가 코드를 짜는 것"에서 나아가, "AI와 함께 코드를 설계하고 협업하는 방식"으로 전환되고 있음을 시사한다.

 

 

https://www.aitimes.kr/news/articleView.html?idxno=35736

반응형
반응형

NetworkX1는 Python 프로그래밍 언어를 위한 복잡한 네트워크 구조를 생성, 조작, 분석, 모델링, 시각화, 그리고 저장하기 위한 강력한 라이브러리입니다. 사회 네트워크, 웹의 링크 구조, 인프라 네트워크, 과학 연구에서의 상호작용 등 다양한 유형의 네트워크를 다룰 수 있습니다. NetworkX는 데이터 구조로 그래프를 제공하며, 이 그래프는 노드와 엣지(간선)로 구성되어 있습니다.

 

주요 특징

  1. 다양한 그래프 타입 지원: 방향성이 있는 그래프(Directed Graphs), 방향성이 없는 그래프(Undirected Graphs), 다중 그래프(MultiGraphs) 등 다양한 유형의 그래프를 생성하고 조작할 수 있습니다.
  2. 풍부한 알고리즘 지원: 최단 경로, 클러스터링, 센트럴리티, 커뮤니티 구조 탐지 등 네트워크 구조를 분석하기 위한 다양한 알고리즘이 내장되어 있습니다.
  3. 그래프 생성과 조작: 그래프를 쉽게 생성하고 수정할 수 있으며, 노드와 엣지를 추가하거나 제거하는 등의 작업을 손쉽게 수행할 수 있습니다.
  4. 대규모 네트워크 처리 능력: NetworkX는 메모리 내에 저장할 수 있는 한에서 수천에서 수백만 개의 노드와 엣지를 가진 그래프를 처리할 수 있습니다.
  5. 시각화: Matplotlib와 통합되어 간단한 네트워크 구조를 시각화할 수 있으며, 복잡한 시각화를 위해서는 Graphviz와 같은 도구와 함께 사용할 수 있습니다.

 

pip install networkx

 

 

 

https://wikidocs.net/229298

 

NetworkX: 네트워크 구조의 모델링 및 시각화

![](https://wikidocs.net/images/page/229298/NetworkX_logo.png) NetworkX[^networkx]는 Python 프로그래밍 …

wikidocs.net

 

 

 

반응형
반응형

[AI] 커서(Cursor)와 바이브코딩(Vibe Coding)

 

**커서(Cursor)**는 AI 기반의 코드 에디터입니다. 챗GPT(ChatGPT) 개발사인 OpenAI의 모델을 기반으로 만들어졌으며, 개발자가 코드를 더 빠르고 효율적으로 작성, 수정, 디버깅할 수 있도록 돕습니다.

주요 기능:

  • AI 채팅: 에디터 내에서 AI와 대화하며 코드 생성, 수정, 질문에 대한 답변을 얻을 수 있습니다.
  • 코드 자동 생성 및 수정: 간단한 명령(프롬프트)으로 원하는 기능의 코드를 만들거나 기존 코드를 개선할 수 있습니다.
  • AI 기반 디버깅: 코드의 버그나 오류를 AI가 분석하고 해결책을 제시합니다.
  • 문서 참조: 외부 라이브러리나 프레임워크의 문서를 AI가 참조하여 정확한 코드를 작성해 줍니다.

**바이브코딩(Vibe Coding)**은 정해진 문법이나 규칙에 얽매이기보다, 개발자의 '느낌'이나 '감'에 의존하여 직관적으로 코드를 작성하는 스타일을 의미하는 신조어입니다.

이는 종종 다음과 같은 상황에서 사용됩니다.

  • 빠른 프로토타이핑: 완벽한 코드보다는 빠른 결과물 확인이 중요할 때, 세부적인 사항을 생략하고 핵심 로직만 빠르게 구현하는 방식입니다.
  • 경험 기반 코딩: 숙련된 개발자가 자신의 풍부한 경험을 바탕으로 "이렇게 하면 될 것 같다"는 직관을 따라 코드를 작성하는 경우입니다.

커서(Cursor)와 같은 AI 코드 에디터의 등장은 이러한 '바이브코딩'을 더욱 현실적이고 효율적으로 만들어줍니다. 개발자가 가진 추상적인 아이디어나 '감'을 AI에게 설명하면, AI가 그것을 실제 작동하는 코드로 구체화해 주기 때문입니다. 즉, 개발자의 직관과 AI의 기술력이 결합하여 생산성을 극대화하는 시너지를 낼 수 있습니다.

 

 

 

AI 코드 에디터 **커서(Cursor)**는 공식 웹사이트에서 다운로드할 수 있습니다.

아래 경로를 통해 접속하여 사용하시는 운영체제(OS)에 맞는 버전을 다운로드하세요.

🔗 커서 공식 다운로드 페이지: https://www.cursor.com/download

페이지에 접속하면 Windows, macOS, Linux 등 사용 환경에 맞는 설치 파일을 바로 다운로드 받을 수 있습니다.

 

https://cursor.com/downloads

 

Downloads | Cursor - The AI Code Editor

Download Cursor for Windows, macOS, and Linux. Get the AI-powered code editor that makes you extraordinarily productive.

cursor.com

 

반응형
반응형

Windows 11 크롬 개발자 도구(DevTools) 콘솔에서 "Warning: Don't paste code..." 메시지가 나타나는 것은 크롬의 보안 기능 중 하나입니다. 사용자가 악성 코드를 콘솔에 붙여넣어 피해를 입는 것을 방지하기 위한 조치입니다.

이 경고 메시지를 해제하는 방법은 메시지에 직접 나와 있습니다.

해제 방법:

  1. 경고 메시지가 나타난 크롬 개발자 도구 콘솔에서 allow pasting 이라고 정확하게 입력합니다.
  2. Enter 키를 누릅니다.

이렇게 하면 해당 세션(현재 열려있는 개발자 도구 콘솔)에서는 코드를 붙여넣을 수 있게 됩니다.

참고:

  • 이 경고는 영구적으로 해제되는 설정이 아닙니다. 콘솔을 새로 열거나, 브라우저를 재시작하는 등의 상황에서 다시 나타날 수 있습니다. 이는 사용자의 보안을 위한 설계이므로, 매번 해당 메시지가 뜰 때마다 allow pasting을 입력해야 합니다.
  • 보안 경고의 중요성: 이 메시지는 사용자 본인의 컴퓨터 보안을 위한 것이므로, 내용을 이해하지 못하거나 신뢰할 수 없는 소스의 코드는 절대 콘솔에 붙여넣지 않는 것이 매우 중요합니다. 해커들이 피싱이나 기타 방식으로 이 기능을 악용하여 사용자 정보를 탈취하거나 컴퓨터를 제어하려는 시도가 있기 때문입니다.

따라서, 단순히 귀찮다고 생각하지 마시고, 이 경고는 사용자를 보호하기 위한 기능임을 이해하고 필요한 경우에만 allow pasting을 입력하시길 권장합니다.

 

Warning: Don’t paste code into the DevTools Console that you don’t 
understand or haven’t reviewed yourself. 
This could allow attackers to steal your identity or take control of your computer. 
Please type ‘allow pasting’ below and press Enter to allow pasting.

반응형
반응형

TIOBE Index for June 2025

 

python

 

https://www.tiobe.com/tiobe-index/

 

TIOBE Index - TIOBE

Home » TIOBE Index TIOBE Index for June 2025 June Headline: Where is SQL going? SQL has a remarkable history in the TIOBE index. When the TIOBE index started in 2001, SQL was one of the 20 languages that were tracked. It was a serious top 10 player at tha

www.tiobe.com

 

반응형
반응형

[python] 파이썬 requirements.txt 처리

 

파이썬 프로젝트에서 requirements.txt 파일은 프로젝트가 의존하는 모든 외부 라이브러리(패키지)의 목록을 관리하는 데 사용되는 표준 방식입니다. 이 파일을 사용하면 개발 환경을 일관되게 유지하고, 다른 개발자나 배포 환경에서도 동일한 의존성을 쉽게 설치할 수 있습니다.


requirements.txt의 역할과 중요성

requirements.txt는 주로 다음과 같은 목적으로 사용됩니다:

  • 의존성 관리: 프로젝트에 필요한 모든 라이브러리와 그 버전을 명확하게 기록합니다.
  • 재현성 확보: 특정 시점의 개발 환경을 다른 컴퓨터나 환경에서도 정확하게 재현할 수 있게 합니다.
  • 협업 용이: 팀원들이 동일한 라이브러리 버전을 사용하여 개발할 수 있도록 도와 충돌을 방지합니다.
  • 배포 환경 설정: 애플리케이션을 서버나 컨테이너(Docker 등)에 배포할 때 필요한 의존성을 자동으로 설치할 수 있게 합니다.

requirements.txt 파일 생성 및 관리

1. 수동으로 파일 작성하기

가장 기본적인 방법은 필요한 라이브러리 이름을 직접 requirements.txt 파일에 한 줄에 하나씩 작성하는 것입니다. 특정 버전이나 최소 버전을 명시할 수도 있습니다.

 

# requirements.txt 예시
requests==2.31.0      # requests 라이브러리 버전 2.31.0 지정
beautifulsoup4>=4.9.3 # beautifulsoup4 라이브러리 버전 4.9.3 이상
pandas                # pandas 라이브러리 최신 버전 설치
numpy~=1.23.0         # numpy 라이브러리 1.23.x 버전 중 최신 설치 (1.23.0 <= version < 1.24.0)
  • ==: 정확한 버전 지정 (가장 안전하지만 유연성이 떨어짐)
  • >=: 최소 버전 지정
  • ~=: 호환 가능한 릴리스(Compatible release) 지정. ~=1.23.0은 1.23.0 이상 1.24.0 미만 버전을 의미합니다. 마이너 버전 업데이트는 허용하지만 메이저 버전 업데이트는 방지합니다.
  • 버전 지정이 없으면 pip는 항상 최신 버전을 설치합니다.

2. 현재 환경의 라이브러리 목록 내보내기

현재 파이썬 환경(가상 환경)에 설치된 모든 라이브러리 목록을 requirements.txt 파일로 자동 생성할 수 있습니다.

pip freeze > requirements.txt
  • 이 명령은 현재 환경에 설치된 모든 패키지와 그 정확한 버전을 requirements.txt 파일에 기록합니다.
  • 주의할 점은 프로젝트에 직접적으로 필요한 라이브러리뿐만 아니라, 그 라이브러리들이 의존하는 다른 라이브러리(하위 의존성)까지 모두 포함된다는 것입니다. 따라서 파일이 상당히 길어질 수 있습니다.
  • 팁: 새로운 프로젝트를 시작할 때는 깨끗한 가상 환경에서 필요한 라이브러리만 pip install로 설치하고, 개발이 완료될 시점에 pip freeze > requirements.txt를 실행하여 해당 프로젝트에 정확히 필요한 의존성만 기록하는 것이 좋습니다.

requirements.txt 파일 처리 (라이브러리 설치)

requirements.txt 파일에 명시된 모든 라이브러리를 설치하려면 다음 명령어를 사용합니다.

pip install -r requirements.txt

 

  • 이 명령은 requirements.txt 파일을 읽어 거기에 명시된 모든 라이브러리를 한 번에 다운로드하고 설치합니다.
  • 권장 사항: 항상 가상 환경(Virtual Environment) 내에서 이 작업을 수행하세요. 가상 환경을 사용하면 프로젝트별로 독립적인 의존성 관리가 가능하여 시스템 전체의 파이썬 환경과 충돌하는 것을 방지할 수 있습니다.
# 1. 가상 환경 생성 (처음 한 번만)
python -m venv my_project_env # 또는 conda create -n my_project_env python=3.9

# 2. 가상 환경 활성화
# Windows: .\my_project_env\Scripts\activate
# macOS/Linux: source my_project_env/bin/activate
# Conda: conda activate my_project_env

# 3. requirements.txt 파일이 있는 디렉토리로 이동
# cd /path/to/your/project

# 4. 라이브러리 설치
pip install -r requirements.txt

 

 

requirements.txt 관리 팁

  • 가상 환경 사용: 위에서 강조했듯이, 모든 파이썬 프로젝트는 전용 가상 환경 내에서 관리하는 것이 표준이자 가장 좋은 방법입니다.
  • 개발/배포 의존성 분리: 프로젝트 규모가 커지면 개발(테스트 프레임워크, 린터 등)에만 필요한 라이브러리와 실제 배포에 필요한 라이브러리를 분리하여 여러 개의 requirements 파일을 만들기도 합니다.
    • requirements.txt (배포용 필수 라이브러리)
    • requirements-dev.txt (개발용 라이브러리)
    • 설치할 때는 pip install -r requirements.txt -r requirements-dev.txt 와 같이 여러 파일을 지정할 수 있습니다.
  • 버전 고정의 장단점:
    • 장점: requests==2.31.0처럼 정확히 버전을 고정하면 다른 환경에서 설치할 때 버전에 따른 호환성 문제가 발생할 확률이 매우 낮아집니다.
    • 단점: 새롭게 발견된 버그 수정이나 보안 패치가 적용된 최신 버전의 이점을 누리기 어렵습니다.
  • 업데이트: 시간이 지나면서 라이브러리를 업데이트해야 할 경우, requirements.txt 파일의 버전을 직접 수정하거나, pip install --upgrade <package_name>으로 개별 패키지를 업데이트한 후 pip freeze > requirements.txt를 다시 실행하여 반영할 수 있습니다.

requirements.txt 파일은 파이썬 프로젝트의 건강한 생태계를 유지하는 데 필수적인 도구입니다.

 

 

 

반응형

+ Recent posts