Preview3D
받기

.gcode 파일이란? 안에 든 것과 프린터 한 대에만 맞는 이유

G-code는 프린터가 한 줄씩 실행하는 명령을 나열한 텍스트로, 노즐이 어디로 갈지, 재료를 얼마나 밀어낼지, 몇 도를 유지할지를 담습니다. 슬라이서가 3D 모델로부터 특정 프린터 한 대를 위해 작성하며, 출력 시간, 필라멘트 사용량, 미리보기를 주석으로 덧붙입니다. 모델 자체는 들어 있지 않고, 노즐의 경로만 있습니다.

한눈에 보기

확장자
.gcode, .gco, .g
종류
툴패스(프린터에 보내는 명령)
개발
EIA RS-274, RepRap
표준
ISO 6983 (CNC)
앱 없이 macOS에서
모름: 미리보기도 미리보기 이미지도 없음

정보 확인일: 2026년 11월 4일

한 줄에 명령 하나

각 줄은 "워드(word)"로 이루어진 명령 하나이며, 워드는 문자 하나와 숫자로 되어 있습니다. G1 X10 Y-5 F2400은 "2400 mm/min의 속도로 X 10, Y −5까지 직선으로 이동"이라는 뜻입니다. G는 이동, M은 그 밖의 명령(온도, 팬), T는 툴 교체를 나타냅니다. X, Y, Z는 축, E는 압출되는 재료, F는 속도, S는 온도나 스핀들 속도입니다. 세미콜론 뒤의 모든 것은 주석입니다.

다음은 실제 파일, 즉 PrusaSlicer 2.9.5에서 만든 3DBenchy의 한 레이어 시작 부분입니다.

;LAYER_CHANGE
;Z:0.6
;HEIGHT:0.2
;BEFORE_LAYER_CHANGE
G92 E0.0
;0.6
G1 E-.7 F2700
G1 X135.159 Y110.836 Z.4 F21000
G1 X136.128 Y110.075 Z.6 F4491.905
;AFTER_LAYER_CHANGE
;0.6
G1 X136.128 Y110.075 F21000
G1 Z.6 F720
G1 E.7 F1500

노즐이 필라멘트를 뒤로 당기고(E-.7), 0.6 mm 높이의 새 레이어로 올라가면서 빠르게 이동한 다음, 필라멘트를 다시 앞으로 밀어냅니다(E.7).

G-code는 공작 기계에서 왔습니다. 미국에서는 RS-274 표준으로 정의되었고 그 마지막 개정판인 RS-274-D는 1979년에 나왔으며, 국제적으로는 ISO 6983으로 정의됩니다. 3D 프린팅에는 RepRap 프로젝트를 통해 들어왔습니다. 하지만 3D 프린터용 공통 표준은 없습니다. Marlin, Klipper, RepRapFirmware, Prusa의 펌웨어 등 펌웨어마다 고유한 명령과 확장이 있습니다.

.gcode 외에 .gco와 .g 확장자도 쓰입니다. Klipper는 가상 SD 카드에서 세 가지를 모두 목록에 표시하고, Marlin도 마찬가지입니다. Marlin은 8.3 형식 확장자가 G로 시작하는 모든 파일을 보여줍니다.

슬라이서가 파일에 써 넣는 것

프린터에게는 명령만으로 충분합니다. 하지만 슬라이서는 출력에 관한 거의 모든 것을 알려주는 주석을 덧붙입니다. 같은 파일의 시작 부분입니다.

; generated by PrusaSlicer 2.9.5 on 2026-07-03 at 11:30:45 UTC
; printer_model = COREONE
; filament_type = PC
; nozzle_diameter = 0.4
; layer_height = 0.2
; temperature = 285
; filament used [mm] = 5786.33
; filament used [g] = 16.98
; filament cost = 1.27
; estimated printing time (normal mode) = 1h 4m 39s
; estimated printing time (silent mode) = 1h 10m 11s

그 밖에도 파일에는 다음이 들어 있습니다.

  • 미리보기: ; thumbnail begin과 ; thumbnail end 같은 줄 사이에 텍스트(base64)로 인코딩되어 있습니다. 이 파일에는 네 개가 있습니다. 프린터 화면용 QOI 이미지 세 개(16 × 16, 313 × 173, 480 × 240 픽셀)와 컴퓨터용 380 × 285 PNG 하나입니다.
  • 경로 구간마다의 종류. 각 구간 앞에 ;TYPE:External perimeter나 ;TYPE:Internal infill 같은 줄이 있습니다. 이 Benchy에는 바깥쪽 외벽 표기가 772개, 내부 채움 표기가 163개 있습니다. 뷰어는 이를 기준으로 경로에 색을 입힙니다.
  • 레이어 경계: ;LAYER_CHANGE, ;Z:, ;HEIGHT:. 이 Benchy는 레이어가 240개입니다.
  • 슬라이서의 전체 설정: 파일 끝의 ; prusaslicer_config = begin과 = end 사이에 있습니다. 여기서는 373줄입니다.
  • 화면에 표시할 출력 진행률: M73 P0 R64 같은 줄은 몇 퍼센트가 끝났고 몇 분이 남았는지 알려줍니다. Q와 S는 저소음 모드에서 같은 역할을 합니다.

다만 주석을 쓰는 방식은 슬라이서마다 다릅니다. PrusaSlicer는 경로 종류를 ;TYPE:External perimeter로, Cura는 ;TYPE:WALL-OUTER로, Bambu Studio와 OrcaSlicer는 ; FEATURE:로 표시합니다. 다른 슬라이서의 표기를 모르는 뷰어는 그 부분의 경로에 색을 입힐 수 없습니다.

이런 주석 때문에 G-code는 커집니다. 이 Benchy는 180,291줄, 4.5 MB이며, 그중 142,090줄이 G1 이동입니다. 같은 출력을 바이너리 .bgcode로 저장하면 1.76 MB입니다.

G-code가 프린터 한 대에만 맞는 이유

G-code는 프린터 한 대, 즉 그 프린터의 베드 크기, 노즐 지름, 펌웨어, 시작 시퀀스에 맞춰 슬라이싱됩니다. 2000년에 나온 NIST 보고서도 한 기계용 프로그램은 다른 제조사의 기계에서 아마 실행되지 않을 것이라고 이미 경고했습니다. 3D 프린터도 마찬가지입니다.

Prusa 프린터는 스스로 확인합니다. 이 Benchy는 다음 줄로 시작합니다.

M862.1 P0.4 A1 F0
M862.3 P "COREONE"
M862.5 P2
M115 U6.5.3+12780

M862.1은 노즐 지름을, M862.3은 프린터 모델을, M862.5는 G-code 레벨을 확인합니다. M115 U는 펌웨어 버전을 비교합니다. Prusa 문서에 따르면 펌웨어가 더 오래된 경우 프린터는 30초 동안 멈추고 업데이트를 요청합니다. 모델이 맞지 않으면 프린터는 G-code가 다른 프린터 유형용으로 슬라이싱되었다고 경고하며, Prusa 포럼에는 계속 진행해도 안전한지 묻는 사람들이 있습니다.

안전한 방법은 언제나 같습니다. 자신의 프린터에 맞춰 모델을 다시 슬라이싱하세요. 완성된 G-code를 공유하는 것은 같은 노즐을 단 동일한 프린터끼리만 의미가 있습니다.

슬라이서에서는 G-code 방식(flavor)을 고릅니다. PrusaSlicer는 Marlin 2부터 Klipper, RepRapFirmware까지 열 가지가 넘는 방식을 제공합니다. Bambu Studio는 슬라이싱된 플레이트를 내보낼 때 플레이트마다 G-code가 들어 있는 .gcode.3mf 패키지로 저장합니다.

G-code를 다시 모델로 바꿀 수 있나요?

아니요. G-code에는 형상이 아니라 노즐의 경로가 담깁니다. G-code를 STL로 변환해 준다는 사이트는 서포트와 채움까지 포함한 경로로 대략적인 부피를 만들어 냅니다. 그것은 원래 모델이 아니며, 0.2 mm 레이어에서 매끄러운 형상이 돌아오지도 않습니다. 모델이 필요하다면 디자이너에게 STL, 3MF 또는 STEP을 요청하세요.

Mac, iPad, iPhone에서 G-code 안을 들여다보는 방법

macOS에는 G-code용 파일 유형이 없습니다. 텍스트 편집기는 이 파일을 텍스트로 열고, Finder에는 빈 아이콘이 표시됩니다. 미리보기도 미리보기 이미지도 없습니다. Windows에서는 PowerToys로 해결되지만, Mac에서는 앱이 필요합니다.

  • PrusaSlicer G-code Viewer는 무료이며 PrusaSlicer, Cura, Simplify3D 등 여러 슬라이서의 G-code를 읽습니다.
  • gcode.ws 같은 웹 뷰어는 브라우저에서 바로 경로를 레이어별로 보여줍니다. gcode.ws는 스스로를 "slow, memory hungry"(느리고 메모리를 많이 쓴다)라고 소개합니다.
  • ThumbHost3mf는 슬라이서가 파일에 저장한 미리보기로 Finder 미리보기 이미지를 추가합니다.
  • 제 앱 Preview3D는 G-code를 창에서, 훑어보기에서, Finder 미리보기 이미지로 보여주며, Mac, iPad, iPhone, Apple Vision Pro에서 작동합니다.

Preview3D가 G-code에서 보여주는 것:

  • 슬라이서가 그리는 것처럼 종류별로 색이 구분된 경로와 범례
  • 실제 폭으로 그린 압출
  • 원하는 높이에서 출력물을 열어 보는 레이어 슬라이더
  • 헤더에서 읽은 출력 시간, 필라멘트, 무게, 소재
  • Finder 미리보기 이미지로는 슬라이서가 파일에 저장한 미리보기

PrusaSlicer, SuperSlicer, OrcaSlicer, Cura, Bambu Studio의 G-code를 읽습니다.

iPad의 Preview3D에서 연 G-code: 종류별로 색이 구분된 툴패스, 레이어 슬라이더, 출력 정보
iPad의 Preview3D에서 연 G-code: 종류별로 색이 구분된 툴패스, 레이어 슬라이더, 출력 정보

G-code 미리보기가 어디에 쓸모 있는지는 슬라이서를 켜지 않고 Mac에서 G-code 들여다보기에 더 자세히 썼습니다.

자주 묻는 질문

G-code는 모든 3D 프린터에서 작동하나요?

아니요. 특정 프린터, 노즐, 펌웨어에 맞춰 슬라이싱됩니다. 다른 프린터에서는 베드 밖으로 출력하거나, 잘못된 온도로 출력하거나, 아예 시작하지 않을 수 있습니다.

.gcode, .gco, .g는 어떻게 다른가요?

다르지 않습니다. 확장자만 다른 같은 텍스트 형식입니다.

G-code 파일의 어디에 출력 시간과 필라멘트 사용량이 있나요?

파일 시작이나 끝의 주석에 있습니다. PrusaSlicer는 ; estimated printing time (normal mode)와 ; filament used [g]를 쓰고, Cura와 Bambu Studio도 각자의 형식으로 비슷한 줄을 씁니다.

G-code를 편집할 수 있나요?

텍스트 편집기로는 가능하지만, 출력을 손으로 편집하는 것은 위험합니다. 온도, 레이어 높이, 소재는 슬라이서에서 바꾸고 모델을 다시 슬라이싱하세요.

G-code를 STL로 변환할 수 있나요?

원래 모델로는 안 됩니다. 서포트와 채움까지 포함한 경로로 대략적인 부피를 만들 수 있을 뿐입니다.

.gcode와 .bgcode는 어떻게 다른가요?

같은 명령을 담고 있으며, .bgcode는 바이너리이고 압축되어 있습니다. 자세한 내용은 .bgcode 페이지에 있습니다.

관련 페이지

출처

Preview3D가 어느 슬라이서의 G-code에 색을 잘못 입혔나요? apps@xfanta.com으로 보내 주시면 아직 모르는 표기를 추가하겠습니다.

Preview3D에서 열기

STEP, 3MF, STL, G-code, BGCODE 등을 Mac, iPad, iPhone, Vision Pro에서 엽니다. 한 번 구매로 계정도 네트워크도 필요 없습니다.

App Store에서 Preview3D 보기