최고의 GWT 위젯 라이브러리? [닫은]


134

모든 GWT 전문가에게 궁금한 점이 있습니다. 최고의 GWT 위젯 라이브러리는 무엇입니까? 그리고 왜?

답변을 바탕으로 목록을 작성하십시오.

JsInterop : наконец- новое поколение основанное на :


목록에 gwt-mosaic을 포함시키는 것을 잊었습니까?
Ashwin Prabhu

2
이 질문은 요구 사항에 대한 구체적인 내용은 아니므로 예상대로 가장 높은 가시성 (핵심 GWT)이 모든 요구 사항을 충족하지 않더라도 투표되었습니다. 화면이 많고 데이터 양이 많은 복잡한 엔터프라이즈 응용 프로그램이 있고 강력한 그리드 및 편집기가 필요한 경우 바로 SmartGWT입니다. 일반 GWT는 많은 앱에 적합하지만이 특정 요구 사항을 가진 많은 기업이 GWT를 평가하고 SmartGWT가 더 적합하다고 판단합니다. 개요를보고 스스로 결정하려면 빠른 시작 안내서를 읽으십시오. smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf
Charles Kendrick

당신은 GWT-부트 스트랩 누락
caarlos0

Stack Overflow에서 멀리 떨어진 공식적인 집과 같은 질문을하기 위해 사이트 제안서를 작성했습니다. 코드 추천 이라고 합니다. 지금 가입하여 질문을함으로써 현실화하십시오!
daviewales

이 외모는 약속 : gwt-material-demo.herokuapp.com
kozla13

답변:


52

이러한 라이브러리에 자신을 구속하지 마십시오. Vanilla GWT를 사용하여 프로젝트 구조를 만드십시오. 특히 MVP 패턴과 이벤트 버스를 사용하십시오. GWT를 사용하여 클라이언트 응용 프로그램을 가장 잘 설계하는 방법을 알아 보려면 Google 기사를 참조하십시오. MVP 앱 빌드

그런 다음 이러한 라이브러리의 위젯 (예 : 테이블 또는 콤보 박스, 날짜 선택기 등)을 사용하여 프로젝트에 통합 할 수 있습니다. 바닐라 GWT로 확장 구성 요소를 사용하는 방법이 보이지 않는 경우에만 확장 구성 요소를 사용하십시오. 이 방법으로 데모 응용 프로그램에 나타나지 않고 많은 버그가 포함되어 있으며 지원이 가장 좋지 않은 무언가를하려고 할 때 항상 고통스러운 라이브러리에 자신을 묶지 않습니다.

위젯을 찾는 방법은 다음 순서를 따라야합니다.

다른 도서관들과 조심스럽게, 나는 그들과 함께 일했고 (여전히 악몽이 있습니다).


1
다른 도서관과 공유하고 싶은 특정 경험이 있습니까?
Adam

6
GXT, 나는 그것을 최악의 적에게 추천하지 않을 것입니다. 당신이 그것을 고려하는 경우, 먼저 구글 그것을하고 당신이 어디로 가고 있는지 알고 있는지 확인하십시오. JS 래퍼 인 SmartGWT는 매우 추악합니다. 그것에서 멀리 도망. 실제 프로젝트에서 두 가지 경험이 있습니다. 먼저 SmartGWT를 사용했지만 제한으로 인해 GXT로 이동했습니다. 나는 그들이 폼 바인딩과 자바 제네릭 (예수, 내가 기억할 때마다 ....)으로 그들이 가지고있는 혼란을 곧 발견했다. 나는 어느 것이 더 나쁜지 모른다! 나는 그것을 끝내었다. 그러나 나는 엄청나게 고생했다. 그 후 나는 바닐라 GWT와 다른 라이브러리에서 좋아하는 위젯 만 사용하는 법을 배웠습니다.
monzonj

이 게시물은 오래되었으며 그 특성상 날짜는 지났지 만 지난 2 년 동안 GXT를 광범위하게 사용해 왔으며 문제가있는 동안에도 비교적보기 좋은 응용 프로그램을 만들 수 있습니다. 매우 유용한 그리드, 버퍼 그리드 및 라이브 그리드가 있습니다. SmartGWT에는 그리드 및 구성 요소도 잘 갖추어져 있습니다. Vaadin 도 고려하십시오 .
Carl Pritchett

43

"최고"의 의미에 따라 다릅니다. 가장 잘 보입니까? 최고의 API? 자신 만의 맞춤형 요구에 맞게 확장 할 수 있습니까?

예를 들어, 응용 프로그램에서 사용할 테이블 클래스를 평가하고있었습니다. 우리는 GWT-Ext를 사용하고 있지만 많은 성능 문제가 있으며 필요한 테이블 크기를 얻는 것이 매우 어렵습니다. 나는 GWT-Mosaic 과 매우 가까워 졌지만 대신 GWT 인큐베이터 에서 위젯을 만들기로 결정했습니다 .

왜 내가 이것을 선택 했습니까? 더 나은 단어, 수하물이 없기 때문에 너무 많은 도서관에 자체 라이브러리가있는 것처럼 보입니다. 전체 코드를 일부 MVC 프레임 워크 (나머지 코드베이스의 일부와 완전히 호환되지 않을 수 있음)로 다이빙하거나 누군가의 새로운 얽힌 레이아웃 시스템을 채택해야하거나 그렇지 않은 사실에 따라 살아야합니다. JSNI 래퍼 때문에 코드를 실제로 디버깅하십시오.

틀리지 말아요, GWT 인큐베이터는 완벽하지 않습니다 ... 위젯에는 약간의 흐름이 있습니다. 제 경우에는 이것이 최선의 선택이었습니다. 그것은 나에게 좋습니다 (그러나 완벽하지는 않습니다) :

  • API
  • 확장 성
  • 모양과 느낌 (글쎄, 이것은 다소 약하지만 CSS의 목적입니다.)

그래서 ... (나에게) 대답은 다음과 같은 조합입니다.

  • Stock GWT 위젯 ( 많은 사용자 정의 스타일링 포함)
  • GWT 인큐베이터 테이블
  • 집에서 만든 몇 가지 위젯

(제가 언급 한 "수하물"은 반드시 나쁜 것은 아닙니다. 그러나 위젯을 두 개만 원한다면 작업을 수행하는 데 필요한 사항과 방법에 대한 기준을 높일 수 있습니다 잘 했어.)


대부분의 위젯 라이브러리는 일부 외부 AJAX 라이브러리에 대한 종속성으로 인해 일부 라이센스가 필요합니다. 또한 솔루션에 추가 크기를 추가합니다. 또한 대부분의 위젯 라이브러리는 하나 이상의 추가 외부 구성 요소에 의존합니다.
IgorM


10

GWT만으로는 꽤 좋은 라이브러리입니다.

언급 된 것을 모두 사용하지는 않았지만 Ext GWT를 추천 할 수 있습니다 .


2
베어 GWT에 동의합니다. 인큐베이터 프로젝트 ( code.google.com/p/google-web-toolkit-incubator ) 와 함께 기본적으로 모든 것을 구현할 수 있습니다. 나는 MyGwt를 사용했지만 프로젝트를 종료하고 이름과 모든 포럼과 지원, 라이센스가 변경 될 때 짜증이 난다
Robert Childan

1
끔찍해야합니다. 소프트웨어를 유지 관리하는 매우 실용적인 방법은 아닙니다.
DragonBorn

9

바닐라 GWT를 선호합니다. 다른 API 중 일부는 예쁘게 보이고 쇼케이스는 실제로 위젯을 과시하지만 항상 성능이 최고가 아니라는 것을 알게됩니다. 응용 프로그램이 느리게 느껴질 때 나는 싫어.


8

언급 된 대부분의 라이브러리는 오픈 소스가 아니며 더 나쁜 것은 JavaScript 라이브러리 위에 래퍼입니다. GWT의 힘은 응용 프로그램이 다른 브라우저에서 작동한다는 사실에 있습니다 ( "큰"브라우저의 코드 생성으로 인해). 이러한 JavaScript 기본 라이브러리는 많은 문제를 일으킬 수 있습니다.

나는 jgindin GWT Incubator와 GWT Mosaic이 지금까지 최고라고 동의합니다.


매우 오도합니다. 나열된 거의 모든 라이브러리는 ExtGWT (GPL)를 제외하고 상용 라이센스 (Apache, BSD, LGPL)가있는 오픈 소스입니다. 또한 현재 제공되는 매우 제한된 구성 요소 집합에서도 GWT에는 많은 브라우저 간 버그가 있습니다. 버그 데이터베이스를 검색하여이를 확인하십시오. GWT 컴파일러는 마술이 아니며 상황에 따라 이상한 브라우저 레이아웃 버그 등을 자동으로 수정하지는 않습니다. 다른 프레임 워크와 마찬가지로 문제를 해결해야합니다. SmartGWT는 공식 아이폰이나 안드로이드 지원을 발표하지 않았다.
Charles Kendrick

7

"최고"라고 말하지는 않지만 요즘 직장에서 GWT-Ext 를 사용 하고 있습니다. 몇 가지 장단점이 있습니다.

장점 :

  • 상대적으로 설정 및 사용이 쉬움
  • 그 뒤에 알맞은 규모의 커뮤니티
  • 온라인으로 제공되는 많은 예제들
  • 광범위한 기능을 다루는 훌륭한 위젯 선택

단점 :

  • 수용 할 수없는 데이터 형식 및 구조에 대한 가정
  • 라이브러리는 JSNI 래퍼 일 뿐이므로 디버깅 및 확장이 더 어렵습니다.
  • 도서관에 대한 향후 지원 및 개발은 확실하지 않습니다
  • 일부 성가신 크로스 브라우저 문제가 여전히 존재합니다 (특히 레이아웃).
  • 포럼에서 검색 기능은 본질적으로 쓸모가 없습니다. (이것은 나의 큰 애완 동물이되고 있습니다> _ <)

6

그것들을 사용하지 마십시오! 대규모 응용 프로그램을 개발하려는 경우 MVP 패턴 사용을 고려해야합니다. 가장 좋은 구현은 MVP4G 프레임 워크이며, 즉시 사용할 수있는 GWT 코드를 지원합니다. 좋은 예가 많이 있습니다. 시작할 수 있습니다. 가장 유용한 것은 Mvp4GModules입니다.


5

새로운 것을 추가하십시오 : GWT-Bootstrap :)

현재 안정적인 릴리스는 없지만 곧 출시 될 예정입니다.


1
GWT- 부트 스트랩은 최고의 잠재력을 가지고 있습니다.
Mike

탭 및 모달과 같은 영역에서 매우 기본적인 디자인 감독을 제외하고. JQuery에 대한 의존도를 줄이고 더 많은 "앱"을 생각해야합니다.
Καrτhικ

패치는 매우 환영합니다. 어쨌든 제안 주셔서 감사합니다
caarlos0

4

내 경험에 따르면 타사 라이브러리에는 항상 많은 문제가 있습니다. 가장 좋은 방법은 잘 알려진 기술과 자체 구성 요소를 사용하는 것입니다. 작성하고 유지하는 데 시간이 오래 걸릴 수 있지만 TCO는 항상 낮은 수준입니다.

타사 라이브러리는 종종 계획을 예기치 않게 중단시킬 수 있습니다. 그리고 문제의 원인을 찾아서 고치기는 어렵습니다.

따라서 일반 GWT를 사용하는 것이 좋습니다.


3

위젯을 그대로 사용하고 싶다면 SmartGWT가 괜찮다고 생각하지만 Gxt 스케줄러 에서와 같이 위젯을 확장하거나 수정하려면 Ext-GWT가 더 나은 선택이라고 생각합니다.


3

나를 위해 EXT-GWT (일명 GXT)는 현재 사용 가능한 최고의 라이브러리이며 6 개월 프로젝트에서 사용하며 그리드, 나무와 같은 미리 정의 된 많은 구성 요소로 많은 도움이됩니다 .... 아름답습니다.


3
농담해야 해요! 나는 매일 매일 18 개월 동안 GXT를 사용해 왔으며 솔직히 악몽이라고 말할 수 있습니다.
Alex Worden

2

SmartGWT 는 좋은 라이브러리이며 많은 예제가 있지만 사용자 인터페이스는 그렇게 매끄럽지 않습니다. 사용자 인터페이스 Ext GWT 가 좋습니다.


2

gwt-mosaic의 사용자 그룹이 매우 활동적이지 않아서 Wiki 스 니펫 외에 사용자 설명서를 찾을 수 없습니다. gwt-mosaic은 저에게 두 가지 흥미로운 도구를 소개했습니다.

1) gwt-mosaic에는 앱의 JS 부분 (RPC 처리기, 위젯 콜백, 위젯 설정 기)에 대한 게시 / 구독 도구 인 Tibco의 PageBus 래퍼가 포함되어 있습니다. 이것은 gwt의 이벤트 버스에 대한 대안입니다.

2) gwt-mosaic은 데이터를 위젯에 바인딩하고 위젯을 검증하기 위해 Beans Binding (http://code.google.com/p/gwt-beans-binding/)을 사용하도록 권장합니다.

smartgwt는 전체 기능 세트 및 지원에 비해 저렴하지 않습니다. 사용하지 않는 테마 파일을 제거하지 않으면 jar이 appengine에 너무 큽니다. 그들은 서버 측에도 엔지니어링을 투자합니다.

ext-gwt가 느리고 JS 파일이 크다고 들었습니다.

gwt 위젯 인큐베이터는 더 이상 사용되지 않습니다. 디럭스 그리드는 새로운 gwt와 함께 릴리스 될 것이라고 믿습니다.

룩앤필, 바인딩 및 유효성 검사 표준이 없기 때문에 위젯 라이브러리의 상호 운용성이 저해됩니다.


문서의 설치 지침을 무시하지 않는 한 큰 .jar에는 SmartGWT GAE 문제가 없습니다. 실제로 SmartGWT Pro에는 지속성을 위해 JPA를 사용하여 GAE에서 실행되고 전체 CRUD를 제공하는 샘플 프로젝트가 포함되어 있습니다. 또한 저렴한 것은 상대적입니다. 개발자, QA, 하드웨어 / 호스팅 등의 비용을 고려할 때 SmartGWT에 제공되는 가장 비싼 라이센스 및 지원 옵션은 여전히 ​​전체 애플리케이션 / 제품을 제공하는 비용의 무시할 수없는 부분입니다. 예산이 부족한 경우 무료 (LGPL) 버전이 있습니다.
찰스 켄드릭

2

확실히 SmartGWT가 아닙니다. 그들의 틀은 부풀어 오르고 매우 반 구운 성질을 가지고 있습니다. 그들은 백만 개의 위젯을 가지고 있지만, 프로젝트를 위해 그것들을 작동시키는 것은 쉽지 않습니다. 데이터 소스는 데이터 관리 프로세스를 복잡하게 만듭니다. 예를 들어 데이터 소스에서 데이터를 얻으려면 fecth를 사용하고 자주 검사해야합니다. 결과를 캐시 할 수는 있지만 항상 조사하기가 쉽지는 않습니다.

RPC는 또 다른 약하고 복잡한 영역입니다. 문서와 포럼에 모순되는 정보가 있습니다. 설명서에는 ds의 일부로 사용자 지정 작업을 거의 사용하지 말아야한다고 말하지만 포럼에서는 완벽하게 훌륭하다고 알려줍니다. 이러한 도구를 효과적으로 사용하는 방법은 며칠 동안 오르막길을 오르는 것입니다.

그들은 제품을 과매도 할 것입니다. 예를 들어, 차트 / 분석 패키지에는 그래프가 포함되어 있습니다. 그러나 이러한 그래프에는 음수 값이 표시되지 않거나 의미있는 방식으로 축 레이블을 조작 할 수 없습니다. 그리고 그들은 포럼에서 "그렇게 무엇을"태도로 이에 대한 질문에 공개적으로 응답합니다. "우리는 이것이 판매 포인트 중 하나이지만 로드맵에있는 3.0x에 추가 할 계획은 없습니다." 그들이 나에게 패키지를 팔았을 때, 그들은 음수 값을 표시 할 수 없다고 언급하지 않았습니다. 정말? 음수 값을 표시 할 필요가없는 그래프는 무엇입니까? 나는 불행한 동형 고객의 수를 묘사하는 사람 중 하나만 생각할 수 있습니다.

이 사람들을 멀리하고 ExtJS, JQuery, quxdoo와 같은 경쟁사 사이트로 향하십시오. 실제로 발전하고 있으며 실제로 좋은 솔루션을 제공하는 몇 가지 프로젝트가 있습니다.

이 제품을 평가할 때는 각별히주의하십시오. 멋지게 보이지만 그것을 사용하는 프로젝트에 약 2 주가 걸리면 무슨 뜻인지 알기 시작할 것입니다. 위젯은 반으로 구워지고 데이터 소스는 매우 복잡합니다. 포럼 지원 비용을 지불했다고해서 실제로는 snide 이외의 다른 것을 얻게된다는 것을 의미하지는 않습니다. 당신은 그들이 일반적으로 매우 거만하지 않았습니다.

개발 시간과 유지 관리 성을 중요하게 생각한다면이 제품을 사용하지 마십시오. 아, 그리고 마지막 것. 웹 사이트에서 MVC 예제를보십시오. 레이블 "MVC"이외의 다른 MVC와는 아무런 관련이 없습니다. 그들은 그러한 프레임 워크가 경험이없는 개발자를위한 것이며, 그러한 개념이 실제 프로그래밍에는 적용되지 않는다는 것을 확신 시키려고 노력할 것입니다.


쉽게 확인할 수 있기 때문에 모두 거짓입니다. 다음은 이 사용자가 기본적으로 얻지 못한 MVC 샘플 ( smartclient.com/smartgwt/showcase/#featured_smartgwt_mvc )입니다. 설명을 읽으면 엄청난 힘이 발휘됩니다. 필자는 "가져 와서 검사"해야한다는 의미를 추측 할 수 없지만 사용자가 빠른 시작 안내서를 읽지 않았고 시스템을 잘못 사용하고있을 가능성이 높습니다. 직접 읽어보십시오 ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf ) 아키텍처는 명확하고 자명합니다. 또한 차트는 음수 값을 표시합니다.
Charles Kendrick

솔직 해지자. 현재 안정적인 3.0 빌드는 음수를 지원하지 않으며 자체적으로 말하면 forums.smartclient.com/showthread.php?t=21219 지원하지 않습니다 .
이진


?? 이 스레드는 고객에게 도트 릴리스 (3.1)를 사용하도록 지시합니다. 무료이며 업그레이드가 아니며 매우 안정적입니다. 당신은뿐만 아니라 거짓 더 많은 돈을 oversell 또는 추출하기 위해 같은이 소리를하려고했으나 진실에서 더 일 수 없었다 : 단지 (3.1 모두에서 사람들이 무료로 받고 새로운 주요 기능을 보면 blog.isomorphic .com /… ). 당신은 의도적으로 오해의 소지가있어 다른 의견을 밝히고 있습니다.
찰스 켄드릭

확실히 오도하려는 의도는 아닙니다. 그러나 이에 대응하여 제품의 모든 위대한 기능 (이 경우 분석 패키지)을 강조하는 것은 잘못된 일이지만, 실제로는 음수를 표시하지 않았다는 점을 제외하고는 (3.1 이전) 말입니다. 또한 3.0 릴리스에 사용자 정의 CSS 구현이없는 한 3 "dot"릴리스로 업그레이드하는 것이
좋습니다

1

Google의 기본 라이브러리는 가장 강력한 라이브러리입니다.

Ext GWT 는 종소리와 휘파람을 추가하지만 Google과 비슷합니다.


1

우리는 현재 GWT Mosaic 위젯을 좋아합니다 . 우리는 ext-JS와 함께 일했으며 과거에 자체 위젯을 굴 렸습니다. ext-JS 라이센스 및 대량 문제는 우리에게 문제였습니다. 우리 자신을 굴리는 것은 우리가 원하는 것이 아닙니다. 모자이크는 우리에게 프로젝트가 성숙함에 따라 더 행복한 가운데 땅이 될 것이라고 생각하는 행복한 가운데 땅을 제공합니다.


1

위젯이 몇 개만 필요하면 직접 빌드하십시오. 언급 한 라이브러리에서 일부 개념을 복사하여 붙여 넣을 수 있습니다. 그러나 그들은 모두 하나 또는 다른 것이 부족합니다. 나는 그들 대부분과 놀았고 모든 것을 버렸다.


1

한 가지 알아야 할 것은 GWT-Ext 포럼에서 더 이상 많이 개발 / 유지되지 않는 것 같습니다. 웹 사이트에서 SmartGWT로 마이그레이션하는 것이 좋습니다 .


1

Vaadin (이전에는 IT Mill Toolkit으로 알려짐)을 언급 하지 않았지만 기술적으로 정확히 GWT가 아니기 때문일 수 있습니다. 그들의 FAQ에 따르면 :

이것이 GWT와 어떻게 다릅니 까?

GWT 애플리케이션은 브라우저에서 실행되는 반면 Vaadin 애플리케이션은 서버에서 실행됩니다. 우리는 실제로 브라우저 측에서 "렌더링 엔진"으로 GWT를 사용하므로 Vaadin과 GWT를 결합 할 수 있습니다.


1

smartGWT는 느리고 예제가 부족하며 기본적인 질문에 대한 답변을 찾기가 매우 어렵습니다. 예를 들어이 포럼에서 답변되지 않은 모든 질문을 확인하십시오. smartgwt를 덤핑하고 있습니다.


SmartGWT는 확실히 진행중인 작업이지만 점점 나아지고 있습니다. 두 번의 별도의 경우에 개발자 가보고 한 날 이내에 트렁크의 버그를 수정하도록 권장했습니다. 그것은 크고 무거운 API이므로 작성중인 앱과 일치하는지 스스로에게 묻어 야합니다.
AndrewR

SmartGWT에는 여기서 논의되는 라이브러리보다 더 많은 샘플이 있습니다. 객관적으로 확인할 수 있습니다 : ( smartclient.com/smartgwt/showcase/#main ) 또한 매우 강력한 빠른 시작 안내서 ( smartclient.com/releases/SmartGWT_Quick_Start_Guide.pdf )가 있습니다. 이 사용자가 요청한 질문을 확인하십시오. 하나는 유효하지 않습니다.
찰스 켄드릭


0

우리는 GWT 포틀릿을 사용하여 큰 HR 포털과 몇 개의 작은 응용 프로그램을 구축했습니다 . 프로젝트의 초점은 위젯 모음을 만드는 것이 아니라 간단한 프로그래밍 모델을 만드는 데 있습니다.

웹 사이트에서 :

GWT 포틀릿은 GWT (Google Web Toolkit) 애플리케이션을 빌드하기위한 무료 오픈 소스 웹 프레임 워크입니다. 이 모듈은 매우 단순하고 생산적이지만 강력한 프로그래밍 모델을 정의하여 멋진 모듈 식 GWT 응용 프로그램을 구축합니다.

프로그래밍 모델은 포털 서버 (Liferay, JBoss Portal 등) 용 JSR168 포틀릿을 작성하는 것과 다소 유사합니다. "포털"은 GWT 포틀릿 프레임 워크를 라이브러리로 사용하여 빌드 된 애플리케이션입니다. 응용 프로그램 기능은 선택적 서버 측 DataProvider를 사용하여 느슨하게 결합 된 포틀릿으로 개발되었습니다.


0

1 년 동안 GWT를 사용하고 있습니다. 많은 연구 끝에 GWT Mosaic를 위젯 라이브러리로 결정했습니다. Mosaic는 PagingScrollTable과 같은 GWT 인큐베이터 구성 요소 중 일부를 사용합니다. 그러나 콤보 박스와 테이블의 기능으로는 충분하지 않습니다. 필요한 기능을 추가하기 위해 이러한 구성 요소를 확장했습니다.



0

두 가지 중요한 점과 대부분의 라이브러리에서 놓친 부분은 단위 테스트 및 디버깅입니다. GWT가 빛나는 곳입니다. vanilla js를 기반으로하는 라이브러리를 사용하는 경우 프로젝트를 단위 테스트하고 디버그 할 수 있습니다. GWT 개발자는 이러한 점을 고려하여 js 종속성이 없거나 최소 인 라이브러리를 사용해야합니다.


0

우리는 2 년 이상 gwt 프로젝트를 해왔으며 기본 위젯을 고수합니다. 우리는 기본 라이브러리 또는 자체 위젯 확장을 자동으로 채우기 위해 자체 오픈 소스 라이브러리를 만들었습니다. gwt-jet 이라고 확인하십시오 . 대규모 프로덕션 환경에서 사용하기 때문에 테스트를 거쳤으며 시간이 지남에 따라 안전하게 성장하기를 바랍니다.

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