G-code가 기술하는 것

G-code는 3D 프린터, CNC 기계, 그리고 이와 유사한 운동 제어 시스템이 사용하는 줄 단위 명령 언어입니다. 한 줄은 이동을 요청하거나, 모달 설정을 바꾸거나, 온도를 지정하거나, 컨트롤러 고유 기능을 갱신할 수 있습니다.

명령어 하나만 떼어 놓고 보면 의미가 분명하지 않은 경우가 많습니다. 결과는 단위 모드, 좌표 모드, 압출 모드, 기계 설정, 그리고 파일을 해석하는 펌웨어에 따라 달라질 수 있습니다. 그래서 이 참조는 일반적인 의미와 함께 그 의미를 바꿀 수 있는 맥락도 함께 기술합니다.

핵심

G-code는 완전히 통일된 하나의 프린터 파일 표준이라기보다 서로 가까운 방언들의 모음으로 이해하는 편이 정확합니다. 기본 이동 문법은 겹치지만, 사용할 수 있는 명령어와 매개변수, 기본값, 확장 기능은 대상 펌웨어와 그 설정에 따라 달라집니다.

명령어 한 줄 읽기

G1 X120 Y40 E1.6 F1800
G1

여러 축이 함께 움직이는 직선 이동을 요청합니다.

X / Y

G90/G91에 따라 목표 위치 또는 이동 거리를 지정합니다.

E

M82/M83에 따라 압출기 위치 또는 압출 길이를 지정합니다.

F

이송 속도를 지정합니다. 출력 파일은 보통 분당 밀리미터로 표기하며, 이후 이동은 마지막 값을 그대로 이어 쓰는 경우가 많습니다.

; ...

대개 사람이나 소프트웨어를 위한 주석의 시작입니다. 슬라이서는 주석으로 레이어와 구간 종류를 표시하지만 그 표기는 표준이 아닙니다.

문자 하나가 맥락과 무관한 고정된 단위를 갖지는 않습니다. X는 좌표, F는 이송 속도일 수 있고, S는 온도나 팬 출력 또는 다른 설정을 뜻할 수 있습니다. 매개변수는 항상 그것이 속한 명령어를 통해 해석해야 합니다.

출력 파일은 보통 세 부분으로 나뉩니다

준비

단위와 위치 지정 모드를 정하고, 히터를 켜고, 축을 원점으로 보내고, 툴을 선택하며, 레벨링·청소·시작 매크로를 실행하기도 합니다. 이후 값들을 어떻게 해석할지가 여기서 정해집니다.

레이어 본문

이동, 압출, 리트랙션, 팬과 온도 변경이 길게 이어지며 부품을 만듭니다. 레이어와 구간 종류는 전용 명령어보다 슬라이서 주석으로 표시되는 경우가 많습니다.

종료

히터와 팬을 끄고, 헤드를 올리거나 대기 위치로 보내고, 모터를 해제하며, 기계별 종료 매크로를 호출하기도 합니다. 종료 부분이 빠지면 기계가 예상과 다른 상태로 남을 수 있습니다.

; 시작: 상태 설정
G21
G90
M83
G28

; 본문: 공주행 후 출력
G0 X40 Y20 Z0.20 F9000
G1 X80 Y20 E1.40 F1800

; 종료: 동작 중인 출력 정지
M104 S0
M140 S0
M107

이것은 구조를 보여주는 예시일 뿐, 아무 기계에서나 그대로 실행할 수 있는 완전한 파일이 아닙니다. 원점 복귀 방향, 가열 순서, 대기 위치, 매크로 이름은 실제 프린터에 맞아야 합니다.

펌웨어 맥락이 중요합니다

Marlin, Klipper, RepRapFirmware, CNC 컨트롤러는 기본 이동 명령에서 서로 겹치지만 완전히 호환되는 하나의 언어를 이루지는 않습니다. 같은 목적이라도 명령 이름, 매개변수, 값의 단위가 다를 수 있습니다.

시스템확장 방식확인할 점
MarlinRepRap 계열 명령어많은 기능이 컴파일 시 옵션이라, 같은 릴리스의 두 빌드가 서로 다른 명령어를 제공할 수 있습니다.
Klipper표준 부분집합 + 이름 있는 확장공통 표준 부분집합을 의도적으로 지원하고 SET_PRESSURE_ADVANCE 같은 이름을 추가하며, 매크로가 동작을 더하거나 덮어쓸 수 있습니다.
RepRapFirmware전면적인 G-code + 매크로와 수식설정, 제어, 상태 보고에 G-code를 폭넓게 사용하며, 최신 버전은 메타 명령과 수식도 지원합니다.
LinuxCNC / RS274NGCCNC 모달 그룹과 좌표계스핀들 제어, 공구 보정, 작업 좌표계, 고정 사이클 같은 CNC 개념은 프린터식 E 축이나 히터 동작을 뜻하지 않습니다.

따라서 펌웨어 이름과 버전, 설정이 호환성 판단의 최소 조건입니다. 파일 확장자나 다른 사람의 기계에서 잘 돌아갔다는 사실만으로 내 프린터에서도 똑같이 실행된다고 볼 수는 없습니다.

낯선 파일을 점검하는 방법

  • 슬라이서, 대상 기계, 펌웨어를 먼저 확인합니다. 이 정보가 없으면 호환성은 미상으로 두십시오.
  • 이후 이동을 해석하기 전에 단위, 축 모드, 압출 모드, 원점 복귀, 툴과 히터 설정을 먼저 읽습니다.
  • X/Y/Z 변화와 E 변화를 따로 추적해 공주행, 출력, 리트랙션, 프라이밍을 구분합니다.
  • 세미콜론 주석은 슬라이서가 남긴 단서로 보고 기계가 반드시 실행하는 명령으로 보지 마십시오. 슬라이서마다 표기가 다릅니다.
  • 매크로나 이름 있는 확장, 낯선 M 코드는 번호로 짐작하지 말고 해당 펌웨어 버전의 공식 문서를 확인하십시오.
  • 마지막으로 종료 부분이 히터·팬·기타 출력을 정리하는지, 대기 위치로 가는 이동이 한계를 넘거나 부품에 부딪히지 않는지 확인합니다.

각 명령어 페이지의 구성

  • 간결한 정의와, 그 명령을 해석하는 데 필요한 상태.
  • 문법과 매개변수의 의미, 그리고 실제로 쓰이는 G-code 예제.
  • 기계 동작을 바꿀 수 있는 펌웨어 차이와 흔한 실수.
  • 로컬 뷰어가 확인할 수 있는 것과 없는 것에 대한 분명한 설명.

뷰어가 보여줄 수 있는 것

프린터가 아니라 파일을 보여줍니다

뷰어는 지원되는 경로와 파일의 일부 정보를 보여줄 수 있습니다. 프린터 설정을 재현하거나 실제 기계가 무엇을 할지 정확히 예측하지는 못합니다.

이 핵심 명령어부터 시작하세요

이 안내에 사용한 공식 출처

2026년 8월 8일에 아래 1차 자료를 바탕으로 작성했습니다. 이 자료들은 공통된 줄 구조와 컨트롤러 방언이 갈라지는 이유를 함께 설명합니다.