변수 "i"와 "j"가 카운터에 사용되는 이유는 무엇입니까?


179

나는 이것이 절대적으로 어리석은 질문처럼 보일지 모르지만, 묻지 않기에는 너무 궁금합니다 ...

"i"와 "j"가 대부분의 제어 구조에서 카운터로 사용할 변수가 된 이유는 무엇입니까?

상식에 따르면 그것들은 알 수없는 값을 나타내는 데 사용되는 X와 같다고 말하지만 모든 사람들이 같은 방식으로 반복해서 가르치는 이유가 있어야한다고 생각할 수는 없습니다.

실제로 모범 사례 나 컨벤션에 권장되기 때문입니까, 아니면 그 뒤에 모호한 이유가 있습니까?

경우에 따라 원하는 이름을 지정할 수 있으며 변수 이름은 관련이 없습니다.


17
i = j 동안 중단 후 반복
ajreal

7
이상한 'c'를 선택하지 않았습니까? 인텔 'cx'카운터 레지스터에서와 같이.


16
실제 질문이 인기있는 이유만으로 커뮤니티 위키가되는 이유는 무엇입니까? 이것은 공산주의를 매우 연상시킵니다. 누군가가 정말 멋진 것을 발명하면 정부는 발명을 도용하여 커뮤니티와 공유합니다.
orokusaki

9
잘못된 방법으로 폐쇄 : 여기에있는 답변은 다른 질문보다 더 유익합니다.
Charles Stewart

답변:


330

그것은 수학에서 궁극적으로 온다 : 요약 표기법은 전통적으로 사용하는 난을 첫 번째 인덱스에 대한 J 번째에, 등등. 예 ( http://en.wikipedia.org/wiki/Summation ) :

\ sum_ {i = 1} ^ {n} i = \ frac {n ^ 2 + n} {2}

변수 x 1 , x 2 , ... x n 을 가지고 있다면 임의 의 변수 를 x i라고 합니다.

왜 그런지에 관해서는 SLaks가 정확하다고 생각합니다. 왜냐하면 Index의 첫 글자이기 때문입니다.


93
@SLott : 그리고 왜 i수학에 사용됩니까?
SLaks

13
@ 슬 락스 : 좋은 질문입니다. 실제로 "i"는 인덱스보다 정수에서 나올 수 있다고 생각합니다. 또한 칠판에 쓰는 것이 쉽다고 생각합니다. 70 년대로 돌아가서 우리는 "i"와 "j"를 완벽하게 독특한 방식으로 썼다는 것을 확신했습니다. 실제로, 우리는 "i"를 거꾸로 "j"와 똑같이 그려서 그것에 대해 완벽하게 알도록 지시 받았다.
S.Lott

26
@ S.Lott : 정수에서 나온 것 같습니다. 우리는 정수에 ℤ (칠판 굵은 체 Z)를 사용하는데 , 이는 숫자 를 의미 하는 독일어 단어 Zahlen을 나타 내기 때문 입니다 . 요약 표기가 동시에 주변에서 발생한다고 가정은, 독일 기반의 표기법이 예상-와의 독일어 단어 될 인덱스 입니다 지수 도 시작, 내가 . 그리고 칠판에 쓰기가 어려운 많은 편지는 생각할 수 없습니다. 음, ξ :-)를 제외하고
Antal Spector-Zabusky

14
"이 협약은 이전에 존재했기 때문에 존재합니다." 그것은 어원이 작동하는 방식입니다. 왜 특정 노이즈가 PIE에서 특별한 의미를 갖는지 아무도 모릅니다. 수학적 관습을 설명하는 것이 좋을지 모르지만 문제는 "제어 구조에서 카운터로 사용되는 이유"입니다. 따라서 누군가가 다시 답을 얻을 때까지 이것이 가장 좋습니다. 적어도 왜 수학에서 사용되는지 추측합니다. 이진 절단을 사용하여 적절한 수학적 역사학자가 찾을 수 있습니다. 유클리드는 그것을 사용하지 않았습니다. 코시는 어때? 그는 인덱스를 많이 사용했습니다
Steve Jessop

14
함수 상수에 a, b, c를 사용하고 함수 변수에 x, y, z를 사용하는 것이 Lagrange라고 생각합니다. i, j, k는 벡터의 '방향'을 나타내며, 이와 같은 공식적인 합의 인자는 방정식의 자유도 [방향, 다른 이름으로]로 해석 될 수 있습니다.
David

200

나는 그것이 Fortran으로 거슬러 올라간다고 생각합니다. I에서 Q로 시작하는 변수는 기본적으로 정수이고 다른 변수는 실제 변수입니다. 이것은 I첫 번째 정수 변수이고 J두 번째 등이 루프에서 사용되도록 떨어졌습니다.


53
나는 이것이 수학자들이 i, j, k를 요약 및 행렬 곱셈 지수 및 기타에 대한 편리한 첨자로 사용하는 것처럼 보이는 방식에서 비롯된 것이라고 생각합니다. 나는 초기 포트란 II 매뉴얼에서 그것에 대해 읽은 것을 기억합니다. (예, 포트란 II)
S.Lott

5
예, FORTRAN은 이러한 규칙을 시작합니다.
Jé Queue

9
나는 아닌 것을 I통해 배웠다 . 구글은 대부분 동의하는 것으로 보인다. (FORTRAN의 다른 버전?)NQ
휴 알렌

2
Fortran의 다른 모든 것은 기본적으로 실제였습니다. "정수를 선언하지 않으면 신은 실재합니다"라는 농담으로 이어집니다.
Lagerbaer

4
@learnvst-수학자들이 적어도 한 세기 전에 i, j를 사용했기 때문에.
Martin Beckett

195

수학자들은 i, j, k를 사용하여 컴퓨터가 오래 전 (예 : 1836 또는 1816 ) 대수의 정수 (첨자, 계열, 요약 등)를 지정했습니다 (이는 FORTRAN 변수 유형 기본값의 원점입니다). 알파벳의 끝에서 문자를 사용하는 습관이 (..., X, Y, Z)에 대한 미지의 상수와 변수 시작 (A, B, C, ...)로부터는 통상 기인데카르트 (참고 또한 여기에서 ) 그래서 나는 정수에 대한 i, j, k ... n (알파벳 중간)이 그로 인한 것 같아요.


17
나에게 이것은 분명히 가장 좋은 대답입니다. (Michael Borgwardt의 답변에 대한 훌륭한 언급은 수학 규칙을 인용하지만 구체적이지는 않습니다.) 죄송합니다. 내가 할 수있는 것은 공감대를주는 것입니다.
John Y

3
이것이 바로 커뮤니티가 승인 한 답변에 투표 할 수 있어야하는 이유입니다.
Kredns

허. Google은 때때로 물건을 자르기 때문에이 답변에서 오래된 Google 도서에 대한 링크를 업데이트합니다. 우연히도 현재 링크 된 1816 년 문서에는 Charles Babbage (아마도 그는 엔진 / 분석 엔진 명성의 차이)가 저자로 포함되어 있습니다. 컴퓨터 프로그래머가 정수 변수 "i"를 처음 사용한 예입니다 : ^)
timday

..OK 1816 링크는 "i"가 사용 된 페이지로 이동하지 않지만 거기에 있습니다.
timday

129

i = 정수

정수 변수는 문자 I부터 N으로 시작해야하고 실제 변수는 다른 문자로 시작해야하는 포트란에서 나옵니다. 따라서 나는 첫 번째이자 가장 짧은 정수 변수 이름이었습니다. 포트란은 가장 널리 사용되는 프로그래밍 언어 중 하나였으며이를 사용하여 프로그래머가 개발 한 습관은 다른 언어로 이어졌습니다.

편집 : 나는 수학에서 파생 된 답변에 문제가 없습니다. 의심 할 여지없이 Fortran 디자이너가 영감을 얻은 곳입니다. 사실, Fortran에서 프로그램을 시작했을 때 루프 카운터에 I, J, K, ...를 사용했습니다. HS 학년의 2 학년으로서 나는 아마도 데카르트 (들)에 대해 들어봤을 것입니다. 사실, 내가 취한 첫 번째 과정은 "Fortran for Business"라고 불리며 수학 교수가 아니라 비즈니스 / 경제학 교수가 가르쳤습니다.

나에게 적어도 변수의 이름은 수학과 거의 관련이 없었지만 습관으로 인해 모든 것이 다른 언어로 수행 된 포트란 코드를 작성하는 것을 선택했습니다.


4
나는 그것이 FORTRAN이었다고 확신합니다.
Cade Roux

4
야, 포트란 ..... 마음이 썩어. 루프 변수 이름으로 i ii 및 iii을 사용하는 프로그래머가 있습니다. 다른 증상은 모음이없는 6 개의 문자 변수 / 함수 이름입니다.
EvilTeach

4
@tvan, 나는 N부터 N까지의 변수가 기본적 으로 정수로 설정 되어 있다고 확신 하지만, 여전히 정수로 선언되지 않으면 농담을 선언 할 수 있습니다. 어쨌든 +1, 수년 전의 기억은 완벽하지 않을 수 있기 때문입니다.
paxdiablo 2018 년

10
이봐, FORTRAN 놈들은 수학자에게 그것을 가져왔다!
timday

6
@timday에 동의합니다. i를 시리즈의 인덱스로 사용하는 것은 수세기 동안 적어도 2 세기 동안 수학자에 의해 수행되었습니다.
Scottie T

91

iI ndex를 나타냅니다 .
j후에 온다 i.


12
나는 그가 알파벳에 대해 이야기하고 있다고 생각합니다. 상상력을 발휘하십시오 :)
Jack

33
@Jack : @Pete가 농담 한 것 같아요 ;-)
Chris Pfohl

13
@Cpfohl : 네, 그냥 지루하고 싶었습니다 : D
Jack

4
@Pete Kirkham : Pete에게 대단히 감사합니다. 지난 달에 제가 가장 웃었던 일이었습니다.
AMissico

@SLaks ... 난 오른쪽이 내가 수학에 사용되는 지수 표기법에서 오는 색인 = 않습니다 생각 en.wikipedia.org/wiki/Index_notation 또는 여기에 좋은 참조입니다 physics.ucsb.edu/~physCS31/fall2010/index- notation.pdf
John Hartsock

63

이 기호들은 전자 컴퓨터가 발명되기 오래 전에 수학에서 행렬 인덱스로 사용되었습니다.


52

필자는 색인 ( 수학적 의미에서 ) 에서 파생되었을 가능성이 높습니다. 일반적으로 합계 또는 기타 집합 기반 작업의 색인으로 사용되며 프로그래밍 언어가 있기 전에 그 방식으로 사용 된 것 같습니다.


좋은 대답입니다. 이것은 (나에게) 실제로 가장 가능한 설명처럼 보인다.
Noldorin

3
예. 합계와 같은 수학 표기법은 Y = Σ Xi모든 프로그래밍 언어보다 우선합니다.
Treb

사용할 때마다 색인을 생각하고 있습니다 i. 그러나 원래 나는 주로 다른 곳에서 모든 코드 I 모양이 그것을 사용하기 때문에 사용하고, ... 포트란 프로그래머로부터 상속 할 수있다
경외

47

수학에서 유사한 방식으로 사용되는 "익명"변수에 대해 알파벳의 연속 문자를 사용하는 것이 선호됩니다. 따라서 "i, j, k"뿐만 아니라 "f, g, h", "p, q, r", "x, y, z"( "u, v, w"가 거의 붙지 않음), 및 "α, β, γ".

이제 "f, g, h"및 "x, y, z"는 자유롭게 사용되지 않습니다. 전자는 기능을위한 것이고 후자는 치수를위한 것입니다. "p, q, r"도 종종 기능에 사용됩니다.

그런 다음 사용 가능한 시퀀스에 다른 제약 조건이 있습니다. "l"및 "o"는 많은 글꼴에서 "1"및 "0"과 너무 비슷해 보이지 않기 때문에 사용하지 않습니다. "t"는 종종 시간에, "d & δ"는 미분에, "a, s, m, v"는 가속, 변위, 질량 및 속도의 물리적 측정에 사용됩니다. 그것은 지수에 대한 수학에서의 원치 않는 연관없이 3 연속 문자의 간격을 그리 많이 남기지 않습니다.

그런 다음 다른 여러 사람들이 알듯이 수학의 규칙은 초기 프로그래밍 규칙에 큰 영향을 미쳤으며 많은 초기 문자 집합에서 "α, β, γ"를 사용할 수 없었습니다.


2
동의했다. 비록 a, b, c매우 일반적으로 사용되는 시퀀스에도 불구하고 a... 여러 의미를 갖는
Stobor

32

i, j 및 k가에서 올 수 있다는 또 다른 가능한 대답을 찾았습니다 Hamilton's Quaternions.

대체 텍스트

오일러는 가상 단위로 i를 선택했습니다.

해밀턴에는 -1의 두 제곱근이 더 필요했습니다. ii = jj = kk = ijk = -1

해밀턴은 실제로 영향력이 있었고 쿼터니언은 1900 년 전에 3D 분석을 수행하는 표준 방법이었습니다. 그때까지 수학자들은 (ijk)를 일치하는 세트로 생각하는 데 익숙했습니다. 벡터 계산법 은 Maxwell의 방정식을 작성 하는 더 좋은 방법 이었기 때문에 1890 년대의 4 차 이온 분석대체 했습니다 . 그러나 사람들 (3i-2j+k) 은 대신 다음과 같이 벡터 양을 쓰는 경향이 (3,-2,1)있습니다. 따라서 (ijk)는 R ^ 3의 표준 기본 벡터가되었습니다.

마지막으로 물리학 자들은 미분 방정식 시스템에서 대칭을 설명하기 위해 그룹 이론을 사용하기 시작했습니다. 그래서 (ijk)는 "순열 그룹에 의해 스왑되는 벡터"를 의미하기 시작했고 "지정된 일부 세트에서 가능한 모든 값을 취하는 인덱스와 같은 것들"로 향했습니다. 이것은 기본적으로 for 루프에서 의미하는 것입니다.


11
마지막으로 질문에 대한 다른 접근 방식, 흥미로운 점 +1
Fabian

30

버림으로써 (약간 편향 됨)

a seems an array
b seems another array 
c seems a language name
d seems another language name
e seems exception
f looks bad in combination with "for" (for f, a pickup?)
g seems g force
h seems height

i seems an index                    
j seems i (another index)

k seems a constant k
l seems a number one (1) 
m seems a matrix
n seems a node
o seems an output
p sounds like a pointer
q seems a queue
r seems a return value
s seems a string
t looks like time
u reserved for UVW mapping or electic phase 
v reserved for UVW mapping or electic phase or a vector
w reserved for UVW mapping or electic phase or a weight
x seems an axis (or an unknown variable)
y seems an axis
z seems a third axis

3
number일반적으로 집합의 요소 수인 n을 봅니다 .
Tom Leys

6
아, 그리고 XXX은 어떤 것 같아? )) 창의성 +1;)
Hovhannes Grigoryan

때때로 나는 대부분의 시간에 다른 사람들이 그런 것들을 위해 그들의 머리에서 어떤 종류의 니모닉을 생각해 낼 필요가 없어서 기쁘다 ...
Thies Heidecke

21

어느 화창한 오후, 아르키메데스는 무엇을 숙고하고 있는지 ( 맑은 오후에 평소와 같이 ) 그의 친구 에라토스테네스를 만났습니다.

아르키메데스는 "아키 메데스 대 에라토스테네스 인사"라고 말했습니다. 저는 평형 상태에서 몇 개의 구면 강체의 비율에 대한 해법을 찾으려고 노력하고 있습니다. 내가 몇 번이나 반복했는지! "

에라토스테네스는 "아키 메데스, 왜 당신은 아이들의 익은 매화를 겪었 을까? 모래 안에 연속적인 줄을 표시 할 수있다. 각 반복마다 반복 횟수를 추적 할 수있다!"

아르키메데스는 그의 위대한 친구가 의심 할 여지없이 그러한 간단한 해결책을 제시하기위한 빛나는 정보의 비콘이라고 세상에 외쳤다. 그러나 아르키메데스는 숙고하면서 모래 구덩이 주위를 빙빙 돌고 걷는 것을 좋아한다고 말했습니다. 따라서 어떤 행이 맨 위에 있고 어떤 행이 맨 아래에 있는지 추적 할 수없는 위험이있었습니다.

"어쩌면 나는이 행을 알파벳 문자로 옆에 표시해 놓아야하므로 어떤 행이 어떤 행인지 항상 알 수있을 것입니다! 어떻게 생각하십니까?" 그는 물었다. "하지만 에라토스테네스 ... 어떤 글자를 써야 할까?"

에라토스테네스는 어떤 문자가 가장 좋을지 몰랐고 아르키메데스에게도 많은 말을했다. 그러나 아르키메데스는 불만족스러워서 가난한 사서가 현재 구 평형 솔루션에 필요한 두 글자를 선택하도록 계속 자극했다.

에라토스테네스 (Eratosthenes)는 마침내 두 개의 편지에 대한 끊임없는 요청에 질려서 "나는 단지 모른다"라고 소리 쳤다.

그래서 아르키메데스는 에라토스테네스의 감탄 문장에서 처음 두 글자를 선택하고 그의 친구에게 감사의 말을 전했다.


이 상징들은 고대 그리스 자바 개발자들에 의해 빠르게 채택되었으며 나머지는 역사입니다.


6
... 그리고 편지가 있었다 j.
Andrew Grimm

와우, 거의 호프스 태터의 GEB에서 거북이와 아킬레스의 이야기처럼 읽고
ProfK

15

많은 루프가 Int 유형 변수를 사용하여 계산을 수행하기 때문이라고 생각합니다.

for (int i = 0; etc

입력 할 때 실제로 머리에 소리를 내며 (읽을 때와 같이) 마음 속에 'int ....'라고 말합니다.

그리고 그 'int ....'바로 뒤에 문자를 만들어야 할 때, 'i'라고 말하고 입력하십시오.

학습을 시작하는 아이들에게 단어를 철자하는 것처럼 다음과 같이 이름을 사용하여 철자 단어를 철자합니다.

WORD 철자, W, Ok O, Ruby R, D

따라서 첫 번째 문자를 기준으로 Int I, Double d, Float f, string s 등을 말합니다.

그리고 j는 int I을 수행했을 때 J가 바로 뒤 따르기 때문에 사용됩니다.


7
i이 구문보다 먼저 사용됩니다.
SLaks

1
그것은 아이의 쓰레기를 혼동하는 좋은 방법입니다. 당신은 정말 당신에게 그런 철자를 가르쳐?!
궤도에서 가벼움 레이스

14

다른 언급 된 이유의 조합이라고 생각합니다.

우선, 'i'는 수학자들이 표기법으로 일반적으로 사용했으며 바이너리가 아닌 언어로 컴퓨팅하는 초기에는 (즉, 어떤 방식으로 구문 분석되고 구문 분석되어야 했음) 컴퓨터 사용자의 대다수는 또한 수학자 (...와 과학자와 엔지니어)는이 표기법을 프로그래밍 언어로 컴퓨터 언어로 사용하기 시작했으며 그 이후로 계속 사용되었습니다.

이것을 초기 시절의 화면 공간 이 메모리와 마찬가지로 매우 제한적 이라는 사실과 결합하면 변수 이름을 더 짧게 유지하는 것이 합리적입니다.


13

아마 역사적인?

FORTRAN, 아마도 첫 번째 고급 언어로, 기본적으로 i, j, k, l, m을 정수 데이터 유형으로 정의했으며 루프는 정수 변수로만 제어 할 수 있으며 규칙은 계속됩니까?

예 :

100 i = j, 100,5 .... 100 계속 ....


FWIW, 나는 보통 숫자 1과 너무 비슷하기 때문에 문자 l을 건너 뜁니다.
Nosredna

13

i = 반복자, i = 인덱스, i = 정수

"i"를 나타내는 것은 여전히 ​​"빌에 적합"하다는 것을 의미합니다.

또한 해당 루프 내에 한 줄의 코드가 없으면 반복자 / 인덱스 / 정수 변수의 이름을 더 의미있는 이름으로 지정해야합니다. 처럼 : employeeIndex

BTW, 나는 보통 간단한 반복자 루프에서 "i"를 사용한다. 물론 여러 줄의 코드를 포함하지 않는 한.


13

i = 아이 오타, j = 요트; 두 가지 작은 변화.

이오타는 그리스 알파벳에서 가장 작은 문자입니다. 영어에서는 그 의미는 "하나의 이오타가 아님"에서와 같이 작은 변화와 관련이 있습니다. (마 5:18).

카운터는 값의 작은 변화를 나타냅니다.

그리고 iota는 jot (iot)을 가져 왔습니다. 이는 작은 변화의 동의어이기도합니다.

cf. http://en.wikipedia.org/wiki/Iota


13

수학에서 잘 : (라틴 문자)

a, b : 상수 또는 정수로 정수로 사용
c : 상수
d : 미분
e : 오일러 수
f, g, h : 함수
i, j, k : 인덱스 (단위 벡터 및 쿼터니언)
l : 일반적으로 사용되지 않습니다. 1 같은 외모
m은 n은 행과 행렬의 열 또는 유리수에 대한 정수로는
(당신이 조금 오 표기가 아니라면)도 사용하지 : O를
P, Q : 종종 소수로 사용되는
r에 : 변수 때로는 공간의 변화를 소수
s, t 와 관련된 다른 시간 : 공간 및 시간 변수 또는 s는 t
u, v, w에 대한 변수의 변경으로 사용됩니다 : 변수
x, y, z의 변경 : 변수


11

가능한 많은 주요 이유는 다음과 같습니다.

  • 수학자 사용 ij에 대한 천연 번호 수식 (사용하지 않는 사람 복소수를 이 프로그램에 이월, 그래서 적어도 거의)
  • 에서 C , i힌트 int. 다른를해야하는 경우 int다음 i2당신이 사용하기로 결정, 그래서 그냥 너무 오래입니다 j.
  • 첫 글자가 유형을 결정하는 언어가 있으며 i그 다음에는 integer입니다.


7

그것은 컴퓨터 프로그래밍보다 오래 전부터 수학에서 나온 것입니다.

그렇다면 수학에서 어디로 왔을까요? 완전히 교육받지 않은 추측은 한 동료가 말한 것처럼 수학자들은 비슷한 일에 알파벳 클러스터를 사용하는 것을 좋아합니다. 숫자 변수의 경우 x, y, z; 논리 변수의 경우 p, q, r; u, v, w는 특히 미적분의 다른 변수 집합에 해당합니다. 많은 것을 위해 a, b, c. i, j, k는 반복적 인 변수에 유용하며, 그 가능성을 소진합니다. 왜 안돼? 글쎄, 그것들은 정수에 사용되지만 반복 변수 자체보다는 반복의 종점에 더 자주 사용됩니다.

누군가는 역사 학자에게 수학을 요구해야합니다.


6

카운터는 프로그램에서 매우 일반적이며 컴퓨팅 초기에는 모든 것이 최고 였습니다 ...
프로그래머는 자연스럽게 픽셀을 보존하려고 시도했으며 'i'는 다른 문자보다 적은 수의 픽셀을 필요로했습니다. (게으른 수학자들은 같은 이유로-가장 작은 그림 문자로 그것을 선택했습니다).
앞에서 언급했듯이 'j'는 자연스럽게 따라 갔다 ...

:)


24
컴퓨팅의 초기에, 픽셀은하지 않았다 존재한다 .
SLaks

1
@ 슬 락스, 그것은 하나의 승리 의견입니다. 내 얼굴의 미소가 그것을 읽고 투표하는 것을 보아라. 좋은!
ProfK

"프로그래머들은 자연스럽게 픽셀을 보존하려고 노력했으며 'i'는 다른 문자보다 적은 픽셀을 필요로했습니다." <<< 그거 재밌 네요.
ocodo

1
... 따라서 조기 최적화가 시작되었습니다!
Gerrat

4

여러 가지 이유로 사용합니다.

  • 일반적으로 루프는 int 기반이므로 엄지로 처리하는 공간을 제외하고 키보드에 "int i"를 입력하여 완전한 삼각형을 만듭니다. 이것은 입력하기에 매우 빠른 순서입니다.

  • "i"는 반복자, 정수, 증분 또는 색인을 나타낼 수 있으며 각각 논리적으로 의미가 있습니다.

내 개인적인 용도를 제외하고는 FORTRAN에서 파생 된 이론이 정확합니다. 정수 vars는 문자 I-N을 사용했습니다.


4

1965 년에 Control Data Corp. 3100에서 FORTRAN을 배웠습니다. 'I'에서 'N'으로 시작하는 변수는 정수로 암시되었습니다. 예 : 'IGGY'및 'NORB'는 정수이고 'XMAX'및 'ALPHA'는 부동 소수점입니다. 그러나 명시 적 선언을 통해이를 무시할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.