CSS의 속성 중 position의 속성 중 fixed는 요소의 위치를 viewport에 상대적으로 지정한다. 때문에 페이지가 스크롤되더라도 사용자가 보는 화면에서 움직이지 않고 고정된 자리를 가지게 된다. 이러한 fixed 속성을 가지는 요소의 부모 요소에 transform 속성을 추가해서 좌표를 변경하게 되면 페이지가 스크롤될 때 움직이지 않아야 할 요소가 움직이게 된다. 이렇게 고정하려고 fixed을 사용했는데 움직이는 이유는 부모 요소에 transform이 적용되면 해당 요소의 영역에 새로운 viewprot가 설정되고 이러한 viewport에 자식 요소가 position: fixed 속성을 가질 때 영향을 받기 때문이다. 아래의 테스트 코드로 테스트해보면 position: fixed 요소가 원하는..
Elasticsearch는 존재하지 않는 인덱스에도 데이터를 넣을 수 있다. 이러한 동작이 가능한 이유는 Elasticsearch에서 색인을 알아서 생성해주기 때문이다. 이렇게 알아서 생성해주는 기능을 Elasticsearch에서는 동적 매핑(Dynamic Mapping)이라고 명칭하고 있다. 즉 data라는 인덱스가 없는 상태에서 아래와 같은 명령을 날리면 자동으로 인덱스가 생성되고 해당 인덱스에 데이터가 색인된다. PUT data/_doc/1 { "count": 5, "text" : "text", "date" : "2019-08-03" } 이렇게 자동으로 생성된 인덱스의 매핑 정보를 확인해보면 아래와 같이 나오는데 * 매핑 정보를 확인하는 명령 GET data/_mapping * 결과 { "data"..
Reindex API는 말 그대로 이전에 색인되어 있던 데이터를 다시 색인한다고 생각하면될 것 같다. 사용 방법은 간단한데 원본 인덱스와 재색인할 인덱스를 정해서 Reindex API를 사용하면 된다. Dynamic Mapping에 의해 재색인할 인덱스가 없는 상태에서도 사용이 가능하다. 주의할 점은 재색인할 때 원본 인덱스의 mapping이나 settings 정보는 복사하지 않기 때문에 재색인할 때 데이터를 재색인해서 넣을 인덱스를 미리 만들어 두고 재색인하는 것을 추천한다. 아래와 같은 상황에서 사용된다. 매핑의 정보를 수정하고자할 때 마이그레이션할 때 인덱스의 명칭을 변경할 때 Reindex API POST _reindex { "source": { "index": "원본 인덱스 명" }, "dest..