Engineering Tools for AI

프로그래밍

프로그램별 실행환경

Python, C, C++, Go, JavaScript/Node.js, Rust, Java를 실행하기 위해 필요한 런타임, 컴파일러, 패키지 관리자, 설정 파일, 버전 확인 방법을 정리한 가이드입니다.

34 개 항목

공통 개념

런타임

Runtime

node index.js

코드를 실제로 실행해주는 프로그램 또는 환경입니다.

언제 쓰나

Node.js는 JavaScript를, Python은 .py 파일을, JVM은 컴파일된 Java 바이트코드를 실행합니다.

예시

node index.js

요청 예시

이 프로젝트에 어떤 런타임이 필요한지 설명해줘.

공통 개념

컴파일러

Compiler

gcc main.c -o main

소스 코드를 실행 파일 같은 다른 형태로 바꾸는 도구입니다.

언제 쓰나

C, C++, Rust, Go, Java는 보통 실행 전 또는 실행 과정에서 컴파일 단계가 필요합니다.

예시

gcc main.c -o main

요청 예시

이 파일에 필요한 컴파일러 명령을 알려줘.

공통 개념

인터프리터

Interpreter

python3 main.py

소스 코드를 직접 읽고 실행하거나 최소한의 준비만 거쳐 실행하는 프로그램입니다.

언제 쓰나

Python은 보통 인터프리터로 실행하고, C는 보통 먼저 컴파일합니다.

예시

python3 main.py

요청 예시

이 언어가 일반적으로 인터프리터 방식인지 컴파일 방식인지 설명해줘.

공통 개념

PATH

PATH

echo $PATH

터미널에서 명령어를 입력했을 때 실행 파일을 찾는 폴더 목록입니다.

언제 쓰나

python, node, go, cargo, javac 명령을 찾지 못하면 PATH가 첫 번째 확인 대상 중 하나입니다.

주의

PATH를 잘못 수정하면 원래 되던 명령도 터미널에서 사라질 수 있습니다.

예시

echo $PATH

요청 예시

필요한 실행환경 명령이 PATH에 잡혀 있는지 확인해줘.

공통 개념

버전 확인

Version check

python3 --version && node -v && go version

어떤 런타임이나 컴파일러 버전이 설치되어 있는지 확인하는 명령 패턴입니다.

언제 쓰나

버전 차이로 생기는 빌드나 패키지 오류를 디버깅하기 전에 사용합니다.

예시

python3 --version && node -v && go version

요청 예시

이 언어의 버전 확인 명령을 알려줘.

공통 개념

패키지 관리자

Package manager

pip install requests

외부 라이브러리를 설치하고 의존성 정보를 관리하는 도구입니다.

언제 쓰나

pip, npm, cargo, go modules, Maven, Gradle은 각 생태계에서 의존성을 관리합니다.

예시

pip install requests

요청 예시

이 프로젝트가 어떤 패키지 관리자를 쓰는지 설명해줘.

Python

python3

python3

python3 main.py

Python 3 스크립트를 실행할 때 자주 쓰는 명령입니다.

언제 쓰나

.py 파일을 직접 실행하거나 가상환경을 만들 때 사용합니다.

예시

python3 main.py

요청 예시

이 Python 파일을 실행하는 방법을 보여줘.

Python

Python 가상환경

venv

python3 -m venv .venv

프로젝트별로 설치 패키지를 분리하기 위한 Python 환경입니다.

언제 쓰나

프로젝트마다 다른 패키지 버전이 필요할 때 사용합니다.

주의

생성 후 패키지를 설치하기 전에 가상환경을 활성화해야 합니다.

예시

python3 -m venv .venv

요청 예시

이 프로젝트용 Python 가상환경을 만들고 설명해줘.

Python

가상환경 활성화

activate

source .venv/bin/activate

터미널이 가상환경 안의 Python과 pip를 사용하도록 바꿉니다.

언제 쓰나

해당 프로젝트에서 pip install이나 python 명령을 실행하기 전에 사용합니다.

예시

source .venv/bin/activate

요청 예시

Python 가상환경이 활성화되어 있는지 확인해줘.

Python

pip

pip

pip install requests

Python 패키지를 설치하는 도구입니다.

언제 쓰나

프로젝트나 스크립트에 필요한 라이브러리를 설치할 때 사용합니다.

주의

pip가 실제 실행할 Python 환경과 같은 환경인지 확인해야 합니다.

예시

pip install requests

요청 예시

이 pip 명령이 어떤 Python 환경을 쓰는지 확인해줘.

Python

requirements.txt

requirements.txt

pip install -r requirements.txt

설치해야 할 Python 패키지 목록을 적는 텍스트 파일입니다.

언제 쓰나

프로젝트의 Python 패키지 환경을 다시 만들 때 사용합니다.

예시

pip install -r requirements.txt

요청 예시

활성화된 venv에서 requirements.txt 패키지를 설치해줘.

C

gcc

gcc

gcc main.c -o main

C 소스 파일을 컴파일할 때 자주 쓰는 컴파일러입니다.

언제 쓰나

main.c를 실행 파일로 만들 때 사용합니다.

주의

컴파일은 실행 파일을 만들 뿐, 자동으로 실행하지는 않습니다.

예시

gcc main.c -o main

요청 예시

이 C 파일을 컴파일하고 출력 실행 파일을 설명해줘.

C

clang

clang

clang main.c -o main

macOS에서 Xcode Command Line Tools를 통해 자주 제공되는 C 컴파일러입니다.

언제 쓰나

C 파일을 컴파일할 때 gcc의 대안으로 사용할 수 있습니다.

예시

clang main.c -o main

요청 예시

clang이 설치되어 있는지 확인하고 이 C 파일을 컴파일해줘.

C

.h 헤더 파일

.h header file

#include "math_utils.h"

C 코드에서 함수, 타입, 상수, 공유 인터페이스를 선언할 때 주로 쓰는 파일입니다.

언제 쓰나

여러 .c 파일이 선언을 공유해야 할 때 사용합니다.

예시

#include "math_utils.h"

요청 예시

이 헤더 파일이 C 소스 파일과 어떻게 연결되는지 설명해줘.

C

Makefile

Makefile

make

make가 실행할 빌드 명령과 의존 관계를 정의하는 파일입니다.

언제 쓰나

C나 C++ 프로젝트 컴파일에 반복되는 여러 명령이 필요할 때 사용합니다.

예시

make

요청 예시

이 Makefile이 무엇을 빌드하는지 설명해줘.

C++

g++

g++

g++ main.cpp -std=c++20 -o main

C++ 소스 파일을 컴파일할 때 자주 쓰는 컴파일러 명령입니다.

언제 쓰나

C++ 코드를 컴파일할 때는 gcc가 아니라 g++를 사용합니다.

예시

g++ main.cpp -std=c++20 -o main

요청 예시

이 C++ 파일을 알맞은 표준 옵션으로 컴파일해줘.

C++

C++ 표준 버전

C++ standard

-std=c++20

컴파일러가 어떤 C++ 언어 버전을 사용할지 알려주는 설정입니다.

언제 쓰나

코드가 C++17, C++20 같은 특정 표준 기능에 의존할 때 사용합니다.

주의

컴파일러가 선택한 표준을 지원하기에 너무 오래되면 실패할 수 있습니다.

예시

-std=c++20

요청 예시

이 코드에 필요한 C++ 표준 버전을 알려줘.

C++

CMake

CMake

cmake -S . -B build

C와 C++ 프로젝트에서 자주 쓰는 빌드 설정 도구입니다.

언제 쓰나

단일 파일 컴파일이 아니라 CMakeLists.txt가 있는 프로젝트에서 사용합니다.

예시

cmake -S . -B build

요청 예시

이 프로젝트의 CMake 설정과 빌드 명령을 설명해줘.

Go

go

go

go version

Go 코드를 실행, 빌드, 테스트하고 모듈을 관리하는 기본 명령입니다.

언제 쓰나

go run, go build, go test, go mod, 의존성 관리에 사용합니다.

예시

go version

요청 예시

설치된 Go 버전을 확인해줘.

Go

go run

go run

go run main.go

Go 코드를 한 번에 컴파일하고 실행하는 명령입니다.

언제 쓰나

작은 Go 프로그램을 개발하거나 main package를 빠르게 확인할 때 사용합니다.

예시

go run main.go

요청 예시

이 Go 프로그램을 실행하고 오류가 있으면 설명해줘.

Go

go.mod

go.mod

go mod init example.com/my-app

Go 모듈과 의존성 요구사항을 정의하는 파일입니다.

언제 쓰나

Go 의존성과 import 해석의 프로젝트 기준점으로 사용합니다.

예시

go mod init example.com/my-app

요청 예시

이 go.mod 파일이 무엇을 정의하는지 설명해줘.

Go

go mod tidy

go mod tidy

go mod tidy

누락된 Go 모듈 의존성을 추가하고 사용하지 않는 의존성을 제거합니다.

언제 쓰나

import를 바꾼 뒤나 Go 의존성 변경을 커밋하기 전에 사용합니다.

예시

go mod tidy

요청 예시

go mod tidy를 실행하고 의존성 변경을 요약해줘.

JavaScript / Node.js

Node.js

Node.js

node index.js

브라우저 밖에서 JavaScript를 실행하는 런타임입니다.

언제 쓰나

백엔드 스크립트, 빌드 도구, Next.js 같은 웹 프레임워크 도구에 사용합니다.

주의

브라우저 JavaScript와 Node.js는 사용할 수 있는 API가 완전히 같지 않습니다.

예시

node index.js

요청 예시

이 JavaScript 코드가 Node.js용인지 브라우저용인지 확인해줘.

JavaScript / Node.js

npm

npm

npm install

Node.js와 함께 설치되는 기본 패키지 관리자입니다.

언제 쓰나

패키지를 설치하고 package.json에 정의된 scripts를 실행할 때 사용합니다.

예시

npm install

요청 예시

이 package.json의 npm scripts를 설명해줘.

JavaScript / Node.js

package.json

package.json

"scripts": { "dev": "next dev" }

Node.js 프로젝트의 scripts, dependencies, 패키지 정보를 기록하는 파일입니다.

언제 쓰나

npm run dev, npm run build, 필요한 패키지를 이해할 때 확인합니다.

예시

"scripts": { "dev": "next dev" }

요청 예시

이 package.json이 제공하는 명령어를 알려줘.

JavaScript / Node.js

nvm

nvm

nvm use

프로젝트별로 Node.js 버전을 바꿔 사용할 수 있게 해주는 도구입니다.

언제 쓰나

프로젝트가 특정 Node 버전을 요구할 때 사용합니다.

예시

nvm use

요청 예시

이 프로젝트가 Node 버전을 지정하는지 확인해줘.

Rust

rustup

rustup

rustup show

Rust toolchain을 설치하고 관리하는 권장 도구입니다.

언제 쓰나

Rust 설치, stable/nightly 전환, target 추가에 사용합니다.

예시

rustup show

요청 예시

현재 활성 Rust toolchain을 확인해줘.

Rust

rustc

rustc

rustc main.rs

Rust 컴파일러입니다.

언제 쓰나

간단한 단일 파일 Rust 실험에 사용할 수 있지만 실제 프로젝트는 보통 cargo를 사용합니다.

예시

rustc main.rs

요청 예시

이 Rust 프로젝트가 rustc와 cargo 중 무엇을 써야 하는지 설명해줘.

Rust

cargo

cargo

cargo run

Rust의 패키지 관리자, 빌드 도구, 테스트 실행기, 프로젝트 실행 도구입니다.

언제 쓰나

일반 Rust 프로젝트에서는 cargo run, cargo build, cargo test를 사용합니다.

예시

cargo run

요청 예시

이 Rust 프로젝트를 cargo로 실행하고 출력을 설명해줘.

Rust

Cargo.toml

Cargo.toml

[dependencies]

Rust 패키지, 메타데이터, 의존성을 정의하는 manifest 파일입니다.

언제 쓰나

Rust 프로젝트가 어떤 crate에 의존하는지 이해할 때 확인합니다.

예시

[dependencies]

요청 예시

이 Cargo.toml의 의존성을 설명해줘.

Java

JDK

JDK

java -version

Java 프로그램을 컴파일하고 실행하는 데 필요한 도구를 포함한 개발 키트입니다.

언제 쓰나

프로젝트가 javac, java, Maven, Gradle 같은 Java 도구를 필요로 할 때 사용합니다.

예시

java -version

요청 예시

JDK가 설치되어 있는지와 활성 버전을 확인해줘.

Java

javac

javac

javac Main.java

.java 파일을 .class 바이트코드 파일로 바꾸는 Java 컴파일러입니다.

언제 쓰나

간단한 Java 파일을 컴파일하거나 빌드 도구 내부 동작을 이해할 때 사용합니다.

예시

javac Main.java

요청 예시

이 Java 파일을 컴파일하고 생성된 class 파일을 설명해줘.

Java

java

java

java Main

컴파일된 Java class를 JVM에서 실행합니다.

언제 쓰나

간단한 Java 프로그램을 javac로 컴파일한 뒤 실행할 때 사용합니다.

주의

java Main.class가 아니라 java Main처럼 실행합니다.

예시

java Main

요청 예시

이 Java 파일의 컴파일과 실행 명령을 보여줘.

Java

Maven / Gradle

Maven / Gradle

mvn test / ./gradlew test

Java 프로젝트의 의존성, 테스트, 패키징, 작업 실행을 관리하는 대표 빌드 도구입니다.

언제 쓰나

pom.xml이 있으면 Maven, build.gradle이나 gradlew가 있으면 Gradle을 사용합니다.

예시

mvn test / ./gradlew test

요청 예시

이 Java 프로젝트가 Maven과 Gradle 중 무엇을 쓰는지 알려줘.