본문 바로가기

[개발] Programming197

자바 웹 프로젝트와 퓨전차트 연동 #2 (서버, 프런트) FusionCharts 연동하기 자바스크립트를 활용하여 데이터 연동 없이 화면단에만 구현했던 지난번 퓨전차트 포스트에 이어 이번에는 서버에서 데이터를 호출하여 화면단에 전달한 뒤, 차트를 랜더링 하는 방법을 소개하겠습니다. (서버단 - 자바, 프런트 - 자바스크립트, 데이터 형태는 JSON) * 이전 포스트: 자바스크립트로 퓨전차트 연동 해보기 #1 서버단 소스 차트마다 가공해야될 데이터의 형태가 다르기 때문에 기본적으로 형태는 JSON이지만, 라벨과 value는 차트에 맞게 가공해야 됩니다. 가공하는 방법은 여러 가지가 있겠지만, 저는 서버단에서 가공했습니다. 구현한 차트의 종류는 컬럼차트입니다. 소스에는 DB를 호출하는 메소드와 VO는 있지만, 어차피 데이터는 전부 라벨과 벨류 형태이므로 그에 맞게 .. 2020. 2. 25.
자바스크립트로 퓨전차트 연동 해보기 #1 FusionChart 업무를 하다 보면 차트를 사용해야 할 경우가 자주 발생하죠. 특히, 통계나 모니터링 업무를 한다면 더욱더 사용할 수밖에 없는데요. 차트 솔루션 중에서 비교적 연동하기 쉬운 퓨전차트를 한 번 사용해보도록 하겠습니다. * 참고로 퓨전차트는 무료로 사용할 수 있지만, 차트에 워터마크가 남아있습니다. 워터마크를 제거하기 위해서는 라이센스를 구매해야 됩니다. FusionChart 소스 연동 퓨전차트의 강점 중 하나는 예제 소스입니다. 사이트에 들어가면 아주 친절하게 개발 언어 별 예제가 있어 연동하기에 좋습니다. 저는 자바 웹 프로젝트를 사용하기 때문에 JS 연동으로 구현해 보겠습니다. 우선 퓨전차트 사이트에 접속합니다. www.fusioncharts.com 상단에 'Developer' 메뉴.. 2020. 2. 24.
구글 챗봇, 다이얼로그 플로우 (dialogFlow)로 챗봇 만들어 보기 챗봇 - ChatBot 어렵다면 어렵고 쉽다면 쉬운 게 챗봇이라고 생각합니다. 단순히 동작만 하는 챗봇은 네이버나 구글에서 제공하는 API를 사용하여 구현할 수 있지만, 원하는 태스크를 제대로 수행하는 챗봇을 원할 경우 시나리오부터 시작해서 많은 작업이 필요합니다. 저도 챗봇을 만들어보는 건 이번이 처음이라 한 단계씩 정리해가면서 만들어볼 예정이라 블로그에도 글로 남기기로 결정했습니다. 제가 만들어볼 챗봇은 구글에서 제공하는 다이얼로그 플로우라는 AI 플랫폼을 활용한 챗봇입니다. 아직까지 네이버 톡톡과 비교했을 때 장단점은 정확히 모르겠지만, 가장 대중적이라 레퍼런스가 많아서 선택했습니다. 구글 챗봇을 완성시키고 나서 네이버 챗봇도 사용할 예정이긴 합니다ㅎㅎ 01 계정 만들기 우선 구글 다이얼로그 플로우.. 2020. 1. 11.
자바 현재 날짜, 시간 구하고 형식 지정 (getInstance, Date, currentTimeMillis) 하는 방법 자바 현재 날짜, 시간 구하는 방법 시스템 유지보수를 하다 보면 현재 시간을 구해야 되는 경우가 가끔 있습니다. 그런데 할 때마다 헷갈려서 이번에는 포스팅하여 기록해봤습니다ㅎㅎ 자바에서 날짜와 시간을 구하는 방법은 여러 가지가 있겠지만, 대표적으로 3가지를 소개하겠습니다. Date(), currentTimeMillis(), getInstance() 위 세가지 방법 모두 동일한 기본 형식으로 현재 날짜와 시간을 리턴해 줍니다. 세 가지 타입 다 기본 날짜, 시간 형식으로 리턴되기 때문에 우리에게 맞는 형식으로 표시하기 위해서는 반드시 변환하는 과장이 추가되어야 합니다. 포맷은 'SimpleDateFormat'을 이용하면 간단하게 원하는 형식으로 지정할 수 있습니다. SimpleDateFormat 으로 날짜.. 2019. 12. 29.
[JS] A parser-blocking, cross site (i.e. different eTLD+1) script... 오류 자바스크립트 A parser-blocking, cross site 오류 " A Parser-blocking, cross-origin script, (호출하는 주소), is invoked via document.write. This may be blocked by the browser if the device has poor network connectivity. " 결국 구글 크롬에서 cross-origin document.write를 막으면서 발생하는 오류. 소스에서 document.write로 외부 js 링크를 호출하는 부분에서 오류가 발생하고 있었음. 소스에서 호출하는 형태는 아래와 같았다. document.write(''); 위 방법으로 호출하려는 이유는 자바스크립트에서 자바스크립트를 호출하려다 .. 2019. 12. 22.
오라클, 컬럼 명으로 테이블 찾는 방법 (ALL_TAB_COLUMNS) 간단한 쿼리문인데 가끔 까먹어서 정리해봤습니다. 기본 문법은 아래와 같습니다. 1 2 3 4 5 6 SELECT OWNER, TABLE_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME='컬럼 명' ; cs 예를 들어 컬럼 명은 'MEMBER_NAME'으로 알고 있는데, 해당 컬럼의 테이블 명을 모를 경우 아래와 같이 쿼리를 작성하면 됩니다. 1 2 3 4 5 6 SELECT OWNER, TABLE_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE COLUMN_NAME='MEMBER_NAME' ; Colored by Color Scripter cs 만약 컬럼 명 중 일부만 알고 있을 경우에는 아래 쿼리 처럼 LIKE 문으로.. 2019. 10. 31.
The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path 해당 문구에 나와있는 라이브러리는 JNI에 의해 로딩된 OS의 dll 번들에 포함되어 있습니다. 해당 라이브러리는 (sendfile, epoll, OpenSSL, system status 등등) Java Runtime에는 없는 OS의 기능들을 사용할 수 있게 해줍니다. 근데 사실 이런 기능이 없어도 톰캣이 돌아가는 데는 전혀 문제가 없습니다. 경우에 따라 네이티브 라이브러리를 사용했을 때 성능이 향상되는 경우가 있습니다. 만약 성능 향상을 원하시면 \tomcat\bin 디렉토리 아래 tcnative-1.dll (또는 libtcnative.so for Linux) (경로: 클릭) 파일을 다운로드하고 넣어주시면 됩니다. 그리고 이클립스 실행 변수에 아래 경로를 추가하시면 됩니다. -Djava.library... 2019. 10. 10.
오라클 LISTAGG, 여러 행을 하나의 컬럼으로 합치기 Oracle LISTAGG() LISTAGG()은 오라클 11g부터 지원하는 내장 함수입니다. 컬럼(아래)으로 나열되는 데이터를 로우(가로)로 나열하고 싶은 경우에 사용합니다. 즉, 리스트 형태로 나오던 데이터를 그루핑 할 때 유용합니다. 그럼 구체적으로 사용 방법을 알아보겠습니다. 기본 형태 기본적으로 LISTAGG 인자는 합칠 컬럼명과 구분자입니다. 구분자는 단순히 구분하기 위한 목적으로 아무 문자나 사용해도 됩니다. 1 2 3 SELECT LISTAGG(대상컬럼, 구분자) WITHIN GROUP (ORDER BY 정렬기준컬럼) FROM 테이블 ; Colored by Color Scripter cs SELECT 절에 LISTAGG 외에 컬럼을 표시하면 합칠 때 기준이 됩니다. 만약 LISTAGG만 사.. 2019. 9. 25.
소스 정렬 사이트 모음 (HTML, JS, SQL 등) 웹이나 쿼리를 작성하다보면 분석할 때 정렬이 되어 있지 않아 불편합니다. 이때 소스를 자동으로 정렬해주는 사이트를 이용하면 간편하게 정렬할 수 있습니다. https://tools.arantius.com/tabifier 제일 간단하지만, 태그 별로 정렬이 잘 되어 실제 소스를 작성하고 소팅할 때 제일 유용하다고 생각되는 사이트. 단, 기능은 정말 없음.. 미리보기도 없음. http://html.segio.com/ko/?shell=index.shell:0 웹브라우저 형태의 미리보기 가능 https://prettydiff.com/?m=beautify 다양한 옵션으로 소스 코드를 정리해준다. 옵션은 상당히 많은데 좀 헷갈리고 옆으로 길게 펼쳐져서 보기에 불편함. https://beautifier.io 옵션을 설.. 2019. 8. 30.