우선 시맨틱하게 HTML을 짜야하는 이유에 대해서 알아보자. 이를 위해서 시맨틱 웹의 목적과 사용이유를 짚고넘어가면 검색사이트들은 웹사이트를 검색하기 위해 검색엔진을 사용한다 이때 개발자들은 프로적트를 만들때 검색어에 많은 노출을 할 수 있어야하기 때문에 검색엔진 최적화(SEO :Search Engine Optimization)을 고려해줘야한다. 즉, 검색엔진에 잘 노출 되려면 시멘틱 웹을 따라야 한다는 뜻이기도하다. 그렇다면 계속 시멘틱 시멘특 거리는데 이 시멘틱이란 의미는 무엇인가? Semantics(의미론) 이라는 영어단어에서 알 수 있듯이 HTML 문서를 의미에 맞도록 작성하는 것을 Semantic HTML이라고 부르는 것이다. HTML에는 정답이 없기에 HTML을 각 요소의 의미에 맞게 HTML..
SQL에서 INESERT문을 작성할 때 해당 테이블에 특정 데이터가 없을 때에만 값을 집어넣는 쿼리문을 짜야할 때가 있다. 이때 자연스럽게 작성되는 문장으로 INSERT INTO TBL(col1, col2, col3) VALUSE(col1val, col2val, col3val) WHERE NOT EXISTS SELECT(없어야 할 데이터값 조회 조건) 뭐이런식으로 작성할 수 있는데 이때 VALUES를 지원하지 않는 문제가 있는것 같다. SQL - 더미 테이블 DUAL DUAL이라는 더미 테이블 즉, 가상의 테이블을 통해서 함수에 대한 쓰임을 알고 싶은데 특정 테이블을 생성하기 귀찮은 경우가 있는데 이때 DUAL테이블을 이용할 수도 있고 이 포스팅에서는 INSERT문에서 VALUES 대신에 사용하기도 한다..
프로젝트를 진행하다보면 일정시간마다 작동해야하는 서비스가 존재할 수 있다. 처음에는 어떻게 구현해야할지 몰라서 스레드를 통해서 구현할까 생각도 했었는데 스레드를 사용하게되면 스레드에서 원하는 시간조건을 sleep 통해 걸어줘야하고 조건을 걸기가 좀 귀찮은 측면이 존재한다. 하지만 스프링에서 지원하는 scheduler를 사용하면 간편하게 구현할 수 있다. 시간조건 또한 Cron 표현식을 통해서 어렵지 않게 작성할 수 있다. 이를 사용하기위해선 servlet.xml 설정을 해야하는데 이는 생략한다. 클래스파일을 등록하는 것은 간단하다. 클래스에 @Component 어노테이션을 달아주고 메소드 앞에 스케쥴 어노테이션을 작성해주면된다. @Component public class Scheduler { /** * ..
POST sec/_delete_by_query { "size": 1, "query": { "range": { "systemtime": { "from": null, "to": "2022-01-16 00:00:00", "include_lower": true, "include_upper": true, "format": "yyyy-MM-dd HH:mm:ss", "boost": 1 } } }, "_source": false } 결과 이렇듯 ElasticSearch에서는 delete 쿼리를 날릴때 size가 설정되어있다고하여 size 개수만큼만 삭제되는게 아니다. size는 무시해도된다.
get 요청에서 _mapping 명령어 사용시 각 필드의 데이터 타입이 무엇인지 확인 할 수 있다. GET camo_system_logs/_mapping { } { "camo_system_logs" : { "mappings" : { "properties" : { "cluster" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } } }, "cpu_usage_per" : { "type" : "float" }, "disk_total" : { "type" : "long" }, "disk_usage" : { "type" : "long" }, "host" : { "type" : "text", "fiel..