“javascript : void (0)”의 의미는 무엇입니까?


1378
<a href="javascript:void(0)" id="loginlink">login</a>

나는 그런 것들을 href여러 번 보았지만 정확히 그것이 무엇을 의미하는지 모르겠습니다.


12
javascript:en.wikipedia.org/wiki/URI_scheme 과 같은 많은 URI 체계 중 하나입니다 data:.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

3
href="javascript:"같은 목적으로 만 사용할 수 있습니다 . 에 대한 대답에 명시된 바와 같이 이 문제void(0)부분은 원래 브라우저의 초기 버전에 대한 의도 된 javascript:URI 처리가 달랐다. 그러나 이제는 속기가 작동하지 않는 버전을 찾을 수 없었습니다. 적어도 IE7 은이를 올바르게 처리합니다.
사용자

1
href = "javascript : //"도 보았습니다. 이것이 더 낫습니까?
광선 검

href = "javascript : //"가 작동하지 않습니다 void (0)이 완벽하게 작동합니다.
sandip

답변:


1041

void연산자는 주어진 표현하고 수익을 평가합니다 undefined.

void운영자는 종종 획득하기 위해 단지 이용된다 undefined통상적으로 "사용하여 원시 값을 void(0)"(동등하다 " void 0"). 이 경우 전역 변수 undefined 를 대신 사용할 수 있습니다 (기본값이 아닌 경우).

여기에 voidoperator 가 설명되어 있습니다 .

href링크를 사용 하여이 작업을 수행하려는 이유 는 일반적으로 javascript:URL이 브라우저를 해당 JavaScript 평가 결과의 일반 텍스트 버전으로 리디렉션하기 때문입니다. 그러나 결과가 undefined인 경우 브라우저는 동일한 페이지에 유지됩니다. void(0)로 평가되는 짧고 간단한 스크립트입니다 undefined.


9
href에 "정의되지 않은 기본 값"이 주어 졌을 때의 의미는 무엇입니까?
omg

7
"일반적으로 자바 스크립트 : url은 브라우저를 해당 자바 스크립트를 평가 한 결과의 일반 텍스트 버전으로 리디렉션합니다."여기서 예를 들어 볼 수 있습니까?
omg

87
피닉스가 말하는 것에 대한 예는 <a href="javascript: dosomething();"> 지금 IT하세요! </a>. dosomething이 false를 반환하면 링크를 클릭하면 브라우저가 페이지를 종료하고 "false"를 표시합니다. 그러나 ... <a href="javascript: dosomething(); void(0)"> 지금 IT! </a> 문제를 피하십시오. 계속해서 자바 스크립트를 붙여 넣기 : 1 + 1; 브라우저 주소 표시 줄에 브라우저는 "2"를 표시해야합니다
Breton

9
void는 단항 연산자이기 때문입니다. 무효는 값이 아니며 함수도 아닙니다. 오른쪽으로 작동하려면 값이 필요하거나 오류가 발생합니다.
Breton

14
오류 콘솔을 보시겠습니까? 구문 오류가 발생합니다. 유효하지 않은 자바 스크립트입니다. Douglas crockford는 단항 연산자 / 함수 / 값 혼란으로 인해 처리하기에 비용이 너무 많이 들기 때문에 빈 공간을 피하는 것이 좋습니다.
Breton

435

기술 답변 외에도 javascript:void저자가 잘못하고 있음을 의미합니다.

javascript:의사 URL (*) 을 사용해야 할 이유가 없습니다 . 실제로 누구나 '북마크 링크', '새 탭에서 링크 열기'등과 같은 작업을 시도하면 혼동이나 오류가 발생할 수 있습니다. 사람들은 이제 새로운 탭 중간 클릭에 익숙해졌습니다. 링크처럼 보입니다. 새 탭에서 읽고 싶지만 실제 링크는 아닙니다. 빈 페이지 나 중간 클릭시 JS 오류와 같은 원하지 않는 결과를 제공합니다.

<a href="#">덜 나쁠 수도있는 일반적인 대안입니다. 그러나 링크를 따르고 페이지 맨 위로 스크롤하지 않도록 이벤트 핸들러 return false에서 기억해야합니다 onclick.

경우에 따라 링크를 가리키는 유용한 장소가있을 수 있습니다. 당신은 당신이 클릭 할 수있는 컨트롤이 이전 숨겨진 열어이있는 경우 예를 들어 <div id="foo">, 그것은 사용에 어떤 의미합니다 <a href="#foo">그것에 대한 링크를. 또는 자바 스크립트가 아닌 방식으로 동일한 작업을 수행하는 경우 (예 : foo를 시작으로 설정하는 'thispage.php? show = foo') 링크 할 수 있습니다.

그렇지 않으면 링크가 일부 스크립트 만 가리키는 경우 실제로는 링크가 아니므로 그렇게 표시해서는 안됩니다. 일반적인 접근 방식은 추가하는 것 onclickA를 <span>, <div>또는 <a>없이 href당신이 그것을 클릭 할 수 명확하게하기 위해 어떤 방법과 스타일을. 이것이 바로 StackOverflow가 작성한 시점입니다. 이제는 href="#"]를 사용합니다 .

이것의 단점은 span / div / bare-a를 탭하거나 공백으로 활성화 할 수 없기 때문에 키보드 컨트롤이 손실된다는 것입니다. 이것이 실제로 불리한 지의 여부는 요소가 취해야 할 행동의 종류에 달려 있습니다. 약간의 노력을 기울이면 tabIndex요소에 a 를 추가 하고 스페이스 키 누르기를 들음 으로써 키보드 상호 작용 성을 모방 할 수 있습니다. 그러나 다른 브라우저가 키보드에 다르게 반응 할 수 있기 때문에 (비 시각적 브라우저는 말할 것도없고) 실제 브라우저 동작을 100 % 재현하지는 않습니다.

링크는 아니지만 마우스 나 키보드로 정상적으로 활성화 할 수있는 요소를 원한다면 원하는 것이 있습니다 <button type="button">(또는 <input type="button">간단한 텍스트 내용도 마찬가지입니다). 원하는 경우 언제든지 CSS를 사용하여 CSS를 다시 스타일링 할 수 있으므로 버튼보다 링크처럼 보입니다. 그러나 버튼처럼 작동하므로 실제로 표시해야합니다.

(* : 사이트 제작에서 어쨌든 그것들은 북마크에 유용합니다. javascript:의사 URL은 개념적 기괴함 : 위치를 가리 키지 않고 현재 위치 내에서 활성 코드를 호출하는 로케이터입니다. 브라우저와 웹앱 모두에 문제가 있으며 Netscape에서 발명 한 적이 없습니다.)


7
@bobince의 훌륭한 게시물 외에도 몇 달 전에 href쿼크와 부작용을 포함한 브라우저 간 키보드 탐색 기능에 대한 몇 가지 연구를 수행했습니다 . : 당신의 일부가 유용한 찾을 수 jakub-g.github.com/accessibility/onclick
jakub.g

2
@ThinkBonobo : 2009 년 이후로 어느 시점에서 SO가 변경되었습니다! 업데이트되었습니다.
bobince

59
이것은 의견이며 질문에 대답하지 않습니다. void(0)많은 경우에 필요합니다. "#"은 많은 문제를 일으키는 해킹입니다 (필자가 작성하는 앱에서는 작동하지 않으므로이 페이지로 연결됩니다).
felwithe

12
@feltwithe에 동의합니다. 다른 사람들이 "특별한 방법으로"행동하도록 강요하는 이유는 무엇입니까? 15 년간의 프로그래밍 과정에서 나는 "항상 이런 식으로해야한다"라는 모토가 사람들로 하여금 자신의 작품을 엉망으로 만들지 않는 방법을 아직 보지 못했다.
Steven de Salas

4
fragment-id를 사용하면 문서를 preventDefault사용 하지 않는 한 문서의 맨 위로 이동하므로 UX 관점에서 나쁜 생각입니다 . 앵커가 양식의 단추로 사용되는 경우에는 수행하지 마십시오.
Josh Habdas

124

그것은 아무것도 할 수 없다는 것을 의미합니다. 링크가 어디서나 '탐색'되지 않도록하려는 시도입니다. 그러나 올바른 방법은 아닙니다.

당신은 실제로 단지한다 return falseonclick이벤트과 같이 :

<a href="#" onclick="return false;">hello</a>

일반적으로 링크가 'JavaScript-y'작업을 수행하는 경우 사용됩니다. AJAX 양식을 게시하거나 이미지를 바꾸는 것 등 이 경우 return이라는 함수를 만들면 false됩니다.

그러나 웹 사이트를 완전히 멋지게 만들려면 일반적으로 웹 사이트를 탐색하는 사람이 JavaScript를 실행하지 않는 경우 동일한 작업을 수행하는 링크가 포함됩니다.

<a href="backup_page_displaying_image.aspx"
   onclick="return coolImageDisplayFunction();">hello</a>

33
no no-false를 반환하면 기본 동작이 중지되므로 #가 나타나지 않습니다.
Magnar

22
자바 스크립트 : URL 프로토콜은 실제 표준이 아닌 사실상의 표준입니다. 따라서 href = "#"onclick = "return false;" href = "javascript : void (0)"는 표준을 준수하지 않지만 수행해야 할 작업을 지정하는 공식 표준이 없기 때문입니다.
Breton

10
게다가 Douglas Crockford는 무효를 좋아하지 않기 때문에 jslint는 이에 대해 불평합니다. 기본적으로 void는 값이 아닌 연산자이기 때문에 지옥처럼 혼란스럽고 이와 같은 많은 질문이 생깁니다. 완전히 피하는 것이 좋습니다. ㅋ.
Breton

4
브랜든 : brenton 님의 답변을 참조하십시오. 내가 추천하는 방법이 가장 많이 지원되며 내 게시물의 두 번째 부분에서 말했듯이 '적절한'사이트에서는 '#'을 사용하지 않을 것입니다. 자바 스크립트.
정오 실크

19
완전히 멋진 예제 를 포함시켜 +1 . JavaScript에서 수행중인 작업에 대한 정적 HTML 대체가없는 경우에도 항상 다음과 같은 작업을 수행 할 수 있습니다 <a href="enableJavaScriptToSeeMyCompletelyAwesomeSite.html" onclick="completelyAwesome();return false;">.
그랜트 바그너

73

"#"과 javascript : void의 동작에는 큰 차이가 있습니다.

"javascript : void (0);"동안 "#"이 (가) 페이지의 TOP으로 스크롤됩니다. 하지 않습니다.

동적 페이지를 코딩하는 경우 매우 중요합니다. 사용자는 페이지에서 링크를 클릭하여 맨 위로 돌아 가기를 원하지 않습니다.


26
@Salvin : 이벤트 핸들러 로 돌아가서 페이지 상단으로 스크롤 동작을 억제 할 수 있습니다 false: onclick="doSomething();return false;"또는이면 doSomething()return false을 사용할 수 있습니다 onclick="return doSomething();".
그랜트 바그너

40
오년 후 또는, - @GrantWagner e.preventDefault().
trysis

1
당신은 / 수정을 원하기 때문에이 답변 삭제 될 수 있습니다 "#"않습니다 되지 는 false를 반환 할 때 상단으로 스크롤합니다.
Navin

4
@Navin 당신은 맞지만, 이제는 구식입니다. trysis의 주석은 현재 올바른 방법으로 간주됩니다.
Tim Seguine

66

HTML 링크에 JavaScript 함수를 추가하는 데 널리 사용되는 방법입니다.
예를 들어 [Print]많은 웹 페이지에 표시 되는 링크는 다음과 같이 작성됩니다.

<a href="javascript:void(0)" onclick="callPrintFunction()">Print</a>

혼자서 일을 할 수있는 href동안 왜 우리는 필요 onclick합니까? 이 없을 때 사용자가 '인쇄'텍스트 위에 마우스를 놓으면 href커서가 포인터 (👆) 대신 캐럿 (ꕯ)으로 바뀝니다. 만 갖는 hrefa태그하면 하이퍼 링크로 검증한다.

의 대안 href="javascript:void(0);"은을 사용하는 것입니다 href="#". 이 대안은 사용자 브라우저에서 JavaScript를 켤 필요가 없으므로 더 호환됩니다.


7
자바 스크립트가 꺼져 있으면 유용한 것이 없습니다.
Jasen

12
href가리키는 손 모양 커서를 얻을 필요는 없습니다 . 필요한 것은 약간의 CSS입니다.
John Montgomery

1
왜 onclick 대신 JavaScript 함수를 href에 넣지 않겠습니까?
Siddhartha Gandhi

2
@Sid에 동의합니다 .Javascript 함수를 트리거하기 위해 사용하는 경우 <a href="javascript:callPrintFunction()">더 깨끗합니다 ( 실제로 어디서나 가져 가지 않으면 nchor button보다는 오히려 있어야합니다 a).
DaveMongoose

href="#"중단 된 xhr 요청과 같은 불쾌한 놀라움으로 이어질 수 있으며 해당 링크를 클릭하면 호출됩니다. 최근에 사용자가 사이트의 루트가 아닌 주소에 있으면 oidc 로그인 요청을 중단 한 웹 사이트를 디버깅하는 데 어려움을 겪었습니다. #href로 인해 xhr 요청이 완료되기 전에 주소를 다시로드했습니다.
JustAMartin

44

당신은 항상 당신에 href가 있어야한다 태그를. 'undefined'를 반환하는 JavaScript 함수를 호출하면 정상적으로 작동합니다. '#'에 연결됩니다.

href가없는 Internet Explorer 6의 앵커 태그는 a:hover스타일이 적용 되지 않습니다 .

그렇습니다. 인류에 대한 끔찍하고 사소한 범죄이지만 Internet Explorer 6도 마찬가지입니다.

이게 도움이 되길 바란다.

Internet Explorer 6은 실제로 인류에 대한 주요 범죄입니다.


25

문자가 덜 필요하기 때문에 undefined를 확인할 때 void 0이 표시되는 경우가 있습니다.

예를 들면 다음과 같습니다.

something === undefined

vs.

something === void 0

이러한 이유로 일부 축소 방법은 undefined를 void 0으로 바꿉니다.


10
주목할만한 예 중 하나는 TypeScript ( 실례 )로, 기본 매개 변수 값을 컴파일하여 검사합니다 void 0. 많은 메소드가 기본 매개 변수 값을 사용하는 경우 3 자 차이가 빠르게 누적됩니다.
John Weisz

1
"이러한 이유로 일부 축소 방법은 undefined를 void 0으로 대체합니다." 마침내 나는 그것을 이해한다! 철저한 답변에 대해 @squall에게 감사드립니다.
Ahmed Mahmoud

22

사용은 javascript:void(0)HTML 작성자가 단추 요소 대신 앵커 요소를 잘못 사용하고 있음을 의미합니다.

페이지를 새로 고치지 않도록 href를 "#"또는 "javascript : void (0)"으로 설정하여 의사 버튼을 만들기 위해 앵커 태그가 onclick 이벤트에서 종종 남용됩니다. 이 값은 링크를 복사 / 드래그하거나, 새 탭 / 창에서 링크를 열거 나, 책갈피를 지정하거나 JavaScript가 여전히 다운로드 중이거나 오류가 발생하거나 비활성화 된 경우 예기치 않은 동작을 유발합니다. 또한 보조 기술 (예 : 화면 판독기)에 잘못된 의미를 전달합니다. 이 경우 <button>대신 사용하는 것이 좋습니다 . 일반적으로 올바른 URL을 사용하는 탐색에는 앵커 만 사용해야합니다.

출처 : MDN 's <a>Page .


4
오래된 질문에 의미 론적 HTML을 가져 오기위한 +1 ... 링크는 장소로 이동하고 버튼은 작업을 수행합니다. 버튼처럼 보이지 않으려면 스타일을 지워야합니다.
kevlarr

이에 대한 큰 예외는 이미지 맵이며, JavaScript를 실행해야 할 수도 있습니다. 버튼이 아니기 때문에 다각형 경계가있는 링크입니다. 이것이 "유일한"방법입니다.

17

void 를 반환하는 데 사용되는 연산자입니다 undefined브라우저가 새 페이지를로드 할 수 없도록 값 .

웹 브라우저는 URL로 사용되는 모든 것을 시도하여 null을 반환하는 JavaScript 함수가 아닌 한이를로드합니다. 예를 들어 다음과 같은 링크를 클릭하면

<a href="javascript: alert('Hello World')">Click Me</a>

새 페이지를로드하지 않고 경고 메시지가 표시됩니다. alert 이는 null 값을 반환하는 함수 입니다. 즉, 브라우저가 새 페이지를로드하려고하면 null이 표시되고로드 할 것이 없습니다.

void 연산자에 대해 유의해야 할 중요한 점은 값이 필요하고 자체적으로 사용할 수 없다는 것입니다. 우리는 이것을 다음과 같이 사용해야합니다 :

<a href="javascript: void(0)">I am a useless link</a>

1
사람들이 void 대신 javascript : null을 사용하는 것을 보았습니다 ... 그러나 그것은 문제입니다. Chrome null이 작동하면 Firefox에서 페이지 null을로드하려고합니다. 다행입니다. 재미있는 버그.
Gavin Pickin

javascript : null과 같은 코드베이스에서 다른 용도를 찾았지만 javascript : null ()은 정의되지 않았으므로 작동합니다.
Gavin Pickin

1
따라서 기본적으로 jquery의 prevendDefault와 같고 false를 반환합니까?
Robert Rocha

16

이 개념을 이해하려면 먼저 JavaScript의 void 연산자를 이해해야합니다.

void 연산자의 구문은 다음과 같습니다. void «expr» 과 . expr을 평가하고 undefined를 반환합니다.

void를 함수로 구현하면 다음과 같이 보입니다.

function myVoid(expr) {
    return undefined;
}

이 void 연산자에는 식의 결과를 버리는 중요한 사용법이 있습니다.

경우에 따라 식의 결과와 달리 정의되지 않은 값을 반환하는 것이 중요합니다. 그런 다음 void를 사용하여 해당 결과를 버릴 수 있습니다. 이러한 상황 중 하나는 javascript : URL과 관련이 있으며, URL은 링크에서는 피해야하지만 책갈피에 유용합니다. 해당 URL 중 하나를 방문하면 많은 브라우저가 현재 문서를 URL "content"를 평가 한 결과로 대체하지만 결과가 정의되지 않은 경우에만 해당됩니다. 따라서 현재 표시된 컨텐츠를 변경하지 않고 새 창을 열려면 다음을 수행하십시오.

javascript:void window.open("http://example.com/")

2
'void'에 대한 주장이 정확히 무엇인지 설명해 주셔서 감사합니다. 다른 답변에서는 명확하지 않았으며 "void는 인수를 취합니다".
dbeachy1

좋은 대답이지만 한 가지 세부 사항은 void 구현은 다음과 같습니다. function myVoid(expr) { expr(); return undefined; } add expr ();
Juanma Menendez

1
@ Juanma Menendez : 사실이 아닙니다. 호출 expr될 때 이미 평가되었습니다 myVoid()( 해당 표현식 의 결과 가 매개 변수로 전달됨)
Udo G

@ UdoG 궁금합니다, 그 남자를 어떻게 알 수 있습니까? 설명해 주시겠습니까?
Juanma Menendez

@JuanmaMenendez : 함수 매개 변수의 표현식 은 항상 함수 자체를 호출하기 전에 평가됩니다. 죄송합니다, 분명한 문서는 없지만 직접 시험해보십시오 : function() { alert("foo"); }is a valid expression . void(function() { alert("foo"); })반환 undefined및 않습니다 하지 반면, 경고 표시 myVoid(function() { alert("foo"); })(버전의 안 하나에서와 고팔 야다 브 ).
우도 G

14

void연산자는 주어진 식을 계산 한 후 undefined를 반환합니다. 페이지를 새로 고치지 않습니다.


9

웹 개발자 javascript:void(0)a태그의 기본 동작을 방지하는 가장 쉬운 방법이기 때문에 사용 합니다 . void(*anything*)반환 undefined과는 falsy 값입니다. 그리고 falsy 값을 반환하는 것은 같다 return false에서 onclick의 이벤트 a기본 동작을 방지 태그입니다.

태그의 javascript:void(0)기본 동작을 막는 가장 간단한 방법 이라고 생각 합니다 a.


8

링크를 사용 가능한 표시 객체로 사용하려면 링크에 HREF 대상을 지정해야합니다.

대부분의 브라우저는 고급 자바 스크립트를

<A HREF="" 

다음과 같은 태그 :

<A href="JavaScript:var elem = document.getElementById('foo');" 

대부분의 브라우저에서 HREF 태그는 공백을 허용하지 않거나 공백을 % 20으로 변환하기 때문에 SPACE와 동등한 HEX는 JavaScript를 해석기에 전혀 쓸모 없게 만듭니다.

따라서 A HREF 태그를 사용하여 인라인 JavaScript를 실행하려면 너무 복잡하지 않은 (공백이 포함되지 않은) HREF FIRST에 유효한 값을 지정한 다음 OnClick과 같은 이벤트 속성 태그에 JavaScript를 제공해야합니다. , OnMouseOver, OnMouseOut 등

일반적인 대답은 다음과 같이하는 것입니다.

<A HREF="#" onclick="var elem = document.getElementById('foo');">Get the object</a>

이것은 잘 작동하지만 파운드 기호 / 해시 태그로 인해 페이지가 맨 위로 이동하게합니다.

A HREF 태그에 파운드 기호 / 해시 태그를 제공하는 것만으로 실제로 루트 앵커를 지정합니다. 이는 항상 기본적으로 페이지 상단에 A HREF 태그 내에 NAME 속성을 지정하여 다른 위치를 지정할 수 있습니다.

<A NAME='middleofpage'></A>

그런 다음 A HREF 태그를 변경하여 'middleofpage'로 이동하여 OnClick 이벤트에서 JavaScript를 실행할 수 있습니다.

<A HREF="#middleofpage" onclick="var elem = document.getElementById('foo');">Get the object</a>

해당 링크가 점프하는 것을 원하지 않는 많은 시간이 있으므로 두 가지 작업을 수행 할 수 있습니다.

<A HREF="#thislinkname" name='thislinkname' onclick="var elem = document.getElementById('foo');">Get the object</a>

이제 클릭하면 아무데도 가지 않지만 페이지가 현재 뷰포트에서 중심을 다시 맞출 수 있습니다. 이쁘지 않습니다. A HREF를 사용하지만 위의 작업을 수행하지 않고 인라인 자바 스크립트를 제공하는 가장 좋은 방법은 무엇입니까? 자바 스크립트 : void (0);

<A HREF="JavaScript:void(0);" onclick="var elem = document.getElementById('foo');">Get the object</a>

브라우저에 NOWHERE로 이동하도록 지시하지만 대신 유효한 JavaScript를 실행하십시오 .void (0); 공백이없고 URL로 구문 분석되지 않기 때문에 HREF 태그에서 첫 번째 함수입니다. 대신 컴파일러가 실행합니다. VOID는 매개 변수가 0으로 제공 될 때 UNDEFINED를 리턴하는 키워드로, 0을 지정하지 않고 발생하는 리턴 값을 처리하기 위해 더 이상 자원을 사용하지 않습니다 (메모리 관리 / 성능이 더 좋습니다).

다음으로 발생하는 것은 OnClick이 실행되는 것입니다. 페이지가 움직이지 않고 디스플레이 방향으로 아무 일도 일어나지 않습니다.


이와 같은 앵커를 처리 할 수 있는 여러 가지 방법을 모두 설명하는 +1 그래도 <a>요소 는 항상 어딘가에 가야 한다고 생각 합니다 . 페이지에서 일부 자바 스크립트를 실행 <button>하는 경우 대신 a를 사용해야합니다. 사용 <button>은보다 의미 론적이며, 앵커에 해킹 할 대상에 대한이 전체 토론에서 벗어날 수 있습니다 href. 편집 : 아래 @Ronnie Royston의 답변에 이미이 인수가 포함되어있는 것 같습니다.
Rabadash8820

1

자바 스크립트 : URL은 제쳐두고; 여기서 void는 짧은 코드를 작성하는 데 유용 할 수 있습니다.

var error1 = false,
    error2 = false,
    error3 = false;

function error1() {

  error1 = true;
}

function myFunction() {

  // You can easily return and call a function at once, if you don't care about myFunction's return value
  if (!someCondition1)
    return error1();

  // What if you want to set a value first?
  if (!someCondition2) {
    error2 = true;
    return
  }

  // Shortest way to return and set a value at once
  if (!someCondition3)
    return void(error3 = true);

  // More code goes here
}

downvoters가 최소한 downvoted 이유를 말할 수 있다면 좋을 것입니다. 나는 그것이 주제에 관한 것이 아니라는 것을 알고 있지만 검색 결과에서 온 모든 사람들에 대해 생각하고 있습니다.
Maciej Krawczyk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.