Menu
Coddy logo textTech

소스 코드란 무엇인가요?

소스 코드는 프로그래머가 파이썬, 자바, C 같은 언어로 작성해 일반 텍스트 파일로 저장한, 사람이 읽을 수 있는 프로그램의 텍스트입니다. 컴파일러나 인터프리터가 이 텍스트를 컴퓨터가 실행할 수 있는 명령으로 바꿔요.

글쓴이: Kevin Spektor, 공동 창업자, CTO

업데이트: 2026년 9월 24일

.py, .c, .java로 끝나는 파일을 아무거나 일반 텍스트 에디터로 열어 보면, 지금 보고 있는 것이 바로 소스 코드예요. 장보기 목록과 같은 종류의 파일이에요. 글자, 숫자, 공백, 줄바꿈으로 이루어져 있죠. 이 텍스트를 프로그램으로 만드는 건 프로그래밍 언어의 규칙을 따른다는 점이에요. 그래서 도구가 이것을 프로세서가 실행할 명령으로 바꿀 수 있어요.

소스 코드는 이렇게 생겼어요

아래는 완전한 파이썬 프로그램이에요. 모든 줄이 소스 코드이고, 주석도 마찬가지예요. 주석은 컴퓨터가 무시하고 다음 프로그래머가 읽어요.

Total: 12

같은 프로그램을 C로 쓴 것도 소스 코드예요. 규칙이 다른 언어일 뿐이에요.

#include <stdio.h>

int main(void) {
    int price = 4;
    printf("Total: %d\n", price * 3);
    return 0;
}

실제 애플리케이션은 이런 파일 수천 개로 이루어져요. 리눅스 커널의 소스 코드는 3,000만 줄이 넘고, 작은 웹 앱도 파일이 수백 개쯤은 쉽게 돼요. 각 파일에는 어떤 언어로 쓰였는지 도구에 알려 주는 확장자가 붙어요.

확장자언어
.pyPython
.c, .hC
.cpp, .hppC++
.javaJava
.jsJavaScript
.goGo
.rsRust

소스 코드는 일반 텍스트예요

소스 코드에는 글꼴도, 색도, 숨은 서식도 없어요. 에디터에서 보이는 색은 읽기 편하라고 에디터가 입힌 것이고 파일에는 저장되지 않아요. 그래서 코드는 VS Code 같은 코드 에디터에서 쓰고, 마이크로소프트 워드에서는 절대 쓰지 않아요. 워드프로세서는 서식 정보와 "스마트" 따옴표를 저장하기 때문에, 결과물은 언어가 읽을 수 없는 파일이 되고 보통 구문 오류로 거부돼요.

텍스트일 뿐이니, 한 프로그램이 다른 프로그램의 소스를 문자열에 담아 실행할 수도 있어요.

<class 'str'>
3 lines of text
Total: 12

마지막 줄 전까지 source는 평범한 문자열이에요. exec가 그것을 파이썬에 넘기면, 파이썬이 텍스트를 읽고 그대로 실행해요. 소스 코드의 일생을 축소해 놓은 모습이에요. 먼저 텍스트이고, 그다음에 명령이 돼요.

소스 코드가 실행되는 프로그램이 되기까지

컴퓨터의 프로세서는 파이썬도 C도 읽지 못해요. 프로세서가 실행하는 것은 기계어뿐이고, 기계어는 CPU 종류마다 다른 이진 명령이에요(대부분의 노트북과 서버는 x86-64, 휴대폰과 애플 실리콘 Mac은 ARM). 누군가 번역을 해야 해요. 크게 두 가지 방법이 있어요.

  1. 컴파일러는 프로그램 전체를 미리 번역해요. gcc hello.c -o hello를 실행하면 C 소스를 읽어서 기계어로 가득 찬 새 파일 hello를 만들어요. 그 뒤에 hello.c를 지워도 hello는 그대로 실행돼요.
  2. 인터프리터는 소스를 직접 실행해요. python3 hello.py를 실행하면 파이썬 인터프리터가 시작되고, hello.py를 읽어 그 명령을 수행해요. 별도의 프로그램 파일이 만들어지지 않으니 소스가 매번 있어야 해요.

두 방식을 섞는 언어도 많아요. 자바 소스는 javac가 바이트코드(.class 파일)로 컴파일하고, 그 바이트코드를 자바 가상 머신이 실행해요. 자세한 비교는 컴파일러와 인터프리터의 차이 페이지에 있어요.

소스 코드, 목적 코드, 기계어

세 용어는 같은 프로그램을 서로 다른 단계에서 부르는 이름이에요.

용어누가 읽나요예시
소스 코드사람과 컴파일러app.py 안의 total = price * 3
목적 코드링커gcc -c hello.c로 만든 hello.o
기계어 (실행 파일)CPU리눅스나 macOS의 hello, 윈도우의 hello.exe

컴파일된 실행 파일을 텍스트 에디터로 열면 알아볼 수 없는 기호가 보여요. 텍스트가 아니라 이진 데이터이기 때문이에요. Mac에서 위 hello 프로그램의 처음 4바이트는 16진수로 cf fa ed fe이고, Mach-O 실행 파일이라는 표시예요. 이런 원시 값은 진법 변환기로 직접 확인해 볼 수 있어요.

오픈 소스와 클로즈드 소스

누가 소스 코드를 읽을 수 있느냐는 기술 문제이면서 법적인 문제이기도 해요. 오픈 소스 소프트웨어는 누구나 읽고 고치고 공유할 수 있게 허락하는 라이선스로 소스를 공개해요. 파이썬, 리눅스, 파이어폭스가 오픈 소스예요. 클로즈드 소스(독점) 소프트웨어는 컴파일된 프로그램만 배포해요. 마이크로소프트 윈도우와 어도비 포토샵이 클로즈드 소스이고, 그 소스 코드는 영업 비밀이에요.

소스 코드는 책처럼 저작권의 보호도 받아요. 인터넷에서 코드를 찾았다고 해서 다시 써도 된다는 뜻은 아니에요. 내 프로젝트에 무언가를 복사하기 전에, 보통 LICENSE라는 이름의 라이선스 파일을 확인하세요.

흔한 오해

  • "페이지 소스 보기를 하면 웹사이트의 소스 코드가 보인다." 보이는 것은 브라우저가 받은 HTML, CSS, 자바스크립트예요. 사이트의 서버 쪽 코드(파이썬, 자바, PHP 등으로 작성된 것)는 서버를 떠나지 않으니 볼 수 없어요.
  • "디컴파일러를 쓰면 원래 소스를 돌려받을 수 있다." 디컴파일러는 컴파일된 프로그램에서 읽을 수 있는 코드를 다시 만들어 내지만, 주석은 사라지고 이름도 대개 잃어버려요. 결과는 소스에 대한 추측이지, 작성자가 쓴 그 파일이 아니에요.
  • "코드와 소스 코드는 같은 말이다." 소스 코드는 사람이 작성한 버전이에요. "코드"는 더 넓은 말이라서 기계어, 바이트코드, 생성된 코드까지 포함해요.
  • "소스 코드는 영어로 써야 한다." if나 print 같은 키워드는 영어 단어지만, 변수 이름, 주석, 문자열은 어떤 언어로 써도 돼요. 파이썬 3 소스 파일은 기본이 UTF-8이라서 prix = 4도 # 合計を計算する도 모두 올바른 코드예요.

다음으로 읽을 내용

소스 코드는 실행되기 전에 검사를 받고, 대부분의 초보자가 처음 만나는 것은 구문 오류예요. 소스 코드를 실행하는 두 방식이 어떻게 다른지 보려면 컴파일러란 무엇인지 읽고 이어서 컴파일러와 인터프리터의 차이를 읽어 보세요. 브라우저의 파이썬 플레이그라운드에서 직접 소스 코드를 쓰고 실행해 보거나, 파이썬 강의를 시작해도 좋아요.

자주 묻는 질문

소스 코드의 예로는 어떤 것이 있나요?
프로그래머가 프로그래밍 언어로 작성한 파일은 모두 소스 코드예요. app.py 같은 파이썬 스크립트, main.c 같은 C 파일, 웹 페이지 안의 자바스크립트가 그렇습니다. .py 파일에 저장한 print("Hello") 한 줄도 소스 코드예요. 파이어폭스나 리눅스 같은 프로그램은 이런 코드 수백만 줄로 만들어져요.
코드와 소스 코드는 무엇이 다른가요?
소스 코드는 사람이 프로그래밍 언어로 작성한 프로그램이에요. "코드"는 더 넓은 말이라서 도구가 소스 코드로부터 만들어 내는 기계어, 바이트코드, 자동 생성된 코드까지 포함해요. 일상 대화에서 프로그래머는 소스 코드를 그냥 "코드"라고 부르고, 맥락으로 구분해요.
프로그램의 소스 코드는 어떻게 구하나요?
내 프로젝트라면 소스 코드는 내가 작성한 파일들이고, 보통 Git 저장소에 보관해요. 오픈 소스 소프트웨어는 소스가 공개되어 있고, 주로 GitHub나 GitLab에 올라와 있어요. 클로즈드 소스 프로그램은 보통 구할 수 없어요. 가진 것은 컴파일된 실행 파일뿐이고, 디컴파일러로 되살려도 원래의 주석과 이름이 없는 근사치에 그쳐요.
HTML도 소스 코드인가요?
네. HTML은 프로그래밍 언어가 아니라 마크업 언어이지만, 개발자가 작성하는 .html 파일은 웹 페이지의 소스이고 브라우저도 그 화면을 "페이지 소스 보기"라고 불러요. CSS 파일과 페이지가 불러오는 자바스크립트 파일도 마찬가지예요.
소스 코드 관리란 무엇인가요?
소스 코드 관리는 버전 관리라고도 하며, 프로젝트의 소스 파일에 생긴 모든 변경을 기록하는 일이에요. 누가 무엇을 바꿨는지 보고, 이전 버전으로 돌아가고, 여러 사람의 작업을 합칠 수 있어요. 가장 널리 쓰이는 도구는 Git이고, GitHub와 GitLab 같은 서비스가 Git 저장소를 온라인에 호스팅해요.
Coddy programming languages illustration

Coddy로 코딩 배우기

시작하기