,

개발 문서에서 매일 보는 라틴어 접두사 7개 한 페이지 — re·pre·pro·trans·per·un·e/ex 완전 정리

이 글의 위치: 영어(English) → 어원(Etymology) → 접두사(Prefix) / 동시 분류: 기술 블로그 → Backend
시리즈 hub: 본 글은 기존 6편의 짧은 접두사 노트(re-, pre-, pro-, trans-, per-, un-) 를 하나의 학습 단위로 통합하여 다시 정리한 long-form 글입니다. 원본 6편은 본 글로 영구 301 리다이렉트되었습니다.

검증: 모든 어원은 etymonline.com · Oxford English Dictionary · Merriam-Webster 로 교차검증한 결과만 정리했습니다. 작성 방식·검증 절차는 Editorial Policy 참조.


왜 이 7개를 한 페이지로 묶는가

접두사 노트를 처음 쓸 때는 하나씩 따로 썼다. 코드 리뷰에서 re- 를 다시 만나면 re- 노트를 쓰고, 며칠 뒤 DB 문서에서 trans- 를 만나면 또 한 편을 썼다. 그러다 노트가 여섯 편쯤 쌓였을 때 한 가지가 보였다 — 이 접두사들은 서로 다른 동네 단어가 아니라, 내가 매일 두드리는 함수명·설정키·아키텍처 용어의 앞머리 라는 것이다.

생각해 보면 백엔드 코드의 동사 절반은 이 6개로 시작한다.

  • re- : retry, reconcile, refresh, reload, replicate — "한 번 한 걸 다시 한다"
  • pre- : preload, prefetch, precompile, preallocate — "필요해지기 전에 미리 해둔다"
  • pro- : promote, provision, produce, proxy — "앞으로 밀어내거나 미리 준비한다"
  • trans- : transform, transaction, translate, transfer, transport — "경계를 건너간다"
  • per- : persist, permission, performance, percent — "끝까지 통과시킨다"
  • un- : undeploy, unmount, unset, unsubscribe, unauthorized — "되돌리거나 부정한다"

한 번 묶고 나니 외울 게 줄었다. 단어를 통째로 외우는 대신, 앞머리 한 조각의 방향감만 잡으면 처음 보는 단어도 대충 뜻이 짚인다. reconcile 을 몰라도 re- 가 "다시" 라는 걸 알면 "상태를 다시 맞춘다" 가 떠오르고, transpile 을 처음 봐도 trans- 가 "건너 변환" 이라는 걸 알면 "한 형태에서 다른 형태로 옮긴다" 가 잡힌다. 영어 단어를 한국어 뜻으로 1:1 대응시켜 외우는 방식이 잘 안 먹히는 이유도 여기 있다. 개발 문서의 단어들은 끝없이 새로 만들어지지만(누군가 어제 reprovision 이라는 동사를 처음 썼을 수도 있다), 형태소의 수는 유한하다. 그래서 어근·접두사 단위로 끊어 읽는 습관이 결국 더 적은 노력으로 더 넓은 어휘를 커버한다.

이 글은 그 6개를 한 페이지에 모아, 어원 → 의미 분류 → 개발 맥락 순으로 분해한다. 두 종류의 독자를 동시에 겨냥했다. 영어 어휘를 형태소 단위로 이해하고 싶은 사람에게는 6개 접두사의 의미 갈래와 라틴어/게르만어 출신을, 개발 문서를 매일 읽는 사람에게는 그 접두사가 실제로 어떤 함수명·설정키·아키텍처 용어로 코드에 박히는지를 보여준다.


한 장 요약

접두사 핵심 의미 라틴어 유래 개발에서 자주 보는 단어
re- 다시 / 뒤로 라틴어 re- (다시, 반대로) retry, reconcile, reload, replicate
pre- 미리 / 앞에 (시간) 라틴어 prae- (앞에, 미리) preload, prefetch, precompile
pro- 앞으로 / 미리 / 대신에 라틴어 pro (앞에, 대신에) ← PIE *pro promote, provision, proxy
trans- 가로질러 / 넘어서 / 변환 라틴어 trans (건너서) ← PIE *tere- transform, transaction, transfer
per- 통하여 / 완전히 / 끝까지 라틴어 per (통하여, 완전히) ← PIE *per- persist, permission, performance
un- 부정(not) / 되돌림(reverse) 고대 영어 un- (게르만어 계열) unmount, undeploy, unauthorized
e-/ex- 밖으로 / 완전히 라틴어 ex (밖으로) export, extract, exception, execute

여기서 미리 짚을 점 하나. 7개 중 un- 만 게르만어 계열 이고 나머지 5개는 라틴어다. 그래서 un- 은 게르만어 단어(do, lock, happy)에 붙고, 라틴어 부정은 in-/im-/il-/ir-(impossible, invalid)을 쓴다. 이 분할은 영어가 라틴어와 고대 영어를 둘 다 흡수한 흔적이다.

각 항목은 의미 분류 → 대표 단어 표 → 개발 맥락 한 단락 순으로 본다.


1. re- — "다시, 뒤로"

라틴어 re- 에서 왔고, 영어 접두사 중 사용 빈도 1위 다. 의미는 두 갈래로 갈린다.

  • A. 다시 (again) — "한 번 했던 것을 다시 한다"
  • B. 뒤로 (back) — "원래 자리로 돌아간다, 반대 방향으로 움직인다"
단어 분해 유형
rebuild re(다시) + build(짓다) 재건하다 A. 다시
restart re(다시) + start(시작) 재시작하다 A. 다시
review re(다시) + view(보다) 검토하다 A. 다시
return re(뒤로) + turn(돌다) 돌아오다 B. 뒤로
reflect re(뒤로) + flect(굽다) 반사하다, 반성하다 B. 뒤로
reverse re(뒤로) + verse(돌다) 뒤집다, 반전 B. 뒤로
respond re(뒤로) + spond(약속하다) 응답하다 (약속을 돌려주다) B. 뒤로

개발 맥락: 분산 시스템 코드를 열면 re- 동사가 줄줄이 나온다. Kubernetes 컨트롤러는 실제 상태와 원하는 상태를 끊임없이 reconcile 하고, SDK 는 5xx 응답에 대해 exponential backoff 로 요청을 retry 한다. DB 페일오버 후에는 유휴 커넥션을 reset 하고 새 primary 로 reconnect 한다. retry / reconcile / replicate 는 결국 같은 마인드셋이다 — "한 번 시도한 걸 다시 한다" 는 백엔드 사고방식 그 자체. 컨트롤러 패턴이 "선언적" 이라고 불리는 이유도 여기 있다. 명령형 코드라면 "이걸 하고, 그다음 저걸 하라" 고 한 번 지시하고 끝이지만, reconcile 루프는 원하는 상태에 도달할 때까지 같은 판단을 계속 다시 내린다. re- 가 코드 곳곳에 박히는 건 인프라의 실패가 일상이라는 사실의 언어적 흔적인 셈이다.

흥미로운 건 respond 처럼 의미가 "뒤로(back)" 인 단어도 같은 접두사라는 점이다. 응답이란 결국 요청에 대해 "돌려주는" 행위라, re- 의 "뒤로" 갈래에 자연스럽게 들어맞는다. return(값을 호출자에게 돌려줌), revert(되돌림), redirect(방향을 되돌려 보냄)도 같은 "뒤로" 갈래다. 그래서 re- 가 보이면 일단 "다시인가, 뒤로인가" 두 갈래 중 어느 쪽인지만 가늠하면 뜻의 절반은 잡힌다.


2. pre- — "미리, 앞에" (시간이 핵심)

라틴어 prae- 에서 왔다. pre- 의 무게중심은 시간 이다 — "어떤 일이 일어나기 전에".

  • A. 시간적: 미리 (before in time) — "아직 안 일어난 것"
  • B. 공간·순서적: 앞에 (in front of)prefix(앞에 붙이는 것), preface(본문 앞 말)
단어 분해 유형
preview pre(미리) + view(보다) 미리 보기 A. 시간
predict pre(미리) + dict(말하다) 예측하다 (미리 말하다) A. 시간
prepare pre(미리) + pare(갖추다) 준비하다 A. 시간
prevent pre(미리) + vent(오다) 예방하다 (미리 와서 막다) A. 시간
prerequisite pre(미리) + requisite(필수의) 전제 조건 A. 시간
prefix pre(앞에) + fix(붙이다) 접두사 (앞에 붙이는 것) B. 위치
precede pre(앞에) + cede(가다) 앞서다, 선행하다 B. 순서

개발 맥락: pre- 는 "실제로 필요해지기 전에 미리 해둔다" 는 시간적 우선을 가리킬 때 코드에 박힌다. 배포 파이프라인은 멀티아키 해소에서 막히지 않도록 컨테이너 이미지를 prebuild 하고, API 서버는 세션 시작 시점에 유저 메타데이터를 prefetch 해서 지연에 민감한 화면의 round trip 을 줄인다. 캐시 워밍, 빌드 캐시, JIT 컴파일러의 precompiled bytecode — 전부 "나중을 위해 미리" 라는 같은 사고방식이다. 성능 최적화의 상당수가 결국 pre- 단어로 표현되는 것도 그래서다. 비용이 큰 작업을 사용자가 기다리는 순간이 아니라 그 전 한가한 시점으로 옮겨놓는 것 이 최적화의 본질이고, 그 "옮겨놓음" 을 언어가 pre- 로 가리킨다.

반대 접두사 post- 와 짝지어 두면 preProcess ↔ postProcess, prebuild ↔ postbuild 처럼 시간선이 깔끔하게 잡힌다. 미들웨어나 훅을 설계할 때도 preHandle / postHandle 처럼 이 짝을 그대로 가져다 쓰는 경우가 많다. 바로 다음에 볼 pro- 와 헷갈리기 쉬운데 — 둘 다 "미리" 로 번역될 때가 있다 — 둘의 분리는 마지막 "혼동 주의" 표에서 정리한다.


3. pro- — "앞으로, 미리, 대신에"

라틴어 pro(앞에, 대신에), 그리스어 pro(앞에) 모두 PIE *pro(앞으로)에서 왔다. 의미가 pre- 보다 넓어서 네 갈래로 갈린다.

의미 핵심 이미지 대표 단어
앞에 (before, forward) 시간·공간적으로 앞 proceed, progress, project
미리 (beforehand) 사전에 준비 provision, propose, protect
대신에 (in place of) 대리·대체 pronoun, proxy, proclaim
찬성하여 (in favor of) 지지·긍정 pro-active, pro-democracy
단어 분해 pro- 의미
progress pro + gress(걷다) 진행, 발전 앞으로 걸어감
project pro + ject(던지다) 투영하다 앞으로 던짐
provision pro + vis(보다) + ion 공급, 대비 미리 앞을 봄
promote pro + mote(움직이다) 승진·홍보하다 앞으로 밀어냄
proxy (procuracy 축약) 대리 대신 행동
produce pro + duce(이끌다) 생산하다 앞으로 이끌어냄

개발 맥락: pro- 는 한 단어 안에서 "앞" 의 세 가지 변주를 다 보여준다. 릴리스 파이프라인에서 staging 빌드를 prod 로 promote 할 때의 pro- 는 "앞으로 밀어냄" 이고, Terraform 이나 StorageClass.provisioner 가 자원을 provision 할 때의 pro- 는 "미리 앞을 봄(pro + vis = 보다)" 이다. 그리고 reverse proxypro- 는 "대신에" — 클라이언트를 대신해 요청을 받아주는 대리자다. 어근 vis(보다) 가 provision 안에 살아 있다는 걸 알면, 이 단어가 왜 "미래에 필요할 걸 미리 보고 준비한다" 는 어감을 갖는지 자연스럽게 잡힌다. 참고로 같은 vis 어근은 vision, revise, supervise 와 공유된다.


4. trans- — "가로질러, 넘어서, 변환"

라틴어 trans(건너서, ~너머), PIE *tere-(통과하다, 넘다)에서 왔다. IT·과학·의학 분야에서 특히 핵심인 접두사다.

의미 핵심 이미지 대표 단어
A. 가로질러, 이동 A에서 B로 건너감 transfer, transport, transmit
B. 완전히 변환 형태/상태가 바뀜 transform, translate
C. 넘어서, 관통 경계를 초과·통과 transaction, transparent, traverse
단어 분해 IT 맥락
transaction trans + act(행위) + ion 트랜잭션 DB 원자적 연산 단위 — commit/rollback
transform trans + form(형태) 변환하다 ETL, 객체 변환 (DTO → Entity)
transfer trans + fer(나르다) 전송·이체하다 파일 전송, 소유권 이전
transmit trans + mit(보내다) 송신하다 네트워크 패킷 전송
transport trans + port(나르다) 운반·전송 TCP transport layer, gRPC transport
translate trans + late(옮기다) 번역·변환하다 트랜스파일 (TypeScript → JS)
traverse trans + verse(돌다) 가로지르다, 순회하다 트리/그래프 순회 (DFS/BFS)

개발 맥락: trans- 가 붙으면 "경계를 넘는 어떤 행위" 가 있다고 보면 거의 맞다. 데이터 처리에서는 transform(ETL 의 T)·translate(트랜스파일)·transcode 가 "한 형태를 다른 형태로 완전히 바꾸는" B 갈래이고, 네트워크에서는 transfer·transport·transmit 가 "A 에서 B 로 보내는" A 갈래다. gRPC 의 "transport" 추상화나 OSI 의 "transport layer" 가 같은 단어를 쓰는 것도 이 "건너 나르다(port = 나르다)" 어근 때문이다.

가장 헷갈리는 건 transaction 이다 — "두 당사자 사이(inter-)" 처럼 보이지만, 어원적으로는 "행위가 경계를 완전히 통과해 완료되어야 한다" 는 의미라 trans- 가 맞다. DB 트랜잭션의 원자성(commit 아니면 rollback, 중간은 없음)이 바로 이 "건너편까지 완료" 의 어감과 정확히 맞물린다. 절반만 건너간 상태는 트랜잭션이 아니라 깨진 상태다 — 그래서 trans- 의 "완전히 통과" 가 ACID 의 A(원자성)와 정확히 같은 말을 하고 있는 셈이다. inter- 가 A ↔ B 쌍방향(interface, interact)이라면, trans- 는 A → B 단방향 통과라는 점에서 갈린다.


5. per- — "통하여, 완전히, 끝까지"

라틴어 per(통하여, 완전히), PIE *per-(앞으로, 통과해서)에서 왔다. 백엔드 문서에서 하루에도 수십 번 보는데 정작 같은 뿌리인 줄 모르고 지나치기 쉬운 접두사다.

의미 핵심 이미지 대표 단어
A. 완전히, 철저히 끝까지 해냄 perfect, permanent, persist
B. 통하여, 관통 처음부터 끝까지 통과 perform, pervade, perceive
C. 각각 (단위) 하나하나마다 per capita, percent
단어 분해 IT 맥락
persist per + sist(서다) 지속·저장되다 "데이터를 persist 한다" (DB 저장)
persistent per + sist(서다) + ent 영속하는 persistent storage, persistent connection
permission per + miss(보내다) + ion 권한, 허가 파일 권한(chmod), API 접근 제어
performance per + form(형태) + ance 성능, 수행 응답속도·처리량 — performance test
permanent per + man(머물다) + ent 영구적인 permanent redirect (301)
percent per + cent(100) 백분율 에러율, CPU 사용률 표기

개발 맥락: per- 의 핵심은 "끝까지 통과" 다. persistper + sist(서다) — "끝까지 서 있음" 이라, 프로세스가 죽어도 데이터가 남는 영속성과 정확히 맞는다. persistent storagepersistent connection 이 같은 어근인 것도 이 때문이다. 이 글의 통합 안내에 적힌 permanent redirect(301) 역시 per + man(머물다) 으로 "끝까지 머무는" 리다이렉트라는 뜻이다 — 우연찮게도 이 글의 원본 6편이 본 글로 받는 게 바로 그 301 이다. permissionper 는 "완전히 통과시켜 보냄(miss = 보내다)" 이고, performance 는 "끝까지 수행함" 이다. per- 가 보이면 "철저히·완전히 뭔가가 끝까지 이루어진다" 는 이미지를 떠올리면 된다.


6. un- — "부정(not), 되돌림(reverse)"

여기서만 분위기가 바뀐다. un- 은 앞의 다섯과 달리 라틴어가 아니라 고대 영어(게르만어 계열) 다. 영어 접두사 중 사용 빈도 2위 이고, 의미는 붙는 품사에 따라 둘로 갈린다.

  • A. 부정 (not) — 형용사/명사 앞: unhappy(행복하지 않은), unknown(알려지지 않은)
  • B. 반대 동작 (reverse) — 동사 앞: undo(취소), unlock(잠금 해제)
단어 분해 유형
unknown un(아닌) + known(알려진) 알려지지 않은 A. 부정
uncertain un(아닌) + certain(확실한) 불확실한 A. 부정
undo un(되돌리다) + do(하다) 취소하다 B. 반대
unlock un(되돌리다) + lock(잠그다) 잠금 해제하다 B. 반대
unload un(되돌리다) + load(싣다) 짐을 내리다 B. 반대
unwrap un(되돌리다) + wrap(싸다) 포장을 풀다 B. 반대

개발 맥락: 백엔드 에러 메시지의 절반은 un- 으로 시작한다고 해도 과언이 아니다. HTTP 401 Unauthorized(토큰 만료), 네트워크 파티션 후 unreachable 해진 pod, 무한히 쌓이는 unbounded 큐 — 모두 "expected state 가 아닌 상태" 를 가리키는 A 갈래(부정)다. 정확히 분석하면 un- 은 "something 이 기대된 상태가 아니다" 를 가리키는 negation prefix라, 장애·예외를 기술하는 어휘와 궁합이 좋다.

반대로 동사에 붙는 B 갈래(되돌림)는 작업의 취소를 표현한다: gitundo·untracked, unmount(마운트 해제), unsubscribe(구독 취소), unset(설정 제거). 리소스를 잡는 동사와 푸는 동사가 mount/unmount, subscribe/unsubscribe, deploy/undeploy 처럼 un- 한 글자로 깔끔하게 짝지어지는 게 이 갈래의 특징이다.

여기서 re- 와의 차이가 중요하다 — re- 는 "같은 행위를 한 번 더"(rebuild)이고, un- 은 "했던 것을 취소"(unbuild/undeploy)다. 같은 "되돌림" 처럼 보여도 re- 는 반복, un- 은 무효화라는 점에서 결이 갈린다. 그리고 un- 만 게르만어 출신이라, 라틴어 단어에는 잘 안 붙는다 — invalid(O) / ~~unvalid~~(X)처럼 라틴 어근에는 in- 이 자연스럽다.


7. e-/ex- — "밖으로(out), 바깥쪽으로, 완전히"

라틴어 ex(밖으로)에서 왔다. 자음 앞에서는 흔히 e- 로 줄고(emit, eject), 모음·일부 자음 앞에서는 ex- 로 남는다(export, extract). 백엔드에서 "안에 있던 것을 밖으로 꺼내거나, 끝까지 완료한다"는 동작 어휘의 절반이 이 접두사다.

  • A. 밖으로 (out)export(밖으로 내보내다), extract(끄집어내다), exit(나가다)
  • B. 완전히 (완료·강조)execute(끝까지 실행), expire(완전히 만료), expand(끝까지 펼치다)
단어 분해 유형
export ex(밖으로) + port(나르다) 내보내다 A. 밖으로
extract ex(밖으로) + tract(끌다) 추출하다 A. 밖으로
exception ex(밖으로) + cept(잡다) + ion 예외(정상 흐름 밖) A. 밖으로
external ex(밖) + tern + al 외부의 A. 밖으로
execute ex(완전히) + sequ(따르다) 끝까지 실행하다 B. 완전히
expire ex(완전히) + spire(숨쉬다) 만료되다 B. 완전히
emit e(밖으로) + mit(보내다) 방출하다(이벤트) A. 밖으로

개발 맥락: exception 이 왜 "예외"인지 어원으로 보면 명확하다 — 정상 흐름 "밖으로(ex)" 잡혀(cept) 나간 제어 흐름이다. 이벤트 기반 코드의 emit, 데이터 파이프라인의 extract(ETL의 E), 토큰·세션의 expire, 프로세스의 execute/exit 까지 — "안에서 밖으로" 또는 "끝까지 완료"라는 한 방향이 공통이다. 반대 방향(안으로)은 in-/im-(import, inject, insert)이라, export↔import·emit↔inject 처럼 짝으로 외워두면 코드 읽는 속도가 붙는다.


혼동 주의

비슷해 보이는 접두사들을 한 표에 모았다. 실무에서 가장 자주 섞이는 쌍이 pre- vs pro- vs per-(라틴어 p-삼형제)와 re- vs un- vs de-(되돌림 계열)다.

라틴어 p- 삼형제: pre / pro / per

접두사 핵심 의미 구분 포인트
pre- 이전에, 미리 (before) preview, preload 시간 — 순수하게 "그 시점 이전"
pro- 앞으로, 대신에 (forward/for) proceed, promote 방향 — "앞으로 나아감"
per- 통하여, 완전히 (through) persist, perform 철저함 — "끝까지 통과"

pre-pro- 는 둘 다 "미리" 로 번역될 때가 있어 헷갈리는데, pre- 는 "아직 안 일어난 시점" 을, pro- 는 "앞으로 나아가는 방향성" 을 강조한다. preview(미리 봄) vs progress(앞으로 나아감)로 기억하면 갈린다.

되돌림·부정 계열: re / un / de / in

접두사 의미 유래 구분 포인트
re- 다시 / 뒤로 라틴어 rebuild, return "반복" 또는 "되돌림"
un- 부정 / 반대 게르만어 undo, unlock 게르만어 단어에 붙음 (했던 걸 취소)
de- 아래로 / 제거 라틴어 decrease, destroy 내려가거나 없앰
in-/im- 부정 라틴어 invalid, impossible 라틴어 단어에 붙는 부정

핵심 한 줄: rebuild(다시 짓다) vs unbuild(해체하다) — re- 는 "한 번 더", un- 은 "했던 것을 취소". 그리고 부정을 쓸 때 unhappy(O) / ~~inhappy~~(X), impossible(O) / ~~unpossible~~(X) 처럼, 단어의 어원이 게르만어냐 라틴어냐에 따라 붙는 접두사가 갈린다.


한 줄로 묶으면

6개 접두사를 한 문장씩으로 압축하면 이렇다.

  • re- = 한 번 더, 또는 뒤로 (retry, reconcile)
  • pre- = 그 시점 이전에 미리 (preload, prefetch)
  • pro- = 앞으로 / 대신에 (promote, proxy)
  • trans- = 경계를 건너 변환 (transform, transaction)
  • per- = 끝까지 완전히 통과 (persist, performance)
  • un- = 부정 또는 되돌림 (unauthorized, unmount)

단어를 통째로 외우는 대신, 앞머리 한 조각의 방향감만 잡으면 처음 보는 함수명·설정키도 의미가 80% 짚인다. re/pre/pro/trans/per 5개가 라틴어, un- 하나가 게르만어라는 출신 차이까지 기억해 두면 부정 접두사를 고를 때(un- vs in-)도 덜 헷갈린다.

다음 글에선 -tion / -sion(행위 → 결과 명사화) 같은 접미사 가족을 같은 방식으로 묶어 보려 한다.


함께 읽으면 좋은 어원 허브

같은 시리즈에서 형태소 단위로 개발 영어를 분해한 다른 글이다.


참고


이 글의 개정 이력

  • 2026-06-17 (발행일) — 기존 접두사 노트 6편(re·pre·pro·trans·per·un)을 한 페이지로 통합·재작성. 원본 6편은 본 글로 301. AdSense Low value content 정비 Phase 2 통합 작업.

답글 남기기

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