API
프로그램이 다른 프로그램을 부를 때 쓰는 정해진 창구
API 는 프로그램들 사이에 미리 약속해 둔 창구입니다. 정해진 형식으로 요청을 보내면 정해진 형식으로 답이 옵니다. 상대 프로그램의 속을 볼 일은 없고 창구만 보면 됩니다. API 로 인공지능을 쓴다는 것은 사람이 직접 입력하는 대신 내가 만든 앱이 모델에게 질문한다는 뜻입니다.
API 키
원문 표기 · API key
나를 확인하고 요금을 매기는 비밀 문자열 — 절대 공유 금지
API 키는 누가 부르고 있는지, 요금을 누구에게 청구할지 서비스에 알려 주는 긴 비밀 문자열입니다. 은행 카드 번호처럼 다루세요. 채팅창이나 화면 캡처, 공개 저장소에 붙여 넣는 일은 절대 없어야 합니다. 유출되었다면 제공사 관리 화면에서 그 키를 즉시 삭제하고 새로 발급받으세요.
Git
파일이 바뀐 모든 순간을 기록해 두는 도구
Git 은 프로젝트가 지나온 모든 변화를 기록해 두어, 무엇이 언제 바뀌었는지 보고 원하는 시점으로 되돌아갈 수 있게 해 줍니다. 여러 사람이 같은 파일을 고쳐도 서로의 작업을 덮어쓰지 않게 해 주기도 합니다. Git 은 내 컴퓨터에서 도는 프로그램이고, GitHub 은 그 기록을 보관해 주는 웹사이트입니다. 이름이 비슷해 흔히 헷갈립니다.
더 배우기
저장소(리포지토리)
원문 표기 · Repository
프로젝트 폴더와 그 전체 이력을 합친 하나의 묶음
저장소는 Git 이 지켜보고 있는 프로젝트 폴더와, 그 안에서 일어난 모든 변경 기록을 함께 가리키는 말입니다. 저장소를 복제하면 파일뿐 아니라 그 이력까지 내 컴퓨터로 따라옵니다. 코드가 GitHub 에 있다는 말은 그곳에 복제해 올 수 있는 저장소가 있다는 뜻입니다.
더 배우기
커밋
원문 표기 · Commit
이력에 남기는 저장 지점 하나 — 왜 바꿨는지 메모와 함께
커밋은 프로젝트의 어느 한 순간을 통째로 찍어 둔 것으로, 무엇을 왜 바꿨는지 짧은 메모와 함께 저장됩니다. 커밋은 계속 남아 있어서 언제든 그 시점으로 돌아갈 수 있습니다. 작게 나눈 커밋과 정직한 메모가 이력을 쓸모 있게 만듭니다. 큼직한 덩어리 하나에 수정이라고만 적어 두면 나중에 아무 도움이 되지 않습니다.
더 배우기
브랜치
원문 표기 · Branch
본줄기를 건드리지 않고 따로 작업하는 갈래
브랜치를 만들면 본줄기에서 갈라져 나와 무언가를 시도해 볼 수 있고, 마음에 들 때까지 원래 쪽은 그대로 둘 수 있습니다. 실험이 잘 안 되면 그 브랜치를 버리면 그만이고, 잘 되면 본줄기에 합칩니다. 여러 사람이 서로 방해하지 않고 동시에 기능을 만들 수 있는 것이 이 덕분입니다.
더 배우기
명령줄(CLI)
원문 표기 · Command line (CLI)
마우스로 누르는 대신 명령을 적어 일하는 방식
명령줄 인터페이스는 메뉴를 눌러 가며 쓰는 대신, 한 줄씩 명령을 적어 조작하는 프로그램입니다. 겉보기에는 휑하지만 정확하고 되풀이하기 쉽습니다. 방금 적은 그 줄을 저장해 두었다가 남에게 주거나 내일 그대로 다시 실행할 수 있으니까요. Git 이나 인공지능 코딩 도구를 비롯한 개발 도구는 대부분 이 방식을 함께 제공합니다.
더 배우기
터미널
원문 표기 · Terminal
명령을 적어 넣는 그 검은 창
터미널은 명령을 입력할 자리를 내어 주고 그 결과를 보여 주는 프로그램입니다. 맥에서는 터미널, 윈도우에서는 Windows 터미널이나 PowerShell 이라고 부릅니다. 거기에 무언가를 적는다고 해서 그 자체로 위험한 일이 벌어지지는 않고, 창은 언제든 닫아도 됩니다. 처음 배우는 사람이 느끼는 두려움은 실제 위험에 비해 훨씬 큽니다.
더 배우기
알고리즘
원문 표기 · Algorithm
정해진 순서를 따르면 늘 같은 결과에 이르는 절차
알고리즘은 입력을 결과로 바꾸는, 끝이 있는 단계들의 목록입니다. 요리법과 같지요. 이름을 가나다순으로 정렬하는 것, 가장 짧은 길을 찾는 것이 모두 알고리즘입니다. 말은 딱딱하게 들리지만 우리도 매일 알고리즘을 따르고 있습니다. 컴퓨터는 그저 지루해하지도, 한 줄을 건너뛰지도 않고 그대로 따를 뿐입니다.
라이브러리
원문 표기 · Library
남이 미리 만들어 둔, 가져다 쓰기만 하면 되는 코드 묶음
라이브러리는 다른 사람들이 만들어 검증해 둔 코드 묶음으로, 내 프로젝트에 가져다 붙여 이미 풀린 문제를 다시 풀지 않게 해 줍니다. 날짜를 읽고, 그래프를 그리고, 메일을 보내는 일은 이미 누군가 잘 해 놓았습니다. 좋은 라이브러리를 고르는 것도 실력입니다. 내 프로그램이 그쪽의 장점뿐 아니라 결함까지 함께 물려받기 때문입니다.
오픈소스
원문 표기 · Open source
누구나 코드를 읽고 쓰고 고칠 수 있게 공개한 소프트웨어
오픈소스 소프트웨어는 소스 코드를 공개하고, 누구나 읽고 실행하고 고칠 수 있도록 라이선스를 붙입니다. 이렇게 열어 두었기에 모르는 사람이 문제를 찾아 주고, 한 회사에 묶이지 않을 수 있습니다. 공개라고 해서 아무 의무가 없는 것은 아닙니다. 라이선스마다 조건이 다르므로 어떤 것이 붙어 있는지 확인해 볼 만합니다.
디버깅
원문 표기 · Debugging
프로그램이 왜 잘못 도는지 좇아가 바로잡는 일
디버깅은 프로그램이 의도와 다르게 도는 이유를 찾아내고 바로잡는 일입니다. 대부분은 기발한 수정이 아니라 차분히 범위를 좁히는 작업입니다. 실제로 무슨 일이 일어났는지, 무엇을 기대했는지, 그 둘이 처음으로 어긋나는 지점이 어디인지를 보는 것이지요. 처음 배우는 사람은 디버깅을 실패의 증거로 여기지만, 사실 프로그래밍의 더 큰 절반이 이것입니다.
오류 메시지
원문 표기 · Error message
무언가 잘못됐을 때 프로그램이 보여 주는 글
오류 메시지는 프로그램이나 브라우저가 코드가 시킨 일을 하지 못할 때 보여 주는 글이에요. 보통 무엇이 어디서 잘못됐는지 — 흔히 몇 번째 줄인지 — 를 알려 줘요. 무서워 보이지만 가장 쓸모 있는 단서예요. 첫 줄을 읽거나, 인공지능에게 붙여 넣고 무슨 뜻인지 물어보세요.
더 배우기
파이썬(Python)
인공지능 개발에 널리 쓰는 쉬운 언어
파이썬은 영어 문장처럼 읽히는 코드로 잘 알려진 프로그래밍 언어입니다. 데이터 분석과 인공지능에서 가장 많이 쓰이며, PyTorch·NumPy 같은 인공지능 라이브러리 대부분을 파이썬에서 불러 씁니다. 이 사이트에서는 아무것도 설치하지 않고 브라우저 안에서 진짜 파이썬을 돌려 볼 수 있습니다.
더 배우기
프로그램
원문 표기 · Program
컴퓨터가 순서대로 따르는 명령의 묶음
프로그램은 컴퓨터에게 무엇을 어떤 순서로 할지 알려 주는 명령의 목록입니다. 앱·게임·웹사이트가 모두 프로그램이고, 인공지능 챗봇도 프로그램입니다. 컴퓨터는 프로그램에 적힌 대로만 움직이므로, 프로그램이 이상하게 굴면 원인은 그 명령이나 받은 입력 안에 있습니다.
코드
원문 표기 · Code
프로그래밍 언어로 적은 명령문
코드는 파이썬·자바스크립트 같은 프로그래밍 언어로 적은 프로그램의 글입니다. 사람이 쓰고 컴퓨터가 실행합니다. 코드는 그 언어의 규칙을 정확히 지켜야 해서, 괄호 하나만 빠져도 돌지 않을 수 있습니다. 코드를 쓰는 일을 코딩이라고 하며, 인공지능 도구도 코드를 쓰지만 확인은 사람이 해야 합니다.
코드 편집기(code editor)
원문 표기 · Code editor
코드를 쓰고 고치는 프로그램
코드 편집기는 코드 파일을 쓰고 고치는 프로그램입니다. 코드의 부분마다 색을 달리 칠해 주고, 쓰는 동안 실수를 짚어 주며, 터미널을 품고 있는 경우도 많습니다. 무료로 널리 쓰는 VS Code(Visual Studio Code)가 대표적이고, 인공지능 코딩 도구도 흔히 여기에 확장으로 붙여 씁니다.
순서도(flowchart)
원문 표기 · Flowchart
일의 순서를 상자와 화살표로 그린 그림
순서도는 일의 단계를 상자로 그리고 화살표로 이은 그림입니다. 둥근 칸은 시작과 끝, 네모 칸은 할 일, 마름모 칸은 예·아니요로 답하는 질문이며 여기서 길이 갈립니다. 프로그램을 만들기 전에 순서도를 그리면 무엇이 어떤 순서로 일어나야 하는지 또렷해집니다.
더 배우기
원문 표기 · Input and output
프로그램에 들어가는 것과 나오는 것
입력은 프로그램이 받는 것으로, 키보드로 친 글자·마우스 클릭·파일·질문이 모두 입력입니다. 출력은 프로그램이 돌려주는 것으로, 화면의 글자·소리·저장된 파일이 그렇습니다. 그 사이에서 프로그램이 입력을 처리합니다. 인공지능 챗봇도 같아서, 내 질문이 입력이고 돌아온 답이 출력입니다.
프로그래밍 문법
원문 표기 · Syntax
코드를 써야 하는 정확한 규칙
문법은 프로그래밍 언어의 글쓰기 규칙으로, 괄호·콜론·따옴표·빈칸이 어디에 와야 하는지 정합니다. 컴퓨터는 무슨 뜻이었는지 짐작하지 않으므로, 따옴표 하나만 빠져도 문법 오류가 나고 코드가 아예 돌지 않습니다. 오류 메시지가 보통 그 줄을 가리키니 거기부터 봅니다.
런타임
원문 표기 · Runtime
코드나 모델을 실제로 돌려 주는 프로그램
런타임은 따로 쓰인 코드나 파일을 실제로 실행해 주는 프로그램입니다. Node.js 는 브라우저 밖에서 자바스크립트를 돌리고, Pyodide 는 브라우저 안에서 파이썬을 돌리며, llama.cpp 는 인공지능 모델 파일을 읽어 계산합니다. "실행하는 동안"이라는 뜻으로도 써서, 실행해야만 드러나는 오류를 런타임 오류라고 부릅니다.
프레임워크
원문 표기 · Framework
내 코드를 채워 넣는 미리 짜인 뼈대
프레임워크는 앱을 어떻게 짤지 이미 정해 둔 큰 코드 묶음이고, 나는 그것이 알맞은 때에 부를 조각을 씁니다. 라이브러리는 반대로 내 코드가 필요할 때 부릅니다. 웹 프레임워크는 일을 크게 덜어 주지만, 그 밑에서는 여전히 평범한 HTTP 로 요청을 읽고 응답을 씁니다. 그래서 이 사이트는 그 한 바퀴를 먼저 보여 줍니다.
더 배우기
SDK
플랫폼 위에서 만들 때 쓰는 코드·도구 묶음
SDK 는 소프트웨어 개발 키트(software development kit)의 줄임말입니다. 플랫폼이 나눠 주는 것으로, 클라우드 저장·순위표·로그인 같은 기능을 처음부터 짜지 않고 내 프로그램에서 쓰게 해 줍니다. 보통 그 플랫폼의 API 를 부르는 라이브러리와 설명서, 예제가 들어 있습니다. 이 사이트에서는 게임에 SDK 를 알아서 넣어 주는 Cadeplay 에서 만납니다.
더 배우기
빌드
원문 표기 · Build step
소스 코드를 실행·배포할 파일로 만드는 일
빌드는 내가 쓴 코드를 실제로 돌아갈 완성 파일로 바꾸는 일입니다. 예를 들어 React 프로젝트를 dist 폴더 안의 평범한 HTML · CSS · 자바스크립트로 줄여 냅니다. 이 단계를 맡는 것이 빌드 도구입니다. 그렇게 나온 결과물도 빌드라고 불러서, "새 빌드"는 게임이나 앱의 새로 묶은 판을 뜻합니다. 빌드 결과물은 매번 다시 만들 수 있으니 깃에 넣지 않습니다.
더 배우기
게임 엔진
원문 표기 · Game engine
게임을 돌리는 공통된 일을 맡는 소프트웨어
게임 엔진은 거의 모든 게임에 필요한 일을 맡습니다 — 화면 그리기, 입력 읽기, 소리 내기, 물리 계산, 그림과 소리 불러오기. 나는 그 위에 내 게임의 규칙과 그림을 얹습니다. Godot · Unity · Unreal 과 Flutter 위의 Flame 이 잘 알려진 예입니다. 많은 엔진이 프로젝트 하나를 웹 · 휴대폰 · 데스크톱으로 내보낼 수 있습니다.
더 배우기
MVP
사람들이 실제로 쓸 수 있는 가장 작은 판
MVP 는 최소 기능 제품(minimum viable product)의 줄임말입니다. 게임에서는 최소한 플레이 가능한 게임, 곧 작지만 처음 보는 사람이 도움 없이 처음부터 끝까지 해 볼 수 있는 게임을 뜻합니다. 데모나 밑그림이 아닙니다. MVP 를 일찍 내놓으면 혼자 몇 달 일해도 얻지 못할 진짜 플레이어의 정직한 반응을 얻습니다.
더 배우기
.env 파일
원문 표기 · .env file
비밀 값을 코드 밖에 두는 파일
.env 파일은 토큰이나 비밀번호 같은 값을 이름=값 꼴로 한 줄씩 적어 프로젝트 폴더에 두는 평범한 글 파일입니다. 프로그램은 값을 이름으로 읽으므로 비밀 자체는 코드에 나오지 않습니다. 이 파일은 .gitignore 에 적어 저장소에 들어가지 않게 해야 하고, 한 번이라도 올라간 비밀은 새어 나갔다고 보고 바꿔야 합니다.
CI(지속적 통합)
원문 표기 · CI (continuous integration)
코드를 바꿀 때마다 저절로 도는 검사
지속적 통합(CI)은 누군가 공유 저장소에 코드를 올릴 때마다 서버가 저절로 프로젝트를 빌드하고 테스트를 돌리는 방식입니다. 무언가 망가지면 변경을 합치기 전에 몇 분 안에 빨간 표시로 알 수 있습니다. GitHub Actions 가 널리 쓰이는 CI 서비스입니다.
버전 관리 도구
원문 표기 · Version control
파일의 모든 변경을 기록해 두는 도구
버전 관리 도구는 파일이 바뀔 때마다 누가·언제·왜 바꿨는지와 함께 기록해 두는 프로그램입니다. 그러면 두 시점을 비교하거나 예전 상태로 돌아갈 수 있고, 여러 사람이 같은 프로젝트를 안전하게 고칠 수 있습니다. 오늘날 가장 널리 쓰는 버전 관리 도구가 Git 입니다.
더 배우기
GitHub
Git 저장소를 인터넷에 보관하는 웹사이트
GitHub 은 Git 저장소의 사본을 인터넷에 보관해, 한 팀이 프로젝트 하나를 함께 쓰게 해 주는 웹사이트입니다. 보관만이 아니라 변경을 검토하는 Pull Request, 할 일 목록(이슈), 자동 검사도 제공합니다. Git 은 내 컴퓨터의 도구이고, GitHub 은 GitLab 처럼 저장소를 온라인에 두는 여러 서비스 가운데 하나입니다.
더 배우기
Pull Request(PR)
원문 표기 · Pull request (PR)
내 브랜치를 검토해 합쳐 달라는 요청
Pull Request(PR)는 GitHub 같은 사이트에서 내 브랜치의 변경을 main 브랜치에 합쳐 달라고 팀에 요청하는 페이지입니다. 리뷰어가 diff 를 읽고 의견을 남긴 뒤 승인하며, 커밋을 더 올리면 같은 PR 이 갱신됩니다. 코드를 검사받는 시험이라기보다 무엇을 왜 바꿨는지 나누는 자리입니다.
더 배우기
diff
원문 표기 · Diff
무엇이 바뀌었는지 줄 단위로 보여 주는 것
diff 는 두 버전 사이의 차이를 보여 줍니다. - 로 시작하는 줄은 지운 것, + 로 시작하는 줄은 더한 것입니다. git diff 는 아직 스테이징하지 않은 변경을, git diff --staged 는 곧 커밋될 변경을 보여 줍니다. 커밋하기 전마다 diff 를 읽는 것이 실수를 잡는 가장 쉬운 방법이며, 인공지능이 고친 코드도 마찬가지입니다.
더 배우기
.gitignore
Git 이 추적하지 않을 것을 적은 파일
.gitignore 는 Git 이 무시할 파일과 폴더를 적어 두는 글자 파일로, node_modules, 빌드 결과물, 비밀 값이 든 .env 같은 것을 적습니다. 한 줄에 패턴 하나이며, 끝의 / 는 폴더, * 는 아무 이름을 뜻합니다. 이미 커밋된 파일에는 효과가 없으니 git rm --cached 로 먼저 추적에서 빼야 합니다.
더 배우기
스냅샷(snapshot)
원문 표기 · Snapshot
어느 한 순간 모든 파일의 모습
스냅샷은 어느 한 순간 프로젝트의 모든 파일 상태를 담은 기록입니다. Git 의 커밋 하나하나는 바뀐 부분의 목록이 아니라 스냅샷이며, 바뀌지 않은 파일은 이미 저장된 것을 가리키기만 해서 크기가 커지지 않습니다. 그래서 Git 은 어느 커밋으로든 곧바로 돌아가고 두 시점을 빠르게 비교할 수 있습니다.
더 배우기
작업 디렉터리(working tree)
원문 표기 · Working tree
내가 보고 고치는 실제 파일들
작업 디렉터리는 내가 열어 보고 고치는 실제 파일이 있는 프로젝트 폴더입니다. Git 은 이것을 마지막 커밋과 비교해 무엇이 바뀌었는지 알려 줍니다. 변경이 놓이는 세 공간(작업 디렉터리·스테이징 영역·저장소) 가운데 하나이며, 바뀐 것이 어디에 있는지는 git status 로 봅니다.
더 배우기
스테이징 영역(staging area)
원문 표기 · Staging area
다음 커밋에 담을 변경을 모아 두는 곳
스테이징 영역(index)은 다음 커밋에 넣으려고 골라 둔 변경을 모아 두는 곳입니다. git add 로 변경을 여기에 올리고, git commit 은 스테이징에 있는 것만 저장합니다. 이 중간 단계 덕분에 파일 다섯 개를 고쳤어도 서로 관련된 두 개만 골라 커밋할 수 있어 이력이 읽기 쉬워집니다.
더 배우기
복제(clone)
원문 표기 · Clone
저장소를 통째로 내 컴퓨터에 복사하기
복제(clone)는 GitHub 같은 곳에 있는 저장소를 파일과 전체 이력까지 통째로 내 컴퓨터에 복사하는 일입니다. Git 은 어디서 복제했는지를 origin 이라는 원격으로 기억해 두므로, 나중에 새 변경을 받거나 내 커밋을 올릴 수 있습니다. 복제는 처음 한 번만 하고, 그 뒤로는 git pull 로 최신 상태를 받습니다.
더 배우기
원격 저장소(remote)
원문 표기 · Remote
다른 컴퓨터에 있는 같은 저장소
원격 저장소는 대개 GitHub 에 있는 같은 저장소의 또 다른 사본으로, 모두가 만나기로 약속한 곳입니다. 관례상 이름은 origin 입니다. git push 로 내 커밋을 보내고, git pull 이나 git fetch 로 남의 커밋을 받아 옵니다. 내 컴퓨터에서 하던 방식은 그대로이고, 원격은 그저 만나는 자리입니다.
더 배우기
푸시(push)
원문 표기 · Push
내 커밋을 원격 저장소에 올리기
푸시는 내 브랜치의 커밋을 원격 저장소에 올려 다른 사람이 볼 수 있게 하는 일입니다. 처음에 git push -u origin main 으로 올리면 브랜치가 짝지어져 다음부터는 git push 만 쳐도 됩니다. 다른 사람이 먼저 올렸다면 그 커밋을 받기 전까지 Git 이 거절합니다. git push --force 는 남의 커밋을 덮어쓰므로 공유 브랜치에서는 쓰지 않습니다.
더 배우기
풀(pull)
원문 표기 · Pull
원격의 새 커밋을 받아 합치기
풀은 원격 저장소의 새 커밋을 받아 와 곧바로 지금 브랜치에 합치는 일입니다. git fetch 다음에 병합을 하는 것과 같아서, 같은 줄을 나도 고쳤다면 충돌이 날 수 있습니다. git pull --rebase 는 내 커밋을 받아 온 것 위로 다시 얹어 이력을 한 줄로 유지합니다.
더 배우기
페치(fetch)
원문 표기 · Fetch
합치지 않고 원격의 커밋만 받아 오기
페치는 원격 저장소의 최신 커밋을 받아 오되 내 브랜치는 건드리지 않습니다. 받은 내용은 origin/main 같은 이름 아래 기다리므로, 먼저 살펴보고 합칠지 정할 수 있습니다. 그래서 남이 무엇을 올렸는지 안전하게 보는 방법이며, git pull 은 페치에 병합을 곧바로 더한 것입니다.
더 배우기
병합(merge)
원문 표기 · Merge
두 브랜치의 작업을 하나로 합치기
병합은 한 브랜치의 커밋을 다른 브랜치에 합치는 일로, 보통 다 만든 기능 브랜치를 main 에 합칩니다. 두 브랜치가 서로 다른 곳을 고쳤으면 Git 이 알아서 합치고, 같은 줄을 서로 다르게 고쳤으면 충돌로 멈추고 사람의 결정을 기다립니다. 병합은 이력을 실제로 일어난 그대로 남깁니다.
더 배우기
충돌(conflict)
원문 표기 · Conflict
두 변경이 같은 줄을 건드린 상태
충돌은 두 브랜치가 한 파일의 같은 줄을 서로 다르게 고쳐서 Git 이 어느 쪽을 남길지 정할 수 없을 때 생깁니다. Git 은 멈추고 그 자리에 <<<<<<<, =======, >>>>>>> 표시를 넣습니다. 올바른 내용으로 고치고 표시 줄을 지운 뒤 git add 하고 커밋하면 됩니다. 충돌은 오류가 아니라 사람이 결정하라는 신호입니다.
더 배우기
포크(fork)
원문 표기 · Fork
남의 저장소를 내 계정으로 복사한 것
포크는 다른 사람의 저장소를 내 계정 아래로 복사한 것으로, 주로 GitHub 에서 만듭니다. 내 것이 아닌 프로젝트에는 직접 올릴 수 없으므로, 내 포크에 올린 뒤 원본 저장소로 Pull Request 를 보냅니다. 오픈소스 프로젝트에 기여하는 흔한 방법입니다.
더 배우기
리베이스(rebase)
원문 표기 · Rebase
내 커밋을 다른 지점 위로 옮겨 얹기
리베이스는 내 커밋들을 다른 커밋 위로 옮겨 다시 얹어 이력을 한 줄로 정리합니다. git rebase -i 로는 공유하기 전에 커밋을 합치거나 메시지를 고치거나 순서를 바꿀 수 있습니다. 리베이스는 옛 커밋 대신 새 커밋을 만들므로, 이미 다른 사람과 공유한 커밋에는 쓰지 않습니다.
더 배우기
HEAD
지금 이력의 어디에 있는지 가리키는 표시
HEAD 는 지금 내가 서 있는 커밋을 가리키는 Git 의 이름으로, 보통 지금 브랜치의 가장 최근 커밋입니다. 많은 명령이 여기서부터 셉니다. HEAD~1 은 한 커밋 전, HEAD~3 은 세 커밋 전입니다. git reflog 에는 HEAD 가 지나온 모든 자리가 남아 있어, 잃어버린 커밋을 되찾을 때 씁니다.
더 배우기
변수(variable)
원문 표기 · Variable
값에 붙인 이름
변수는 나중에 다시 쓰려고 값에 붙여 둔 이름입니다. 파이썬에서는 이름 = 값 으로 담는데, 여기서 = 는 같다가 아니라 이 이름에 이 값을 넣으라는 뜻입니다. 변수에 담긴 값은 언제든 바꿀 수 있고, 값을 적을 자리마다 이름을 대신 쓸 수 있습니다.
더 배우기
함수(function)
원문 표기 · Function
이름을 붙여 다시 쓰는 코드 묶음
함수는 이름을 붙인 코드 묶음으로, 필요할 때마다 다시 실행할 수 있습니다. 파이썬에서는 def 로 만들고, 괄호 안에 받을 값을 적고, return 으로 값을 돌려줍니다. print() 와 len() 도 파이썬에 들어 있는 함수이고, def 로 나만의 함수를 만들 수 있습니다.
더 배우기
조건(condition)
원문 표기 · Condition
실행할 코드를 정하는 참·거짓 질문
조건은 score >= 60 처럼 답이 True(참) 또는 False(거짓)인 질문입니다. if 문은 조건이 True 일 때만 그 안의 줄을 실행하고, else 는 나머지 경우를 맡습니다. 안쪽 줄은 빈칸 4칸 들여쓰기를 해야 파이썬이 if 의 범위를 가릅니다.
더 배우기
반복(loop)
원문 표기 · Loop
같은 코드를 되풀이하는 것
반복(루프)은 같은 줄을 여러 번 실행합니다. for 반복은 range(1, 11) 의 숫자나 리스트의 항목을 하나씩 차례로 돌고, while 반복은 조건이 True 인 동안 계속합니다. 그래서 조건이 끝내 False 가 되지 않으면 멈추지 않습니다.
더 배우기
들여쓰기(indentation)
원문 표기 · Indentation
코드를 묶는 줄 앞의 빈칸
들여쓰기는 줄 맨 앞에 두는 빈칸입니다. 파이썬에서는 규칙의 일부라서, if·for·def 아래의 줄은 보통 빈칸 4칸 들여써야 그 안에 속한다는 것이 드러납니다. 들여써야 할 줄을 들여쓰지 않거나 칸 수가 어긋나면 파이썬은 IndentationError 를 내고 멈춥니다.
더 배우기
리스트(list)
원문 표기 · List
[ ] 안에 순서대로 모은 값들
리스트는 여러 값을 대괄호 [ ] 안에 순서대로 한데 담습니다. 항목마다 0부터 시작하는 자리 번호가 있어서 fruits[0] 이 첫 항목입니다. append() 로 항목을 더하고, len() 으로 개수를 세고, for 반복으로 하나씩 꺼내 쓸 수 있습니다.
더 배우기
딕셔너리(dictionary)
원문 표기 · Dictionary
{ } 안에 열쇠와 값을 짝지은 것
딕셔너리는 {"math": 80} 처럼 열쇠(key)와 값(value)의 짝을 중괄호 안에 담습니다. 자리 번호가 아니라 열쇠로 값을 찾아서, scores["math"] 는 80 을 돌려줍니다. 새 열쇠에 값을 넣으면 짝이 늘고, 열쇠는 서로 겹칠 수 없습니다. 코드에서는 줄여서 dict 라고도 부릅니다.
더 배우기
액세스 토큰
원문 표기 · Access token
도구가 내 계정을 쓰게 해 주는 비밀 문자열
액세스 토큰은 서비스가 내어 주는 긴 비밀 문자열로, 비밀번호 없이도 내 도구가 내 계정을 쓰게 해 줍니다. 예를 들어 게임을 Cadeplay 에 올릴 때 씁니다. 비밀번호처럼 다루세요 — .env 파일에 두고, 대화창이나 코드에는 붙여 넣지 말고, 새어 나가면 그 서비스의 콘솔에서 지웁니다. 인공지능이 글을 셀 때 쓰는 토큰과는 전혀 다른 것입니다.
더 배우기
게임 루프
원문 표기 · Game loop
게임이 1초에 여러 번 되풀이하는 순환: 입력 읽기, 세계 갱신, 화면 그리기.
게임 루프는 모든 게임의 심장입니다. 한 바퀴마다 플레이어의 입력을 읽고, 위치·충돌·점수를 갱신하고, 새 그림을 그립니다. 한 바퀴가 프레임 하나입니다. 엔진이 루프를 대신 돌려 주고, 우리는 그 안에서 일어날 일을 씁니다.
더 배우기
FPS (초당 프레임 수)
원문 표기 · FPS (frames per second)
게임이 1초에 새 그림을 몇 장 그리는지.
FPS 는 게임 루프가 1초에 몇 번 끝나 새 프레임을 보여 주는지 셉니다. 60 FPS 는 16.7밀리초마다 한 장이라 부드럽게 느껴지고, 30 아래로 떨어지면 끊기기 시작합니다. 무거운 그리기나 갱신의 느린 코드가 FPS 를 떨어뜨립니다.
더 배우기
스프라이트
원문 표기 · Sprite
캐릭터·동전·총알처럼 게임 화면에서 움직이는 작은 그림.
스프라이트는 게임이 프레임마다 어떤 자리에 그리는 2D 그림입니다. 걷는 캐릭터는 흔히 스프라이트 시트 — 차례로 보여 주면 애니메이션이 되는 그림 띠 — 하나로 만듭니다. 스프라이트에는 보통 충돌을 확인할 히트박스가 붙어 있습니다.
더 배우기
충돌 판정
원문 표기 · Collision detection
게임 속 두 물체가 닿았는지, 히트박스라는 보이지 않는 상자로 프레임마다 확인하는 일.
충돌 판정은 플레이어가 발판에 올라섰는지, 동전을 주웠는지, 맞았는지를 정합니다. 가장 쉬운 방법은 스프라이트마다 사각형(히트박스)을 주고 두 사각형이 겹치는지 보는 것입니다. 엔진의 물리 시스템이 이 일을 대신 해 주기도 합니다.
더 배우기
델타 타임
원문 표기 · Delta time
지난 프레임 뒤로 흐른 시간. 어느 기기에서나 게임이 같은 속도로 돌게 하는 데 씁니다.
화면마다 새로 고치는 빠르기가 달라서 프레임마다 걸리는 시간이 같지 않습니다. 속도에 델타 타임(dt)을 곱하면 프레임당 거리가 아니라 초당 거리로 움직입니다. 이것이 없으면 빠른 모니터에서는 게임이 빨라지고 느린 휴대폰에서는 느려집니다.
더 배우기
워크플로
원문 표기 · Workflow
정해진 순서대로 단계를 밟는 작업 흐름
워크플로는 늘 같은 순서로 도는 일의 단계 묶음입니다. AI 설계에서 워크플로는 미리 적어 둔 길을 따라가고, 에이전트는 다음 단계를 스스로 정한다는 점이 다릅니다. GitHub 에서 워크플로는 .github/workflows/ 에 두는 YAML 파일로, 테스트를 돌리거나 댓글이 달리면 Claude 에게 이슈를 고치게 하는 단계를 자동으로 실행합니다.
개인정보처리방침
원문 표기 · Privacy policy
앱이 개인정보를 어떻게 쓰는지 밝힌 글
개인정보처리방침은 앱이나 사이트가 어떤 개인정보를 왜 모으고, 누구와 나누며, 사용자가 어떻게 지울 수 있는지 밝힌 공개 페이지입니다. 앱 스토어는 앱을 올리기 전에 이 페이지 주소를 요구하고, 심사원은 내용이 앱의 실제 동작과 맞는지 봅니다. 많은 나라의 법도 이것을 요구합니다.
더 배우기
Babylon.js
웹 브라우저 안에서 도는 무료 3D 게임 엔진
Babylon.js 는 웹 페이지 안에서 도는 3D 게임·장면을 만드는 오픈소스 엔진으로, 물리·애니메이션·조명·3D 모델 불러오기가 들어 있습니다. TypeScript 로 쓰였고 JavaScript 로도 씁니다. 브라우저가 곧 실행 환경이라 플레이어는 설치 없이 링크 하나로 게임을 엽니다.
더 배우기
Construct
코드 없이도 브라우저에서 만드는 2D 게임 엔진
Construct 는 웹 브라우저에서 쓰는 2D 게임 엔진입니다. 코드를 치는 대신 "이벤트 시트"에 "이 일이 생기면 저것을 한다"를 골라 넣어 규칙을 만듭니다. 더 필요하면 JavaScript 를 섞어 쓸 수 있고, 웹과 다른 플랫폼으로 게임을 내보냅니다.
더 배우기
C++
게임 엔진·브라우저 속에 쓰이는 빠르고 오래된 언어
C++ 는 미리 기계어로 바꿔 두는 프로그래밍 언어라 아주 빠르게 돌고 메모리를 직접 다룹니다. Unreal Engine 같은 게임 엔진, 웹 브라우저, 많은 대형 게임이 이 언어로 쓰였습니다. 대신 어렵습니다 — 메모리를 잘못 다루면 프로그램이 죽고, 배우는 데 오래 걸립니다.
더 배우기
C#
Unity 게임을 만들 때 쓰는 Microsoft 의 프로그래밍 언어
C#(씨샵)은 Microsoft 가 만든 프로그래밍 언어입니다. Unity 게임의 스크립트를 이 언어로 쓰고, Windows 프로그램과 웹 서버에도 씁니다. 메모리를 알아서 치워 주어 C++ 보다 쉽지만, 둘러싼 도구가 많아 따로 배울 것이 적지 않습니다.
더 배우기
Dart
Flutter 앱을 쓰는 Google 의 프로그래밍 언어
Dart 는 Google 이 만든 프로그래밍 언어입니다. Flutter 앱을 이 언어로 쓰므로, Flutter 로 휴대폰 앱을 만들려면 Dart 부터 배웁니다. 모양은 JavaScript·Java 와 비슷하고, 휴대폰용 빠른 기계어나 웹용 JavaScript 로 바꿀 수 있습니다.
더 배우기
Defold
Lua 로 스크립트를 쓰는 가볍고 무료인 게임 엔진
Defold 는 주로 2D 게임을 만드는 무료 게임 엔진으로, 빌드 크기가 작아 휴대폰과 웹에서 빨리 열립니다. 게임 로직은 Lua 로 씁니다. Colyseus 같은 게임 서버가 Defold 용 SDK 를 내놓기 때문에 게임 서버 화면에 나옵니다.
더 배우기
Flutter
한 코드로 휴대폰·웹·데스크톱 앱을 만드는 Google 의 도구
Flutter 는 Google 이 만든 무료 앱 개발 도구입니다. Dart 로 앱을 한 번 쓰면 같은 코드로 iPhone 앱, Android 앱, 웹 페이지, 데스크톱 프로그램을 만듭니다. 화면의 모든 부분이 위젯이고, 위젯 안에 위젯을 넣어 화면 전체를 짭니다.
더 배우기
Flame
Flutter 위에 올라간 무료 2D 게임 엔진
Flame 은 Flutter 안에서 도는 오픈소스 2D 게임 엔진입니다. 게임 루프·스프라이트·충돌 판정·입력 처리처럼 Flutter 에 없는 게임용 부품을 더해 주고, 게임 둘레의 메뉴는 평소의 Flutter 위젯으로 만듭니다. 2D 전용이므로 3D 게임은 이것으로 계획하지 않습니다.
더 배우기
Godot
2D·3D 게임을 만드는 무료 오픈소스 엔진
Godot 는 MIT 라이선스의 오픈소스라 누구나 무료로 쓰고, 게임을 팔아도 수수료가 없는 게임 엔진입니다. 2D·3D 게임을 모두 만들고, 게임 코드는 파이썬과 닮은 GDScript 나 C# 으로 씁니다. 평범한 노트북에서도 돌 만큼 가볍습니다.
더 배우기
Go
서버에 많이 쓰는 Google 의 프로그래밍 언어
Go(Golang 이라고도 부릅니다)는 Google 에서 만든 프로그래밍 언어입니다. Go 프로그램은 실행 파일 하나로 바뀌어 빠르게 돌고 많은 연결을 한꺼번에 다루므로 서버에 많이 씁니다. Nakama 게임 서버가 Go 로 쓰였고, 내 Go 모듈을 붙여 기능을 늘릴 수 있습니다.
더 배우기
Haxe
한 코드를 여러 다른 언어로 바꿔 내는 프로그래밍 언어
Haxe 는 같은 코드를 JavaScript·C++·C# 같은 여러 대상으로 바꿔 주는 오픈소스 프로그래밍 언어입니다. 게임 개발자는 게임 하나를 웹·데스크톱·휴대폰에 내려고 씁니다. 몇몇 게임 서버가 Haxe 용 SDK 를 내놓아 게임 서버 화면에 나옵니다.
더 배우기
Lua
게임 속에 끼워 쓰기 쉬운 작은 스크립트 언어
Lua 는 프로그램이 안에 품고 다닐 수 있는 가볍고 단순한 스크립트 언어입니다. 게임 엔진과 서버가 Lua 를 품어 두면, 프로그램 전체를 다시 만들지 않고도 게임 규칙을 쓰고 고칠 수 있습니다. Defold 가 Lua 를 쓰고, Nakama 서버는 Go·TypeScript 와 함께 Lua 모듈도 받습니다.
더 배우기
Phaser
브라우저 2D 게임을 만드는 무료 JavaScript 프레임워크
Phaser 는 웹 브라우저에서 도는 2D 게임을 JavaScript 나 TypeScript 로 만드는 오픈소스 프레임워크입니다. 게임 루프를 대신 돌려 주고 스프라이트·물리·소리·입력을 갖춰 주므로, 매 프레임 무슨 일이 일어날지만 쓰면 됩니다. 첫 웹 게임을 많이 이것으로 만듭니다.
더 배우기
PixiJS
브라우저에서 2D 그림을 빠르게 그리는 JavaScript 라이브러리
PixiJS 는 그래픽 칩을 써서 웹 페이지에 2D 그림과 스프라이트를 아주 빠르게 그리는 오픈소스 라이브러리입니다. 그리기만 하고 물리·소리·게임 규칙은 없으므로, 완전한 게임 엔진이 아니라 그리기 라이브러리입니다. 그 부분은 게임이 직접 더하거나 Phaser 같은 엔진을 씁니다.
더 배우기
Unity
모바일·PC·콘솔 게임에 널리 쓰고 가르치는 게임 엔진
Unity 는 모바일 게임의 큰 몫과 많은 PC·콘솔 게임을 만드는 게임 엔진입니다. 편집기에서 장면을 꾸미고 게임 스크립트는 C# 으로 씁니다. 웹(WebGL)을 포함해 거의 모든 플랫폼으로 내보낼 수 있어 많은 강좌가 가르칩니다. 아주 작은 첫 게임에는 무겁습니다.
더 배우기
Unreal Engine
고품질 3D 게임을 만드는 Epic Games 의 엔진
Unreal Engine 은 Epic Games 의 게임 엔진으로, 사실 같은 조명·재질·큰 3D 세계처럼 화면 품질이 가장 중요할 때 고릅니다. 게임 코드는 C++ 로 쓰거나 블루프린트로 그림처럼 이어 만듭니다. 성능 좋은 컴퓨터가 필요하고 작은 첫 게임에는 너무 큽니다.
더 배우기
블루프린트
원문 표기 · Blueprint
상자를 선으로 이어 게임 로직을 짜는 Unreal Engine 의 방식
블루프린트(Blueprint)는 Unreal Engine 의 시각적 스크립트입니다. 코드를 치는 대신 "키를 눌렀을 때", "소리 내기" 같은 상자(노드)를 놓고 선으로 잇습니다. C++ 없이 게임 로직을 만들 수 있지만, 그림이 커지면 읽기 어려워집니다.
더 배우기
glTF
3D 모델을 주고받는 표준 파일 형식
glTF 는 Khronos Group 이 관리하는 3D 모델용 공개 파일 형식입니다. 모양·재질·텍스처·애니메이션을 한 묶음에 담아 엔진이 빨리 불러올 수 있어 "3D 의 JPEG" 라고도 부릅니다. .gltf(글자 파일 + 따로 있는 파일)나 .glb(모두 든 바이너리 파일 하나)로 씁니다.
더 배우기
TypeScript
타입을 붙여 실행 전에 실수를 잡는 JavaScript
TypeScript 는 JavaScript 에 타입을 더한 언어입니다. 변수마다 어떤 종류의 값이 들어가는지 적어 두면, 검사기가 프로그램을 돌리기 전에 실수를 알려 줍니다. 브라우저는 JavaScript 를 실행하므로 TypeScript 는 먼저 보통의 JavaScript 로 바뀝니다. 큰 웹 앱과 Babylon.js, 많은 게임 서버가 씁니다.
더 배우기
Rust
메모리 실수를 미리 막아 주는 빠른 프로그래밍 언어
Rust 는 C++ 만큼 빠르면서, 컴파일할 때 메모리 쓰는 법을 검사해 여러 종류의 충돌·보안 버그를 실행 전에 막는 프로그래밍 언어입니다. 서버, 명령줄 도구, SpacetimeDB 모듈 같은 게임 백엔드에 씁니다. 규칙이 엄격해 배우는 데 시간이 걸린다고 알려져 있습니다.
더 배우기
PHP
서버에서 웹 페이지를 만들어 내는 프로그래밍 언어
PHP 는 웹 서버에서 돌며 HTML 페이지를 만들어 브라우저에 보내는 프로그래밍 언어입니다. WordPress 를 비롯해 웹의 큰 몫이 PHP 로 돌고, SONUB 도 PHP(Laravel) 프로그램입니다. 방문자는 PHP 코드를 보지 못하고 그것이 만든 페이지만 받습니다.
더 배우기
Vite
웹 프로젝트를 빠르게 만들고 빌드하는 도구
Vite 는 웹 화면 쪽 빌드 도구입니다. 바로 돌아가는 프로젝트(React·Vue 등)를 만들어 주고, 저장하자마자 화면이 바뀌는 개발 서버를 띄우며, 명령 하나로 어느 웹서버든 내놓을 수 있는 최종 파일을 dist 폴더에 만듭니다. Node.js 가 있어야 합니다.
더 배우기
Pyodide
웹 브라우저 안에서 도는 파이썬
Pyodide 는 진짜 파이썬 실행기를 WebAssembly 로 바꿔 웹 페이지 안에서 돌게 한 것입니다. SONUB 의 파이썬 수업이 이것을 써서, 설치 없이 내 컴퓨터에서 코드가 돕니다. 처음 한 번은 실행 환경을 내려받느라 시간이 걸립니다. 컴퓨터의 파이썬처럼 보통의 네트워크 서버나 백그라운드 서비스를 열지는 못합니다.
더 배우기
A/B 테스트
원문 표기 · A/B testing
두 가지 판을 나눠 보여 주고 어느 쪽이 나은지 재기
A/B 테스트는 플레이어를 무작위로 두 무리로 나눠 A 무리에는 지금 판을, B 무리에는 가격·튜토리얼 같은 것을 바꾼 판을 보여 주는 실험입니다. 그다음 "다음 날 다시 온 사람 수"처럼 미리 정한 숫자를 비교합니다. 짐작 대신 재서 고르게 해 주지만, 차이가 뜻을 가지려면 사람이 충분히 많아야 합니다.
더 배우기
연령 등급
원문 표기 · Age rating
게임 내용을 보고 스토어가 매기는 나이 제한
게임을 공개하기 전에 스토어는 콘텐츠 설문을 받습니다 — 싸움·피·도박·모르는 사람과의 채팅이 있는지 예/아니오로 답하는 설문입니다. 이 답으로 "12세 이상" 같은 연령 등급이 정해져 스토어에 표시됩니다. 설문을 빠뜨려 다 만든 게임을 제출하지 못하는 일이 흔하고, 거짓으로 답하면 나중에 게임이 내려갈 수 있습니다.
더 배우기
Apache 2.0
특허까지 함께 허락하는 너그러운 오픈소스 라이선스
Apache License 2.0 은 오픈소스 라이선스입니다. 누구나 코드를 쓰고, 고치고, 팔고, 나눌 수 있고, 공개하지 않는 상업 제품 안에 넣어도 됩니다. 대신 저작권·라이선스 고지를 남기고 내가 고친 파일을 표시해야 합니다. 기여자가 가진 그 코드의 특허도 함께 허락하므로 회사들이 좋아합니다.
더 배우기
에셋
원문 표기 · Asset
게임이 쓰는 그림·소리·모델 같은 파일
에셋(asset)은 코드 말고 게임을 이루는 파일입니다 — 그림, 스프라이트, 효과음, 음악, 3D 모델, 글꼴, 레벨 데이터. 보통 게임 크기의 대부분을 차지합니다. AI 로 만든 것을 포함해 모든 에셋을 쓸 권리가 있어야 하므로, 출시 전에 라이선스를 확인합니다.
더 배우기
배틀패스
원문 표기 · Battle pass
시즌 동안 플레이로 보상 단계를 여는 게임 상품
배틀패스는 몇 주에서 몇 달 동안 이어지는 한 시즌짜리 게임 상품입니다. 게임을 하고 도전 과제를 끝내면 점수가 쌓여 보상 단계가 하나씩 열립니다. 보통 무료 단계와 보상이 더 많은 유료 단계가 있고, 시즌이 끝나면 함께 끝나므로 플레이어가 다시 올 이유가 됩니다.
더 배우기
핵심 루프
원문 표기 · Core loop
플레이어가 되풀이하는 게임의 짧은 행동 순환
핵심 루프는 게임에서 플레이어가 계속 되풀이하는 행동입니다. 예를 들어 장애물을 뛰어넘기 → 동전 줍기 → 빨라지기입니다. 이 순환이 재미없으면 둘레에 무엇을 더해도 게임을 살리지 못하므로 가장 먼저 만들어 시험합니다. 매 프레임 화면을 그리는 코드의 게임 루프와는 다른, 설계의 말입니다.
더 배우기
생태계
원문 표기 · Ecosystem
한 기술을 둘러싼 도구·라이브러리·사람 전체
기술의 생태계는 그 둘레에 자라난 모든 것입니다 — 라이브러리, 편집기, 강좌, 미리 만든 에셋, 게시판, 질문에 답해 주는 사람들. 생태계가 크면 대부분의 문제에 이미 답이 있고, 젊으면 더 많은 것을 직접 만들고 풀어야 합니다. 엔진이나 언어를 고를 때 큰 기준이 됩니다.
더 배우기
경계 사례
원문 표기 · Edge case
드물거나 끝에 걸친, 코드가 잘 깨지는 상황
경계 사례(edge case)는 가능한 범위의 맨 끝에 있는 입력이나 상황입니다 — 빈 이름, 딱 0 인 점수, 저장하는 순간 끊긴 신호, 같은 프레임에 누른 두 키. 코드는 보통의 경우엔 잘 돌다가 여기서 깨지므로, 경계 사례를 나열해 하나씩 시험하면 버그를 일찍 찾습니다. 인공지능은 이것을 나열하는 데 강합니다.
더 배우기
프레임
원문 표기 · Frame
루프 한 바퀴마다 그리는 게임 화면 한 장
게임은 멈춘 그림을 빠르게 이어 그려 움직임을 보입니다. 그 그림 한 장이 프레임입니다 — 프레임마다 입력을 읽고, 위치를 바꾸고, 화면을 그립니다. 초당 60 프레임이면 한 프레임에 약 16 밀리초입니다. 프레임마다 같은 거리만큼 옮기면 빠른 화면에서 게임이 빨라지므로 델타 타임을 씁니다.
더 배우기
밸런싱
원문 표기 · Balancing
게임이 공정하고 재미있게 느껴지도록 난이도·보상 숫자를 맞추기
밸런싱은 게임의 숫자를 맞추는 일입니다 — 점프 높이, 레벨마다 적의 수, 보상의 크기, 아이템 가격. 작은 차이로 게임이 너무 쉽거나, 너무 어렵거나, 불공평해집니다. 인공지능이 시뮬레이션하고 숫자를 제안할 수는 있지만, 알맞게 느껴지는지는 사람이 직접 해 보고 정합니다.
더 배우기
게임 로직
원문 표기 · Game logic
게임 규칙을 실제로 돌리는 코드
게임 로직은 무슨 일이 일어날지 정하는 코드입니다 — 공격이 맞았는지, 점수를 어떻게 세는지, 레벨이 언제 끝나는지, 누가 이기는지. 화면 그리기와 소리 내기는 다른 부분입니다. 온라인 게임에서는 플레이어가 자기 쪽 게임을 고쳐 속이지 못하도록 서버가 게임 로직을 돌리는 일이 많습니다.
더 배우기
라이브
원문 표기 · Go live
올린 빌드를 플레이어가 실제로 받는 판으로 바꾸기
게임 플랫폼에서 빌드를 올리는 것과 라이브로 올리는 것은 다른 단계입니다. 검사를 통과한 빌드도 라이브로 올리기 전까지는 기다리고, 그 순간부터 플레이어가 받는 판이 되어 플레이 주소가 열립니다. 두 단계를 나눠 두어 먼저 살펴볼 수 있고, 문제가 생기면 롤백으로 이전 빌드를 되돌립니다.
더 배우기
길드
원문 표기 · Guild
게임 안에서 함께 노는 플레이어들의 모임
길드(클랜이라고도 합니다)는 플레이어가 게임 안에서 만들고 들어가는 모임으로, 구성원·리더 같은 역할·가입 신청·모임 채팅이 있습니다. 서로 때문에 다시 접속하게 만듭니다. 개발자에게는 게임 서버가 저장하고 관리해야 하는 커뮤니티 기능이라, 서버를 고를 때 중요합니다.
더 배우기
후크
원문 표기 · Hook
기본 동작 앞뒤에 내 코드를 끼워 넣는 정해진 자리
후크(hook)는 프로그램이 정해 둔 순간에 내 코드를 더할 수 있게 열어 둔 자리입니다. Nakama 게임 서버는 모든 기본 호출의 앞뒤에 후크를 걸 수 있습니다 — 계정을 만들기 전에 이름을 검사하거나, 경기가 끝난 뒤 보상을 주는 식입니다. 서버 자체의 코드를 바꾸지 않고 기능을 늘립니다.
더 배우기
인앱 결제
원문 표기 · In-app purchase
스토어를 거쳐 앱 안에서 아이템·기능을 사는 결제
인앱 결제는 코인·광고 없는 판·배틀패스처럼 앱이나 게임 안에서 하는 결제입니다. 휴대폰에서는 스토어의 결제 시스템을 거치고, 스토어가 값의 일부를 가져갑니다. 스토어가 영수증을 돌려주므로, 게임 서버는 아이템을 주기 전에 그 영수증을 검증해야 합니다.
더 배우기
인스펙터
원문 표기 · Inspector
실행 중인 장면을 들여다보고 값을 바꾸는 창
인스펙터는 실행 중인 게임이나 페이지 속 물체를 목록으로 보이고, 위치·크기·색·물리 설정 같은 속성을 보여 주는 디버깅 도구입니다. 값을 바꾸면 다시 시작하지 않아도 결과가 바로 보입니다. Babylon.js, Unity, 브라우저의 개발자 도구에 모두 있습니다.
더 배우기
인터페이스
원문 표기 · Interface
코드가 갖추기로 약속한 함수 목록
프로그래밍에서 인터페이스는 무엇을 어떻게 하는지가 아니라 무엇을 할 수 있는지를 적은 것입니다 — 함수 이름과 입력·출력의 목록. 그 함수들을 갖춘 코드라면 무엇이든 그 자리에 쓸 수 있습니다. Nakama 서버는 Go 모듈에 타입이 붙은 인터페이스를 건네므로, 잘못 부르면 컴파일러가 잡아 줍니다.
더 배우기
리더보드
원문 표기 · Leaderboard
점수 순서로 플레이어를 늘어놓은 순위표
리더보드(순위표)는 점수·시간 같은 숫자로 플레이어 순위를 매긴 표입니다. 새 플레이어에게도 기회가 가도록 매일·매주 초기화하는 일이 많고, 서버는 동점을 어떻게 가를지 정하고 가짜 점수를 보내는 사람을 걸러야 합니다. 게임 쪽이 보내는 값은 고칠 수 있으므로 점수는 서버에서 확인합니다.
더 배우기
라이선스
원문 표기 · License
코드·그림·데이터를 쓸 수 있는 조건
라이선스는 코드·그림·소리·데이터에 붙은 사용 허락 조건입니다 — 써도 되는지, 고쳐도 되는지, 팔아도 되는지, 그 대신 만든 사람 표시처럼 무엇을 해야 하는지. 인터넷에서 찾았다고 써도 되는 것은 아닙니다. MIT·Apache 2.0 같은 오픈소스 라이선스는 많은 것을 허락하지만 저마다 조건이 있습니다.
더 배우기
LiveOps
출시 뒤 이벤트·상점·업데이트로 게임을 운영하는 일
LiveOps(라이브 운영)는 출시한 게임을 계속 살아 있게 하는 일입니다 — 주말 이벤트, 새 상점 아이템, 시즌, 밸런스 조정, A/B 테스트. 새 빌드를 내지 않고 관리 화면에서 바꾸는 일이 많습니다. 몇 년씩 가는 게임은 이것에 기대며, 이 도구를 직접 만들지 않도록 파는 백엔드도 있습니다.
더 배우기
현지화
원문 표기 · Localization
게임의 글과 내용을 언어·문화마다 맞게 바꾸기
현지화(localization)는 번역보다 넓습니다. 낱말 말고도 날짜·숫자·화폐·레이아웃(더 긴 언어, 오른쪽에서 왼쪽으로 읽는 아랍어)과 문화적인 부분을 그 시장에 맞춥니다. 인공지능이 번역 초안을 빨리 만들어 주지만, 출시 전에 그 언어를 아는 사람이 뜻·용어·말투를 확인해야 합니다.
더 배우기
매치메이킹
원문 표기 · Matchmaking
알맞은 플레이어끼리 짝지어 경기를 여는 일
매치메이킹은 온라인 게임에서 누가 누구와 함께 놀지 정하는 일입니다. 매치메이커가 경기를 원하는 플레이어를 모아 비슷한 실력·지역·지연 시간·게임 모드 같은 조건으로 묶습니다. 공정한 경기와 짧은 대기 시간이 목표인데, 두 목표는 서로 당깁니다.
더 배우기
원문 표기 · Meta layer
경기 밖의 기능 — 계정·친구·채팅·저장·순위
게임 서버에서 메타 계층은 실제 경기 판 밖의 기능입니다 — 계정과 로그인, 친구, 길드, 채팅, 진행 저장, 리더보드, 상점. 만들기는 지루하고 미묘하게 틀리기 쉬워서, 몇 달씩 직접 만드는 대신 이것을 이미 갖춘 게임 서버를 고르는 팀이 많습니다.
더 배우기
모듈
원문 표기 · Module
프로그램에 불러 쓰는 따로 떨어진 코드 묶음
모듈은 다른 코드가 불러서 다시 쓸 수 있도록 자기 파일이나 묶음에 따로 담은 코드입니다. 파이썬에서는 `import json` 이 json 모듈을 불러옵니다. Nakama·SpacetimeDB 같은 게임 서버에는 내 모듈을 올려 게임 규칙을 더합니다. 잘못된 모듈 하나가 그것을 품은 프로그램 전체를 멈출 수도 있습니다.
더 배우기
네이티브
원문 표기 · Native
그 기기의 기계어로 바로 도는 것
네이티브 코드는 실행될 프로세서의 기계어로 미리 바뀌어, 중간의 해석기나 다른 층 없이 제 속도로 돕니다. 네이티브 앱은 iPhone 처럼 한 플랫폼에 맞춰 만든 앱입니다. 게임 서버에서 내 로직을 같은 프로세스 안에서 네이티브로 돌리면 빠르지만, 거기서 죽으면 서버 전체가 멈춥니다.
더 배우기
NPC
플레이어가 아니라 컴퓨터가 움직이는 게임 속 등장인물
NPC(non-player character)는 게임이 스스로 움직이는 등장인물입니다 — 상점 주인, 퀘스트를 주는 사람, 적 경비병. 대사는 개발자가 쓰고 행동은 코드의 규칙(흔히 상태 기계)에서 나옵니다. 인공지능이 많은 NPC 의 대사 초안을 빨리 만들지만, 읽고 고르는 일은 사람이 합니다.
더 배우기
물리
원문 표기 · Physics
중력·충돌·움직임을 계산하는 게임 엔진의 부분
게임에서 물리는 물체를 실제 세상과 비슷하게 움직이는 코드입니다 — 중력에 떨어지고, 튀고, 미끄러지고, 부딪히면 멈춥니다. 엔진에 물리 시스템이 들어 있어 계산식을 쓰지 않고 무게·속도·모양만 정하면 됩니다. 정확한 시뮬레이션이 아니라 느낌이 좋도록 맞춘 근삿값입니다.
더 배우기
접속 상태
원문 표기 · Presence
지금 누가 온라인인지 알려 주는 정보
접속 상태(presence)는 사용자마다의 실시간 상태입니다 — 온라인, 오프라인, 경기 중, 자리 비움. 친구 목록과 길드 목록이 이것으로 이름 옆에 초록 점을 보입니다. 서버는 모든 연결을 지켜보다 바뀔 때마다 다른 사람에게 알려야 하는데(보통 WebSocket 으로), 사람이 많아지면 보기보다 어렵습니다.
더 배우기
QA
출시 전에 결함을 찾는 품질 검사
QA(품질 보증)는 플레이어보다 먼저 문제를 찾는 일입니다 — 레벨을 끝까지 해 보고, 이상한 입력을 넣어 보고, 여러 기기에서 시험하고, 버그마다 재현하는 방법을 적습니다. 인공지능은 "저장 기능을 망가뜨리는 스무 가지 방법" 같은 시나리오를 나열해 주지만, 출시해도 될 만큼 좋은지는 사람이 정합니다.
더 배우기
영수증
원문 표기 · Receipt validation
아이템을 주기 전에 확인하는 스토어 결제의 증표
인앱 결제를 하면 스토어가 무엇을 샀는지 증명하는 영수증을 게임에 줍니다. 속이려는 사람은 자기 기기에서 영수증을 꾸밀 수 있으므로, 게임 서버가 영수증을 Apple·Google 서버에 보내 진짜인지, 이미 쓴 것은 아닌지 확인한 뒤에야 아이템을 줍니다. 이것이 영수증 검증이며, Nakama 같은 게임 서버가 대신해 줍니다.
더 배우기
리듀서
원문 표기 · Reducer
SpacetimeDB 에서 데이터베이스 안에서 돌며 테이블을 바꾸는 함수
SpacetimeDB 에서는 데이터베이스가 곧 서버입니다. 모듈을 올리면 그 안의 함수(리듀서)가 데이터베이스 안에서 한 번에 한 묶음(트랜잭션)으로 돌며 테이블을 바꿉니다. 클라이언트는 HTTP 엔드포인트 대신 리듀서를 부르고, 구독한 쪽은 바뀐 줄을 바로 받습니다. Redux 같은 웹 도구에서는 다른 뜻으로 씁니다.
더 배우기
롤백
원문 표기 · Rollback
문제가 생긴 새 판을 이전 판으로 되돌리기
롤백은 배포를 되돌려 전에 잘 돌던 판으로 바꾸는 일입니다. 플랫폼이 이전 빌드를 남겨 두므로, 망가진 업데이트를 서둘러 고치는 대신 몇 초 만에 바꿔 놓을 수 있습니다. 코드는 돌아오지만, 잘못된 판이 이미 바꾼 데이터(저장된 게임 등)는 따로 고쳐야 할 수 있습니다.
더 배우기
결정론적 롤백
원문 표기 · Deterministic rollback
늦게 온 입력에 맞춰 게임을 되감아 다시 계산하는 방식
빠른 온라인 게임에서 모든 플레이어의 입력을 기다리면 느리게 느껴집니다. 롤백 방식에서는 각자 가진 입력으로 게임을 계속 돌리다가, 늦은 입력이 오면 그 프레임으로 되감아 지금까지 빠르게 다시 계산합니다. 같은 입력이면 어느 기계에서나 똑같은 결과가 나와야(결정론적) 이 방식이 됩니다.
더 배우기
RPC
다른 컴퓨터의 함수를 내 것처럼 부르는 방식
RPC(원격 프로시저 호출)는 프로그램이 다른 컴퓨터에 "이 이름의 함수를 이 값으로 돌려 결과를 보내 달라"고 하는 방식입니다. Nakama 서버에는 내 RPC 를 등록하고 게임이 이름으로 부릅니다. MCP 메시지는 JSON-RPC 2.0 을 쓰는데, 호출 하나가 함수 이름과 값이 든 작은 JSON 입니다.
더 배우기
서버 틱
원문 표기 · Tick
게임 서버가 정해진 간격으로 경기를 갱신하는 한 번
게임 서버는 세상을 끊임없이 바꾸지 않고 틱 단위로 한 걸음씩 나아갑니다. 틱마다 도착한 입력을 읽고, 게임 규칙을 적용하고, 새 상태를 플레이어에게 보냅니다. 틱 속도가 높을수록(예: 초당 10번 대신 60번) 반응이 빠르게 느껴지지만 계산과 네트워크 사용이 늘어납니다.
더 배우기
상태 기계
원문 표기 · State machine
한 번에 한 상태에 있고 규칙대로 옮겨 다니는 설계
상태 기계(state machine)는 무언가가 있을 수 있는 상태들과, 상태 사이를 옮기는 규칙을 적어 둔 설계입니다. 게임 캐릭터는 서 있기·달리기·점프·떨어지기 중 하나이고, "달리는 중에 점프 키"가 점프 상태로 옮깁니다. 한 번에 한 상태만 켜지므로 점프하며 웅크리기 같은 말이 안 되는 섞임을 막습니다.
더 배우기
Steam
Valve 가 운영하는 PC 게임 장터
Steam 은 Valve 가 운영하는 가장 큰 PC 게임 장터입니다. 개발자는 해마다 내는 계정비가 아니라 게임마다 비용을 내고, 트레일러·스크린샷·태그로 스토어 페이지를 꾸밉니다. Steam 이 출시 때 찜한 사람들에게 알려 주므로, 출시 전에 모은 찜 목록이 아주 중요합니다.
더 배우기
구독
원문 표기 · Subscribe
데이터가 바뀌면 저절로 알려 달라고 신청해 두기
구독은 어떤 데이터에 관심이 있다고 등록해, 내가 거듭 묻지 않아도 바뀔 때마다 서버가 보내 주게 하는 일입니다. SpacetimeDB 에서는 클라이언트가 쿼리를 구독하면 관심 있는 줄이 바뀌는 순간 도착합니다. WebSocket 처럼 계속 열린 연결이 필요합니다.
더 배우기
테스트 트랙
원문 표기 · Test track
정해 둔 테스터에게만 먼저 빌드를 주는 배포 통로
Google Play 의 출시는 트랙을 거칩니다 — 내부 테스트, 비공개 테스트, 공개 테스트, 프로덕션. 테스트 트랙은 설치 가능한 실제 빌드를 내가 적은 테스터에게만 보내, 모두가 받기 전에 문제를 찾게 합니다. 새 개인 개발자 계정은 프로덕션을 신청하기 전에 테스터 12명 이상이 14일 동안 참여하는 비공개 테스트를 거쳐야 합니다. Apple 의 TestFlight 가 비슷한 일을 합니다.
더 배우기
UI
사람이 보고 만지는 프로그램의 화면 부분
UI(사용자 인터페이스)는 사용자가 보고 다루는 모든 것입니다 — 단추, 메뉴, 글, 아이콘, 입력 칸. 좋은 UI 는 다음에 무엇을 할지 바로 보여 줍니다. UX(사용자 경험)는 쓰는 느낌 전체를 보는 더 넓은 말입니다. 게임에서는 게임 세상 위에 그린 점수·체력 막대·메뉴가 UI 입니다.
더 배우기
원문 표기 · Widget
화면을 이루는 부품 하나
위젯은 다시 쓸 수 있는 화면 부품 하나입니다 — 단추, 글 한 줄, 목록, 카드, 다른 위젯을 담는 상자. 위젯 안에 위젯을 넣어 화면을 짭니다. Flutter 에서는 화면의 모든 것이 위젯이고, Flame 의 게임 캔버스도 평범한 Flutter 위젯들 사이에 놓입니다.
더 배우기
찜 목록
원문 표기 · Wishlist
출시 전에 관심 있는 게임을 담아 두는 목록
Steam 에서는 나올 게임을 찜 목록(wishlist)에 담아 둘 수 있습니다. 게임이 출시되거나 할인하면 Steam 이 그 사람들에게 알려 주므로, 찜 목록이 첫 주 판매로 이어집니다. 좋은 스토어 페이지와 트레일러로 출시 전에 찜을 모으는 일이, 처음 내는 개발자가 생각하는 것보다 훨씬 중요합니다.
더 배우기
심사
원문 표기 · App review
스토어가 공개 전에 앱을 검사하는 일
앱이나 게임이 스토어에 나오기 전에 스토어가 빌드를 심사합니다 — 멈추지 않는지, 개인정보·결제·내용 규칙을 지키는지, 소개 문구가 정직한지. Apple 의 App Review 는 엄격하기로 알려져 있습니다. 며칠이 걸리거나 거절될 수 있으니 시간을 넉넉히 잡습니다. 업데이트도 다시 심사를 거칩니다.
더 배우기
Play Console
Android 앱을 출시·관리하는 Google 의 개발자 사이트
Google Play Console 은 개발자가 Google Play 에 앱을 내는 곳입니다. 한 번 내는 등록비를 내고 본인 확인을 한 뒤, 앱을 만들고, 업로드 키로 서명한 빌드를 올리고, 스토어 등록 정보와 데이터 보안 양식을 채우고, 테스트 트랙과 심사를 거칩니다. 판매·오류 보고도 여기서 봅니다.
더 배우기
앱 스토어
원문 표기 · App store
앱과 게임을 찾아 설치하는 온라인 장터
앱 스토어는 앱을 찾고, 사고, 설치하는 공식 장터입니다 — iPhone 은 Apple 의 App Store, Android 는 Google Play, PC 게임은 Steam. 스토어가 결제와 업데이트를 맡고, 공개 전에 앱마다 심사합니다. 그 대신 개발자는 등록비와 판매액의 일부를 냅니다. 패키지 관리자를 코드용 앱 스토어에 빗대기도 합니다.
더 배우기
Google Play
Android 앱을 파는 Google 의 앱 스토어
Google Play 는 Android 앱과 게임의 대표 장터로, 가장 많은 휴대폰에 닿습니다. 개발자는 한 번 내는 등록비로 Play Console 을 통해 앱을 냅니다. 빌드는 테스트 트랙과 심사를 거치고, 새 개인 계정은 첫 정식 출시 전에 실제 테스터와 비공개 테스트를 마쳐야 합니다.
더 배우기
프로토타입
원문 표기 · Prototype
생각을 시험하려고 빨리 만든 시범품
프로토타입(시제품)은 "이 점프가 재미있나?" 같은 질문 하나에 답하려고 빨리 만드는 것으로, 버릴 것을 전제로 합니다. 임시 그림과 지저분한 코드여도 됩니다. MVP 와는 다릅니다 — 최소한 플레이 가능한 게임은 처음 보는 사람이 집어 들고 즐길 수 있어야 하고, 프로토타입은 무언가를 알려 주기만 하면 됩니다.
더 배우기
바이너리
원문 표기 · Binary
기계가 읽는 바이트로 된 파일 — 보통 바로 실행되는 프로그램
개발자들이 말하는 바이너리는 보통 컴파일된 프로그램입니다 — 사람이 읽는 글이 아니라 컴퓨터가 바로 실행하는 바이트로 된 파일. "단일 바이너리로 배포"는 서버 전체가 복사해 실행하면 되는 파일 하나라는 뜻입니다. WebAssembly 같은 바이너리 형식은 사람이 아니라 기계를 위한 것이라, 글 편집기로 열면 깨진 글자가 보입니다.
더 배우기
실행 파일
원문 표기 · Executable
프로그램으로 바로 실행할 수 있는 파일
실행 파일은 두 번 누르거나 이름을 치면 운영체제가 프로그램으로 시작하는 파일입니다. Windows 에서는 보통 .exe 로 끝나고, Linux·macOS 에서는 실행 권한이 있는 파일이면 스크립트도 실행됩니다. 예를 들어 Caddy 는 실행 파일 하나입니다. 해로운 코드가 들어 있을 수 있어 올리기 사이트는 실행 파일을 거절하곤 합니다.
더 배우기
Conventional Commits
feat:·fix: 처럼 종류를 앞에 붙이는 커밋 메시지 약속
Conventional Commits 는 널리 쓰는 커밋 메시지 관례입니다. 메시지 맨 앞에 종류와 쌍점을 붙입니다 — 새 기능은 feat:, 버그 수정은 fix:, 문서는 docs:. 그 뒤에 짧은 설명을 씁니다. 모양이 정해져 있어 도구가 이력을 읽고 변경 기록과 버전 번호를 만들 수 있습니다.
더 배우기
Updates were rejected
원격에 내게 없는 커밋이 있어 push 가 거절됐다는 Git 의 메시지
git push 가 "Updates were rejected" 로 멈추는 것은, 다른 사람이 같은 브랜치에 먼저 push 해서 원격에 내 쪽에 없는 커밋이 생겼기 때문입니다. 그대로 올리면 그 사람의 작업이 사라지므로 Git 이 거절합니다. --force 부터 쓰지 말고, git pull --rebase 로 내 커밋을 그 위에 다시 쌓고 충돌을 고친 뒤 다시 push 합니다.
더 배우기
이력
원문 표기 · History
커밋이 차례로 쌓인 기록
Git 에서 이력은 저장소에 만든 모든 커밋의 사슬로, 커밋마다 바로 앞 커밋을 가리킵니다. git log 가 가장 새것부터 보여 줍니다. 커밋 메시지를 잘 써 두면 몇 달 뒤에도 이력을 읽을 수 있습니다. 다른 사람이 이미 받은 이력을 다시 쓰면(rebase, 강제 push) 그들의 사본이 깨지므로, 아직 올리지 않은 내 커밋만 고쳐 씁니다.
더 배우기
main
저장소 기본 브랜치의 흔한 이름
main 은 대부분의 저장소가 기본 브랜치에 붙이는 이름으로, 완성되어 함께 쓰는 판을 담습니다. GitHub 는 새 저장소의 기본 브랜치를 main 으로 만들고, 오래된 프로젝트는 master 라고 부르기도 합니다. 팀에서는 아무도 main 에 바로 커밋하지 않고, 브랜치에서 일한 뒤 리뷰를 거친 Pull Request 로 병합합니다.
더 배우기
추적
원문 표기 · Tracking
Git 이 저장소의 파일로 여겨 변경을 지켜보는 상태
추적되는 파일은 add 하고 커밋해서 Git 이 이미 아는 파일로, 바뀔 때마다 Git 이 알려 줍니다. 새 파일은 git add 하기 전까지 추적되지 않습니다. 이미 커밋된 파일은 .gitignore 에 넣어도 계속 추적되므로, 먼저 git rm --cached 로 추적에서 빼야 합니다.
더 배우기
추적 브랜치
원문 표기 · Tracking branch
로컬 브랜치와 짝지은 원격 브랜치
로컬 브랜치는 원격의 브랜치 하나와 짝지을 수 있는데, 그 원격 브랜치를 추적 브랜치(upstream)라고 합니다. git push -u origin main 으로 한 번 짝지으면, 그다음부터는 그냥 git push·git pull 만 써도 어디로 갈지 알고, git status 가 몇 커밋 앞서거나 뒤처졌는지 알려 줍니다. 짝이 없으면 Git 이 어느 원격 브랜치인지 묻습니다.
더 배우기
GitLab
GitHub 와 비슷한 Git 저장소 서비스
GitLab 은 GitHub 처럼 Git 저장소를 올려 두고 팀이 함께 일하는 서비스입니다. Pull Request 를 "merge request" 라고 부르고, 자체 CI/CD 파이프라인이 있습니다. gitlab.com 웹사이트 말고도 회사가 자기 서버에 직접 설치해 쓸 수 있습니다. 브랜치 → push → 리뷰 → 병합의 흐름은 같습니다.
더 배우기
GitHub Actions
저장소에 일이 생기면 작업을 자동으로 돌리는 GitHub 의 기능
GitHub Actions 는 push, 새 Pull Request, 댓글, 정해 둔 시각 같은 일이 생기면 GitHub 의 서버에서 워크플로를 돌립니다. 워크플로는 .github/workflows/ 에 둔 YAML 파일로, 설치·테스트·배포 같은 단계를 적습니다. 클로드 코드나 Codex 도 그 안에서 돌릴 수 있어, PR 에 @claude 라고 쓰면 답하게 할 수 있습니다.
더 배우기
코드 리뷰
원문 표기 · Code review
병합하기 전에 동료가 변경을 읽고 의견을 주는 일
코드 리뷰는 내 변경이 main 브랜치에 들어가기 전에, 보통 Pull Request 로 다른 사람이 읽어 보는 일입니다. 리뷰어는 버그·알아보기 어려운 코드·빠진 테스트를 찾아 의견을 남기고 마지막에 승인합니다. 작은 PR 은 꼼꼼히 읽히고 큰 PR 은 대충 넘어가기 쉽습니다. AI 리뷰가 돕지만 결정은 사람이 합니다.
더 배우기
프로젝트 루트
원문 표기 · Project root
프로젝트의 맨 위 폴더
프로젝트 루트는 프로젝트 전체를 담은 맨 위 폴더입니다 — git init 을 한 곳이고, .gitignore·package.json·README.md·CLAUDE.md 같은 파일이 보통 여기에 있습니다. 도구들이 여기서 설정을 찾고, 많은 명령이 이 폴더에서 실행하기를 기대합니다.
더 배우기
마크다운
원문 표기 · Markdown
# · - 같은 기호로 제목·목록·코드를 적는 글 형식
마크다운(Markdown)은 단순한 글 형식입니다. # 으로 시작하는 줄은 제목이 되고, - 는 목록 한 줄, 별표 두 개 사이의 글은 굵은 글씨가 됩니다. 그냥 글로 읽어도 알아볼 수 있고, 꾸민 모양으로 보여 줄 수도 있습니다. README.md·CLAUDE.md·AGENTS.md·SKILL.md 가 모두 마크다운 파일이고, AI 채팅의 답도 대개 이것으로 쓰입니다.
더 배우기
읽기 전용
원문 표기 · Read-only
읽을 수만 있고 바꿀 수는 없는 상태
읽기 전용(read-only)은 볼 수는 있지만 바꿀 수는 없다는 뜻입니다 — 읽기 전용 파일은 고칠 수 없고, 읽기 전용 디스크에는 쓸 수 없습니다. AI 코딩 도구에서는 가장 안전한 방식으로, Codex 의 read-only 샌드박스에서는 에이전트가 파일을 읽고 해 없는 명령을 돌리지만 파일은 고치지 못합니다. 처음 보는 프로젝트를 살필 때 알맞습니다.
더 배우기
표준 라이브러리
원문 표기 · Standard library
설치 없이 파이썬과 함께 오는 모듈 묶음
파이썬의 표준 라이브러리는 파이썬과 함께 설치되는 많은 모듈입니다 — JSON 을 다루는 json, 웹 요청을 보내는 urllib.request, 작은 웹서버 http.server, math, random 등. pip 로 설치할 것이 없으므로, 표준 라이브러리만 쓰는 프로그램은 파이썬이 있는 곳이면 어디서나 돕니다.
더 배우기
설정 파일
원문 표기 · Config file
프로그램이 시작할 때 읽는 설정을 적어 둔 파일
설정 파일은 포트·폴더·모델 크기·권한처럼 프로그램이 움직이는 방식을 적어 둔 파일로, 코드를 고치지 않고 이 파일만 바꿔 동작을 바꿉니다. 흔한 형식은 JSON·YAML·TOML·.env 입니다. API 키 같은 비밀은 함께 쓰는 설정 파일이 아니라 Git 에 올리지 않는 파일에 둡니다.
더 배우기
버그
원문 표기 · Bug
프로그램이 잘못 움직이게 하는 결함
버그는 프로그램의 결함입니다 — 멈추거나, 틀린 결과를 보이거나, 아무도 바라지 않은 일을 합니다. 코드의 실수, 예상 못 한 입력, 바뀐 조건에서 생깁니다. 고치려면 먼저 늘 같은 방법으로 재현하고, 원인을 찾고(디버깅), 같은 버그가 다시 오지 않도록 테스트를 더합니다.
더 배우기
테스트
원문 표기 · Software test
코드가 기대대로 도는지 확인하는 코드
테스트는 정해 둔 입력으로 내 코드를 돌려, 나온 값이 기대한 값인지 확인하는 작은 프로그램입니다. 결과는 통과 또는 실패입니다. 고칠 때마다 테스트 묶음을 돌리므로, 한 곳을 고치다 다른 곳을 깨면 바로 잡힙니다. AI 코딩 도구를 쓸 때 테스트는 안전망입니다 — 테스트를 주고 통과할 때까지 고치라고 맡깁니다.
더 배우기
재현
원문 표기 · Reproduce
같은 결과나 문제를 일부러 다시 일어나게 하기
재현은 같은 조건에서 같은 일이 다시 일어나게 하는 것입니다. 한 단계씩 재현할 수 있는 버그는 고치고 시험할 수 있지만, "가끔 생기는" 버그는 고치기 어렵습니다. AI 실험에서 재현성은 다른 사람이 같은 코드·데이터·시드로 같은 결과를 얻는다는 뜻입니다.
더 배우기
줄바꿈
원문 표기 · Newline
다음 줄로 넘기는 보이지 않는 글자(\n)
줄바꿈은 글을 다음 줄로 넘기는 글자입니다. 눈에 보이지 않지만 파일 안에 들어 있고, 코드에서는 \n 으로 씁니다. Linux·macOS 는 줄을 \n 으로 끝내고 Windows 는 \r\n 을 써서 어떤 도구는 헷갈립니다. HTTP 는 머리줄마다 끝에 \r\n 을 붙이고 본문 앞에 빈 줄 하나를 둡니다.
더 배우기
node_modules
npm 이 프로젝트에 설치한 패키지가 모이는 폴더
npm install 을 하면 npm 이 package.json 에 적힌 패키지와 그 패키지가 필요로 하는 것까지 모두 프로젝트의 node_modules 폴더에 내려받습니다. 수백 MB 로 커질 수 있습니다. package.json 과 잠금 파일로 누구나 npm install 해 다시 만들 수 있으니, .gitignore 에 넣고 커밋하지 않습니다.
더 배우기
오버헤드
원문 표기 · Overhead
본래 일 말고 덤으로 드는 메모리·시간
오버헤드는 실제 일 위에 덤으로 얹히는 비용입니다. AI 모델을 돌리면 메모리에는 가중치만이 아니라 KV 캐시, 계산 버퍼, 런타임 자체의 오버헤드가 함께 올라가므로, 가중치 파일이 4GB 인 모델도 5~8GB 이상이 필요할 수 있습니다. 오버헤드를 셈에 넣지 않으면 서류상 들어가는 모델도 실제로는 들어가지 않습니다.
더 배우기
가중치·파라미터 자세히 보기
계산 버퍼
원문 표기 · Compute buffer
계산하는 동안 잠깐 쓰는 메모리 공간
계산 버퍼는 계산 중의 중간 결과를 담으려고 프로그램이 떼어 둔 작업 공간입니다. 언어모델이 돌 때 층마다 다음 층이 쓸 숫자가 나오는데, 그것을 이 버퍼에 둡니다. 가중치·KV 캐시와 따로 더 필요하므로, 모델이 파일 크기보다 많은 메모리를 쓰는 까닭 가운데 하나입니다.
더 배우기
가중치·파라미터 자세히 보기
파싱(parsing)
원문 표기 · Parsing
글이나 코드를 읽어 구조를 알아내는 일
파싱(해석)은 글을 읽어 프로그램이 쓸 수 있는 구조로 바꾸는 일입니다. 브라우저는 페이지를 그리기 전에 HTML 을 해석해 요소의 나무를 세우고, 쉘은 명령줄을 명령과 인자로 나누고, json.loads 는 JSON 글을 파이썬 값으로 바꿉니다. 파싱 오류는 글이 기대한 형식을 어겼다는 뜻입니다.
더 배우기
중단점
원문 표기 · Breakpoint
프로그램이 그 줄에서 멈추도록 걸어 두는 표시
중단점(breakpoint)은 프로그램이 어느 줄에 닿으면 멈추라고 디버거에게 알리는 표시입니다. 멈춘 동안 모든 변수를 읽어 보고, 한 줄씩 나아가며 어디서 틀어지는지 정확히 봅니다. 브라우저에서는 개발자 도구 → Sources 에서 줄 번호를 누르면 걸립니다.
더 배우기
입력 사건
원문 표기 · Input event
키 누름·클릭처럼 프로그램이 전해 받는 일 하나
입력 사건(input event, 이벤트)은 무슨 일이 생겼다는 작은 알림입니다 — 키가 눌렸다, 마우스가 움직였다, 손가락이 화면에 닿았다. 운영체제가 장치에서 온 신호를 사건으로 바꿔 맨 앞 창에 줄 세우고, 프로그램은 사건마다 차례로 반응합니다. 웹 페이지는 onclick 같은 리스너로 이것을 받습니다.
더 배우기
roundtrip
원문 표기 · Roundtrip
바꿨다 되돌려 원래와 같은지 확인하기
roundtrip(왕복) 검사는 데이터를 한쪽으로 바꿨다가 다시 되돌린 뒤, 원래와 같은지 확인합니다. XSLM 과정의 roundtrip: OK 는 학습 글 전체를 토큰 번호로 바꿨다가(encode) 원문 그대로 되돌렸다(decode)는 뜻으로, 토크나이저가 잃는 것이 없다는 증거입니다. 글자 하나라도 달라지면 실패합니다.
더 배우기
객체
원문 표기 · Python object
자기 함수를 함께 지닌 프로그램 속 값 하나
파이썬에서는 모든 값이 객체입니다 — 숫자, 글자, 리스트, 딕셔너리. 객체에는 타입이 있고, 점으로 부르는 자기만의 함수(메서드)가 딸려 있습니다(fruits.append("pear")). 클래스는 나만의 객체 종류를 설계하는 방법입니다. 객체를 파일에 저장하려면 먼저 글이나 숫자로 바꿔야 합니다.
더 배우기
append
리스트 끝에 값을 하나 더하는 메서드
list.append(값)은 리스트 맨 끝에 새 값 하나를 넣어 그 리스트 자체를 바꿉니다. 돌려주는 값은 None 이므로 fruits.append("pear") 를 한 줄에 따로 쓰고, fruits = fruits.append("pear") 처럼 쓰면 fruits 가 None 이 됩니다. 여러 값을 한꺼번에 더하려면 extend 를 씁니다.
더 배우기
클래스
원문 표기 · Class
데이터와 함수를 묶어 객체를 찍어 내는 틀
클래스는 객체의 종류를 적은 설계입니다 — 객체마다 어떤 데이터를 갖고 무엇을 할 수 있는지. class 로 한 번 쓰면, 그것으로 필요한 만큼 객체(인스턴스)를 만들고 객체마다 자기 값을 가집니다. 클래스 안의 함수는 메서드이며 객체 자신을 self 로 받습니다. 설계일 뿐이라 객체를 만들기 전에는 아무 일도 일어나지 않습니다.
더 배우기
def
새 함수를 만드는 파이썬 낱말
def 는 함수 정의를 시작합니다 — 함수 이름, 괄호 안의 매개변수, 쌍점을 쓰고, 그 아래에 네 칸 들여 쓴 본문이 옵니다. 함수를 정의만 해서는 실행되지 않고, 괄호를 붙여 불러야 실행됩니다. 값을 돌려주려면 안에서 return 을 씁니다.
더 배우기
딕셔너리 키
원문 표기 · Key
딕셔너리에서 값을 찾는 이름표
딕셔너리는 키와 값을 짝으로 담고, 키는 값을 찾을 때 쓰는 이름표입니다 — scores["math"] 에서 "math" 가 키입니다. 같은 키는 하나뿐이라, 이미 있는 키에 새 값을 넣으면 옛 값이 바뀝니다. 없는 키를 찾으면 KeyError 가 나고, .get() 은 오류 대신 None 을 줍니다.
더 배우기
FileNotFoundError
열려는 파일이 없을 때 파이썬이 내는 오류
FileNotFoundError 는 프로그램이 찾는 자리에 파일이나 폴더가 없을 때 납니다. 예를 들어 다른 폴더에서 open("data/train.txt") 를 실행했을 때입니다. 경로는 스크립트가 아니라 현재 폴더를 기준으로 합니다. pwd 로 위치를 보고, ls 로 파일을 보고, 철자와 대소문자를 확인합니다.
더 배우기
HTTPServer
파이썬에 들어 있는 간단한 웹서버
HTTPServer 는 파이썬 표준 라이브러리(http.server 모듈)에 든 작은 웹서버입니다. GET·POST 에 무엇을 답할지 정하는 처리 클래스를 건네면, 요청을 하나씩 처리합니다. XSLM 러너처럼 공부와 내 컴퓨터용 도구에는 충분하지만, 방문자가 많은 공개 사이트용으로 만든 것은 아닙니다.
더 배우기
len
개수(길이)를 세는 함수
len(x)는 x 의 길이를 돌려줍니다 — 리스트의 항목 수, 글자의 글자 수, 딕셔너리의 키 수. x 를 바꾸지는 않습니다. 자리 번호는 0 부터 시작하므로, 리스트의 마지막 항목은 len(x) 가 아니라 len(x) - 1 번째입니다.
더 배우기
None
"아무 값도 없음"을 뜻하는 파이썬 값
None 은 "값이 없다"는 뜻의 특별한 값입니다. return 이 없는 함수는 None 을 돌려주고, dict.get() 은 없는 키에 None 을 줍니다. 숫자가 나올 자리에 None 이 보이면 대개 return 을 빠뜨린 것입니다. "is None" 으로 확인하고, 0 이나 빈 글자와는 다르다는 점을 기억합니다.
더 배우기
range
반복에 쓸 차례 숫자를 만드는 함수
range(시작, 끝, 간격)은 시작부터 끝 바로 앞까지의 숫자를 만듭니다. range(1, 11)은 1 부터 10 까지, range(5)는 0 부터 4 까지입니다. 주로 for 반복과 함께 씁니다. 끝 숫자가 빠진다는 것을 잊는 것이 가장 흔한 실수입니다.
더 배우기
urlopen
HTTP 요청을 보내고 답을 읽는 파이썬 함수
urllib.request.urlopen(주소)은 웹 주소를 열어 요청을 보내고 응답을 돌려주며, .read() 로 본문을 바이트로 받습니다. JSON 을 POST 로 보내려면 Request 객체를 건넵니다. 서버에 닿지 못하거나 오류 코드가 오면 가짜 답 대신 오류를 냅니다. 표준 라이브러리에 들어 있어 설치할 것이 없습니다.
더 배우기
else
if 조건이 거짓일 때 가는 길
else 는 if 문에 두 번째 길을 줍니다 — 조건이 참이면 if 블록이, 아니면 else 블록이 실행됩니다. 그 사이에서 다른 조건을 하나 더 보려면 elif(else if)를 씁니다. else 에는 조건을 쓰지 않고 쌍점으로 끝내며, 안의 줄은 if 블록처럼 들여 씁니다.
더 배우기
IndentationError
줄의 들여쓰기가 맞지 않을 때 파이썬이 내는 오류
IndentationError 는 줄 앞의 공백이 파이썬이 기대한 것과 다를 때 납니다 — 쌍점 뒤(if·for·def)의 블록을 들여 쓰지 않았거나, 같은 블록의 줄마다 칸 수가 다를 때입니다. 파이썬은 괄호 대신 들여쓰기로 블록을 나누므로 중요합니다. 한 단계에 스페이스 네 칸을 쓰고 탭과 섞지 않습니다.
더 배우기
print
값을 화면에 보여 주는 파이썬 함수
print() 는 값을 표준 출력(보통 화면)에 쓰고 줄을 바꿉니다. 프로그램이 무엇을 하는지 가장 빨리 보는 방법입니다. 보여 주기만 하므로, 결과를 print 만 하고 return 하지 않은 함수는 None 을 돌려줍니다. MCP 서버처럼 표준 출력으로 대화하는 프로그램에서는 print 한 줄이 메시지를 깨므로 기록은 stderr 에 씁니다.
더 배우기
return
함수가 결과를 돌려주는 낱말
return 은 함수를 끝내고 부른 쪽에 값을 돌려주어, 그 결과를 변수에 담거나 다른 계산에 쓰게 합니다. return 이 없는 함수는 None 을 돌려줍니다. print 와는 다릅니다 — print 는 화면에 보여 주기만 하고, return 은 값을 넘겨줍니다.
더 배우기
assert
조건이 거짓이면 프로그램을 멈추는 검사 줄
assert 조건 은 조건이 참이면 아무 일도 하지 않고, 거짓이면 AssertionError 를 내며 그 줄에서 멈춥니다. 토크나이저가 원문을 그대로 돌려주는지, 바꿀 글이 정말 있는지처럼 "이것은 반드시 이래야 한다"를 빠르게 적는 방법입니다. 파이썬을 -O 로 돌리면 assert 를 건너뛰므로, 실제 프로그램이 기대는 검사에는 쓰지 않습니다.
더 배우기
Android App Bundle
Google Play 에 올리는 앱 묶음 파일(.aab)
Android App Bundle(.aab)은 Google Play 에 올리는 앱 묶음입니다. 앱의 코드와 자원이 모두 들어 있고, Google Play 가 이것으로 휴대폰마다 맞는 작은 설치 파일을 만들어 줍니다. 새 앱은 예전 방식인 .apk 가 아니라 이 번들로 올려야 합니다.
더 배우기
업로드 키
원문 표기 · Upload key
Play 에 올리기 전에 앱에 서명하는 비밀 키
Google Play 는 새 버전이 늘 같은 개발자에게서 왔는지 확인합니다. 내가 업로드 키로 앱 번들에 서명하면, Google 이 그 서명을 확인한 뒤 자기 앱 서명 키로 다시 서명합니다. 키 파일과 비밀번호는 프로젝트 밖에 두고 백업하며, 절대 커밋하거나 공유하지 않습니다. 잃어버리면 Play Console 에서 Google 에 재설정을 요청해야 합니다.
더 배우기
서명
원문 표기 · Code signing
앱이 정말 내 것임을 증명하는 디지털 도장
앱을 출시하기 전에 비밀 키로 앱에 서명합니다. 스토어와 휴대폰은 서명으로 누가 만든 앱인지, 서명한 뒤 누가 바꾸지 않았는지를 확인합니다. Google Play 는 업로드 키를, Apple 은 서명 인증서와 프로필을 쓰며 Xcode 의 자동 서명이 이를 대신 처리해 줍니다. 서명 오류는 대개 키나 팀을 잘못 고른 경우입니다.
더 배우기
프로비저닝 프로필
원문 표기 · Provisioning profile
서명한 앱의 설치·실행을 허락하는 Apple 파일
프로비저닝 프로필은 내 팀, 앱의 번들 ID, 서명 인증서, 그리고 시험할 때 쓸 기기 목록을 하나로 묶은 파일입니다. 프로필이 맞지 않으면 iPhone 은 그 앱을 실행하지 않습니다. 자동 서명을 켜 두면 Xcode 가 프로필을 만들고 새로 고칩니다. 화면에는 그냥 '프로필'로 나오며, 사용자 프로필과는 관계없습니다.
더 배우기
번들 ID
원문 표기 · Bundle ID
com.회사.앱 처럼 앱마다 하나뿐인 이름표
Apple 앱에는 com.example.notes 처럼 웹 주소를 거꾸로 쓴 모양의 번들 ID 가 있습니다. App Store 안에서 두 앱이 같은 번들 ID 를 쓸 수 없고, 이 이름이 Xcode 프로젝트·서명 프로필·App Store Connect 의 앱 기록을 서로 잇습니다. 빌드를 한 번 올리면 바꿀 수 없으니 신중히 고릅니다. Android 에서는 같은 개념을 애플리케이션 ID 라고 부릅니다.
더 배우기
App Store Connect
App Store 앱을 등록·관리하는 Apple 사이트
App Store Connect 는 iPhone 앱이 출시 전후에 머무는 곳입니다. 여기서 번들 ID·이름·스크린숏으로 앱 기록을 만들고, 개인정보 내용을 채우고, Xcode 가 올린 빌드를 보고, TestFlight 테스터를 초대하고, App Review 에 심사를 신청합니다. Google Play 의 Play Console 에 해당합니다.
더 배우기
Apple Developer Program
App Store 출시용 Apple 유료 회원
App Store 에 앱을 올리거나 TestFlight 로 테스터에게 나눠 주려면 Apple 계정으로 Apple Developer Program 에 가입합니다. 회비는 해마다 내며(대부분의 나라에서 개인 US$99), App Store Connect·서명 인증서·베타 도구를 쓸 수 있게 됩니다. 가입하지 않아도 Xcode 로 내 iPhone 에서 앱을 돌려 볼 수는 있지만 출시는 할 수 없습니다.
더 배우기
TestFlight
출시 전 iPhone 앱을 테스터에게 주는 서비스
App Store Connect 에 올린 빌드는 모두 TestFlight 로 보낼 수 있습니다. 테스터는 무료 TestFlight 앱을 깔고 초대를 받아, 일반 사용자보다 먼저 그 빌드를 써 봅니다. 외부 테스터용 빌드는 먼저 짧은 심사를 거치고, 빌드마다 90일이 지나면 만료됩니다. 테스터가 알려 준 문제를 고치고 빌드 번호를 올려 다시 올립니다.
더 배우기
Xcode
iPhone·Mac 앱을 만드는 Apple 의 무료 앱
Xcode 는 Apple 기기용 앱을 만드는 공식 도구로, Mac 에서만 돌고 Mac App Store 에서 무료로 받습니다. Flutter 나 React Native 로 앱을 짜더라도 마지막 iPhone 빌드는 Xcode 나 그 명령줄 도구로 서명·아카이브·업로드합니다. iPhone 시뮬레이터도 Xcode 안에 들어 있습니다.
더 배우기
아카이브
원문 표기 · Archive
앱을 올릴 출시용 묶음으로 만드는 Xcode 단계
아카이브는 iPhone 앱의 출시용 빌드를 서명까지 마쳐 하나로 묶은 것입니다. Xcode 에서 Product → Archive 를 고른 뒤 Distribute App 으로 App Store Connect 에 올립니다. 올릴 때마다 빌드 번호가 앞의 것보다 커야 합니다. 옛 파일을 보관한다는 뜻의 아카이브와는 다릅니다.
더 배우기
출시용 빌드
원문 표기 · Release build
스토어 출시를 위해 만든 최종 빌드
개발하는 동안 앱은 디버그 빌드로 돕니다 — 더 느리고 크고, 검사 도구가 잔뜩 들어 있습니다. 출시용 빌드는 그 도구를 빼고 코드를 최적화한 뒤 내 키로 서명한 것으로, 사용자가 스토어에서 받는 판입니다. 어떤 버그는 출시용 빌드에서만 보이므로 올리기 전에 꼭 시험합니다.
더 배우기
스토어 등록 정보
원문 표기 · Store listing
스토어에 보이는 앱 이름·설명·스크린숏
스토어 등록 정보는 사람들이 설치하기 전에 보는 페이지입니다 — 앱 이름, 짧은 설명과 자세한 설명, 아이콘, 스크린숏, 분류, 개인정보처리방침 링크. Play Console 이나 App Store Connect 에서 채우고, 심사원은 이것이 앱의 실제 기능과 맞는지 봅니다. 사실과 다른 등록 정보는 흔한 거절 이유입니다.
더 배우기
원문 표기 · Data safety form
앱이 모으는 데이터를 밝히는 Play Console 양식
Google Play 는 모든 앱에 데이터 보안 양식을 채우게 합니다 — 어떤 사용자 데이터를 모으거나 나누는지, 왜 그러는지, 암호화하는지, 지울 수 있는지. 답은 스토어 페이지에 그대로 보입니다. 앱이 실제로 하는 일과 개인정보처리방침, 그리고 내가 넣은 외부 라이브러리가 모으는 것까지 맞아야 합니다.
더 배우기
버전 코드
원문 표기 · Version code
앱을 올릴 때마다 커져야 하는 내부 번호
사람이 보는 버전 이름(예: 1.2.0) 말고도, 빌드마다 스토어가 쓰는 정수가 붙습니다 — Android 는 버전 코드, iPhone 은 빌드 번호입니다. 올릴 때마다 앞의 것보다 커야 하고, 그렇지 않으면 스토어가 받지 않습니다. Flutter 에서는 pubspec.yaml 의 version 줄에서 + 뒤의 숫자입니다.
더 배우기
pubspec.yaml
Flutter 앱의 이름·버전·패키지를 적은 설정 파일
Flutter·Dart 프로젝트의 맨 위 폴더에는 pubspec.yaml 이 있습니다. 앱 이름, 버전(버전 이름과 빌드 번호를 + 로 이은 것), 쓰는 패키지, 그림·글꼴 같은 자원을 적습니다. 패키지 목록을 고친 뒤에는 flutter pub get 을 실행합니다. YAML 로 쓰므로 들여쓰기가 중요합니다.
더 배우기
React Native
React 로 휴대폰 앱을 만드는 프레임워크
Meta 가 만든 React Native 는 React 의 컴포넌트 방식으로 JavaScript(또는 TypeScript)로 한 번 짠 앱을 Android 와 iPhone 에서 모두 돌립니다. 웹 페이지를 상자에 넣은 것이 아니라 진짜 네이티브 단추와 목록을 그립니다. Flutter 와 함께 가장 많이 쓰는 두 크로스 플랫폼 방식 가운데 하나입니다.
더 배우기
iOS
iPhone 의 운영 체제
iOS 는 Apple 이 만든, 모든 iPhone 을 돌리는 소프트웨어입니다 — 다른 대부분의 휴대폰은 Android 로 돕니다. 앱은 운영 체제마다 따로 빌드하므로 스토어가 iOS 빌드와 Android 빌드를 따로 받습니다. iPhone 앱은 Mac 의 Xcode 로 만들고 App Store 나 TestFlight 로 설치합니다.
더 배우기
바인딩
원문 표기 · Binding
다른 언어의 라이브러리를 내 언어에서 부르게 잇는 코드
llama.cpp 처럼 빠른 라이브러리는 C·C++ 로 쓴 것이 많습니다. 바인딩은 그런 라이브러리를 감싸 Python·Dart·JavaScript 같은 다른 언어에서 그 언어의 함수처럼 부르게 해 줍니다. 무거운 계산은 여전히 원래의 빠른 코드가 합니다. 바인딩이 라이브러리보다 오래된 판이면 새 기능이 빠져 있을 수 있습니다.
더 배우기
임베드
원문 표기 · Embed
파일·모델을 앱 안에 넣어 함께 묶는 것
임베드는 무언가를 앱 안에 넣어, 서버에서 받아 오지 않고도 쓰게 하는 것입니다. 작은 언어모델을 러너와 함께 휴대폰 앱에 임베드하면 인터넷 없이도 작동합니다. 낱말이나 문장을 나타내는 숫자 목록인 임베딩과는 다른 말입니다.
더 배우기
미들웨어
원문 표기 · Middleware
요청과 본 작업 사이에 끼어 한 단계를 더하는 코드
미들웨어는 요청이나 단계가 본 코드에 닿기 전(또는 뒤)에 반드시 지나가는 층입니다. 본 코드가 몰라도 로그인 확인, 기록 남기기, 긴 컨텍스트 줄이기, 위험한 일 막기를 할 수 있습니다. Laravel 같은 웹 프레임워크는 로그인 확인에, 에이전트 하네스는 모델을 부를 때마다 미들웨어를 씁니다.
경계값
원문 표기 · Boundary value
기준과 딱 같은 점수처럼 경계에 놓인 시험 값
버그는 규칙의 가장자리에 가장 많이 숨습니다. 60점 이상이면 합격인 프로그램이라면 30점·90점만이 아니라 59·60·61점을 시험합니다. >= 를 써야 할 곳에 > 를 쓴 실수는 딱 60점에서만 드러납니다. 빈 입력, 0, 허용하는 가장 큰 수도 경계값입니다.
flush
모아 둔 출력을 기다리지 않고 바로 내보내기
프로그램은 수고를 줄이려고 출력을 버퍼에 모았다가 한꺼번에 내보냅니다. MCP 클라이언트처럼 다른 프로그램이 한 줄씩 기다리고 있으면 이 지연이 멈춘 것처럼 보입니다. 파이썬의 print(..., flush=True) 는 그 줄을 바로 내보냅니다. 없으면 버퍼가 차거나 프로그램이 끝날 때에야 출력이 나올 수 있습니다.
더 배우기
vendor 폴더
원문 표기 · vendor folder
외부 코드를 모아 두는 폴더
패키지 도구는 남이 만든 코드를 따로 된 폴더에 둡니다 — PHP 의 Composer 는 vendor/, npm 은 node_modules/ 입니다. 다음 설치가 덮어쓰므로 그 안의 파일은 고치지 않고, 대신 패키지 목록의 버전을 바꿉니다. 그래서 AI 에이전트 규칙에 "vendor/ 는 건드리지 말 것"이 자주 들어갑니다.
elif
앞 조건이 거짓일 때 다음 조건 검사
파이썬에서 if 는 조건을 검사하고, elif(else if 의 줄임)는 앞 조건이 모두 거짓일 때만 다음 조건을 검사하며, else 는 남은 경우를 모두 받습니다. 위에서 아래로 내려가며 처음 참인 갈래 하나만 실행하므로 가장 좁은 조건을 앞에 둡니다. 줄 끝에는 콜론을 쓰고 그 아래 코드는 들여 씁니다.
더 배우기
KeyError
딕셔너리에 없는 키를 찾을 때 나는 파이썬 오류
딕셔너리는 키로 값을 찾습니다. scores["music"] 처럼 없는 키를 찾으면 프로그램이 KeyError 와 그 키 이름을 보이고 멈춥니다. 먼저 철자와 대소문자를 확인합니다. 키가 없을 수도 있는 게 정상이라면 오류 대신 기본값을 돌려주는 scores.get("music", 0) 을 씁니다.
더 배우기
ValueError
값의 내용이 알맞지 않을 때 나는 오류
ValueError 는 함수가 맞는 종류의 값을 받았지만 쓸 수 없는 값일 때 납니다. int("abc") 는 글자를 받았지만 숫자 모양의 글자가 아닙니다. NumPy 에서는 a @ b 의 안쪽 크기가 다른 것처럼 배열 모양이 맞지 않을 때 납니다. 메시지의 마지막 줄을 읽고 값이나 .shape 를 출력해 봅니다.
더 배우기
ModuleNotFoundError
패키지가 없어 나는 파이썬 오류
파이썬이 패키지를 찾지 못하면 import numpy 가 No module named 'numpy' 로 실패합니다. 대개 설치하지 않았거나, 다른 파이썬이나 다른 가상 환경에 설치한 경우입니다. 프로젝트의 venv 를 켜고 python3 -m pip install numpy 로 설치한 뒤, 같은 python3 로 실행합니다.
더 배우기
NameError
정의하지 않은 이름을 쓸 때 나는 파이썬 오류
NameError: name 'x' is not defined 는 파이썬이 모르는 변수나 함수 이름을 만났다는 뜻입니다. 흔한 원인은 오타, 대소문자 차이, 값을 넣는 줄보다 먼저 변수를 쓴 것, import 를 빠뜨린 것입니다. 파이썬은 이름을 글자 그대로 읽으므로 Score 와 score 는 다릅니다.
더 배우기
pytest
파이썬 테스트를 찾아 실행하는 도구
pytest 는 프로젝트의 테스트를 모두 실행하고 무엇이 통과·실패했는지 보여 줍니다. test_*.py 이름의 파일과 test_ 로 시작하는 함수를 찾고, 각 테스트는 assert 한 줄로 결과를 확인합니다. AI 에이전트에게 "고칠 때마다 python -m pytest 를 실행할 것"이라는 규칙을 주면 스스로 결과를 확인할 수 있습니다.
더 배우기
import
모듈을 불러와 쓰게 하는 파이썬 명령
파이썬은 기본 함수 몇 개로만 시작하고, 나머지는 모듈에 들어 있습니다. import re 는 정규식 모듈을 불러오고, 그다음 re.search(...) 처럼 그 함수를 부릅니다. from math import sqrt 는 이름 하나만 바로 가져옵니다. 파이썬에 딸려 오는 모듈은 늘 되고, 나머지는 먼저 pip 로 설치해야 합니다.
더 배우기
원시 문자열
원문 표기 · Raw string
역슬래시를 글자 그대로 두는 r"…" 파이썬 문자열
보통 파이썬 문자열에서 역슬래시는 특수 글자의 시작입니다 — "\n" 은 줄바꿈, "\b" 는 백스페이스입니다. 앞에 r 을 붙인 r"\b\d+" 는 역슬래시를 쓴 그대로 둡니다. 정규식에는 역슬래시가 많으므로 패턴은 습관처럼 원시 문자열로 씁니다.
더 배우기
PyPI
파이썬 패키지를 모아 둔 공식 창고
PyPI(pypi.org)는 pip 가 패키지를 내려받는 곳입니다. 누구나 올릴 수 있어서 한 글자 틀린 이름의 패키지가 함정일 수 있습니다. 새 패키지는 정확한 이름·만든 사람·내려받은 수를 확인하고 설치합니다. 파이썬에서 Node.js 의 npm 저장소와 같은 역할을 합니다.
더 배우기
requirements.txt
프로젝트에 필요한 파이썬 패키지와 버전 목록 파일
requirements.txt 에는 파이썬 프로젝트가 쓰는 라이브러리를 numpy==2.1.3 처럼 보통 버전까지 고정해 적습니다. 이 파일이 있으면 누구든 명령 한 줄로 같은 환경을 다시 만듭니다. 새 버전은 동작이 바뀌어 어제 되던 코드를 깨뜨릴 수 있으므로 버전 고정이 중요합니다.
더 배우기
자료형
원문 표기 · Data type
정수·소수·글자처럼 값의 종류
모든 값에는 자료형이 있고, 자료형이 그 값으로 할 수 있는 일을 정합니다. 파이썬에서 3 은 int, 3.0 은 float, "3" 은 str, True 는 bool 입니다. 글자와 숫자는 더할 수 없어 "3" + 4 는 오류가 나므로 int("3") 으로 먼저 바꿉니다. 돈과 부동소수점처럼 정확도에도 자료형 선택이 중요합니다.
더 배우기
console.log
자바스크립트에서 값을 화면에 찍는 함수
console.log 는 받은 것을 출력합니다. 브라우저에서는 개발자 도구의 Console 에, Node.js 에서는 터미널의 표준 출력으로 나가므로 다른 프로그램의 출력처럼 파이프로 넘길 수 있습니다. 디버깅할 때 변수에 무엇이 들었는지 가장 빨리 보는 방법입니다.
더 배우기
자바스크립트 엔진
원문 표기 · JavaScript engine
자바스크립트를 실행하는 핵심 프로그램
자바스크립트 엔진은 자바스크립트 코드를 읽어 컴퓨터가 실행할 명령으로 빠르게 바꿉니다. Chrome 과 Node.js 는 Google 의 V8 엔진을 같이 쓰고, Firefox 는 SpiderMonkey, Safari 는 JavaScriptCore 를 씁니다. Node.js 는 V8 을 브라우저 밖으로 꺼내, 페이지를 그리는 대신 파일과 네트워크를 다루는 도구를 더한 것입니다.
더 배우기
process.argv
Node.js 스크립트가 받은 인자 목록
process.argv 는 Node.js 스크립트를 시작한 명령줄을 담은 배열입니다. 0번은 node 의 경로, 1번은 스크립트 경로이고, 2번부터 내가 친 인자가 들어갑니다. 그래서 node greet.js Mina 로 실행하면 process.argv[2] 가 "Mina" 입니다. 모두 글자이므로 숫자는 Number() 로 바꿉니다.
더 배우기
보안 검사
원문 표기 · npm audit
설치한 패키지의 알려진 보안 문제를 찾는 npm 검사
npm install 뒤에 npm 은 짧은 보안 검사(audit)를 돌려, 설치한 패키지 가운데 알려진 취약점이 있는 것이 몇 개이고 얼마나 심각한지 알려 줍니다. npm audit 은 자세한 내용을, npm audit fix 는 버전 규칙을 깨지 않는 선에서 고칠 수 있는 것을 올려 줍니다. 모든 경고가 내 프로젝트에 해당하지는 않지만 high·critical 은 꼭 읽습니다.
더 배우기
@latest
가장 새로 나온 판을 뜻하는 npm 표시
패키지 이름 뒤에 @latest 를 붙이면 지금 latest 로 표시된 판을 달라는 뜻입니다. npm install -g firebase-tools@latest 는 전역 도구를 새 판으로 올리고, npx create-vite@latest 는 캐시에 남은 옛 판이 아니라 가장 새 판으로 프로젝트를 만듭니다. prettier@3 처럼 버전을 직접 적을 수도 있습니다.
더 배우기
prefix
원문 표기 · npm prefix
npm 이 전역 패키지를 두는 폴더 설정
npm 의 prefix 는 전역으로 설치한 패키지와 그 명령이 들어가는 폴더입니다. 이것이 /usr/local 같은 시스템 폴더면 권한이 없어 npm install -g 가 EACCES 로 실패합니다. sudo 를 쓰지 말고 nvm 을 쓰거나 prefix 를 홈 폴더로 옮긴 뒤 그 bin 폴더를 PATH 에 더합니다.
더 배우기
npm 저장소
원문 표기 · npm registry
npm 이 패키지를 내려받는 온라인 창고
npm 저장소(registry.npmjs.org)에는 공개된 자바스크립트 패키지가 수백만 개 있습니다. npm install 과 npx 는 여기서 패키지를 받아 캐시에 사본을 둡니다. 누구나 올릴 수 있으니 실행하기 전에 이름·만든 사람·내려받은 수를 확인합니다. 패키지 창고이지 Git 저장소가 아닙니다.
더 배우기
.nvmrc
프로젝트에 쓸 Node 버전을 적는 파일
.nvmrc 는 프로젝트 폴더에 두는 파일로, 22 같은 Node.js 버전 한 줄이 들어 있습니다. 누구든 그 프로젝트에서 nvm use 만 치면 같은 버전을 쓰므로 "내 컴퓨터에선 되는데" 문제가 줄어듭니다. 숫자 없이 nvm install 을 치면 파일에 적힌 버전을 설치합니다.
더 배우기
패키지 관리자
원문 표기 · Package manager
프로그램을 찾아 설치·업데이트·삭제하는 도구
패키지 관리자는 글자로 쓰는 앱 스토어입니다. 프로그램을 그것에 필요한 것까지 함께 내려받고, 버전을 기억하고, 깔끔하게 지웁니다. 운영 체제마다 자기 것이 있고(Alpine 은 apk, Ubuntu 는 apt, macOS 는 Homebrew, Windows 는 winget), 언어에도 있습니다(자바스크립트는 npm, 파이썬은 pip).
더 배우기
스캐폴딩
원문 표기 · Scaffolding
새 프로젝트의 기본 뼈대를 자동으로 만드는 일
스캐폴딩 도구는 몇 가지를 물은 뒤 새 프로젝트에 필요한 폴더·설정 파일·예제 코드를 만들어, 이미 돌아가는 상태에서 시작하게 해 줍니다. npx create-vite@latest 와 flutter create 가 흔한 예입니다. 만들어진 파일은 출발점일 뿐이라 마음껏 고치고 지웁니다.
더 배우기
캐럿(^) 버전 범위
원문 표기 · Caret (^) version range
이 버전이나 호환되는 새 버전
npm 버전은 major.minor.patch 세 부분입니다. package.json 의 ^4.17.21 처럼 앞에 캐럿을 붙이면 4.17.21 이상 5.0.0 미만이면 무엇이든 허락합니다 — 큰 번호가 바뀌면 호환이 깨질 수 있기 때문입니다. 실제로 설치된 정확한 버전은 package-lock.json 에 적히고, npm ci 는 그것만 설치합니다.
더 배우기
--depth 1
이력 없이 마지막 판만 받는 얕은 git clone
보통의 git clone 은 프로젝트의 모든 커밋을 복사합니다. git clone --depth 1 은 마지막 커밋 하나만 받아 훨씬 빠르고 작으므로, 코드를 읽거나 돌려 보기만 할 때 알맞습니다. 대신 git fetch --unshallow 로 나머지를 받기 전에는 옛 커밋을 보거나 되돌아갈 수 없습니다.
더 배우기
해시
원문 표기 · Hash
내용으로 계산한 짧은 지문 — 내용이 바뀌면 값도 바뀜
해시 함수는 크기와 상관없이 어떤 자료든 정해진 길이의 짧은 문자열로 바꿉니다. 같은 입력은 늘 같은 해시가 되고, 한 글자만 바뀌어도 완전히 다른 해시가 됩니다. 그래서 파일이 바뀌었는지 빨리 알 수 있습니다. Git 은 커밋마다 해시로 이름을 붙이므로 커밋 해시 하나가 코드의 한 판을 정확히 가리킵니다.
일반 텍스트
원문 표기 · Plain text
꾸밈 없이 글자만 담긴 글
일반 텍스트 파일에는 글자 말고는 아무것도 없습니다. 그래서 코드·HTML·설정 파일은 일반 텍스트로 저장해야 합니다. 문서 편집기는 코드를 망가뜨리는 숨은 서식을 넣으므로, macOS 텍스트 편집기에서는 먼저 포맷 → 일반 텍스트로 만들기를 누릅니다. 보안에서 평문은 HTTPS 가 아닌 HTTP 처럼 암호화하지 않은 자료를 뜻하기도 합니다.
로직
원문 표기 · Logic
프로그램이 일을 처리하는 순서와 판단 규칙
프로그램의 로직은 그 프로그램의 판단 방식입니다 — 어떤 순서로 일이 일어나고, 어떤 조건을 검사하고, 경우마다 무엇을 하는지. '게임 로직'은 누가 점수를 냈고 판이 언제 끝나는지를 정하고, '도구 로직'은 도구가 입력으로 무엇을 할지 정합니다. 인공지능이 기계(로직)라는 말은 감정이나 의도 없이 계산된 단계를 따른다는 뜻입니다.
권한
원문 표기 · Permission
읽기·바꾸기·실행을 해도 되는 범위
권한은 무언가를 해도 된다는 허락입니다 — 파일 읽기·바꾸기, 명령 실행, 카메라 쓰기, 남을 대신해 글 올리기. 파일에도 권한이 있고, 휴대폰 앱은 권한을 묻고, AI 에이전트는 내게서 권한을 받습니다 — 어느 폴더를 고치고 어떤 명령을 묻지 않고 실행할지. 일에 필요한 만큼만 줍니다. 권한은 나중에 더하기가 피해를 되돌리기보다 쉽습니다.
린터
원문 표기 · Linter
코드의 실수·규칙 위반을 자동으로 찾는 도구
린터는 코드를 실행하지 않고 읽어 버그가 될 만한 곳과 스타일 문제를 짚어 줍니다 — 쓰지 않는 변수, 빠진 따옴표, 위험한 패턴. 린터를 돌리는 일을 린트(lint)라고 하며, npm run lint 처럼 씁니다. 기계가 통과·실패를 분명히 판정하므로 테스트와 린트는 혼자 일하는 AI 에이전트의 좋은 끝난 기준입니다. 린터는 문제를 찾고, 포매터는 모양만 정리합니다.
더 배우기
원문 표기 · Formatter
코드 모양을 정해진 규칙대로 자동 정리하는 도구
포매터는 띄어쓰기·줄바꿈·따옴표·들여쓰기를 다시 써서, 누가(또는 무엇이) 썼든 프로젝트의 코드가 모두 같은 모양이 되게 합니다. 코드가 하는 일은 바꾸지 않습니다. 클로드 코드 훅처럼 고칠 때마다 저절로 돌게 하면 AI 가 쓴 코드도 가지런하고 diff 를 검토하기 쉬워집니다.
더 배우기
Prettier
자바스크립트·CSS·HTML·마크다운용 인기 포매터
Prettier 는 따질 설정이 거의 없이 코드를 한 가지 모양으로 다시 쓰는 npm 패키지입니다. 보통 프로젝트마다 개발용 의존성으로 설치하고 npx 로 실행합니다. --write 는 파일을 고치고, --check 는 정리되지 않은 파일만 알려 주어 자동 검사에 알맞습니다.
더 배우기
LTS
몇 년 동안 수정을 받는 장기 지원 판
LTS(Long-Term Support) 판은 만든 곳이 오래도록, 특히 보안 문제를 고쳐 주겠다고 약속한 버전입니다. Node.js 에서는 짝수 번호 판(22·24 …)이 LTS 가 되어 약 30개월 동안 지원받고, 홀수 판은 짧게 끝납니다. 배우거나 서버를 돌릴 때는 LTS 판을 고릅니다.
더 배우기
README
프로젝트 설명·사용법을 적는 첫 문서
README.md 는 프로젝트 맨 위 폴더에 두고, 무엇을 하는 프로젝트인지, 어떻게 설치·실행하는지, 다음에 어디를 보면 되는지 적습니다. GitHub 는 저장소 첫 화면에 이 파일을 보여 주므로 방문자가 가장 먼저 읽습니다. "README 에 실행 방법이 있다" 같은 목표는 AI 에이전트에게도 분명한 끝난 기준이 됩니다.
이슈
원문 표기 · GitHub issue
GitHub 에 할 일·버그를 하나씩 적어 두는 글
이슈는 GitHub 저장소에서 번호가 붙은 글로, 버그·기능·질문 같은 일 하나를 적습니다. 사람들이 댓글을 달고, 담당자와 라벨을 붙이고, 끝나면 닫습니다. PR 에 "Fixes #12" 라고 쓰면 합칠 때 그 이슈가 저절로 닫힙니다. GitHub Project 나 Jira 같은 보드는 이슈를 카드로 늘어놓습니다.
더 배우기
확장
원문 표기 · Extension
Chrome·VS Code 에 기능을 더하는 프로그램
확장(확장 프로그램)은 다른 앱 안에 설치해 기능을 더하는 작은 프로그램입니다. Claude in Chrome 같은 브라우저 확장은 Chrome 웹 스토어에서, 클로드 코드·Codex 같은 편집기 확장은 VS Code 마켓플레이스에서 받습니다. 확장은 그 앱에서 내가 보는 내용을 읽을 수 있으니 믿을 수 있는 곳의 것만 설치합니다.
더 배우기
에러 로그
원문 표기 · Error log
프로그램이 실행 중에 남기는 오류 기록
프로그램은 무엇이 잘못됐는지 시각과 자세한 내용을 붙여 에러 로그에 씁니다 — 파일, 터미널, 또는 별도 서비스에. 로그에는 화면의 짧은 메시지보다 많은 것, 예를 들어 줄 번호와 호출 순서가 들어 있습니다. AI 에게 도움을 청할 때는 수천 줄을 붙이기보다 관련 줄과 함께 재현 방법과 기대한 동작을 줍니다.
원문 표기 · Platform
프로그램이 돌아가는 바탕 — 브라우저·휴대폰·서비스
플랫폼은 프로그램이 그 위에서 돌도록 만들어진 바탕입니다 — Android·iOS·Windows 같은 운영 체제, 브라우저, 게임기, 또는 자기 SDK 를 주는 게임 플랫폼 같은 온라인 서비스. 플랫폼마다 규칙과 한계가 달라 스토어는 플랫폼마다 빌드를 따로 받습니다. '크로스 플랫폼'은 한 코드로 여러 플랫폼에서 도는 것을 말합니다.
소프트웨어
원문 표기 · Software
컴퓨터에서 돌아가는 프로그램을 통틀어 부르는 말
소프트웨어는 프로그램과 그 프로그램에 필요한 자료를 통틀어 부르는 말입니다 — 앱, 게임, 웹사이트, 운영 체제, AI 모델 모두. 손으로 만질 수 있는 기계는 하드웨어이고, 그 기계가 따르는 명령이 소프트웨어입니다. 소프트웨어는 하드웨어보다 바꾸기가 싸고 빨라서 새 기능은 대부분 업데이트로 옵니다.
자동화
원문 표기 · Automation
정해진 일을 사람 대신 컴퓨터가 저절로 하게 함
자동화는 손으로 되풀이하던 일을 컴퓨터가 스스로 하게 만드는 것입니다 — 파일 500개의 이름을 바꾸는 쉘 스크립트, 매주 월요일에 도는 예약 작업, 푸시할 때마다 도는 테스트, 주간 보고를 모으는 AI 에이전트. 처음 만들 때는 품이 들지만 그 뒤로는 공짜입니다. 내가 이해하는 단계만 자동화하고 결과는 확인합니다.
프로그래밍 언어
원문 표기 · Programming language
컴퓨터에 일을 시키는 글을 쓰는 약속된 언어
프로그래밍 언어는 컴퓨터에 할 일을 알리는 정확한 낱말과 문법을 가진 언어입니다. Python, JavaScript, Bash, C, Rust 가 그 예이고, 빠른 스크립트부터 빠른 엔진까지 저마다 알맞은 일이 다릅니다. 사람의 말과 달리 짐작할 여지가 없어 괄호 하나만 빠져도 프로그램이 멈춥니다. AI 도 이런 언어로 코드를 쓰므로 하나를 읽을 줄 아는 것은 여전히 중요합니다.
버전
원문 표기 · Version
프로그램·모델·파일의 몇 번째 판인지 붙인 번호
프로그램·패키지·모델은 시간이 지나며 바뀌고, 내놓은 상태마다 버전이 붙습니다 — 흔히 3.12.4 처럼 major.minor.patch 로 씁니다. 첫 숫자가 커지면 대개 옛 코드가 깨질 수 있는 변화입니다. "나는 되는데 너는 안 된다" 문제의 상당수가 버전 차이에서 오므로 먼저 버전을 확인하고, requirements.txt 나 .nvmrc 같은 파일에 고정해 둡니다.
상수
원문 표기 · Constant
한 번 정하면 바뀌지 않는 이름 붙은 값
상수는 처음 값을 넣은 뒤 잠가 버린 변수와 같습니다. Bash 에서 readonly PI=3.14 로 만들면 나중에 바꾸려 할 때 오류가 나고, 자바스크립트는 const 를 씁니다. 파이썬에는 진짜 상수가 없어 MAX_SIZE = 100 처럼 이름을 대문자로 써서 '바꾸지 말 것'을 나타냅니다. 어디서나 같아야 하는 값에 씁니다.
더 배우기
선언
원문 표기 · Declaration
변수(와 그 종류)를 쓰기 전에 미리 알리는 일
선언은 어떤 이름이 있다고, 때로는 그 종류까지 언어에 알리는 일입니다. Bash 는 보통 선언이 필요 없어 name=Mina 하면 그 자리에서 변수가 생깁니다. 연관 배열처럼 declare -A 로 먼저 선언해야 하는 것도 있습니다. Java·C 같은 언어는 모든 변수를 쓰기 전에 자료형과 함께 선언합니다.
더 배우기
정의
원문 표기 · Definition
함수·변수를 처음 만들어 두는 일
정의는 이름에 내용을 넣는 곳입니다 — 함수를 만드는 줄들, 또는 변수에 처음 값을 넣는 줄. 코드는 정의된 뒤에야 그 이름을 쓸 수 있으므로 스크립트에서는 함수 정의를 부르는 줄보다 앞에 둡니다. set -u 를 켜면 정의 안 된 변수를 쓸 때 Bash 가 멈춰 오타를 잡아 줍니다.
더 배우기
.NET
마이크로소프트의 무료 개발·실행 플랫폼
.NET 은 C#·F# 같은 언어로 쓴 프로그램을 Windows·macOS·Linux 에서 돌리는 마이크로소프트의 오픈소스 플랫폼입니다. PowerShell 이 .NET 위에서 돌기 때문에 PowerShell 의 정규식은 .NET 규칙을 따라 \d·\w·\s 와 이름 붙인 묶음을 씁니다. PowerShell 을 쓰는 데 .NET 을 알 필요는 없습니다.
더 배우기
호출
원문 표기 · Function call
함수·명령을 이름으로 불러 실행하는 일
함수를 정의하면 할 일을 적어 둘 뿐이고, 호출해야 실제로 실행됩니다. 파이썬의 print("hi") 나 Bash 의 greet Mina 처럼 이름과 인자를 써서 호출하며, 결과를 돌려받기도 합니다. 프로그램은 대부분 내가 쓰거나 남이 쓴 함수의 호출로 이루어집니다. AI 모델이 프로그램에 도구를 실행해 달라고 하는 것은 도구 호출이라고 부릅니다.
중첩
원문 표기 · Nesting
같은 것 안에 같은 것을 겹쳐 넣는 것
중첩은 어떤 구조 안에 같은 종류의 구조를 넣는 것입니다 — 반복 안의 반복, if 안의 if, 리스트 안의 리스트, $(dirname $(pwd)) 처럼 명령 치환 안의 명령 치환. $( ) 는 깔끔하게 중첩되므로 백틱보다 권장됩니다. 너무 깊은 중첩은 읽기 어려우니 세 겹이 넘으면 코드를 나눌 때라는 신호입니다.
더 배우기
switch
원문 표기 · switch statement
다른 언어의 여러 갈래 조건문
JavaScript·C·Java 의 switch 는 값 하나를 여러 경우와 비교해 맞는 블록을 실행하므로, 긴 if/else if 줄보다 깔끔합니다. Bash 는 같은 일을 case … esac 로 하며, 경우마다 *.txt 같은 패턴도 쓸 수 있습니다. 자바스크립트에서 break 를 빠뜨리면 다음 경우까지 실행됩니다.
더 배우기
블록
원문 표기 · Block
한 덩어리로 함께 실행되는 코드 줄 묶음
블록은 함께 묶인 코드 덩어리입니다 — if 의 then 과 fi 사이, 반복의 do 와 done 사이, 함수의 { } 안의 줄들. awk 에는 첫 줄 전과 마지막 줄 뒤에 한 번만 도는 BEGIN·END 블록도 있습니다. 블록 안의 줄은 들여 써서 어디서 끝나는지 보이게 하고, 연 블록은 반드시 닫습니다.
더 배우기
camelCase
낱말을 붙이고 둘째부터 대문자로 쓰는 이름
camelCase 는 여러 낱말로 된 이름을 띄어쓰기 없이 붙이고, 둘째 낱말부터 첫 글자를 대문자로 씁니다 — userName, totalPrice. 자바스크립트는 변수·함수 이름에 이것을 쓰고, 파이썬은 snake_case(user_name)를, 파일·주소 이름은 흔히 kebab-case(user-name)를 씁니다. 이름은 글자 그대로 맞아야 하므로 프로젝트가 이미 쓰는 방식을 따릅니다.
CHANGELOG
버전마다 무엇이 바뀌었는지 적은 기록 파일
CHANGELOG(보통 CHANGELOG.md)는 프로젝트의 버전마다 날짜와 함께 더한 것·바꾼 것·고친 것을 새것부터 적은 파일입니다. 클로드 코드처럼 빨리 바뀌는 도구는 이것을 공개해 사용자가 새 기능을 따라잡게 합니다. 작은 단계까지 모두 남는 커밋 이력과 달리 사람이 읽으라고 쓴 기록입니다.
더 배우기
릴리스 노트
원문 표기 · Release notes
새 버전에서 바뀐 점을 사용자에게 알리는 글
릴리스 노트는 새 버전을 사용자에게 알리는 글입니다 — 새 기능, 중요한 수정, 설정 바꾸기처럼 사용자가 해야 할 일. CHANGELOG 보다 짧고 친절하며, 흔히 지난 출시 뒤의 커밋을 보고 초안을 씁니다. 되풀이하는 일이라 AI 에이전트의 스킬로 만들기에 좋습니다.
명령 주입
원문 표기 · Command injection
입력에 몰래 명령을 끼워 실행시키는 공격
명령 주입은 프로그램이 믿을 수 없는 글로 쉘 명령을 만들고, 그 글에 다른 명령이 숨어 있을 때 일어납니다. a.txt; rm -rf ~ 같은 파일 이름이 무해한 명령을 파괴적인 명령으로 바꿀 수 있습니다. 변수는 따옴표로 감싸고, 믿을 수 없는 글을 쉘에 넘기지 말고, AI 에이전트가 내가 아니라 웹 페이지나 파일에서 온 명령을 실행하려 하는지 살핍니다.
피드백 반복
원문 표기 · Feedback loop
해 보고, 결과를 보고, 고치기를 되풀이하는 순환
피드백 반복은 일하는 쪽에 방금 바꾼 것이 맞았는지 빠른 신호를 주고 다시 해 보게 하는 고리입니다. AI 에이전트에게는 테스트·린터·타입 검사·스크린숏이 그 신호가 되어, 단계마다 사람이 없어도 스스로 바로잡습니다. 신호가 빠르고 분명할수록 결과가 좋아집니다.
worktree
원문 표기 · Worktree
같은 저장소를 다른 폴더에 하나 더 꺼낸 작업 공간
git worktree 는 같은 저장소의 다른 브랜치를 따로 된 폴더에 꺼내 줍니다 — 이력은 하나를 같이 씁니다. 폴더마다 파일이 따로라서 클로드 코드나 Codex 세션 둘이 서로 덮어쓰지 않고 나란히 일할 수 있습니다. 작업을 합친 뒤에는 worktree 를 지웁니다. worktree 마다 의존성은 따로 설치해야 합니다.
더 배우기
병렬
원문 표기 · Parallel
여러 일을 동시에 나란히 진행하기
병렬 작업은 여러 일을 하나씩 차례로 하지 않고 한꺼번에 진행하는 것입니다. AI 에이전트라면 세션이나 서브 에이전트 여럿을 나란히 돌려 각자 자기 일을 맡깁니다. 위험한 점은 둘이 같은 파일을 고치는 것이므로, 저마다 worktree 나 파일을 따로 주고 마지막에 결과를 합칩니다.
더 배우기
GitHub Project
이슈를 카드·표·일정으로 관리하는 GitHub 보드
GitHub Project 는 하나 이상의 저장소의 이슈와 PR 을 보드 하나에 모읍니다. 칸이 있는 칸반 보드, 표, 로드맵으로 볼 수 있고, 우선순위 같은 내 필드를 더할 수 있습니다. gh 명령줄 도구로 항목을 만들고 옮길 수 있어서 AI 에이전트가 대신 보드를 관리합니다.
더 배우기
칸반
원문 표기 · Kanban
할 일 카드를 칸(할 일→진행→끝)으로 옮기는 보드
칸반 보드는 일을 카드로, 단계를 칸으로 보여 줍니다 — 보통 할 일·진행 중·끝. 카드를 다음 칸으로 옮기면 진행 상황이 한눈에 보이고, 진행 중 칸의 카드 수를 제한하면 한꺼번에 너무 많이 벌이지 않게 됩니다. Toyota 공장에서 나온 방법이며 GitHub Project·Trello·Jira 모두 칸반 보기를 줍니다.
더 배우기
Jira
회사에서 많이 쓰는 Atlassian 의 일감 관리 도구
Jira 는 Atlassian 이 만든 유료 웹 서비스로, 보드·스프린트·보고서로 이슈·버그·할 일을 관리합니다. 많은 회사가 GitHub 이슈 대신 Jira 를 씁니다. MCP 서버를 통하면 클로드 코드 같은 AI 에이전트가 일하는 중에 Jira 티켓을 읽고 고칠 수 있습니다.
JetBrains
PyCharm 같은 IDE 를 만드는 회사
JetBrains 는 전문 개발자가 많이 쓰는 IDE 를 만드는 소프트웨어 회사입니다 — Java·Kotlin 용 IntelliJ IDEA, Python 용 PyCharm, JavaScript 용 WebStorm, PHP 용 PhpStorm 등. 화면에 'VS Code·JetBrains'라고 하면 이 편집기들을 뜻합니다. 클로드 코드는 이들용 플러그인이 있고, Android Studio 도 IntelliJ 위에 만들어졌습니다.
더 배우기
IDE
코드 편집·실행·디버깅을 한데 모은 개발 프로그램
IDE(통합 개발 환경)는 코드 편집기, 프로그램 실행, 디버거, 검색, Git, 흔히 터미널까지 한 창에 모은 프로그램입니다. VS Code 는 확장을 더해 IDE 가 되고, JetBrains 제품과 Xcode 는 처음부터 완전한 IDE 입니다. AI 코딩 도구는 IDE 안에서 확장·플러그인으로 돌거나, 옆의 터미널에서 돕니다.
처리기
원문 표기 · Handler
어떤 일이 생기면 실행되도록 걸어 둔 코드
처리기는 한 종류의 사건을 기다렸다가 그 일이 생기면 실행됩니다 — 단추 클릭, 어떤 주소로 온 요청, 파일 저장. 클로드 코드에서 훅의 처리기는 쉘 명령·HTTP 주소·MCP 도구·LLM 프롬프트·서브에이전트가 될 수 있고, 그 순간이 올 때마다 반드시 실행됩니다. 실행할지를 모델이 고르지 않습니다.
글로벌
원문 표기 · Global
이 컴퓨터의 모든 프로젝트에 두루 적용되는 범위
글로벌(전역) 설정·설치는 컴퓨터의 어디서나 통하고, 로컬(프로젝트) 것은 그 프로젝트 폴더 안에서만 통합니다. npx skills add … -g 는 스킬을 글로벌로 설치하고, ~/.claude/CLAUDE.md 는 모든 프로젝트에서 읽는 전역 지시입니다. 같은 것이 두 곳에 다 있으면 어느 쪽이 이기는지 확인합니다 — 스킬은 클로드 코드가 글로벌(개인) 것을 씁니다.
더 배우기
MIT 라이선스
원문 표기 · MIT License
알림만 남기면 자유롭게 쓰는 짧은 오픈소스 라이선스
MIT 라이선스는 저작권 알림과 라이선스 글만 함께 남기면 누구나 소프트웨어를 쓰고, 복사하고, 고치고, 팔고, 나눌 수 있게 합니다. 아무 보증이 없다는 점도 밝힙니다. 짧고 요구하는 것이 적어서 GitHub 에서 가장 흔한 라이선스 가운데 하나입니다. 라이선스 글은 보통 LICENSE 라는 파일에 둡니다.
더 배우기
pdfplumber
PDF 에서 글·표를 뽑아내는 파이썬 라이브러리
pdfplumber 는 PDF 를 열어 쪽마다 글, 위치가 붙은 낱말, 표를 꺼내 줍니다. 진짜 글자가 든 PDF 에서 되고, 스캔한 PDF 는 그림일 뿐이라 OCR 이 필요합니다. 에이전트에게 "pdfplumber 를 쓴다. 스캔한 PDF 만 OCR"이라고 알려 주는 스킬은 선택지 목록 대신 분명한 기본값 하나를 줍니다.
더 배우기
P0 · P1
문제의 급한 정도 — P0 이 가장 급함
팀은 짧은 표시로 문제의 우선순위를 나눕니다. P0 은 '지금 고칠 것' — 서비스가 멈췄거나, 데이터가 사라지거나, 보안 구멍이 있습니다. P1 은 심각해서 곧 고칠 것이고, P2 아래는 기다려도 됩니다. Codex 의 PR 리뷰는 기본으로 P0·P1 문제만 남겨 중요한 것만 보게 합니다.
더 배우기
템플릿
원문 표기 · Template
빈칸만 채우면 되게 미리 만든 틀
템플릿은 빈칸이 있는 미리 만든 틀입니다 — 보고서 목차, 시작용 프로젝트, {name} 을 채우는 메일. 스킬은 assets/ 폴더에 템플릿을 넣어 에이전트가 늘 같은 구조로 결과를 내게 합니다. 채팅 템플릿은 특별한 경우로, 모델이 학습할 때 쓴 역할·메시지의 정확한 배치이며 러너가 이것을 써야 모델이 제대로 답합니다.
TODO
할 일 표시 — 코드에서는 남은 일을 적는 표시
TODO 는 '아직 할 일'이라는 뜻입니다. 개발자는 코드에 # TODO: 빈 입력 처리 같은 주석을 남기고 나중에 grep 으로 찾습니다. 이슈와 보드에서는 TODO 체크리스트가 일 하나를 작은 단계로 나누어 하나씩 체크하게 하고, 진행률도 보여 줍니다. 오래된 TODO 는 쌓이기 쉬우니 중요한 것은 이슈로 만듭니다.
저장소 루트
원문 표기 · Repository root
Git 저장소의 맨 위 폴더
저장소 루트는 Git 으로 관리하는 프로젝트의 맨 위 폴더로, 숨김 폴더 .git 이 들어 있는 곳입니다. 클로드 코드는 시작한 폴더부터 이 루트까지 올라가며 CLAUDE.md 와 .claude/skills 를 찾고, 더 위로는 가지 않습니다. git rev-parse --show-toplevel 이 그 경로를 보여 줍니다.
신원 설정(git config)
커밋마다 남을 이름과 이메일을 GIT 에 알려 주기
커밋에는 누가 만들었는지가 함께 남으므로, GIT 을 설치한 뒤 맨 먼저 git config 로 이름과 이메일을 한 번 알려 줍니다. --global 을 붙이면 이 컴퓨터의 모든 저장소에, 빼면 지금 저장소에만 적용됩니다. git config --list 로 지금 설정을 확인합니다.
더 배우기
강제 push(force push)
원문 표기 · Force push
원격의 이력을 내 이력으로 덮어쓰는 push
원격에 내게 없는 커밋이 있으면 보통 push 는 거절됩니다. git push --force 는 그래도 밀어 넣어 원격 브랜치를 내 것으로 바꾸므로, 남이 올린 커밋이 사라지고 팀원들의 사본과 어긋납니다. 아무도 받아 가지 않은 내 브랜치에서만 쓰고, 마지막 fetch 뒤로 원격이 바뀌었으면 멈추는 --force-with-lease 가 더 안전합니다.
더 배우기
reflog
HEAD 가 지나온 자리 기록 — 잃어버린 커밋을 찾는 곳
git reflog 는 내 저장소에서 HEAD 가 가리켰던 커밋을 최근 것부터 모두 보여 줍니다. reset 이나 rebase 뒤에 어느 브랜치에도 보이지 않게 된 커밋도 여기 남아 있어서, git reset --hard 로 잃은 작업을 찾아 되돌아갈 수 있습니다. 내 컴퓨터에만 남고 오래된 기록은 시간이 지나면(기본 90일) 지워집니다.
더 배우기
reset
지금 브랜치를 앞 커밋으로 되감기
git reset 은 브랜치를 뒤로 옮겨 그 뒤의 커밋이 브랜치에서 빠지게 합니다. --soft 는 그 변경을 스테이징에 남기고, 기본인 --mixed 는 스테이징하지 않은 변경으로 남기고, --hard 는 커밋하지 않은 작업까지 모두 버립니다. 아직 push 하지 않은 커밋에만 쓰고, 공유한 커밋은 git revert 로 되돌립니다.
더 배우기
git add
바뀐 파일을 다음 커밋에 넣으려고 스테이징 영역에 올립니다
git add 는 다음 커밋에 넣을 변경을 골라 스테이징 영역에 올립니다. add 한 것만 커밋되므로, 파일 여러 개를 고쳤어도 커밋 하나에 논리적인 변경 하나만 담을 수 있습니다. git add -p 는 파일의 일부만 고르고, git add . 은 지금 폴더의 변경을 모두 올립니다.
더 배우기
revert
옛 커밋을 거꾸로 되돌리는 새 커밋을 더해 취소하기
git revert 는 앞 커밋과 정반대인 새 커밋을 만들어, 변경은 사라지되 이력에는 두 커밋이 모두 남게 합니다. 이력을 고쳐 쓰지 않으므로 이미 push 해서 남이 받아 간 커밋을 되돌릴 때 안전한 방법입니다. 뒤의 커밋이 같은 줄을 고쳤다면 충돌이 날 수 있습니다.
더 배우기
git status
무엇이 바뀌었고 파일이 세 공간 중 어디에 있는지 보여 줍니다
git status 는 지금 브랜치, 바뀌었지만 스테이징하지 않은 파일, 다음 커밋에 올린 파일, 아직 추적하지 않는 새 파일을 알려 줍니다. 아무것도 바꾸지 않으므로 헷갈릴 때마다 — add 전, commit 전, 위험한 명령 전에 — 돌립니다. 출력에 다음에 칠 명령도 적혀 있습니다.
더 배우기
git log
이력의 커밋을 최근 것부터 차례로 보여 줍니다
git log 는 지금 브랜치의 커밋을 최근 것부터 오래된 것까지, 커밋마다 ID·작성자·날짜·메시지와 함께 보여 줍니다. --oneline 은 커밋마다 한 줄로, --graph 는 브랜치가 갈라지고 합쳐진 모양을 그려 줍니다. 목록이 한 화면을 넘으면 q 로 빠져나옵니다.
더 배우기
restore
커밋하지 않은 변경을 버리고 되돌립니다
git restore 는 파일을 마지막 커밋의 모습으로 되돌려, 커밋하지 않은 수정을 지웁니다. --staged 를 붙이면 스테이징 영역에서만 내리고 수정은 남깁니다. 버린 수정은 GIT 에 저장된 적이 없어 되살릴 수 없으니, 먼저 git status 나 git diff 로 확인합니다.
더 배우기
cherry-pick
다른 브랜치의 커밋 하나만 골라 지금 브랜치로 가져오기
git cherry-pick 은 커밋 하나가 만든 변경을, 그 커밋이 어디에 있든 지금 브랜치에 새 커밋으로 얹습니다. 기능 브랜치의 고침 하나만 지금 출시 브랜치에 필요할 때 씁니다. 가져온 커밋은 새 ID 를 받으므로, 이렇게 많이 가져오면 병합보다 이력을 따라가기 어려워집니다.
더 배우기
stash
하던 작업을 잠시 치워 두었다가 다시 꺼내기
git stash 는 커밋하지 않은 변경을 따로 쌓아 두고 작업 폴더를 깨끗하게 만들어, 급한 버그를 고치러 브랜치를 갈아탈 수 있게 합니다. git stash pop 은 그 변경을 다시 꺼내고 더미에서 지웁니다. GIT 이 아직 추적하지 않는 새 파일은 -u 를 붙여야 함께 치워집니다.
더 배우기
tag
원문 표기 · git tag
v1.0.0 처럼 커밋 하나에 붙이는 고정 이름표
git tag 는 커밋에 이름, 보통 버전 번호를 붙여 출시한 코드를 언제든 정확히 찾게 합니다. 브랜치와 달리 새 커밋을 만들어도 움직이지 않습니다. 설명이 붙는 태그(-a)는 만든 사람·날짜·메시지도 담고, 태그는 따로 push 해야 원격에 올라갑니다.
더 배우기
git init
지금 폴더를 새 GIT 저장소로 만듭니다
git init 은 지금 폴더 안에 숨은 .git 폴더를 만들고, 그때부터 GIT 이 그 폴더의 이력을 기록할 수 있게 합니다. add 와 commit 을 하기 전에는 아무것도 저장되지 않습니다. 프로젝트 폴더에서 실행합니다 — 홈 폴더에서 하면 내 모든 파일을 추적하게 됩니다.
더 배우기
git apply
diff(패치)로 받은 변경을 내 파일에 적용합니다
git apply 는 지울 줄과 더할 줄이 적힌 diff 를 읽어, 커밋하지 않고 작업 폴더의 파일을 그대로 고칩니다. 클라우드의 Codex 처럼 다른 곳에서 만든 변경을 내 사본에 옮길 때 이렇게 합니다. git apply --check 로 패치가 맞는지 먼저 확인합니다.
더 배우기
Git LFS
큰 파일을 저장소 밖에 두는 Git 추가 기능
Git LFS(Large File Storage)는 모델 가중치 같은 큰 파일을 보통의 Git 기록 밖에 둡니다. 저장소에는 작은 포인터 파일만 남고, 실제 파일은 따로 된 저장 공간으로 갑니다. git lfs install 을 한 번 실행한 뒤에는 평소처럼 git add, commit, push 를 씁니다.
더 배우기
가중치·파라미터 자세히 보기
Traceback
오류가 난 자리를 보여 주는 Python 오류 보고
Python 프로그램이 실패하면 traceback 을 출력합니다. 오류에 이르기까지 이어진 함수 호출을 가장 바깥 호출부터 실패한 줄까지 차례로 보여 줍니다. 아래에서부터 읽습니다 — 마지막 줄에 오류 종류와 메시지가 있고, 바로 위 줄들에 파일과 줄 번호가 있습니다.
더 배우기
uv
Python 프로젝트와 패키지를 관리하는 빠른 도구
uv 는 Python 프로젝트를 만들고, 가상 환경을 준비하고, 패키지를 설치하는 도구입니다. pip 와 venv 가 하던 일을 함께 하고 훨씬 빠릅니다. 예를 들어 uv add torch 는 프로젝트에 PyTorch 를 설치합니다.
더 배우기
비동기(async)
원문 표기 · async (asynchronous)
느린 일을 기다리는 동안 다른 일을 하는 방식
비동기 코드는 네트워크 응답을 기다리는 것처럼 느린 일을 시작해 두고, 가만히 멈춰 있는 대신 그 일이 끝날 때까지 다른 일을 처리합니다. 파이썬에서는 async 와 await 로 씁니다. 이렇게 만든 웹 서버는 많은 연결을 한꺼번에 열어 둘 수 있습니다.
더 배우기
.claude/agents/
클로드 코드의 서브 에이전트 폴더
서브 에이전트 하나는 이름·설명·쓸 수 있는 도구·지시를 적은 마크다운 파일 하나입니다. 프로젝트 안의 .claude/agents/ 에 둔 파일은 그 프로젝트 것이라 팀과 함께 커밋할 수 있고, ~/.claude/agents/ 에 둔 파일은 모든 프로젝트에서 나만 씁니다. 클로드 코드는 설명을 읽고 언제 그 서브 에이전트에게 일을 맡길지 정합니다.
더 배우기
~/.claude.json
클로드 코드의 개인 설정 파일
~/.claude.json 은 내 사용자 계정의 클로드 코드 상태를 담습니다 — 환경설정, 로그인 정보, 프로젝트별 자료, local·user 범위로 추가한 MCP 서버. .claude 폴더나 settings.json 과는 다른 파일입니다. 손으로 고칠 때는 조심하고, 되도록 claude mcp add 같은 명령이 고치게 합니다.
더 배우기
mcpServers
MCP 서버 목록과 켜는 방법을 담는 설정 칸
mcpServers 는 ~/.claude.json, 프로젝트의 .mcp.json, 다른 앱의 비슷한 설정 파일에서 MCP 서버 목록을 담는 칸(키)입니다. 항목마다 이름이 있고, 서버를 켜는 명령과 인자 또는 접속할 주소를 적습니다. 이 항목이 어디에 있느냐에 따라 그 서버를 쓸 수 있는 곳이 정해집니다.
더 배우기
.claude/skills/
클로드 코드가 스킬을 찾는 폴더
스킬 하나는 SKILL.md 파일이 든 폴더 하나이며, 클로드 코드는 그 폴더를 여기서 찾습니다. 프로젝트 안의 .claude/skills/ 는 Git 으로 팀과 함께 쓰고, ~/.claude/skills/ 에는 모든 프로젝트에서 쓰는 내 스킬을 둡니다. Claude 는 스킬마다 이름과 설명만 읽어 두었다가 일에 필요할 때 전체 지시를 불러옵니다.
더 배우기
.mcp.json
팀이 함께 쓰는 MCP 서버 목록을 담은 프로젝트 파일
.mcp.json 은 저장소 맨 위에 두는 파일로, 그 프로젝트에서 쓸 MCP 서버를 적습니다. Git 에 커밋하므로 프로젝트를 받은 사람은 모두 같은 서버를 쓰고, 클로드 코드는 처음 쓸 때 승인을 묻습니다. claude mcp add 에 --scope project 를 붙이면 이 파일에 저장됩니다. 비밀 값은 파일이 아니라 환경 변수에 둡니다.
더 배우기
.claude/settings.json
권한 규칙·훅 등을 담는 클로드 코드 프로젝트 설정 파일
.claude/settings.json 은 한 프로젝트에서 함께 쓰는 설정 — 권한 규칙(allow·ask·deny), 훅, 환경 변수 등 — 을 담습니다. 커밋해서 팀 모두가 같은 규칙으로 일합니다. 나만 쓰는 설정은 커밋하지 않는 .claude/settings.local.json 에, 모든 프로젝트에 쓸 설정은 ~/.claude/settings.json 에 둡니다.
더 배우기
@경로
원문 표기 · @path import
CLAUDE.md 에 @경로 를 적어 다른 파일의 내용을 불러오는 문법
CLAUDE.md 에 @docs/architecture.md 같은 줄을 쓰면 그 파일을 불러옵니다 — 내용이 그 자리에 적힌 것처럼 읽힙니다. 흔히 @AGENTS.md 를 적어 다른 에이전트가 읽는 공통 지시를 클로드 코드도 따르게 합니다. 불러온 파일은 세션마다 처음부터 컨텍스트에 실리므로 짧게 둡니다.
더 배우기
CLAUDE.local.md
커밋하지 않는 나만의 클로드 코드 프로젝트 지시 파일
CLAUDE.local.md 는 프로젝트의 CLAUDE.md 옆에 두는 파일로, 나만 쓰는 지시 — 내 로컬 주소, 내 테스트 데이터 — 를 담고 .gitignore 에 넣어 커밋하지 않습니다. 작업 폴더나 그 위 폴더에 CLAUDE.md·.claude/CLAUDE.md·CLAUDE.local.md 가 하나라도 있으면 클로드 코드는 기본으로 AGENTS.md 를 읽지 않습니다(~/.claude/CLAUDE.md 는 세지 않습니다). 그래서 AGENTS.md 를 쓴다면 개인 메모는 ~/.claude/CLAUDE.md 에 두거나, /config 의 Project instructions 를 claude-md-and-agents-md 로 바꿔 둘 다 읽게 합니다.
더 배우기
클립보드
원문 표기 · Clipboard
복사한 것을 잠시 담아 두는 곳
글이나 그림을 복사하면 컴퓨터는 다른 것을 복사할 때까지 그것을 클립보드에 담아 두고, 붙여넣기를 하면 커서 자리에 꺼내 놓습니다. 웹 페이지는 허락을 받아야 클립보드를 읽을 수 있어 브라우저가 붙여넣기 단추를 막기도 합니다. 그때는 칸을 누르고 Ctrl+V(Mac 은 ⌘V)를 누릅니다.
Ctrl+V(⌘V)
원문 표기 · Ctrl+V (⌘V)
복사한 것을 붙여 넣는 단축키
Ctrl+V 는 클립보드에 있는 것을 커서 자리에 붙여 넣습니다. Mac 에서는 같은 일을 ⌘V(Command+V)로 합니다. 복사하는 Ctrl+C 와 짝입니다. 터미널에서는 Ctrl+C 가 실행 중인 명령을 멈추므로, 많은 터미널은 Ctrl+Shift+V 로 붙여 넣습니다.
스크린샷
원문 표기 · Screenshot
지금 화면을 그대로 찍은 그림
스크린샷(캡처)은 화면에 보이는 것을 그림으로 저장한 것입니다. Windows 는 Win+Shift+S 로 고른 부분을 클립보드에 담고, Mac 은 Cmd+Shift+4 로 고른 부분을 파일로 저장합니다(Ctrl 을 더하면 복사).
Ctrl 키
원문 표기 · Ctrl key
다른 키와 함께 눌러 단축키를 만드는 컨트롤 키
Ctrl(컨트롤)은 키보드 왼쪽 아래의 키입니다. 다른 키와 함께 누르면 단축키가 됩니다 — 터미널에서 Ctrl+C 는 명령을 멈춥니다. 맥은 앱 단축키에 Cmd 를 많이 쓰지만, 터미널 단축키는 맥에서도 Ctrl 입니다.
FizzBuzz
수를 세며 Fizz·Buzz·FizzBuzz 를 외치는 유명한 연습 문제
FizzBuzz 는 1부터 차례로 수를 출력하되, 3의 배수에는 Fizz, 5의 배수에는 Buzz, 둘 다의 배수에는 FizzBuzz 를 대신 출력하는 유명한 연습 문제입니다. 반복문, 조건문(if), 나머지 연산자 `%` 를 함께 연습합니다. 3의 배수를 먼저 검사하면 15 에서 Fizz 만 나오는 실수가 흔하니, '둘 다' 경우를 먼저 검사합니다.
더 배우기
TextEdit
macOS 에 기본으로 들어 있는 텍스트 편집기
TextEdit(텍스트 편집기)은 모든 Mac 에 들어 있는 간단한 글 편집기입니다. 기본으로는 서식 있는 글(RTF)로 저장해 보이지 않는 서식이 섞입니다. HTML 이나 코드를 쓰려면 먼저 포맷 → 일반 텍스트로 만들기를 골라, 친 글자만 파일에 들어가게 합니다.
더 배우기
메모장
원문 표기 · Notepad
Windows 에 기본으로 들어 있는 일반 텍스트 편집기
메모장(Notepad)은 Windows 에 들어 있는 간단한 편집기입니다. 서식 없이 글자만 저장하므로 HTML·코드 파일을 쓰기에 알맞습니다. 웹 페이지를 저장할 때는 파일 형식을 "모든 파일"로 골라야 이름 끝에 .txt 가 붙지 않습니다.
더 배우기
os.replace
다 쓴 파일을 한 번에 바꿔 끼우는 파이썬 함수
os.replace(src, dst) 는 파일 src 의 이름을 dst 로 바꾸고, dst 가 이미 있으면 그것을 대신합니다. 같은 드라이브 안에서는 이 교체가 원자적입니다 — 다른 프로그램은 옛 파일이나 새 파일 중 하나만 보고, 반쯤 쓴 파일은 보지 않습니다. 그래서 먼저 임시 파일에 다 쓴 뒤 os.replace 를 부릅니다.
더 배우기