본문 바로가기

분류 전체보기133

[Linux] systemctl 명령 에러 System has not been booted with systemd as init system (PID 1). WSL을 사용 중 systemd 환경이 아니라는 오류가 발생합니다. $ sudo systemctl status System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down 원인은 WSL은 루트 시스템 프로세스가 systemd가 아닌 init이기 때문입니다. $ pstree 명령을 통해 확인할 수 있습니다. pstree 명령어는 실행되고 있는 프로세스들간의 연결구조를 트리형식으로 보여줍니다. $ pstree init─┬─init─┬─init───docker-desktop-───14*[{docker-desktop-}] │ └─init───docker───20*.. 2023. 4. 11.
[Elasticsearch] 집계 쿼리 다음 예제들과 인덱스는 ELK stack이 구축되어 있다는 가정하에, 키바나에서 제공하는 샘플데이터를 이용합니다. 키바나 홈 -> Get started by adding integrations 엘라스틱서치에서 집계는 데이터를 그룹핑하고 통계값을 얻는 기능으로 SQL의 GROUP BY와 통계 함수를 포함하는 개념입니다. 이를테면 데이터를 날짜별로 묶거나 특정 카테고리별로 묶어 그룹별 통계를 내는 방식입니다. 집계가 중요한 이유는 키바나의 주 기능인 데이터 시각화와 대시보드는 대부분 집계 기능을 기반으로 동작하며, 집계를 제대로 이해할수록 키바나라는 툴을 더 잘 사용할 수 있습니다. 집계의 요청 / 응답 형태 집계를 위한 특별한 API가 제공되는 것은 아니며, search API의 요청 본문에 aggs 파라.. 2023. 4. 10.
[Elasticsearch] 검색 쿼리 다음 예제들과 인덱스는 ELK stack이 구축되어 있다는 가정하에, 키바나에서 제공하는 샘플데이터를 이용합니다. 키바나 홈 -> Get started by adding integrations 엘라스틱서치에서 쿼리를 사용하는 방법은 쿼리 스트링과 쿼리 DSL 두 가지가 있습니다. 쿼리 스트링은 한 줄 정도의 간단한 쿼리에 사용하고 쿼리 DSL은 한 줄에 넣기 힘든 복잡한 쿼리에 사용합니다. 먼저 쿼리를 작성하기 위해 엘라스틱 서치의 문자열에 대해 알아야 합니다. 5.x 버전부터 문자열 타입이 텍스트와 키워드 라는 두가지 타입으로 분리되었습니다. 텍스트 타입은 일반적으로 분석기에 의해 토큰으로 분리되고 역인덱싱을 합니다. 키워드 타입의 경우 문자열 전체가 하나의 용어로 인덱싱 됩니다. 자세한 내용은 아래 .. 2023. 4. 7.
[Elasticsearch] 벌크 데이터 bulk API 데이터 CRUD 동작을 할 때, REST API를 호출해 하나하나 도큐먼트를 요청하는 것보다 벌크로 한번에 요청하는 것이 효율적입니다. POST _bulk {"index" : {"_index": "mydoc", "_id": "1"}} {"field_test": "test", "field_test2": "test"} {"create" : {"_index": "mydoc", "_id": "2"}} {"field_test": "test", "field_test2": "test"} {"update": {"_id" : "2", "_index": "mydoc"}} {"doc": { "field_test" : "update"}} {"delete": {"_index": "mydoc", "_id": "1"}} 위와 같이.. 2023. 3. 27.
[Elasticsearch] CRUD - 데이터 입력, 조회, 삭제, 수정 1. 입력 (PUT) 도큐먼트를 입력하는 경우, PUT 매소드를 사용합니다. mydoc 이라는 인덱스에 ID가 1인 도큐먼트를 입력하려면 아래와 같이 작성합니다. PUT mydoc/_doc/1 { "title":"안녕하세요", "message":"반갑습니다." } 이전에 ID가 1인 도큐먼트가 없다면 response상에서 result는 created를 반환합니다. 이때 다시 동일한 입력을 한다면 ID가 1에 해당하는 도큐먼트가 mydoc인덱스에 존재하기 때문에 response상에서 result는 updated를 반환하고 덮어쓰기 됩니다. 덮어쓰기를 방지하기위해 _doc 대신 _create를 사용해야 합니다. PUT mydoc/_create/1 { "title":"안녕하세요", "message":"반갑습니.. 2023. 3. 27.
React에서 input value 값 수정 안될 때 리액트에서 input에 text로 값을 입력받을 때 value값은 기본으로 들어가는 값이 되고, onChange를 통해 이벤트값을 호출합니다. value값에 sessionStorage에 저장된 titleModify의 값을 할당하였습니다. 이때 값은 입력창에 들어오지만 수정이 안되는 상황입니다. 기본 HTML 문법에서는 value값이 잘 수정되지만 위와 같이 리액트에서 동작을 안하는 경우가 있습니다. 해결방안 Value를 defaultValue로 바꿔주면 우리가 알고 있던 것처럼 수정 가능한 value 값을 지정해줄 수 있습니다. 참고자료 [React] input요소에 value와 defaultValue의 차이점 https://reactjs-kr.firebaseapp.com/docs/uncontrolled.. 2023. 1. 30.
[TS] 타입스크립트 기초 - 1 (개인소장) 기본 타입형 number, string, boolean arrays, objects +함수타입, 파라메터 타입 1) 기본 let age: number = 24; let name: string; let check boolean = true; 타입 대문자 쓰지마라 2) 문자열배열? let name: string[]; name = ['a', 'b']; 이렇게 배열안에 문자열만 드감 3)객체형태 정의 let person; person = { name: 'max', age: 32 } 디폴트는 any로 저장(대체로 안씀) 따라서 let person{ name: string, age: number }; person = { name: 'max', age: 32 } 위 2,3 합쳐서 let person{ name: st.. 2023. 1. 12.
웹 브라우저로 개발하기 (온라인 IDE) 개발 환경 구축 없이 브라우저에서 개발환경 기능을 가진 웹 사이트를 소개합니다. 1) ideone Ideone.com Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages. ideone.com C Perl C# PHP C++ Python C++14 Python 3 Haskell Ruby Java SQLite Objective-C Swift Pascal VB.net 등 자주 쓰이는 언어들의 개발환경을 제공합니다. 각 언어를 선택하면 기본 템플릿을 제공하며 자동으로 .. 2022. 12. 28.
C++ 백준 BOJ 1620 나는야 포켓몬 마스터 이다솜 포켓몬 이름을 입력받아 입력 순서대로 번호를 부여하고 도감을 만듭니다. 해당하는 포켓몬의 이름을 입력하면 번호를, 번호를 입력하면 이름을 출력하는 문제입니다. 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, M; string p; string name[100001]; unor.. 2022. 12. 27.