무료만 보기
10월 실측AI 7개에 같은 프롬프트 3개를 넣고 채점한 결과 보기AI 7개 채점 결과 보기

무료 AI 코딩

코드 질문·자동 완성·에이전트 중 필요한 기능을 고르고 각각의 무료 한도를 확인하세요.

무료로 시작하기 전에 확인할 것

  • 채팅 답변과 IDE 자동 완성, 여러 파일을 수정하는 에이전트는 서로 다른 기능입니다.
  • 무료 요청 수와 지원 IDE·모델, 프로젝트 접근 범위를 확인하세요.
  • 실행 환경을 고정하고 실패 재현 입력·테스트로 결과를 검증하세요.

무료 AI 코딩 도구 16개 비교

무료 플랜을 먼저, 같은 유형에서는 가나다순으로 표시합니다. 무료 기능과 한도를 비교한 목록이며 성능 순위가 아닙니다.

도구무료 유형무료 기능·한도·제약출처·무료 요금 확인일
구글 AI 스튜디오무료 플랜무료 등급에서 Gemini 2.5 Pro·Flash 계열 사용 가능. 최신 Pro 프리뷰·이미지·영상 모델은 무료 등급 없음. 무료 등급 입력·출력은 구글 제품 개선에 쓰일 수 있습니다공식 요금표2026.09.25
그록무료 플랜웹·앱에서 무료로 쓸 수 있고 채팅과 음성에 각각 일일 한도가 있습니다공식 요금표2026.09.25
깃허브 코파일럿무료 플랜Copilot Free는 월 2,000회 코드 완성과 50회 채팅 요청(Copilot Edits 포함)으로 제한공식 요금표2026.09.26
딥시크무료 플랜웹·앱 채팅은 무료이며 광고와 인앱 결제가 없습니다공식 요금표2026.09.25
러버블무료 플랜하루 5크레딧, 월 30크레딧공식 요금표2026.09.26
리플릿무료 플랜무료 Starter: 게시 앱 1개, Lite build만, Agent 일일 크레딧 소량공식 요금표2026.09.28
볼트무료 플랜하루 30만 토큰, 월 100만 토큰공식 요금표2026.09.26
브이제로무료 플랜월 $5 크레딧, 하루 7메시지공식 요금표2026.09.26
윈드서프(데빈 데스크톱)무료 플랜에이전트 소량 한도, 인라인 편집 무제한공식 요금표2026.09.28
제미나이무료 플랜무료 요금제가 있으며 사용량 한도는 5시간마다 갱신되고 주간 한도가 있습니다. 나노바나나 Pro는 제한적으로 쓸 수 있습니다공식 요금표2026.09.25
챗GPT무료 플랜GPT-5.6 Luna 텍스트 대화 무제한(악용 방지 제한), GPT-6 Astra·Sol·Luna 는 제한적. 이미지·음성·심층 리서치·메모리·Codex 제한적공식 요금표2026.09.26
커서무료 플랜Hobby 플랜은 신용카드 없이 사용 가능, Agent·Chat·Tab 완성이 제한된 사용량으로 제공공식 요금표2026.09.25
코덱스무료 플랜ChatGPT Free 플랜에서 제한적 사용공식 요금표2026.09.26
클로드무료 플랜무료 플랜 제공(웹·데스크톱·모바일, 웹 검색, 파일 생성, 코드 실행 포함). 사용량은 Pro보다 적음공식 요금표2026.09.25
퍼플렉시티무료 플랜무료 계정으로 기본 검색을 쓸 수 있고, Pro 검색은 하루 횟수 제한이 있습니다공식 요금표2026.09.26
업스테이지 솔라가입·일회성 크레딧가입 시 $10 크레딧공식 요금표2026.09.26

무료로 시작하는 순서

  1. 언어·버전·오류 메시지와 최소 재현 코드를 준비합니다.
  2. 기대 동작과 변경 범위를 지정해 수정안과 테스트를 요청합니다.
  3. 변경 내용을 검토하고 정상·경계·오류 입력을 실행해 확인합니다.

따라 쓸 프롬프트

대괄호 부분을 자신의 자료와 조건으로 바꿔 사용하세요.

환경은 [언어·버전]입니다. 아래 코드의 [문제]를 수정해 주세요. 기대 동작은 [동작]이며 변경 범위는 [범위]입니다. 원인을 설명하고 정상 입력·경계값·오류 입력 테스트를 제시하세요. 실행했다고 가정하지 말고 직접 확인해야 할 부분을 표시하세요.
[최소 재현 코드]

같은 입력으로 나온 실제 답변

아래는 2026.10.06에 API 모델로 실행한 기존 실측 답변입니다. 무료 앱으로 실행한 결과나 무료 플랜 성능 순위가 아닙니다.

비교에 사용한 입력 원문
파이썬 스크립트를 하나 작성해 주세요. 표준 라이브러리만 사용합니다(re, csv, json, argparse, collections 등은 표준 라이브러리입니다).

입력: 웹 서버 접속 로그 파일. 한 줄 형식은 다음과 같습니다.
2026-09-20T13:05:41+09:00 203.0.113.7 GET /api/items 200 123
(공백으로 구분: 시각(ISO 8601), IP, 메서드, 경로, 상태코드, 응답시간ms)

요구사항:
1. 시간대(0~23시)별 요청 수를 00시부터 23시까지 24개 모두 출력(요청이 없는 시간은 0)
2. 요청 수 상위 5개 IP를 요청 수 내림차순으로, 같은 수면 IP 문자열 오름차순으로
3. 상태코드 500 이상인 요청의 비율(%)을 소수점 첫째 자리까지
4. 열 개수가 6개가 아니거나 상태코드·응답시간이 정수가 아닌 줄은 건너뛰고, 건너뛴 줄 수를 기록
5. 결과는 JSON 하나로 표준 출력에 출력. 키는 정확히 hourly, top_ips, error_rate, skipped 네 개. hourly 는 "00"~"23" 키의 객체, top_ips 는 [ip, count] 배열의 배열

조건:
- 파일 경로는 argparse 로 받고 기본값은 access.log. 인코딩은 UTF-8
- 함수를 3개 이상으로 나누고 각 함수에 타입 힌트를 붙이세요
- 코드 블록 하나로, 주석은 한국어
- JSON 출력은 ensure_ascii=False, indent 2. print 는 마지막 JSON 한 번만
- 코드 아래에 실행 방법을 존댓말 두 문장 이내로
- 요구사항 외 기능(그래프, 파일 저장, 로깅 설정, 진행 표시) 추가 금지

그록

x-ai/grok-4.7 (OpenRouter, 2026-10-01) · 2026.10.06

실제 답변 전체 보기
#!/usr/bin/env python3
import argparse
import json
from collections import Counter
from datetime import datetime
from typing import Dict, List, Optional, Tuple


def 줄_파싱(줄: str) -> Optional[Tuple[int, str, int]]:
    # 열 6개가 아니면 건너뜀
    칸 = 줄.split()
    if len(칸) != 6:
        return None
    시각, ip, _메서드, _경로, 상태_문자, 응답_문자 = 칸
    try:
        시 = datetime.fromisoformat(시각).hour
        상태 = int(상태_문자)
        int(응답_문자)
    except ValueError:
        return None
    if not 0 <= 시 <= 23:
        return None
    return 시, ip, 상태


def 로그_집계(경로: str) -> Tuple[Counter, Counter, int, int]:
    # 유효 줄만 시간대·IP·오류 건수로 모음
    시간대: Counter = Counter()
    ip별: Counter = Counter()
    오류 = 0
    건너뜀 = 0
    with open(경로, encoding="utf-8") as 파일:
        for 줄 in 파일:
            줄 = 줄.strip()
            if not 줄:
                건너뜀 += 1
                continue
            결과 = 줄_파싱(줄)
            if 결과 is None:
                건너뜀 += 1
                continue
            시, ip, 상태 = 결과
            시간대[시] += 1
            ip별[ip] += 1
            if 상태 >= 500:
                오류 += 1
    return 시간대, ip별, 오류, 건너뜀


def 상위_ip(ip별: Counter, 개수: int = 5) -> List[List[object]]:
    # 요청 수 내림차순, 동률이면 IP 오름차순
    정렬 = sorted(ip별.items(), key=lambda 항목: (-항목[1], 항목[0]))
    return [[ip, 건수] for ip, 건수 in 정렬[:개수]]


def 보고서_작성(
    시간대: Counter, ip별: Counter, 오류: int, 건너뜀: int
) -> Dict[str, object]:
    전체 = sum(시간대.values())
    비율 = round((오류 / 전체) * 100, 1) if 전체 else 0.0
    return {
        "hourly": {f"{시:02d}": 시간대[시] for 시 in range(24)},
        "top_ips": 상위_ip(ip별),
        "error_rate": 비율,
        "skipped": 건너뜀,
    }


def main() -> None:
    파서 = argparse.ArgumentParser()
    파서.add_argument("logfile", nargs="?", default="access.log")
    인자 = 파서.parse_args()
    시간대, ip별, 오류, 건너뜀 = 로그_집계(인자.logfile)
    결과 = 보고서_작성(시간대, ip별, 오류, 건너뜀)
    print(json.dumps(결과, ensure_ascii=False, indent=2))


if __name__ == "__main__":
    main()

같은 폴더에서 python 스크립트이름.py로 실행하시면 기본 파일 access.log를 읽습니다. 다른 파일은 python 스크립트이름.py 로그경로처럼 인자로 지정해 주십시오.

이 도구의 무료 범위 확인

딥시크

deepseek/deepseek-v4.1-flash (OpenRouter, 2026-10-01) · 2026.10.06

실제 답변 전체 보기
import argparse
import json
from collections import Counter
from datetime import datetime
from typing import Dict, List, Optional, Tuple, Union


def parse_args() -> argparse.Namespace:
    """명령줄 인자를 파싱합니다."""
    parser = argparse.ArgumentParser(description="웹 서버 접속 로그를 집계합니다.")
    parser.add_argument(
        "path",
        nargs="?",
        default="access.log",
        help="로그 파일 경로 (기본값: access.log)",
    )
    return parser.parse_args()


def parse_line(line: str) -> Optional[Tuple[int, str, int, int]]:
    """한 줄을 파싱합니다. 형식이 맞지 않으면 None을 반환합니다."""
    fields = line.split()

    # 열 개수가 정확히 6개인지 확인
    if len(fields) != 6:
        return None

    # 상태코드와 응답시간이 정수인지 확인
    try:
        status = int(fields[4])
        response_ms = int(fields[5])
    except ValueError:
        return None

    # ISO 8601 시각에서 시간대(0~23) 추출
    hour = datetime.fromisoformat(fields[0]).hour
    return hour, fields[1], status, response_ms


def process_file(path: str) -> Tuple[Dict[str, int], Counter, int, int, int]:
    """로그 파일을 읽어 시간대별 요청 수, IP별 요청 수, 오류 수, 전체 수, 건너뛴 수를 계산합니다."""
    hourly: Dict[str, int] = {f"{hour:02d}": 0 for hour in range(24)}
    ip_counter: Counter = Counter()
    total = 0
    error_count = 0
    skipped = 0

    with open(path, "r", encoding="utf-8") as file:
        for line in file:
            parsed = parse_line(line)
            if parsed is None:
                skipped += 1
                continue

            hour, ip, status, _ = parsed
            hourly[f"{hour:02d}"] += 1
            ip_counter[ip] += 1
            total += 1

            if status >= 500:
                error_count += 1

    return hourly, ip_counter, error_count, total, skipped


def build_result(
    hourly: Dict[str, int],
    ip_counter: Counter,
    error_count: int,
    total: int,
    skipped: int,
) -> Dict[str, object]:
    """최종 JSON 결과를 만듭니다."""
    top_ips: List[List[Union[str, int]]] = [
        [ip, count]
        for ip, count in sorted(
            ip_counter.items(),
            key=lambda item: (-item[1], item[0]),
        )[:5]
    ]

    error_rate = round((error_count / total * 100), 1) if total else 0.0

    return {
        "hourly": hourly,
        "top_ips": top_ips,
        "error_rate": error_rate,
        "skipped": skipped,
    }


def main() -> None:
    """프로그램 진입점입니다."""
    args = parse_args()
    hourly, ip_counter, error_count, total, skipped = process_file(args.path)
    result = build_result(hourly, ip_counter, error_count, total, skipped)
    print(json.dumps(result, ensure_ascii=False, indent=2))


if __name__ == "__main__":
    main()

다음과 같이 실행하시면 됩니다: python script.py access.log
경로를 생략하시면 기본값인 access.log를 사용합니다.

이 도구의 무료 범위 확인

다른 도구의 같은 입력 답변도 비교하기

기준과 출처
  • 무료 기능·한도는 저장된 공식 안내를 사용합니다. 무료 요금 확인일은 무료 요금 행에서만 표시합니다.
  • 무료 플랜·체험·가입 크레딧은 별도로 구분하며, API 예시만으로 무료 앱의 성능을 판단하지 않습니다.
  • 실측 입력과 답변은 기존 API 측정 데이터 원문을 연결합니다.

자주 묻는 질문

무료 AI 코딩 도구가 만든 코드를 바로 써도 되나요?

수정안을 검토하고 실제 환경에서 테스트한 뒤 적용하세요. 특히 인증·권한·데이터 삭제와 외부 라이브러리 호출은 기대 동작과 실패 조건을 확인해야 합니다.

무료 AI 코딩 도구는 모두 계속 무료인가요?

무료 플랜은 사용 한도가 있고, 한정 체험과 가입 크레딧은 기간이나 지급량이 끝나면 결제가 필요할 수 있습니다. 표의 무료 유형과 기능·제약을 함께 확인하세요.

아래 비교 예시는 무료 앱으로 실행한 결과인가요?

아닙니다. 기존 실측에서 같은 프롬프트를 API 모델로 실행한 실제 답변입니다. 무료 앱에서 선택되는 모델·한도·부가 기능은 다를 수 있으며, 무료 앱의 성능 순위로 사용하지 않습니다.

다른 용도의 무료 AI