엘라스틱 서치 대시보드로 유명한 녀석이죠 ㅋ
키바나…
그냥.. local 서버에 설치한 기념으로…ㅋ
(키바나 설치후 첫화면ㅋ)
대시보드를 잘 활용하면..
데이터 분석, 로그분석 등등 유용하게…ㅋ
쓸수있겠죠잉…
다음엔 el, kibana 설치과정 정리해서 포스팅 예정.(오늘은 귀찮..)
엘라스틱 서치 대시보드로 유명한 녀석이죠 ㅋ
키바나…
그냥.. local 서버에 설치한 기념으로…ㅋ
(키바나 설치후 첫화면ㅋ)
대시보드를 잘 활용하면..
데이터 분석, 로그분석 등등 유용하게…ㅋ
쓸수있겠죠잉…
다음엔 el, kibana 설치과정 정리해서 포스팅 예정.(오늘은 귀찮..)
Hapi(Http API Server)
Hapi(Http API Server)는 Express와 같은 Node.js 기반의 웹 프레임웍으로 월마트 연구실의 Eran Hammer와 그의 팀에 의해 개발되었다.
Express로 뭔가를 만들다가 Express에 실망하고 빡쳐서 ‘더 좋은걸 만들거야 하고!!’ 만들었다나 뭐라나 ^^;
Eran Hammer는 다음과 같은 생각으로 Hapi 개발을 결심했다고 한다.
– 설정이 코드보다 낫다.
(정말 설정을 많이 하는 것이 코드를 작성하는 것보다 나은지에 대한 의견이 분분하다고 한다)
– business logic과 transport layer는 분리되어야 한다.
– buffer, stream과 같은 native node 구성들은 첫번째 클래스 객체로 제공되어야 한다.
서버를 생성하는 간단한 샘플코드는 다음과 같다.
var express = require('express'); var app = express(); var server = app.listen(3000, function(){ console.log('Server start'); });
var hapi = require('hapi'); var server = new hapi.Server(3000); server.start(function () { console.log('Server start'); });
json라이브러리중에 GSON 라이브러리를 사용해서
Array 형태의 JSON String을 ArrayList
1. JSON
[ { title:'초보를 위한 Java' , author:'홍길동' , isbn : 'A000022200f' } , { title:'Java 개발자' , author:'이몽룡' , isbn : 'A1111100ff0' } ]
2, JAVA
class Book { private String title; private String author; private String isbn; }
3, JSON To ArrayList
Gson gson = new Gson(); Type type = new TypeToken<list<book>>() {}.getType(); List<book> bookList = gson.fromJson(jsonString, type); </book></list<book>
http://www.nextree.co.kr/p2129/
좀 오래된 글이지만
메이븐+젠킨스 로 릴리즈를 간편하게 쓸수있는 글이다…
요즘은
gradle 를 이용해서도 빌드를 많이 하던데..
이것도 익혀두면 좋을것 같다
참고 링크
http://www.nextree.co.kr/p2437
Explain 정보보는법
인덱스가 적절히 사용되고 있는지 검토
나열된 순서는 MYSQL 이 쿼리처리에 사용하는 순서대로 출력
EXPLAIN 의 각 행 설명
1. id : SELECT 번호, 쿼리내의 SELECT 의 구분번호
2. select_type : SELECT 의 타입
3. table : table명
4. type : 조인타입, 우수한 순서대로… 뒤로갈수록 나쁜 조인형태
5. possible_keys : MySQL 이 해당 테이블의 검색에 사용할수 있는 인덱스들
possible_keys 에 나타난 인덱스들이 결과에 나타난 테이블 순서에서 실제 사용할 수 없을수도 있음
6. key : MySQL 이 실제 사용한 key(index)
7. key_len : MySQL 이 사용한 인덱스의 길이, key 컬럼값이 NULL 이면 이값도 NULL
key_len 값으로 MySQL 이 실제 복수컬럼 키중 얼마나 많은 부분을 사용할 것인지 알 수 있음
8. ref : 행을 추출하는데 키와 함께 사용된 컬럼이나 상수값
9. rows : 쿼리 수행에서 MySQL 이 예상하는 검색해야할 행수
10. Extra : MySQL 이 쿼리를 해석한 추가적인 정보를 나타냄
초기화 파라미터인 OPTIMIZER_MODE는 오라클 인스턴스가 최적의 Access 경로를 선택하는 기본 설정이 된다. 즉 옵티마이저가 어떠한 기준으로 최적화된 Access 경로를 추출 하는지 결정하는 방법에 대해 제시 한다고 볼 수 있다.
MODE | 장점 | 단점 |
---|---|---|
RULE | Analyze작업이 불필요, 일정한 응답속도를 기대 |
전문가에게 의존도가 매우 높음, 옵티마이저 대부분의 기능을 사용 못함 |
CHOOSE | 옵티마이저 기능을 최대한 활용 | 주기적인 Analyze작업이 필요, 비효율적인 실행계획수립 발생 |
FIRST_ROWS | Nested Loop 위주의 실행계획수립 | 일부 Hash Join으로 바꾸는 작업 필요 |
ALL_ROWS | Hash Join 위주의 실행계획 수립 | 일부를 Nested Loop로 바꾸는 작업 필요 |
/*+ CHOOSE */ |
SELECT DISTINCT B.CLASS, COUNT(B.CLASS) // DISTINCT는 아래의 GROUP BY에 의해 의미가 없음 |
SELECT ename |
현재는 아무런 인덱스가 없으며 분석되지 않았으며, 비용기반이 아님
SQL> ANALYZE TABLE emp COMPUTE STATISTICS; |
분석 이후 Cost, Card, Byte등이 출력됨. (Cost가 큰 수일수록 비효율적임)
SQL> CREATE INDEX EMP_DEMPTNO_IDX ON EMP(DEPTNO); |
초기의 COST보다 18이 줄은 값이 나옴 인덱스 사용이 미사용보다 COST가 높았다면 인덱스를 사용하지 않았을 것임
SQL>conn / as sysdba |
select sql_text, optimizer_mode, optimizer_cost, parsing_schema_name |
ERROR Method printIn(java.lang.String)(메소드명) not found in class java.io.PrintStream(클래스명)
발생되는 경우 자신이 사용한 클래스의 메소드가 맞지 않는(=없는)경우
조 언 자신이 사용한 클래스의 메소드가 맞지 않는(=없는) 경우에 발생하는 에러이므로
API를 통해서 사용하고자 하는 클래스와 메소드를 다시 한번 확인해 봅니다.
보통 이경우 메소드의 철자나 대소문자를 잘못 쓴 경우가 많으니 그점을 유심히 살표봅니다.
마지막으로 철자와 대소문자도 맞는다면 메소드의 인자의 객체형을 맞게 주었는지 확인해보면 됩니다.
ERROR java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver(드라이버명)
발생되는 경우 JDBC로 데이터 베이스에 연결하는 중 드라이버를 찾지 못할 경우
조 언 JDBC를 연결하는 중에 드라이버를 찾지 못할 경우에 발생하는 에러이므로
각 데이터 베이스에 맞는 드라이버가 제대로 다운로드 되었는지 확인해 보시고
드라이버의 위치가 클래스 패스에 잡혀 있는지 확인해주시면 됩니다.
ERROR Error opening registry key ‘Software\JavaSoft\Java Runtime Environment’
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment
발생되는 경우 중복설치 등으로 인해 레지스트리 키값이 잘못되어 있는 경우
조 언 중복설치 등으로 인해 레지스트리 키값이 잘못되어 있는 경우에 발생하는 에러이므로
레지스트리 편집기를 열어서 HKEY_LOCAL_MACHINE -> SOFTWARE -> JavaSoft에
보시면 3개의 키가 있을 겁니다. 그중에서 첫번째 키인 Java 런타임 환경 을 마우스
오른쪽 버튼으로 클릭하여 Java Runtime Environment로 이름을 바꿔주시면 됩니다.