Transformer가 뭔지 진짜 이해하고 싶은 분께

📍 AI 공부 지도 — 5/29편
이 글은 AI의 기초부터 Meta-Harness·응용 비교까지 순서대로 읽는 29편 시리즈의 5편입니다.
📚 전체 지도 보기
← 이전 편: F1. LLM이 뭔지 · 다음 편: F3. Encoder/Decoder

Transformer가 뭔지 진짜 이해하고 싶은 분께

0. 들어가기 전에

이 글은 F1. LLM이 뭔지 를 읽으신 분 기준입니다.

“LLM은 다음 토큰 예측기” 라는 감이 있으면, 이 글이 부드럽게 읽혀요.

처음이시면 앞 편부터 가볍게 보고 오시면 좋습니다.


1. “Transformer”라는 말 앞에서 자꾸 얼버무리는 이유

ChatGPT, Claude, Gemini 다 Transformer 기반이라는 말, 한 번쯤 들으셨을 겁니다.

근데 “Transformer가 뭐예요?” 하면 설명하는 사람이 갑자기 말이 꼬여요.

  • “어… 그 attention이라는 게 있는데…”
  • “예전에 RNN이라는 게 있었고, 그게 한계가 있었고…”
  • “Query, Key, Value가 있고…”
  • “병렬로 처리하고…”

듣다 보면 용어만 나열되고 그림은 안 그려집니다.

이 글은 그 그림 하나를 그리는 게 목표예요.

한 문장으로 먼저 박아놓을게요.

Transformer는 “책 한 페이지를 통째로 펼쳐놓고, 각 단어가 다른 단어 어디를 얼마나 봐야 하는지를 한꺼번에 계산하는 구조”입니다.

이 한 문장을 끝까지 풀어 드리려고 합니다.


2. 왜 나왔나 — RNN이라는 놈의 답답함부터

Transformer 이전엔 RNN(Recurrent Neural Network) 이라는 구조가 주류였어요.

RNN은 문장을 이렇게 읽습니다.

“오늘” → 기억 업데이트
“날씨” → 기억 업데이트
“가” → 기억 업데이트
“참” → 기억 업데이트
“좋” → 기억 업데이트
“네” → 기억 업데이트

한 단어씩 차례로 받으면서, “지금까지 읽은 걸 압축한 상태값” 하나를 계속 업데이트해 나갑니다.

비유하면 이런 느낌이에요.

어두운 방에서 누가 문장을 한 글자씩 귀에 속삭여 주는데,
당신은 종이를 못 보고 머릿속으로만 문장을 재구성해야 하는 상황.

한두 글자 전 건 잘 기억합니다. 근데 문장이 길어지면:

  • 앞쪽 단어를 까먹고
  • 중간쯤에서 헷갈리고
  • 뒤에 가선 뜬금없는 답을 합니다

RNN의 근본 약점이 이거예요.

  • 앞 내용을 “하나의 상태값”으로 쥐어짜서 가지고 가야 함
  • 그래서 긴 문맥에서 앞의 중요한 정보가 흐려짐
  • 그리고 단어를 꼭 순서대로만 처리해야 함 (앞 단어 처리가 끝나야 다음 단어 처리 시작)

두 번째 약점은 실무적으로 더 치명적이었어요.

순서대로만 돌릴 수 있으니까, GPU를 아무리 많이 써도 병렬화가 어렵습니다.

GPU가 수천 개 있어도 RNN은 한 글자씩 차례로 읽어야 돼요. 학습이 느려집니다. 정말 느려요.

그래서 RNN은 어느 순간부터 긴 문장을 제대로 못 다루는 병목 이 돼 버렸습니다.

이 문제를 풀려고 LSTM, GRU 같은 변종들이 나왔지만, 근본 문제는 그대로였어요.

“순서대로 읽어야 한다” 는 전제 자체를 깨야 했습니다.


3. Transformer의 발상: “순서대로 읽지 말고, 한꺼번에 보자”

RNN의 순차 처리 vs Transformer의 병렬 처리
SEQUENTIAL
📖 RNN
한 글자씩 순서대로 읽음
이전 상태를 하나의 값으로 쥐어짬
긴 문맥에서 앞 정보가 흐려짐
PARALLEL
🔍 Transformer
문장 전체를 한꺼번에 펼침
각 단어가 다른 모든 단어를 병렬로 참고
GPU가 힘을 제대로 쓸 수 있음

2017년에 “Attention Is All You Need”라는 논문이 나왔습니다. (이 논문 자체 해설은 뒤에 링크할게요.)

이 논문의 핵심은 엄청나게 단순한 발상이에요.

“왜 꼭 단어를 순서대로 하나씩 읽어야 하지? 문장 전체를 한 번에 펼쳐놓고, 각 단어가 서로 얼마나 관련 있는지만 계산하면 되는 거 아닌가?”

이걸 구현한 게 Transformer 입니다.

비유를 다시 들게요.

  • RNN: 책을 한 글자씩 귀에 속삭이는 방식 → 머릿속에서 문장을 쌓아올림
  • Transformer: 책 페이지를 통째로 눈앞에 펼쳐놓고, 형광펜으로 관련 단어끼리 선을 그어 나가는 방식

이 차이가 왜 큰가?

  • 앞뒤 순서 상관없이 한꺼번에 처리 → 병렬 처리 가능 → GPU가 힘을 제대로 쓸 수 있음
  • 모든 단어가 다른 모든 단어를 직접 볼 수 있음 → 긴 문장에서도 앞의 정보를 잃지 않음

두 문제가 한 번에 풀립니다.

이게 그 유명한 “attention is all you need”의 뜻이에요. “순차 처리는 버려도 돼. attention만 있으면 충분해.”


4. 그럼 단어를 어떻게 “한꺼번에 본다”는 거야?

여기서 그림을 하나 그려야 이해가 됩니다.

Transformer는 단어를 바로 받지 않습니다. 먼저 숫자 벡터로 바꿉니다.

4-1. Embedding — 단어를 좌표로 바꾸기

비유를 하나 드릴게요.

세상에 있는 모든 단어를 아주 큰 방 안에 뿌려 놨다고 상상해 보세요.

  • 비슷한 의미의 단어는 가까이
  • 관련 없는 단어는 멀리

예를 들어:

  • “왕”, “여왕”, “국왕” → 방의 한쪽 구석에 모여 있음
  • “사과”, “바나나”, “오렌지” → 다른 쪽 구석에 모여 있음
  • “왕” 근처에 “남자”가 있고, “여왕” 근처에 “여자”가 있음

이런 식으로 단어마다 방 안의 좌표를 하나씩 정해 줬다고 생각해 보세요.

이 좌표가 바로 embedding vector 입니다.

현실에선 이 방이 3차원이 아니라 수백~수천 차원 입니다. (예: GPT-3는 12,288차원)

사람은 3차원까지밖에 못 보지만, 기계는 10,000차원 공간에서 단어들 사이 거리를 계산할 수 있어요.

이 고차원 공간에 있는 단어의 위치값 이 embedding vector입니다.

ⓘ Embedding 자체가 더 궁금하시면 👉 F5. Embedding — 단어를 숫자로 바꾸는 이유 에서 “왕 – 남자 + 여자 = 여왕” 비유로 끝까지 풀어드립니다.

그래서 Transformer에 문장이 들어오면 첫 단계는:

“오늘 날씨가 좋네”

[오늘의 좌표, 날씨의 좌표, 가의 좌표, 좋의 좌표, 네의 좌표]

이렇게 숫자 벡터들의 목록으로 바꿉니다.

4-2. 문제: 그럼 “순서”는 어디로 갔나?

여기서 미묘한 문제가 생깁니다.

위 벡터 목록엔 단어 순서 정보가 들어있지 않아요.

“오늘 날씨가 좋네”와 “좋네 날씨가 오늘”을 넣어도, 벡터 목록 자체는 같은 벡터들의 묶음이에요.

근데 우리 뇌는 알잖아요. 두 문장은 뜻이 다르다는 걸.

RNN은 순서대로 읽었으니 이 문제가 없었는데, Transformer는 한꺼번에 보기 때문에 순서가 날아가 버립니다.

4-3. 해결: Positional Encoding — 페이지에 줄 번호 매기기

그래서 각 단어 벡터에 “너는 문장의 몇 번째 자리에 있는 단어야” 라는 신호를 따로 더해 줍니다.

비유하면:

책 페이지에 단어만 적어놓지 말고, 각 단어 옆에 조그맣게 자리 번호를 적어놓는 거예요.
1: 오늘 / 2: 날씨 / 3: 가 / 4: 좋 / 5: 네

이 자리 번호를 수학적으로 단어 벡터에 더해주는 게 positional encoding 입니다.

그래서 Transformer 입장에선:

  • “오늘” 벡터 + “1번 자리” 신호
  • “날씨” 벡터 + “2번 자리” 신호

이런 식으로 입력이 들어가요. 이제 순서를 잃지 않은 채 한꺼번에 처리할 수 있게 됩니다.


5. 그 유명한 “Attention”이 드디어 등장

자, 이제 각 단어가 벡터 + 자리 번호 형태로 준비됐어요.

이제 Transformer가 하는 일의 핵심 동작 이 나옵니다.

5-1. Attention의 한 줄 비유

“지금 보고 있는 단어랑, 나머지 단어들 사이에 형광펜으로 선을 그어라.
관련 있는 단어에는 진하게, 없는 단어에는 옅게.”

예를 들어 이 문장을 처리한다고 해봅시다.

“그 고양이는 털이 많아서 그녀는 매일 빗질을 해야 했다”

“그녀는” 이라는 단어가 가리키는 게 뭐죠?

사람은 당연히 알죠. 주인공이 여자라는 맥락에서 ‘그녀’는 고양이가 아니라 주인을 가리키거나… 뭐 맥락에 따라 다르지만, “그녀는”이 문장 어느 부분과 가장 관련 있는지 파악해야 답이 나옵니다.

Attention이 하는 일은 이겁니다.

“그녀는” 벡터가 다른 모든 단어 벡터들을 쳐다보고, “너는 나랑 얼마나 관련 있어?”라는 점수를 매깁니다.

  • “고양이”와의 관련도 → 0.1
  • “털”과의 관련도 → 0.05
  • “빗질”과의 관련도 → 0.3 (얘가 뭐 하는 사람인지 알려줌)
  • “해야 했다”와의 관련도 → 0.2
  • (기타)

이 점수를 써서 “그녀는”의 벡터를 주변 단어들로부터 업데이트 합니다. 맥락에 맞게 “그녀는”의 의미를 다시 계산하는 거예요.

이게 attention의 핵심입니다.

“각 단어는 자기 주변 단어들을 보고 자기 자신의 의미를 맥락에 맞게 조정한다.”

5-2. Query, Key, Value — 이 셋은 뭐냐

Transformer 설명을 듣다 보면 Query, Key, Value(Q, K, V)라는 말이 꼭 나와요.

비유로 잡아볼게요.

도서관에 갔다고 생각해 보세요. 책 하나 찾고 싶어요.

  • Query (질문): “나 고양이 털 관리에 대한 책 찾고 싶어”
  • Key (책의 태그): 각 책 표지에 붙은 키워드 라벨. “고양이”, “강아지”, “요리”…
  • Value (책의 실제 내용): 책 안에 담긴 정보 자체

검색하는 방식은:

  1. 당신의 Query와 각 책의 Key를 비교 → “내 질문과 이 책 라벨이 얼마나 맞아?”
  2. 가장 잘 맞는 책들을 선별 → 그 책들의 Value(내용)를 더 많이 섞어서 가져옴

Attention도 정확히 이렇게 움직입니다.

  • 각 단어는 자기만의 Query 벡터 를 만듭니다 (“나는 이런 정보가 필요해”)
  • 각 단어는 동시에 자기만의 Key 벡터 를 만듭니다 (“내 라벨은 이래”)
  • 각 단어는 동시에 자기만의 Value 벡터 를 만듭니다 (“내 실제 내용은 이래”)

그리고 한 단어의 Query가 모든 단어의 Key를 조사해서:
– 관련도 높은 단어의 Value는 많이 가져오고
– 관련도 낮은 단어의 Value는 조금만 가져옴

이 “섞여서 가져온 Value”가 그 단어의 새로운 벡터 표현 이 됩니다.

처음 들으면 추상적인데, 나는 Query, 쟤는 Key랑 Value 라는 도서관 비유 하나만 머릿속에 있으면 Transformer 설명이 쭉 이어져 갑니다.

Q·K·V가 어디서 오냐고요? 다 원래 단어 벡터에 서로 다른 세 행렬을 곱해서 나온 세 변형본입니다. 같은 원본에서 뽑아낸, 세 가지 다른 쓰임을 가진 벡터예요.

여기까지만 잡아도 충분합니다.

ⓘ 이 Q/K/V 수식 수준으로 깊이 들어가고 싶으면 👉 F4. Attention is All You Need 해설 기사로 넘어가시면 됩니다. mathbullet 유튜브 해설이 붙어 있어요.


6. Multi-head Attention — 여러 명이 각자 다른 형광펜으로

여기가 Transformer에서 또 하나 세게 빛나는 부분입니다.

attention 한 번만 돌리는 게 아니라, 같은 문장을 여러 번, 병렬로, 각자 다른 관점에서 돌립니다.

비유:

같은 문장을 여러 명의 편집자에게 동시에 나눠줍니다.
– A는 문법 관계 위주로 형광펜을 긋고
– B는 의미 연결 위주로 긋고
– C는 지시어-선행사 위주로 긋고
– D는 단어 간 거리 위주로 긋고

이 사람들의 결과를 합쳐서 종합 판단합니다.

이게 Multi-head Attention입니다.

GPT-3는 이런 head가 96개 있었습니다. 96명의 편집자가 동시에 문장을 각자 다른 각도로 읽는 거예요.

왜 이게 강력하냐면, 단어 사이 관계가 한 종류가 아니기 때문입니다.

  • 주어-동사 관계
  • 지시어-선행사 관계
  • 수식-피수식 관계
  • 원인-결과 관계

이걸 하나의 attention으로 다 잡을 수 없어요. 그래서 여러 head로 병렬로 잡고 합친 겁니다.


7. Feed-forward Layer — 각 단어가 잠깐 “생각을 정리”함

Attention으로 각 단어가 주변 맥락을 가져와서 자기 벡터를 업데이트했어요.

그 다음 단계는 의외로 단순합니다.

각 단어 벡터를 하나씩 꺼내서, 똑같은 작은 신경망에 통과시킵니다.

비유하면:

회의실에서 서로의 말을 들은 직원들이 (attention 단계)
각자 자기 자리로 돌아가서 들은 내용을 혼자 정리하는 시간 (feed-forward 단계)

attention이 “주변 참고”였다면, feed-forward는 “내 자리에서 혼자 처리”.

이 두 단계(attention + feed-forward)가 Transformer 한 블록 의 기본 구성입니다.


8. 층을 쌓는다 — 한 번으로 안 되니까

Transformer 한 블록을 지나면 각 단어 벡터가 한 번 업데이트됩니다.

근데 한 번으론 부족해요. 맥락을 한 번 본 상태로 또 한 번 봐야 더 정교한 관계를 잡습니다.

그래서 이 블록을 수십 개 쌓습니다.

  • GPT-3는 96개 층
  • GPT-4는 더 많음 (정확한 수는 비공개)
  • Claude, Gemini도 수십~수백 층

각 층마다:
– 주변을 다시 참고하고 (attention)
– 각 자리에서 정리하고 (feed-forward)

이걸 반복하면서 단어 벡터가 점점 더 맥락에 맞는 표현 이 됩니다.

초기 층에선 “이 단어가 명사인가 동사인가” 같은 낮은 수준 관계가 잡히고, 후반 층에선 “이 문장의 논리 구조” 같은 높은 수준 관계가 잡히는 경향이 있어요. (사람이 해석해 보니 그렇다는 연구 결과. 모델이 “의도해서” 그렇게 한 건 아닙니다.)


9. Encoder랑 Decoder 얘기 잠깐

원래 Attention is All You Need 논문은 번역기 용이었습니다.

예를 들어 영어 → 프랑스어 번역.

  • Encoder: 영어 문장을 읽어서 의미 벡터로 압축하는 부분
  • Decoder: 그 의미 벡터를 받아서 프랑스어 문장으로 풀어내는 부분

두 덩어리 구조였어요.

근데 요즘 우리가 쓰는 ChatGPT, Claude 같은 대화형 LLM은 decoder-only 구조 입니다.

왜 encoder를 빼버렸냐?

그 이야기를 하면 이 글이 너무 길어져요. 그 얘기 하나로 기사를 따로 뽑았습니다.

ⓘ “번역기였던 게 왜 대화형으로 바뀌었나” → 👉 F3. Encoder/Decoder 로 넘어가시면 전체 흐름이 보입니다.

여기선 “Transformer의 원형은 encoder + decoder 두 덩어리였고, 지금 우리가 쓰는 대부분의 LLM은 그 중 decoder 쪽만 크게 키운 버전이다” 정도만 잡고 가시면 충분합니다.


10. 왜 “거의 모든 LLM“이 Transformer인가

2017년 논문 나온 이래로, NLP 분야는 거의 통째로 Transformer로 갈아탔습니다.

왜요?

세 가지 이유로 정리할 수 있어요.

  1. 병렬화가 됩니다.
    GPU·TPU가 힘을 제대로 씁니다. 학습 속도가 RNN 대비 수십~수백 배 빨라집니다.

  2. 긴 문맥을 잃지 않습니다.
    모든 단어가 다른 모든 단어를 직접 볼 수 있어서, 앞쪽 정보가 뒤에 가도 희미해지지 않습니다.

  3. 규모를 키우면 성능이 예측 가능하게 올라갑니다.
    파라미터를 10배 늘리면 성능이 어느 정도 좋아진다는 scaling law 가 관찰됐어요. 이건 RNN에선 안 되던 일입니다.

이 세 가지 때문에 사람들은 “같은 돈으로 더 큰 Transformer를 돌리면 더 좋은 모델이 나온다”는 공식을 밀고, 결과가 진짜로 따라왔습니다.

그렇게 탄생한 게 GPT-2, GPT-3, GPT-4, Claude, Gemini, Llama 같은 모델들이에요.

이 모든 모델의 뼈대가 2017년 논문의 Transformer입니다.


11. 그럼 Transformer가 “생각”을 하는 건가?

짧은 답: 아니요.

Transformer는 결국 한 번의 순전파(forward pass) 를 계산하는 기계입니다.

들어온 문장을:
– embedding으로 변환
– positional encoding 더함
– attention + feed-forward 블록을 여러 번 통과
– 마지막에 “다음 토큰 확률 분포”를 출력

이게 전부예요.

“생각”이라고 부를 만한 건 이 과정의 결과로 우리 눈에 보이는 “패턴에 맞는 출력” 일 뿐입니다.

근데 이게 대단한 이유는, 이 단순한 구조를 충분히 크게 만들고, 충분히 많은 데이터로 학습시키면, 사람이 글자로 해 온 거의 모든 일을 흉내 낼 수 있게 된다는 점이에요.

Transformer 자체가 똑똑한 게 아니라, Transformer라는 병렬 가능한 맥락 계산 구조 가 규모를 감당할 수 있게 해 줬기 때문에, 모델 안에 세상에 대한 엄청난 패턴 압축 이 가능해진 겁니다.


12. 여기까지 오면 보이는 것들

이제 Transformer를 “그림”으로 잡으셨을 거예요. 정리하면 이렇습니다.

  1. 입력 문장을 토큰으로 쪼개고, embedding 벡터로 바꾸고, positional encoding을 더한다
  2. 각 단어가 Q, K, V 로 자기 정체성을 셋으로 분리한다
  3. Attention으로 주변 단어들 중 관련 있는 것들의 Value를 가져와서 자기 벡터를 업데이트한다
  4. Multi-head 로 여러 각도에서 동시에 attention을 돌린다
  5. Feed-forward 로 각 단어 자리에서 혼자 정리한다
  6. 이 블록을 수십 번 쌓아서 점점 정교한 표현을 만든다
  7. 마지막에 다음 토큰 확률 분포 를 출력한다

이 7단계를 머릿속에 그림으로 갖고 있으면, 앞으로 Transformer 관련된 어떤 글을 읽어도 흐름이 끊기지 않습니다.


닫는 한 문장

Transformer의 핵심은 “attention이라는 신기한 마법”이 아니라, “문장을 순서대로 읽지 않고 한꺼번에 펼쳐놓고, 각 단어가 다른 모든 단어를 병렬로 참고하도록 만든 구조” 입니다. 이 단순한 설계 변경이 모델 크기를 감당 가능하게 만들었고, 그게 오늘 우리가 쓰는 모든 LLM의 출발점이 됐습니다.


FAQ

Q1. Transformer는 번역용이었는데 어떻게 대화용으로 바뀌었어요?

원래 2017년 논문의 Transformer는 encoder(입력 읽기) + decoder(출력 생성) 두 덩어리 구조로, 영어→프랑스어 번역 같은 작업용이었습니다. 그런데 decoder 쪽만 크게 키우고 “다음 단어를 계속 예측하게” 학습시키면 대화, 글쓰기, 코드 생성까지 다 된다는 걸 알게 되면서 지금 쓰는 대부분의 LLM은 decoder-only 구조로 바뀌었습니다. 자세한 이야기는 F3. Encoder/Decoder에서 다룹니다.

Q2. Attention이 “그냥 관련 있는 단어를 본다”는 거면, 인간의 집중과 비슷한 건가요?

비유로는 비슷하게 쓸 수 있는데, 실제 동작은 다릅니다. 사람의 집중은 한 순간에 한두 곳에 쏠리지만, Transformer의 attention은 모든 단어가 모든 단어를 동시에 점수로 쳐다봅니다. 관련도 0인 단어도 완전히 무시하는 게 아니라 점수만 낮게 줍니다. 그래서 “선택적 집중”보다는 “모든 쌍에 대한 가중치 계산”이라는 표현이 더 정확해요.

Q3. 더 큰 Transformer가 무조건 더 좋은 건가요?

한동안은 그랬습니다. 파라미터를 10배 키우면 성능이 예측 가능하게 좋아지는 scaling law가 몇 년간 잘 맞았거든요. 그런데 최근엔 같은 크기로 더 좋은 데이터로 학습하기, 추론 시간을 더 쓰게 하기(reasoning, thinking 모드), 하네스와 도구를 붙이기 같은 다른 축이 더 중요해졌습니다. Transformer 자체가 좋아진 게 아니라, 주변을 잘 짜는 방향으로 경쟁이 넘어간 거예요.


🗺 지도 위 현재 위치

뉴스레터 CTA

이렇게 한 개념씩 그림으로 잡게 풀어내는 기술 해설을 매주 월요일 아침 메일로 보냅니다. 받아보고 싶으면 뉴스레터 회원가입(무료·30초)에서 신청하세요.

📍 시리즈 위치
AI 공부 지도 · 2/20편

Transformer 구조 감각 잡기 위치에 있는 편입니다. 앞뒤 편 링크는 본문 하단 지도 위 현재 위치 박스에서 확인하세요.

💡 이 편의 한 줄 요약

책 한 페이지를 통째로 펼쳐놓고 형광펜으로 관련 단어를 잇는 비유로 attention·multi-head·stacking을 한 번에 그림으로 잡는다.

소스 리스트


著者: 바이브코딩 태일러 (VibeCoding Tailor) — Lovable公式アンバサダー. AI·バイブコーディング専門メディアshuntailor.net運営.
本シリーズ “AI 공부 지도” 22편은 위키 자료와 공식 논문·공식 문서를 근거로 정리한 체계적 학습 커리큘럼입니다.

JAKO