프로젝트에서 가끔씩 사용되는 차트를 모아봤습니다.  Grid보다는 무료도 쓸만 한게 많은것 같습니다. 요즘에는 대부분 HTML 5를 지원하고 있고 데이터도 Json을 사용하도록 되어있어 사용법도 간단 합니다제품별 사이트에 있는 예제 화면을 모아보았습니다.

 

google chart

데모 : https://developers.google.com/chart/interactive/docs/gallery

무료 : https://creativecommons.org/licenses/by/4.0/deed.ko


java web chart google

java web chart google



Chart.js

https://www.chartjs.org/

데모 : https://www.chartjs.org/samples/latest/

      https://www.chartjs.org/docs/latest/ - source

무료 : MIT 

java web chart chartjs

java web chart chartjs

java web chart chartjs



APEXCHARTS

데모 : https://apexcharts.com/javascript-chart-demos/

무료 : MIT 


java web chart apexchart

java web chart apexchart

java web chart apexchart

java web chart apexchart



JFreeChart

데모 : http://www.jfree.org/jfreechart/samples.html

무료: The JFreeChart Developer Guide(유료)


java web chart jfreechart

java web chart jfreechart



C3.js

데모 : https://c3js.org/examples.html

무료 : MIT


java web chart c3js



AnyChart

데모 : https://www.anychart.com/products/anychart/gallery/

유료 : https://www.anychart.com/buy/


java web chart anychart

java web chart anychart

java web chart anychart

java web chart anychart

java web chart anychart



rMate Chart

데모 : http://demo.riamore.net/HTML5demo/chart/index.html

유료 : http://www.riamore.net/buy/license.html


java web chart rmate



amChart

데모 : https://www.amcharts.com/demos/

유료 : https://www.amcharts.com/online-store/


java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart

java web chart amchart



FusionCharts

데모 : https://www.fusioncharts.com/charts?product=fusioncharts

유료 : https://www.fusioncharts.com/buy


java web chart fusionchart

java web chart fusionchart

java web chart fusionchart

java web chart fusionchart


- copy coding -


작업 중 그리드가 필요 해서 몇가지 선별 작업을 해보았습니다과거에 무료이던 제품들이 유료로 변경이 된 것도 있고 무료이지만 쓸만한 것도 있지만 그래도 유료를 따라가지는 못하는 것 같습니다.  물론 유료이지만 무료버전을 제공하고 있는 제품도 있고 Angular, React, Vue와 쉬운 연계를 할 수 있도록 지원을 하는 제품들도 늘어나고 있습니다.

 

 

RealGrid

 

데모 : http://demo.realgrid.com/

유료, 국산 : https://www.realgrid.com/#license

 

그리드로 해야하는 모든 기능 구현이 가능 한것 같습니다.

/열 고정

컬럼 이동

데이터 정렬(Sorting)

데이터 필터링(Filtering)

Array / JSON / XML / CSV 데이타 가져오기

그리드에 값 넣기

새로운 행 추가/삭제

그리드 행 숨기기

기능이 너무 많음... 생략.

 

다른 제품들도 주요 기능은 생략합니다대부분 사이트에 접속하면 좌측에 기능 리스트들이 있습니다.



Web 용 Grid


하이차드와 연동이 됩니다.


Web 용 Grid


Ubi Report / Crownix Report / OZ리포트와 연동이 됩니다.

 

딱 한국인의 입맛에 적합한 제품입니다돈이 있으면 이걸 구매하고 싶은데 소규모 회사에서 구매 하기에는 비싸군요.

 

 

jqGrid

 

데모 : http://www.guriddo.net/demo/bootstrap/

유료 : http://guriddo.net/?page_id=103334

 

사용빈도가 높았던 것 같은데 오랜만에 찾아보니 무료에서 유료로 변경이 되었습니다. 컬럼 이동, 엑셀 저장 등을 포함 대부분의 기능이 구현 가능 합니다.


Web 용 Grid



 

AUI Grid

 

데모 : http://www.auisoft.net/demo/auigrid/index.html

유료 국산 : http://www.auisoft.net/price.html

 

컬럼 이동, 엑셀, PDF 저장등을 포함 대부분의 기능이 구현 가능 합니다.  역시 국산이 좀더 화려하게 만들어진 것 같습니다. 


Web 용 Grid


 

PQGrid

 

데모 : https://paramquery.com/pro/demos

유료 : https://paramquery.com/pro/download

 

컬럼 이동, 엑셀 저장등을 포함 대부분의 기능이 구현 가능 합니다마우스 이용 컬럼 폭 조정은 마음에 안드네요.


Web 용 Grid



rMate Grid

 

데모 URL : http://demo.riamore.net/HTML5demo/grid/index.html

유료 국산 : http://www.riamore.net/buy/license.html#

 

그리드로 해야하는 모든 기능 구현이 가능 한것 같습니다


Web 용 Grid



 

TOAST UI Grid

 

데모 : https://nhn.github.io/tui.grid/latest/tutorial-example14-tree

무료

 

NHN에서 만들었고 많은 기능이 있는데 컬럼 이동 기능은 없는 것 같고 엑셀 저장이 아닌 복사후 붙여 넣기 기능이 있습니다.  엑셀저장 기능이 진짜 없는 건가? 전 못찾았네요.  이걸 사용하려고 했었는데 아쉽네요.


Web 용 Grid


 

ax5ui-grid

 

데모 : https://ax5.io/ax5ui-grid/demo/19-header-page-display.html

무료

 

컬럼 이동이 안 되는 것을 제외하고는 일반적인 기능은 모두 있는 것 같습니다개인적으로는 무료를 사용해야 한다면 toast와 이걸 추천 합니다대신 많은 레퍼런스가 아직은 부족 한듯 합니다.


Web 용 Grid



대충 보긴 했는데 어설픈 유료를 구매하기 보단 잘 만든 무료가 개발 시간을 단축 시킬 것 같습니다.


 

그외 제품들

 

물론 더 좋은 lib가 많겠지만 저는 위에 있는 것 중 하나를 선택하면 될 것 같고 아닌 분들은 아래 리스트와 인터넷에서 좀더 검색하시면 좀더 많은 자료를 찾을 수 있습니다.

 

jsGrid

데모 : http://js-grid.com/demos/

무료

 

DataTables

데모 : https://datatables.net/examples/index

유료 : https://datatables.net/purchase/index

 

 

jqxGrid

많은 widget들 중 하나

데모 : https://www.jqwidgets.com/jquery-widgets-demo/demos/jqxgrid/index.htm

유료 : https://www.jqwidgets.com/license/

 

 

Kendo UI

 

데모 : https://demos.telerik.com/kendo-ui/grid/index

유료 : https://www.telerik.com/purchase/kendo-ui

 

 

ag-Grid

 

데모 : https://www.ag-grid.com/example.php#/

유료 : https://www.ag-grid.com/license-pricing.php


 

간단하게 사용할 수 있는 web editor를 하나 추가할 일이 있어서 naver에서 만들었으니 믿을만 하겠지 하고 설치를 하기로 하였습니다그런데 그냥 설치 하는 방법은 매뉴얼만 보면서 하면 되는데 요즘에는 화면 그리는 툴들을 많이 사용하고 있어서 javascript function 안에서 구현을 해야 하는 상황이 발생하여 다음에 또 써야할 일이 발생하면 사용하려고 작성 합니다예전에 HTML Tag만 가지고 구현하느라 1주일 걸린적이 있는데 그 소스는 어디 갔는지 모르겠네요.

 

순서

1. Source 다운로드

2. 일반적인 설치 방법

3. javascript 내에서 설치 방법

 

 

1. Source 다운로드


기존에 사용하던 개발자 url에서는 다운로드가 되지 않고 github에서 다운로드를 해야 합니다.

https://github.com/naver/smarteditor2

그리고 smartEditor 3.x 버전은 공개를 하지 않는다고 하네요저는 2.x 버전 만으로도 충분.


naver_smarteditor2


Clone or download를 클릭해서 확장된 메뉴 중 Download ZIP을 선택하면 압축된 형태로 다운로드가 진행 됩니다다운로드가 완료 되면 파일이 있는 디렉토리로 이동하여 압축풀기를 해줍니다디렉토리 구조를 보면 dist workspace 두개가 있는데 이중에 dist를 이용하여 작업을 진행 합니다.


naver_smarteditor2



2. 일반적인 설치 방법

 

그냥 html, jsp, php등에 설치 하는 방법은 네이버 매뉴얼에 잘 설명이 되어 있습니다.

http://naver.github.io/smarteditor2/user_guide/

 

간단하게 요약해서 설명 하면


2.1 압축을 푼 파일을 적당한 곳에 복사


dist 아래에 있는 파일들을 웹 서버에 복사를 하는데 웹에서 path를 잡을 수 있는 곳이면 아무 곳이나 가능하지만 너무 깊이 숨겨 놓으면 안되겠죠.

 

2.2 js 추가


smartEditor의 기본이 되는 javascript 파일을 작업하려는 파일 상단에 추가 합니다.


 <script type="text/javascript" src="상위경로/js/service/HuskyEZCreator.js" charset="utf-8"></script>


2.3 Textarea 추가

 

웹 에디터를 사용할 textarea를 작업 파일에 추가 합니다.  id는 나중에 사용해야 하므로 적당한 명칭을 부여 합니다.


<textarea name="weditor" id="weditor" rows="10" cols="100"></textarea>


2.4 editor 생성 javascript

 

2.3에서 생성한 textarea에 웹 에디터를 추가하기 위한 javascript를 작성 합니다매뉴얼에서 복사해서 사용하면 됩니다.

elPlaceHolder에 위에서 작성한 id를 입력 합니다.

sSkinURI에는 복사한 path를 잘 맞추어 기입합니다.


<script type="text/javascript">

 

var oEditors = [];

nhn.husky.EZCreator.createInIFrame({

    oAppRef: oEditors,

    elPlaceHolder: "weditor",

    sSkinURI: "경로/SmartEditor2Skin.html",

    fCreator: "createSEditor2"

});

 

</script> 



2.5 결과



naver_smarteditor2


2.6 전체 소스


좀 허접하지만 2.5에 있는 모양을 만들기 위해 제가 만든 test.html 전체 소스입니다.


webeditor

  

<script type="text/javascript" src="./dist/js/service/HuskyEZCreator.js" charset="utf-8"></script>

 

<textarea name="weditor" id="weditor" rows="10" cols="90"></textarea>

 

<script type="text/javascript">

 

var oEditors = [];

nhn.husky.EZCreator.createInIFrame({

    oAppRef: oEditors,

    elPlaceHolder: "weditor",

    sSkinURI: "./dist/SmartEditor2Skin.html",

    fCreator: "createSEditor2"

});

 

</script> 


좀 허접이 아니고 진짜 허접하네요.  dist에 있는 파일을 바로 메인에 복사해서 사용했습니다.

 

 

3. javascript 내에서 설치 방법

 

일반적인 방법으로 설치를 해보았다면 이것도 별거 없습니다그냥 function 안에서 구현을 한것 이외에는 나머지 스크립트는 동일 합니다.

 

3.1 구현 방법


$.getScript() jQuery를 이용하여 javascript 내에서 javascript를 불러옵니다그리고 불러온 js를 이용한 코드를 내부에 기입하면 됩니다.

 

textareabutton을 화면에 표시되고 HTML Tag를 적용시킬 수 있는 부분에 설정을 해줍니다툴에 따라 component, element, division등등이 될 수 있겠죠버튼도 이벤트를 직접 호출 할 수 없는 경우에는 가상으로 만들어서 사용하면 됩니다.

 

textarea를 먼저 정의하지 않으면 id를 찾을 수 없어 Cannot read property 'parentNode' of null / HuskyEZCreator.js 오류가 발생 할 수 있습니다.


naver_smarteditor2


 

3.2 전체 소스

 

화면 초기화가 완료되는 함수에 넣어서 구현한 내용입니다.


function onLoadedFunction()

{

           this.eleTxt.setHtml(‘<textarea name="ir1" id="ir1" rows="10" cols="100"></textarea>’);

this.eleBtn.setHtml(‘<button class=”saveBtn”>저장</button>’);

 

           $.getScript("./dist/js/service/HuskyEZCreator.js", function() {

                     var oEditors = [];

                     nhn.husky.EZCreator.createInIFrame({

                                oAppRef: oEditors,

                                elPlaceHolder: "ir1",

                                sSkinURI: "./dist/SmartEditor2Skin.html",

                                fCreator: "createSEditor2"

                     });

                      $(document).on('click', '.saveBtn', function () {

                    

                                var val2 = oEditors.getById["ir1"].exec("UPDATE_CONTENTS_FIELD", []);

                                this.contents = $('#ir1').val();

                                alert(this.contents);

                                this.onSubmitBtnClick();

                     });

           });

          

};


3.3 결과 화면

 

위의 코드를 실행하면 나오는 결과 화면 입니다.


naver_smarteditor2



4. size 조절

 

화면에 따라 에디터의 사이즈를 조절해야 하는 경우가 발생 합니다.  그런데 html을 아무리 찾아보고 비슷한걸 수정해도 사이즈는 변경이 안되는데 사이트 변경은 js 파일에서 관리 합니다.

 

/dist/js/service에 가면 SE2BasicCreator.js 파일이 있습니다.  위치는 버전에 따라 하나 윗단계인 js에 들어 있기도 합니다. SE2BasicCreator.js 파일을 열고 아래와 같은 내용을 찾아서 수정 합니다.


 

            var htDimension = {

                     nMinHeight:205,

                     nMinWidth:parseInt(elIRField.style.minWidth, 10)||570,

                     nHeight:elIRField.style.height||elIRField.offsetHeight,

                     nWidth:elIRField.style.width||elIRField.offsetWidth

           };


 

높이 : nMinHeight:205

가로 : nMinWidth:parseInt(elIRField.style.minWidth, 10)||570,

 

화면에 따라 사이즈가 여러개 필요하다고요?

그럼 SmartEditor2xxx.html 파일과 SE2BasicCreator.js 파일을 여러개 복사해서 이름을 변경하고 각 html 파일에서 다른 js 파일을 불러오면 됩니다.



크롬을 사용 중 새창이 열리면서 광고가 나타나기 시작합니다.

구글 크롬에서 알려주고 있는 광고 차단방법을 사용해서 치료를 해보았습니다.

 

 

 

1. 멀웨어 설치 확인

 

광고 팝업을 만드는 악성 프로그램이 설치되어 있는지 확인을 합니다.

오른쪽 상단에서

점 세개 아이콘(더보기) > 설정

을 클릭합니다.


google_chrome_멀웨어팝업광고


설정 창으로 이동을 합니다.

여기에는 아무런 메뉴가 보이지 않습니다. 


google_chrome_멀웨어팝업광고


좌측 상단 줄 세개 아이콘을 클릭 해야 메뉴가 보입니다.

 

좌측에 메뉴가 나타나는데 여기에서 하단에 있는 고급을 클릭합니다.


google_chrome_멀웨어팝업광고


고급 메뉴 하단에 새로운 하부 메뉴가 보입니다


google_chrome_멀웨어팝업광고


고급메뉴 하단의 재설정 및 정리하기를 선택 합니다.


google_chrome_멀웨어팝업광고


컴퓨터 정리를 클릭합니다.

 

Google에 세부정보 신고가 활성화 되어 있으면 구글에 작업내용이 제공되는 것인데 저는 비활성화로 해놓고 작업을 진행 합니다.


google_chrome_멀웨어팝업광고


찾기를 클릭해서 멀웨어를 검색합니다.


google_chrome_멀웨어팝업광고


열심히 유해한 소프트웨어를 확인 합니다.


google_chrome_멀웨어팝업광고


이런

 

자꾸 광고 팝업이 나타나는데 왜 발견 못하냐

 

이 방법은 아닌가 봅니다.

 

만약 유해한 소프트웨어가 발견 되면 치 않는 소프트웨어를 삭제하라는 메시지가 표시되고 삭제를 클릭하면 된다는데 아쉽게도 볼 수가 없네요.



2. 크롬 브라우저 초기화

 

팝업 광고 차단 두번째 방법은 크롬을 초기화 시키는 것인데 만약 크롬을 편하게 사용하려고 설정 값을 변경한 부분이 있다면 이것도 초기화 되기 때문에 한번 생각하고 진행 합니다.

 

 

진행 방법은 1번 멀웨어 검색과 동일한 순서로 진행하다 [재설정 및 정리하기]에서 설정을 기본값으로 복원을 클릭합니다.


google_chrome_설정초기화


설정 초기화 창이 나타났습니다.


google_chrome_설정초기화


Chrome 개선에 참여는 본인의 의사를 반영해 주시고 설정 초기화 버튼을 클릭합니다.


google_chrome_설정초기화


초기화가 진행 됩니다.

초기화가 완료되면 이전 화면으로 이동을 합니다.

 

저는 이 두번째 방법이 효과가 있었습니다.


3. 기타


다른사람의 요청으로 광고 팝업을 해결해 보려고 위에 있는 두가지 방법을 다 사용해 보고 백신을 다시 깔아서 바이러스, 멀웨어를 찾아보고 마지막으로 크롬을 다시 설치해도 해결이 되지 않는 경우가 있었습니다.

원인은 인터넷에서 비정상 다운로드를 이용하거나 코덱을 설치하면서 사용자 모르게 광고 프로그램이 설치된 경우로 이런 경우는 광고가 시작된 날짜를 생각하여 날짜별 프로그램 설치 탐색을 이용하여 삭제해야 합니다.


- copy coding -


12

+ Recent posts