전체 글 159

[React] JSX

JSX(JavaScript XML) : 자바스크립트 + XML을 추가한 확장형 문법으로 브라우저에서 실행되기 전 바벨을 통해 자바스크립트 형태로 변환됨 JSX 문법 반드시 부모 요소 하나로 감싸야 한다. → div 두 개 안됨 2. return 되는 JSX는 하나의 요소로 감싸야 한다. 3. JSX 안에서 자바스크립트 표현식을 쓸 수 있다. 4. return문 안에서 IF문 대신 조건부 연산자 사용 - JSX 내부의 자바스크립트에서 if문을 사용할 수 없다. ( 즉, return문 안에서 대신 { } 안에 조건부 연산자를 사용 ( 삼항 연산자 ) ) 5. 속성 name class 대신 className으로 사용 6. 항상 닫는 태그가 있어야 한다. 7. 주석 {/* 주석 */}

React 2024.03.21

[React] 리액트 설치 및 실행하기

1. NODE.JS 설치 2. extensions에서 다음 항목 설치 3. 터미널로 프로젝트 생성 이렇게 생성하면 오류가 난다... ? ==> 설치한 파일과 경로가 맞지 않아서 생기는 문제 ! 위치를 정확히 설정해주고 재설치 해본다. 설치완료 ! 이렇게 자동으로 뜬다. 이 화면이 확인이 된다면, 리액트를 사용할 준비가 되었다는 뜻이 더보기 이 코드는 React 애플리케이션의 기본적인 구조를 보여줍니다. 각 부분에 대한 설명은 다음과 같습니다: import logo from './logo.svg';: logo.svg 파일을 가져와서 logo라는 변수에 할당합니다. 이 이미지는 앱의 로고로 사용됩니다. import './App.css';: App.css 파일을 가져와서 현재 파일에서 사용합니다. 이 파일에는..

React 2024.03.21

[React] 리액트 개요

DOM : 하나의 웹 페이지 정보를 모두 담고 있는 자바스크립트 객체 화면 구조의 변경이 있을 경우 DOM으로부터 수정할 부분을 찾아 일일이 다 수정된 후 전체 구조 생성 → 보다 효율적인 방법 데이터가 변할 때마다 어떤 변화를 줄지 고민하는 게 아니라 기존 뷰를 다 버리고 처음부터 새로 뷰를 생성하여 보여주는 방식 장점 어떻게 변화를 줄 지 신경 쓸 필요 없음 변화가 있으면 기존 것은 버리고 정해진 규칙에 따라 새로 뷰를 생성하여 보여줌 단점 CPU 점유율 증가 리액트 → facebook에서 개발한 유저인터페이스 라이브러리 JSX(JavaScript XML) 사용 데이터 바인딩 용이 SSR CSR 서버 측 랜더링 최초 화면 로딩이 빠름 화면 갱신이 느림 부분 갱신을 위한 전체 페이지 reload 클라이..

React 2024.03.21

[엘라스틱서치] 7. object, Geo 위치정보

Object movie로 조회하면 안 나옴. movie.name해야만 값이 조회가 됨 → name은 Loki이고, side는 villain인 문서를 검색 GET movies/_search { "query":{ "bool":{ "must":[ { "match":{ "movie.name":"Loki" } }, { "match":{ "movie.side":"villain" } } ] } } } name이 Loki인 것을 가지고 오고, 그 이후에 side가 villain인 것 가지고 온다. 결과 -> 2개의 문서를 가지고 온다. { "took": 15, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }..

ELASTICSEARCH 2024.03.14

[엘라스틱서치] 6. 한글 형태소, mapping

한글 형태소 설치 엘라스틱서치 -> bin위치에서 cmd창 열어서 설치하기 합성어(복합어) 처리 3가지 옵션 none : 복합어를 분리하지 않음 discard : 복합어 분리 mixed : none과 discard 모두 저장 PUT my_nori2 { "settings":{ "analysis":{ "tokenizer":{ "nori-none":{ "type":"nori_tokenizer", "discompound_mode":"none" }, "nori-discard":{ "type":"nori_tokenizer", "discompound_mode":"discard" }, "nori-mixed":{ "type":"nori_tokenizer", "discompound_mode":"mixed" } } } } ..

ELASTICSEARCH 2024.03.13

[엘라스틱서치] 5. 데이터 색인, 사용자 정의 토큰 필터

데이터 색인 : 역인덱스 ( 단어 → 매핑문서 ) → tokenizer filter GET _analyze { "text":"Today is a day where I feel lucky and happy", "tokenizer":"whitespace", "filter":[ "lowercase", // 소문자로 변환 "stop", // 불용어 제외 "snowball" // 단어의 원형 ] } "snowball" // 단어의 원형 → 을 넣으면, y는 i 로 바뀌어서 저장됨 빼면 lucky, happy 그대로 나옴 "stop", // 불용어 제외 → is, a, and 이런거 빠짐, 빼고 넣으면 다 나옴 결과값 { "tokens": [ { "token": "today", "start_offset": 0, "..

ELASTICSEARCH 2024.03.13

[엘라스틱서치] 4. Bool query, Range query

Bool query : 여러 쿼리를 조합하여 사용 가능 must : 쿼리가 참인 문서들을 검색 must_not : 쿼리가 거짓인 문서들을 검색 should : 검색 결과 중 이 쿼리에 해당하는 문서들의 score를 높여줌 filter : 쿼리가 참인 문서를 검색하지만, score를 계산하지 않음 must보다 검색 속도가 빠르다 [사용법] GET 인덱스명/_search { "query":{ "bool":{ "must":[ { 쿼리 }, ... ], "must_not":[ { 쿼리 }, ... ], "should":[ { 쿼리 }, ... ], "filter":[ { 쿼리 }, ... ] } } } EX01 ) 조건 - 팀이 jazz 이고, golden states 가 참인 것 ( 둘 다 참인 것 ) gol..

ELASTICSEARCH 2024.03.13

[엘라스틱서치] 3. 데이터 조건에 따라 검색하기

원하는 조건에 따라 검색이 가능하다. 먼저 이름이 park인 데이터를 조회하고, 이름이 park이면서 나이가 22인 데이터를 조회해본다. - term : 정확히 일치한 것 검색 ( 숫자 ) ⇒ 문자는 검색이 안될 수도 있다. ( 파싱한 값에 따라 달라지므로 잘 사용하지 않음 ) GET basketball/_search { "query" : { "term" : { "points":32 } } } - match : 단어가 포함되어 있으면 검색 ( 대/소문자 상관없음 ) GET basketball/_search { "query" : { "match" : { "team":"States" } } } + match에서 공백은 or를 의미한다. GET basketball/_search { "query" : { "ma..

ELASTICSEARCH 2024.03.11

[엘라스틱서치] 2. 데이터 추가하기

classes라는 인덱스를 GET으로 조회해보면, 아직 만들어진 인덱스가 없어서 오류가 뜬다. 1. 인덱스 만들기 - PUT 2. 생성한 인덱스 조회 - GET 3. 인덱스 삭제 - DELETE 삭제한 후에 다시 조회해보면, 삭제했기때문에 오류가 나온다. 5. PUT 으로 다시 인덱스 생성한 후 문서 생성하기 -> ( [표현법] POST/인덱스명/_doc/id )하고, 안에 내용 넣기 생성한 문서 확인해보기 -> 인덱스 번호 1번인 것 조회 만약 ID를 넣지 않고 문자를 생성하면, 문자 + 숫자 조합으로 ID가 자동으로 생성되는데 이는 권장하지 않는다. ID로 검색해오기때문 이는 키바나 뿐 만아니라, 포스트맨에서도 조회가 가능하다. 6. 내용 수정 - 기존에 있는 내용을 수정해본다. "hello"라고 넣..

ELASTICSEARCH 2024.03.11