, ,

[어원] run — 달리다를 넘어 “작동하다·진행되다·흐르다”까지

셸 · CLI — run script / test / runtime 중 run 한 단어에 잠깐 멈췄다. 짜증이 아니라 호기심으로. “run the script” / “run the test” 가 “달리다” 와 같은 단어인 게 한 줄로는 안 잡혔다 — runtime / running process 같은 IT 어휘에서 결이 더 멀어진다. 한 번 풀어두면 다음에 같은 장면에서 다시 멈추지 않을 것 같아 메모를 남긴다.

run = 내부 메커니즘이 멈추지 않고 계속 움직인다 — “달리다”뿐 아니라 “진행되다·작동하다·흐르다”까지 아우르는 동사

1. 한눈에 보기

단어 run
발음 /rʌn/
품사 동사 (자동사/타동사), 명사
핵심 뜻 달리다; (내부 메커니즘이) 작동하다; (액체·프로세스가) 흐르다·진행되다
언어 계보 PIE *rei-(흐르다, 달리다) → 게르만어 *rinnan → 고대 영어 rinnan/irnan → 중세 영어 rennen → run

핵심 이미지: “run”의 뿌리는 “멈추지 않고 계속 흐르는 것”입니다. 강물이 흐르듯(river와 같은 PIE 어원), 엔진이 돌아가듯, 프로세스가 실행 중이듯 — 내부 메커니즘이 지속적으로 움직이는 상태가 run의 본질입니다.

2. 어원 분해

층위 형태 의미
PIE *rei- 흐르다, 달리다 (to flow, to run)
게르만어 *rinnan 흐르다, 달리다
고대 영어 rinnan / irnan 달리다, 흐르다
고대 노르드어 rinna 흐르다 (게르만어 강화)
중세 영어 rennen / runnen 달리다, 움직이다
현대 영어 run 달리다 → 작동하다 → 진행되다 → 흐르다

같은 PIE 어원 *rei-에서: river(강), Rhine(라인강), rinse(헹구다) — 모두 “흐름”이 핵심입니다.

3. 의미 축 — 작동하다 · 진행되다 · 흐르다

run은 “달리다” 외에 세 가지 의미 축이 IT/개발 맥락에서 특히 중요합니다.

의미 축 예문 IT/개발 맥락
작동하다 (operate) The server is running. 서버·컨테이너·프로세스가 실행 중인 상태
진행되다 (proceed) The migration is running smoothly. 배치 작업·마이그레이션·파이프라인이 진행 중
흐르다 (flow) Logs run to stdout. 데이터·로그·트래픽이 특정 방향으로 흐름
// run = 내부 메커니즘이 계속 움직임
server.Run(":8080")          // 서버가 작동하다 (blocking, keeps running)
go worker.Run(ctx)           // 고루틴으로 계속 실행
cmd.Run()                    // 명령이 완료될 때까지 진행
runtime.GOOS                 // 실행 환경 (run + time)

// 상태 표현
if container.IsRunning() { ... }   // 컨테이너가 실행 중인가
longRunningJob := job.Start()      // 오래 지속되는 작업

4. run out of — 구동사 분석 (주의)

IT에서 자주 쓰는 run out of memory, run out of disk space. 여기서 문장 구조를 잘못 읽으면 의미가 달라집니다.

잘못된 분석 vs 올바른 분석

분석 문제
❌ 잘못된 분석 run + [out of memory]
“out of”를 복합 전치사로 묶음
“out of”는 “~이 없는 상태로”로 해석 → run의 의미가 불분명해짐
✅ 올바른 분석 [run out] + [of memory]
“run out”이 구동사, “of”가 목적어를 연결하는 전치사
run out = “고갈되다” (완전히 소진되다), of memory = “메모리가”

핵심 포인트: run out은 하나의 구동사(phrasal verb)입니다. out은 부사로 run에 붙어 “완전히 밖으로 빠져나가다 → 소진되다”의 의미를 만들고, of는 그 뒤에 대상을 연결하는 별도의 전치사입니다.

// run out = 고갈되다 (구동사)
// of + [대상] = 무엇이 고갈됐는지

The worker pool ran out of goroutines.
//  [ran out] [of goroutines]
//  고갈됐다   고루틴이

The cache ran out of memory and started evicting entries.
//  [ran out] [of memory]
//  고갈됐다   메모리가

We're running out of IPv4 addresses.
//  [running out] [of IPv4 addresses]
//  고갈되고 있다  IPv4 주소가

비교: “out of”가 진짜 복합 전치사인 경우

// out of = "~의 밖에서" (복합 전치사로 쓰이는 경우)
out of scope          // 범위 밖에
out of bounds         // 경계 밖에
The request is out of range.  // 요청이 범위 밖이다

// 이때는 동사 없이 out of가 상태를 직접 설명
// vs run out of 는 run out(동사구) + of(전치사)

5. run vs go — 내부 메커니즘 vs 이동하며 지나감

IT 문서에서 run과 go는 자주 혼용되지만, 뉘앙스 차이가 있습니다.

run go
핵심 이미지 내부 메커니즘이 계속 움직임 이동하면서 지나감, 흘러감
어원 뉘앙스 엔진처럼 “돌아가는” 상태 한 지점에서 다른 지점으로 “흘러가는” 과정
상태 강조 현재 작동 중인 상태 (is running) 진행의 흐름·방향 (is going)
완료 의식 무한히 지속 가능 (keep running) 목적지가 있음 (going somewhere)

IT/개발 맥락 비교

표현 어느 단어가 자연스러운가
The server is running. 서버가 현재 작동 중 ✅ run — 내부 프로세스가 돌고 있음
The server is going. (거의 안 씀) ❌ 어색 — 서버는 어딘가로 “이동”하지 않음
The deployment is going well. 배포가 잘 진행되고 있다 ✅ go — 배포 과정이 순조롭게 “흘러가는” 중
The deployment is running well. (어색) △ 가능하나 “작동”보다는 “진행”에 go가 더 자연스러움
Run the tests. 테스트를 실행해라 ✅ run — 테스트 메커니즘을 구동시킴
Go live. 서비스를 시작하다, 라이브로 전환 ✅ go — “라이브 상태로 이동(전환)”의 개념
long-running process 오래 실행되는 프로세스 ✅ run — 프로세스가 장시간 작동 중
Things are going smoothly. 일이 순조롭게 진행되고 있다 ✅ go — 상황의 흐름·방향
// run: 메커니즘이 "돌아가고 있다" — 상태(state)
server.Run(ctx)               // 서버를 구동 (내부 루프가 계속 실행)
runtime.NumGoroutine()        // 현재 실행 중인 고루틴 수
isRunning := job.IsRunning()  // 작업이 현재 작동 중인가?

// go: 흘러감·전환 — 방향/과정(process/direction)
// Go 언어 자체도 "빠르게 진행되는" 이미지
go func() { ... }()           // 고루틴 시작 (새로운 흐름이 분기)
// "go live", "go to production" — 상태 전환의 이동

한 문장 정리: run은 “지금 이 메커니즘이 돌고 있다”는 상태, go는 “이 과정이 어느 방향으로 흘러가고 있다”는 흐름. 서버는 run하고, 배포는 go well하고, 서비스는 go live합니다.

6. 예문 (IT/Dev 맥락)

The background worker has been running for 3 hours without interruption.

백그라운드 워커가 3시간째 중단 없이 실행되고 있습니다.

We ran out of file descriptors — the process couldn’t open new connections.

파일 디스크립터가 고갈됐습니다 — 프로세스가 새 연결을 열 수 없었습니다.

→ [ran out] [of file descriptors] : run out이 구동사

Run the migration script in a dry-run mode first.

마이그레이션 스크립트를 먼저 dry-run 모드로 실행해보세요.

The CI pipeline is going well — all checks passed so far.

CI 파이프라인이 순조롭게 진행 중입니다 — 지금까지 모든 체크가 통과됐습니다.

The container runs on port 8080 and exposes a health-check endpoint.

컨테이너는 포트 8080에서 실행되며 헬스체크 엔드포인트를 노출합니다.

We scheduled a long-running query to run every midnight.

오래 실행되는 쿼리를 매일 자정에 실행되도록 스케줄링했습니다.

7. 파생어 & 관련어

단어 구조 IT 맥락
runtime run + time 실행 시간, 런타임 환경 runtime error, Go runtime, JVM runtime
runnable run + -able 실행 가능한 Runnable interface (Java), runnable task
runner run + -er 실행자, 러너 GitHub Actions runner, test runner, CI runner
dry run dry + run 모의 실행 실제 변경 없이 테스트 실행 (–dry-run)
rundown run + down 요약, 진행 상황 정리 quick rundown of what happened
run out of [run out] + of 고갈되다 run out of memory / disk / connections
overrun over + run 초과하다, 넘치다 buffer overrun (보안 취약점)
river PIE *rei- 계열 같은 어원 — “흐름”의 근원

한 줄 기억법: run = 강물처럼 멈추지 않고 계속 흐르는 내부 메커니즘 — river, Rhine과 같은 어원. 서버는 run하고, 메모리는 run out되고, 배포 과정은 go well합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다