최근 수정 시각 : 2025-11-15 18:18:51

동시 멀티스레딩

하이퍼스레딩에서 넘어옴
파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 컴퓨팅 방식이자 구조}}}에 대한 내용은 [[멀티스레딩]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[멀티스레딩#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[멀티스레딩#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
컴퓨팅 방식이자 구조: }}}[[멀티스레딩]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[멀티스레딩#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[멀티스레딩#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}

[[컴퓨터공학|'''컴퓨터 과학 및 공학
{{{#!wiki style="font-family: Times New Roman, serif; display: inline;"
]]
{{{#!wiki style="margin: 0 -10px -5px; min-height:calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<bgcolor=#1282d7,#1282d7> 기반 학문 수학(해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학(환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학(음운론 · 형태론 · 통사론 · 의미론 · 화용론) · 인지과학
하드웨어 SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술 기계어 · 어셈블리어 · 바이오스 · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 함수형 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · LinuxBoot · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속
연구 및 기타 논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영체제(멀티태스킹 · 프로세스 스케줄링 · 데드락 · 식사하는 철학자 문제 · 뮤텍스 · 세마포어 · 인터럽트) · 데이터베이스 · 컴퓨터 언어 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 어휘 분석 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 마크업 언어 · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크(네트워크 포트) · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식) · 버전 (버전 관리 시스템) · 난수생성 · 놀람 최소화 원칙 · 프레임워크 · 라이브러리 · 모듈 · API · ABI · 이진 탐색
}}}}}}}}} ||
컴퓨터의 실행 단위
하드웨어 명령어(파이프라인)
CPU 코어(하드웨어 스레드)
OS 논리적 코어
프로세스(OS 스레드(사용자 스레드))
처리방식 스케줄링
멀티 프로그래밍 멀티태스킹 멀티 프로세싱 시간적 멀티스레딩 동시 멀티스레딩

1. 개요2. 스레드와 멀티스레딩
2.1. 멀티스레딩의 종류
3. 원리
3.1. 멀티 CPU 기반 SMT3.2. 멀티스레드 기반, 다대일 SMT
4. 역사 및 사용 현황5. 여담

1. 개요

Simultaneous Multi-Threading (SMT) | 동시 멀티스레딩

파일:external/blogs.technet.com/3566.image_5F00_6.png
성능 참고하는 데 좋은 벤치마크. 아카이브

동시 멀티스레딩은 CPU·하드웨어 계층에서 여러 스레드를 병렬적으로 처리하는 기술이다.

학계나 업계에서는 이미 1960년대 IBM의 ACS-360 프로젝트 시절부터 이 용어로 사용되고 있었으나, 2000년대 이후 인텔의 '하이퍼스레딩'이라는 상표명이 발표되면서 일반 사용자들에게는 하이퍼스레딩(Hyper-Threading)이나 약자인 HT라는 이름으로 더 많이 알려져 있다.

2. 스레드와 멀티스레딩

SMT를 이해하려면 스레드멀티스레딩부터 이해해야 이 문서의 내용을 이해할 수 있다.

자세한 내용은 각 문서 및 컴퓨터의 실행 단위 문서를 참고할 것.

2.1. 멀티스레딩의 종류

멀티스레딩에는 방식에 따라 크게 2가지로 구분한다.
  • 시간적 멀티스레딩 (TMT: Temporal Multi-Threading)
    한 번에 하나의 스레드에서만 명령어를 실행하거나 작업을 수행할 수 있는 멀티스레딩으로, 대표적으로 협동형(비선점형) 멀티태스킹처럼 하나의 스레드가 맡고 있는 일련의 명령어들이 먼저 다 수행한 다음에 다른 스레드가 수행하는 Coarse-grained 방식이 있고, 선점형 멀티태스킹처럼 하나의 스레드가 맡고 있는 일련의 명령어들을 먼저 다 수행하기도 전에 다른 스레드가 끼어들어 또 다른 명령어를 수행하면서 결과적으로 서로 다른 스레드들이 각자 맡고 있는 별개의 명령어들을 번갈아 수행하는 Fine-grained 방식이[1]라는 하위 방식들이 있다. 프로세스 스케줄링에 따라 일정 시간 단위로[2] 여러 스레드들을 번갈아 가면서 동작하기 때문에 '시분할 멀티스레딩'이라고도 부르며, 싱글코어 싱글스레드 CPU에도 적용할 수 있는 방식이다. 쉽게 말해서 한 사람이 정해진 계획에 따라 여러 가지의 일들을 다 수행하는 방식이라고 보면 된다. 한 마디로 멀티태스커인 1인 개발.
    좋게 말하면 적은 하드웨어 자원으로도 구현할 수 있는 방식이지만, 나쁘게 말하면 자원이 한정되어 있어서 프로그램 개별적인 성능이 떨어지는 단점이 있을 수밖에 없다. 그 대신 싱글코어 싱글스레드 CPU밖에 없었던 일반 가정용 PC에서도 여러 프로그램들을 같이 실행할 수 있는, 이른바 멀티태스킹이 가능하여 멀티태스킹이 불가능했던 시절보다 비교가 안 될만큼 훨씬 더 나은 사용자 경험(UX: User Experience)을 제공할 수 있었다.
  • 동시 멀티스레딩 (SMT: Simultaneous Multi-Threading)
    시간적 멀티스레딩과는 다르게 SMT는 여러 스레드들을 한꺼번에, 동시에 명령어들을 실행하거나 작업들을 수행할 수 있다는 차이점이 있다. 쉽게 말하면 혼자가 아닌 여러 사람이 여러 가지 일들을 분담해서 수행하는 것과 같다고 보면 된다. 한 마디로 개발팀.
    현재까지 가장 진보된 멀티스레딩 방식으로 '완전한 멀티스레딩'이라고 부르기도 하며, 이와 대비되는 시간적 멀티스레딩을 가짜 멀티스레딩이라고 부르기도 한다. 동시에 동작할 수 있으므로 시간적인 멀티스레딩에서 활용하지 못하던 유휴 자원을 활용할 수 있게 되어서 더 높은 성능을 보여준다.
    하지만, 이를 구현하려면 CPU의 형태가 어떻든 여러 개의 스레드들을 한꺼번에 감당할 수 있는 자원이 필요하다는 단점이 있다. 하드웨어 자원의 문제는 곧 비용의 문제로 이어지기 때문. 하드웨어가 지원해도 소프트웨어도 이에 맞게 수행할 수 있게끔 프로그래밍해줘야 제대로 발휘할 수 있다. 거저먹을 수 있는 혜택이 아니라는 뜻이다.

3. 원리

SMT의 원리를 이해하기 위해서는 CPU의 슈퍼스칼라 구조와 파이프라이닝 개념을 먼저 이해하고 있어야 한다. SMT는 이것들과 직접적으로 연관되어 응용하는 기법이기 때문에 그렇다.

3.1. 멀티 CPU 기반 SMT

2000년대 이전의 SMT는 주로 여러개의 CPU를 탑재한 대규모 시스템 한정으로 적용되는 기법이었다.

멀티 CPU 시스템에서 하나의 CPU 스레드에 성능을 더 이상 향상시킬 수 없을 경우, 남는 연산 능력을 다른 CPU 스레드의 명령어를 처리하는데 사용한다면 이렇게 놀고 있는 부분에 명령어 종속성이 없는 다른 스레드의 명령어를 투입하여 CPU 전체의 효율을 높이는 즉, 전체적인 명령어 병렬 처리 능력을 향상시킬 수 있다는 개념이다.

CPU의 예시는 아니지만 네트워크 비동기 처리의 예시를 들어보자. 네트워크에서 특정 값을 읽어 이를 처리하는 경우, 상당한 경우에는 네트워크의 대기 시간이 프로그램 전체 실행 시간의 대부분을 차지한다. 이 상황에서
1. 네트워크의 값을 읽는다.
2. 읽은 값을 처리한다.
3. 값을 저장장치에 쓴다.
로 코드를 작성한다면, 1번의 네트워크 대기 지연 시간에 의해 프로그램은 상당히 비효율적인 구조를 가지게 될 것이다. 네트워크에서 값을 읽어오는 데 걸리는 시간은 시스템의 자체 저장장치인 메모리나 하드디스크에서 데이터를 읽는데 걸리는 시간에 비해 몇십~몇천배는 되기 때문이다. 이때 CPU는 1번에서 값을 읽어올 때까지 대기하게 된다.

하지만 CPU가 처리해야 할 일 중에는 이렇게 서로 연계된 일만 있는 게 아니다. 예를 들어 네트워크에서 값이 들어오길 하염없이 기다리는 저 컴퓨터에서 동시에 MP3 음원 파일도 하나 재생하고 있다고 하자. 그렇다면 네트워크에서 값이 들어올 때까지 MP3 음원 파일을 재생하고 있으면 효율이 올라가지 않을까? 멀티 CPU에서 하나의 CPU를 네트워크 처리에 할당하고, 다른 하나의 CPU를 MP3 음원 파일 재생에 할당하는 것이 SMT를 구현하는 가장 확실한 방법이다.

물론 이 방식도 데이터 의존성의 한계를 피할 수는 없기에, 레이스 컨디션 문제가 발생할 여지가 있다.

3.2. 멀티스레드 기반, 다대일 SMT

2000년대에 들어서, 하나의 코어가 여러 스레드의 명령을 처리하는 기법인 '다대일(Multi-Way) SMT'가 도입되었다.

다대일 SMT가 '여러 명령을 동시에 처리한다는 것' 자체만 보면 멀티 CPU 시스템의 SMT와 똑같으나 구현 및 개념이 다르다. 다대일 SMT는 하나의 코어가 여러 스레드의 명령들을 동시에 처리하여 마치 여러개의 코어와 비슷한 효과를 내도록 한다. 덕분에 실질적·물리적인 연산기인 '코어'가 하나밖에 없더라도 동시 처리를 구현하여 성능을 향상할 수 있었다.

코어 하나에 몇개의 스레드가 대응되냐에 따라 2대1(2-Way) SMT, 4대1(4-Way) SMT와 8대1(8-Way) SMT로 나뉜다.

파일:SMT 명령어 실행 표.png
예를 들어 A, B 스레드가 각각 정수와 부동소수점 연산에 집중된 명령을 실행할 때, 프로세서 파이프라인에 ALU(산술연산기)와 FPU(부동소수점 연산기)가 함께 탑재된 프로세서에 SMT가 없는 경우, 정수연산을 하고 있을 때 A 스레드가 파이프라인의 모든 클럭을 차지하게 된다. 이때 부동소수점 연산은 하고 있지 않아 FPU는 유휴상태임에도 불구하고 A 스레드가 파이프라인의 모든 클럭을 점유하고 있어 컨텍스트 스위칭 없이 다른 연산 유닛을 사용할 수 없다.
이때 2대1 SMT를 가지고 있다면 한 코어의 모든 연산 유닛을 모두 동원하는 것이 가능하다. 고로 연산 유닛을 클럭 낭비 없이 100% 사용할 수 있게 된다.

예를 들어 1과 2라는 프로세스(스레드)에서 명령을 처리할 때 2대1 SMT를 지원하지 않는 CPU 의 경우,
(<int>는 다른 프로세스로 전환)
1
1
1
1 <int>
2
2 <int>
1
1 <int>
2 <end>
1 <end>
이런 식으로 한번에 하나의 명령만 처리 할 수 있다. 두 개의 작업을 재빠르게 전환하는 일시적인 멀티스레딩일 뿐, 진정한 멀티스레딩은 아니다.

반대로 2대1 SMT를 지원하는 CPU일 경우엔,
1,(2)
1,(2)
1,(2)
1,(2)
1.(2)
1,(2)
1 <end>
2 <end>
[3]
이런 식으로 처리할 내용을 우겨 넣어서 하드웨어 자원의 효율을 높이고 성능도 향상시키는 원리이다.

1코어 2스레드인 2대1 SMT라고 가정할 때, 소프트웨어 차원에서, 즉 논리적 관점으로는 CPU 2개로 인식된다. 소프트웨어인 OS 차원에서는 SMT가 없든 있든 스레드들을 모두 논리적 CPU로 다룬다. 기본적으로 별개의 명령을 처리해야 하기 때문. 그래서 2대1 SMT가 지원되는 CPU를 Windows XP 이후 버전의 작업 관리자에서 보면 스레드 수가 2배로 뻥튀기 되는 것을 확인할 수 있다.

물론 물리적인 코어라는 자원 자체는 그대로이기 때문에 물리적인 코어 2개보다는 성능이 확실히 떨어진다. 이 논리로 2대1 SMT가 있어봤자 느려터졌다고 하지만, 그래도 단일 코어, 단일 스레드 환경에 비하면 멀티태스킹 사용 시에 한 처리가 많은 연산을 할 경우 상대적으로 다른 프로세스에 훨씬 많은 여유를 줄 수 있는 장점이 있다. 예를 들어 3D 렌더링을 할 경우 진가가 드러나는데, 3D 렌더러는 스레드 당 한 개의 렌더링 블록을 생성해 내는데, 2대1 SMT가 활성화된 쿼드 코어 CPU의 경우 8개의 스레드가 생성되어(즉 논리적인 8코어) 시간의 이점을 볼 수 있다. (20% 정도 차이가 난다)
==# CPU별 구현 #==
실행 자원 Intel NetBurst Intel Nehalem AMD Bulldozer
(CMT)
AMD Zen
실행 상태 duplicated duplicated duplicated duplicated
분기예측 shared ? shared shared
ITLB duplicated tagged[4] tagged tagged
명령어 캐시 - shared shared shared
디코더 shared shared shared shared
마이크로옵 캐시 shared - - shared
마이크로옵 큐 partitioned ? ? partitioned
재정렬 버퍼 partitioned partitioned duplicated partitioned
실행 유닛 정수 shared shared duplicated shared
부동소수점 shared
로드 큐 partitioned partitioned duplicated tagged
스토어 큐 partitioned partitioned duplicated partitioned
DTLB tagged tagged duplicated tagged
데이터 캐시 shared shared duplicated shared
  • shared: 모든 스레드가 자원을 공유한다.
  • tagged: 모든 스레드가 자원을 공유하되 필요상 스레드 구분을 위한 정보를 포함한다.
  • partitioned: N개 스레드 실행 시 각 스레드에 자원을 1/N으로 나누어 할당한다.
  • duplicated: 실행되는 스레드의 수와 무관하게 각 스레드에서 활용할 수 있는 자원은 동일하다.

4. 역사 및 사용 현황

1950년대부터 등장한 멀티스레딩은 이후에 다양한 방식의 멀티스레딩이 등장했고, 그 중에 가장 진보된 방식인 SMT 개념은 1961년부터 1969년까지 진행했던 ACS(Advanced Computing Systems) 프로젝트를 통해 구현된 것이 시초로 알려져 있다.

당시에는 SMT를 구현하려면 멀티 CPU밖에 없었으므로, 멀티 CPU가 필요한 슈퍼컴퓨터, 메인프레임, 고성능 워크스테이션에서는 이미 SMT를 활용하기 시작했다. 하지만 일반 가정용 PC에서는 멀티 CPU 시스템을 구하기엔 가격 문제부터 닥치게 되고, SMT를 활용한 운영체제와 응용 프로그램이 전무에 가까워서 여전히 싱글코어 싱글스레드라는 CPU로 일시적 멀티스레딩을 통해 멀티태스킹을 구현하는 정도에 그치고 있었다. 즉, 일반 사용자들에게는 듣보잡 내지는 딴 세상 이야기에 지나지 않았다.

그러다가 2001년 인텔 개발자 포럼(IDF)에서 인텔이 2대1 SMT의 구현체이자 상표명인 '하이퍼스레딩(Hyper-Threading)'을 발표한 이후로, 이때부터 SMT는 사실상 다대일(Multi-Way) SMT라는 의미로 굳어졌다.

서버용은 2002년 2월부터 투입된 Prestonia 기반의 제온 시리즈부터, 일반 가정용은 2002년 11월부터 투입된 펜티엄 4 HT 제품군에서 처음 사용되었다.[5] 출시 당시에는 최신 버전이었던 Windows XP에만 지원하는 바람에[6] 윈도우 XP의 보급율을 크게 늘렸지만 넷버스트 구조 때문에 효율은 그다지 좋지 못했다. 그래서 당시 농담으로 부르는 별명은 하이퍼쓰레기. 다만, 당시에도 멀티태스킹 상 이득은 분명하였기 때문에, 펜티엄 4 프레스캇애슬론 64를 상대로 나름 선전하던 분야도 있었다.

2001년 IBM의 POWER4, 2004년 썬 마이크로시스템즈의 UltraSPARC IV를 통해 멀티코어 프로세서가 등장했지만 일반 가정용으로 나오지 않아서 잘 알려지지 않았고, 2005년부터 일반 가정용에도 멀티코어 CPU가 출시되면서 대세가 되었다. 먼저 나온 펜티엄 4를 두 개 붙인 인텔 펜티엄D 시리즈에서는 사용되지 않았으나, 일명 펜티엄 XE라 불리는 익스트림 에디션은 펜티엄 D 코어에 하이퍼스레딩까지 지원되어 7세대 이전의 코어 i3 마냥 "2코어 4스레드"로 돌아가서 멀티태스킹 면에서는 애슬론 64 X2보다 우위에 있었다. 하지만 발열량은 넷버스트 마이크로아키텍처 기반 중에서도 문제의 프레스캇 기반이었으니 시궁창이었고, 2대1 SMT를 지원하지 않는 애슬론 64 X2와 실성능으로 비교하면 얄짤 없었다. 당시 AMD는 앞선 성능의 이득을 누리기 위해 듀얼코어 프리미엄을 포기하지 않았고, 동일 성능 제온 2 CPU 시스템을 기준으로 나름 싼 가격을 책정하는 등, 상대적으로 떨어지는 브랜드 파워와 시장 지배력을 생각하면 매우 쎈 가격을 유지했다. 심지어 PC용 듀얼코어 하위 라인이 워크스테이션용인 옵테론 160/165보다 비싸서 이들 옵테론 하위 라인 CPU를 사서 오버클럭하는 게 더 싸게 먹히던 시절도 있었다! 그래서 중저가형 PC에서 2쓰레드를 맛보려면 HT나 펜티엄D 805 같은거 밖에 선택지가 없는 상황이 꽤나 지속되었고 이는 싱글코어간 대결에서 인텔이 나름 이득이 있는 요소였다. 이후 2003년 P6 마이크로아키텍처 개량판 기반의 펜티엄M과 2006년 코어 시리즈, Sossaman 계열의 제온, 2006년 코어 마이크로아키텍처 기반의 코어2 시리즈와 제온에서는 하이퍼스레딩이 빠졌다.

2008년 본넬 마이크로아키텍처 기반의 아톰 시리즈[7] 네할렘 마이크로아키텍처 이후의 코어 i 시리즈에서 다시 도입되면서 펜티엄 4 시절의 하이퍼스레딩보다 나아진 성능 효율을 보여준다. 6세대 코어 i 시리즈까지는 i3i7에만 사용되었다가 7세대부터는 펜티엄에도 사용, 8세대부터는 i3가 빠진 대신 4코어 4스레드로 상향되었으며, 9세대부터는 i7마저 빠진 대신 8코어로 상향되고 같은 8코어인 i9에서 도입되는 변화가 있었다.[8] 비록 논리 코어지만 과거의 오명을 벗을 만큼 성능 향상이 있다. 특히 4코어 지원 게임에서 2코어 4스레드인 i3와 2코어 2스레드인 펜티엄의 비교는 i3가 확실히 뛰어나다. i3 4130과 G3258을 4.5GHz로 오버클럭한 경우와 비교해 멀티 코어 지원 게임에서 G3258이 더 낮은 클럭의 i3에게 지는 것을 볼 수 있다. 단, 아톰 시리즈 한정으로 2013년 베이트레일부터는 설계 변경으로 하이퍼쓰레딩이 빠졌다. 코어 i5 경우 하이퍼스레딩을 지원하지 않았지만 최근 10세대 부터 하이퍼스레딩을 지원하기 시작했다.그리고 하이퍼 쓰레딩이 모바일에서 전혀 필요 없다는 걸 증명했다.

다만, 펜티엄 4든 코어 i 시리즈든 하이퍼스레딩을 켜면 투입되는 작업량이 많아지고 하드웨어 자원 활용률도 높아지므로, 당연히 발열과 전력 소모가 증가한다. 위의 설명처럼 같은 시간에 더 많은 명령을 처리하므로 전력 소모량만 보면 개념은 다른 오버클럭과 마찬가지로 많아지는 셈. 풀로드 시 많게는 30~40W가량 더 소모한다.

2016년도까지 하이퍼스레딩의 최대 수혜자는 단연 가격 때문에 코어 수가 제한된 코어 i3 시리즈라 단언할 수 있다. 그 중에서도 CPU 하나당 성능이 낮은 샌디-아이비브릿지 시스템이 가장 돋보인다. 프로그램이 코어 2개까지만 쓰는 상황에선 높은 IPC[9]빨로 AMD 6, 8코어들을 누르고, 멀티스레드를 잘 쓰는 프로그램에서도 듀얼코어 + 하이퍼스레딩의 가상 쿼드코어 효과로 나름 선방한다. 심지어 프로그램이 멀티스레드를 정말 잘 써서 순수 성능에선 AMD 8코어에게 밀리는 상황에서도 전성비 만큼은 항상 선방하는 편. 2016년 하반기에 모바일용 카비레이크 출시 후... 2017년 1월에 출시된 데스크탑용 제품군에도 하이퍼쓰레딩을 탑재한 펜티엄 3개가 나와 코어 i3가 위험에 처한 상황(본격 인텔의 i3 팀킬).

급기야는 AMD에서도 2011년부터 투입된 불도저 마이크로아키텍처에 도입되었던 부분적인 2대1 SMT 형태인 CMT(Clustered Multi-Thread) 구조를 버리고, 2017년 3월 초에 출시된 라이젠 시리즈 부터 전통적인 2대1 SMT 구조를 채용하면서 사실상 거의 모든 데스크탑 CPU에 적용되는 보편적인 기술이 되었다.

AMD의 밥캣, 재규어 등 모바일 CPU와 삼성의 몽구스 등 ARM CPU, 테슬라의 도조 등을 개발한 애릭 퀸넬 박사는 SMT가 CPU의 면적을 너무 많이 잡아먹어 차라리 좀더 간소화시킨 SMT 코어 두개가 나으며, 시끄러운 이웃 효과, 캐시 오염, CPU 게이트 사례와 같은 보안 문제를 단점으로 지적했으나 단순한 아키텍처에서 효율이 좋고 소프트웨어와 호환도 잘된다는 장점을 들면서 가난한자의 비순차적 실행이라고 칭했다.#

인텔, AMD뿐만 아니라 DEC도 여러 학자들과 함께 1990년대 후반부터 개발되어 2004년 출시를 목표로 했었던 Alpha 21464를 통해 인텔의 하이퍼스레딩보다 더 많은 4대1 SMT를 보여주었으나, Compaq이 DEC를 인수하고 그런 Compaq을 HP가 인수하면서 개발이 더 이상 진척되지 못 해 최종 완성되지 못 하고 드랍되었다. IBM도 2004년에 출시된 POWER5부터 2대1 SMT를, 썬 마이크로시스템즈도 2005년에 출시된 UltraSPARC T1을 통해 4대1 SMT를 도입했다. IBM은 여기서 그치지 않고 2014년에 출시된 POWER8 마이크로아키텍처부터는 무려 8대1 SMT까지 박아 넣기도 했다. x86 계열도 4대1 SMT를 박아넣은 제온 파이가 나오기도 했다.

물론 일반 가정용 CPU 시장에서 구현되는 정도는 2대1 SMT 뿐이다. 일반 가정용 PC에서 4대1 SMT 이상의 멀티코어 성능을 활용할 일이 잘 없기도 하고, 이런 CPU에도 물리 코어를 많이 박아넣을 수 있는 환경까지 되니 인텔은 코어 울트라 시리즈 2 부터는 좀비로드 취약점 해결, 전성비와 싱글코어 성능 증대를 위해 하이퍼스레딩 도입을 하지 않을 정도다. 다만 인텔은 이후 하이퍼스레딩 재도입을 선언한다.

5. 여담

KVM을 제외한 가상머신에는 SMT를 뺀 코어 수로 카운트한다. 논리 코어를 인식하지 못하기 때문.

2대1 SMT 기능을 BIOS/UEFI상에서 꺼놓은 상태로 Microsoft Windows를 설치한 경우 이를 다시 켜도 활성화되지 않는 경우가 있다. 4코어 8스레드 CPU 기준으로 장치관리자에는 8개 모두 제대로 뜨는데 시스템 정보나 작업 관리자에서 논리 프로세서가 코어 수와 같다면[10] 100%. 다행히 윈도우를 다른 컴퓨터로 옮길 때 사용하는 sysprep를 사용하면, 시스템 드라이버가 전부 다시 설치되기 때문에 이러한 현상은 해결된다.

2017년에 보드나라에서 AMD의 라이젠 시리즈와 인텔 코어 i 시리즈의 2대1 SMT 효율을 비교한 벤치에서는 최대 39.14% 및 평균 26.6% (라이젠은 최대 48.16% 및 평균 35.85%)가 나왔으므로, 인텔이 20%를 얘기한 당시엔 어땠는지 몰라도, 현재는 '20%를 상회'한다고 볼 수 있다.

그리고 라이젠 시리즈와 8세대 코어 i 시리즈 출시 이후로 게임들의 멀티코어 지원 수준도 올라가서, 8코어에 (2대1) SMT를 켠다고 성능이 떨어지는 게임은 상대적으로 찾기 힘들게 되었다. #1( "라이젠 초기 논란 중에 같이 나왔다가 AMD측에서 사소한 코딩 문제로 쉽게 패치할 수 있다고 말한 적이 있지요. 지금 시점에서 HT끈다고 성능이 오르는 게임을 찾으려면 스텔라리스[11]처럼 싱글코어만 쓰는 수준인 게임들로 벤치해야 될 겁니다." 댓글 참고), #2

여기서는 인텔 8코어 이상 제품 + 램오버 상황에서 HT를 끈 쪽의 게임 성능이 가장 좋게 나왔다.

HT, SMT 자체는 끄기 싫다면 Process Lasso에서 해당 게임의 프로세스(exe 파일)만 SMT 금지로 해놓으면 하위 호환이긴 해도 비슷한 효과를 내준다(윈도우의 CPU 선호도 설정으로 0,2,4,...번 논리 코어만 지정하는 것과 똑같다. 단지 GUI로 사용하기 편한 프론트엔드일 뿐이다[12].)


[1] 이런 특징 때문에 Interleaved 방식의 멀티스레딩이라고도 부른다.[2] 크게는 어떤 스레드의 작업이 다 끝날 때까지의 걸리는 시간 단위부터 작게는 1사이클(1클럭)이라는 매우 세밀한 시간 단위까지 포함된다.[3] (2): 2 중, 1과 중복되지 않는 일부[4] Large Page ITLB는 duplicated[5] 하이퍼스레딩을 지원하지 않는 펜티엄 4는 그냥 펜티엄 4 시리즈, 하이퍼스레딩을 지원하는 펜티엄 4는 펜티엄 4 HT 시리즈로 구분한다.[6] Windows 2000, Windows Me 이전 버전에서는 하이퍼스레딩을 제대로 활용할 수 없다. 가상 머신에 올려서 쓴다고 해도 하이퍼스레딩이 있는 인텔 8세대(펜티엄, i7), 라이젠에서는 막힌다.[7] 넷북, 넷탑에 사용됐던 아톰의 거의 대부분이 지원한다. 예외적으로 Z500/Z510 같은 초 저전력 프로세서는 전력 문제로 빼는 경우도 있다.[8] 코어 i9 라인 자체는 2017년 HEDT CPU를 표방하는 코어-X 시리즈부터 처음 도입되었다.[9] 한 클럭 당 명령어를 몇개를 수행할 수 있느냐를 나타내는 표준 수치로, 한마디로 클럭 대비 성능[10] 4 코어 8 논리 프로세서로 떠야 하는데 4 코어 4 논리 프로세서로 뜨는 경우.[11] '전혀 없는 멀티코어 최적화와 렉 문제' 부분 참고[12] 사실 최근일수록 트윅이나 최적화 프로그램 대부분의 실체가 이렇지만



#!if version2 == null
{{{#!wiki style="border:1px solid gray;border-top:5px solid gray;padding:7px;margin-bottom:0px"
[[크리에이티브 커먼즈 라이선스|[[파일:CC-white.svg|width=22.5px]]]] 이 문서의 내용 중 전체 또는 일부는 {{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/SMT|SMT]]}}}{{{#!if external != "o"
[[SMT]]}}}}}} 문서의 {{{#!if uuid == null
'''uuid not found'''}}}{{{#!if uuid != null
[[https://namu.wiki/w/SMT?uuid=82345442-e923-4c71-90a3-7428ee1686b7|r223]]}}} 판{{{#!if paragraph != null
, [[https://namu.wiki/w/SMT?uuid=82345442-e923-4c71-90a3-7428ee1686b7#s-4|4번 문단]]}}}에서 가져왔습니다. [[https://namu.wiki/history/SMT?from=223|이전 역사 보러 가기]]}}}
#!if version2 != null
{{{#!wiki style="display: block;"
{{{#!wiki style="border:1px solid gray;border-top:5px solid gray;padding:7px;margin-bottom:0px"
[[크리에이티브 커먼즈 라이선스|[[파일:CC-white.svg|width=22.5px]]]] 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
{{{#!wiki style="text-align: center"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="text-align: left; padding: 0px 10px"
{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/SMT|SMT]]}}}{{{#!if external != "o"
[[SMT]]}}}}}} 문서의 {{{#!if uuid == null
'''uuid not found'''}}}{{{#!if uuid != null
[[https://namu.wiki/w/SMT?uuid=82345442-e923-4c71-90a3-7428ee1686b7|r223]]}}} 판{{{#!if paragraph != null
, [[https://namu.wiki/w/SMT?uuid=82345442-e923-4c71-90a3-7428ee1686b7#s-4|4번 문단]]}}} ([[https://namu.wiki/history/SMT?from=223|이전 역사]])
{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid2 == null
'''uuid2 not found'''}}}{{{#!if uuid2 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph2 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]]){{{#!if version3 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid3 == null
'''uuid3 not found'''}}}{{{#!if uuid3 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph3 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version4 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid4 == null
'''uuid4 not found'''}}}{{{#!if uuid4 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph4 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version5 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid5 == null
'''uuid5 not found'''}}}{{{#!if uuid5 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph5 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version6 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid6 == null
'''uuid6 not found'''}}}{{{#!if uuid6 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph6 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version7 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid7 == null
'''uuid7 not found'''}}}{{{#!if uuid7 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph7 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version8 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid8 == null
'''uuid8 not found'''}}}{{{#!if uuid8 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph8 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version9 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid9 == null
'''uuid9 not found'''}}}{{{#!if uuid9 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph9 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version10 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid10 == null
'''uuid10 not found'''}}}{{{#!if uuid10 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph10 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version11 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid11 == null
'''uuid11 not found'''}}}{{{#!if uuid11 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph11 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version12 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid12 == null
'''uuid12 not found'''}}}{{{#!if uuid12 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph12 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version13 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid13 == null
'''uuid13 not found'''}}}{{{#!if uuid13 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph13 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version14 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid14 == null
'''uuid14 not found'''}}}{{{#!if uuid14 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph14 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version15 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid15 == null
'''uuid15 not found'''}}}{{{#!if uuid15 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph15 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version16 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid16 == null
'''uuid16 not found'''}}}{{{#!if uuid16 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph16 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version17 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid17 == null
'''uuid17 not found'''}}}{{{#!if uuid17 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph17 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version18 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid18 == null
'''uuid18 not found'''}}}{{{#!if uuid18 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph18 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version19 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid19 == null
'''uuid19 not found'''}}}{{{#!if uuid19 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph19 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version20 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid20 == null
'''uuid20 not found'''}}}{{{#!if uuid20 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph20 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version21 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid21 == null
'''uuid21 not found'''}}}{{{#!if uuid21 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph21 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version22 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid22 == null
'''uuid22 not found'''}}}{{{#!if uuid22 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph22 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version23 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid23 == null
'''uuid23 not found'''}}}{{{#!if uuid23 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph23 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version24 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid24 == null
'''uuid24 not found'''}}}{{{#!if uuid24 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph24 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version25 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid25 == null
'''uuid25 not found'''}}}{{{#!if uuid25 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph25 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version26 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid26 == null
'''uuid26 not found'''}}}{{{#!if uuid26 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph26 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version27 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid27 == null
'''uuid27 not found'''}}}{{{#!if uuid27 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph27 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version28 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid28 == null
'''uuid28 not found'''}}}{{{#!if uuid28 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph28 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version29 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid29 == null
'''uuid29 not found'''}}}{{{#!if uuid29 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph29 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version30 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid30 == null
'''uuid30 not found'''}}}{{{#!if uuid30 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph30 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version31 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid31 == null
'''uuid31 not found'''}}}{{{#!if uuid31 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph31 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version32 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid32 == null
'''uuid32 not found'''}}}{{{#!if uuid32 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph32 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version33 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid33 == null
'''uuid33 not found'''}}}{{{#!if uuid33 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph33 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version34 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid34 == null
'''uuid34 not found'''}}}{{{#!if uuid34 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph34 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version35 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid35 == null
'''uuid35 not found'''}}}{{{#!if uuid35 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph35 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version36 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid36 == null
'''uuid36 not found'''}}}{{{#!if uuid36 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph36 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version37 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid37 == null
'''uuid37 not found'''}}}{{{#!if uuid37 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph37 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version38 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid38 == null
'''uuid38 not found'''}}}{{{#!if uuid38 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph38 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version39 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid39 == null
'''uuid39 not found'''}}}{{{#!if uuid39 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph39 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version40 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid40 == null
'''uuid40 not found'''}}}{{{#!if uuid40 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph40 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version41 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid41 == null
'''uuid41 not found'''}}}{{{#!if uuid41 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph41 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version42 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid42 == null
'''uuid42 not found'''}}}{{{#!if uuid42 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph42 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version43 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid43 == null
'''uuid43 not found'''}}}{{{#!if uuid43 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph43 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version44 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid44 == null
'''uuid44 not found'''}}}{{{#!if uuid44 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph44 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version45 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid45 == null
'''uuid45 not found'''}}}{{{#!if uuid45 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph45 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version46 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid46 == null
'''uuid46 not found'''}}}{{{#!if uuid46 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph46 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version47 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid47 == null
'''uuid47 not found'''}}}{{{#!if uuid47 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph47 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version48 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid48 == null
'''uuid48 not found'''}}}{{{#!if uuid48 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph48 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version49 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid49 == null
'''uuid49 not found'''}}}{{{#!if uuid49 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph49 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}{{{#!if version50 != null
{{{#!wiki style="display: block;"

{{{#!wiki style="display: inline-block"
{{{#!if external == "o"
[[https://namu.wiki/w/|]]}}}{{{#!if external != "o"
[[]]}}}}}} 문서의 {{{#!if uuid50 == null
'''uuid50 not found'''}}}{{{#!if uuid50 != null
[[https://namu.wiki/w/?uuid=|r]]}}} 판{{{#!if paragraph50 != null
, [[https://namu.wiki/w/?uuid=#s-|번 문단]]}}} ([[https://namu.wiki/history/?from=|이전 역사]])}}}}}}}}}}}}}}}}}}}}}