강사님, 안녕하세요! 강의 잘듣고 있습니다! 예제에서 동의어를 정의하신 부분이 있는데 관련해서 질문이 있어서 글 남깁니다. 실무에서는 동의어를 정의하는 부분이 훨씬 방대할 것으로 예상되는데 .. 동의어를 정의하는 부분은 수기로 하는지 아니면 AI를 활용하는 등 실무에서 동의어를 정의하는 방법이 궁금 합니다. 항상 좋은 강의 해주셔서 잘 듣고 있습니다. 좋은 하루되시기를 바라면서 답변 꼭 부탁드립니다. 감사합니다.
안녕하세요 강사님 멀티필드 강의를보면 실무에서 검색조건을 줄때 정말 좋은 기능같은데 실무에서도 자주 쓰이는지 궁금합니다. 만약 거래데이터를 저장한다 했을때 필드가 한 20개정도 되는 상황인데 이때 상품명이나 구매자명 등에 멀티필드로 text 및 keyword를 준다면 고객 입장에서는 되게 좋겠지만 내부적으로 뭔가 필드가 더 생기는것같은데 실무에서도 저런식으로 저장공간?을 신경안쓰고 얼추 많이 쓰는지 궁금합니다.
안녕하세요 강사님 페이지네이션 강의에서 1번글 ~ 7번글로 insert를 한 이후에 size를 지정하면 1번글부터 나오는데 id가 랜덤임에도 엘라스틱서치에는 mysql seq개념처럼 insert된것부터 document가 쌓여 그냥 조회하면 순차적으로 insert된것부터 나오게 되는걸까요? 만약 아무런 조건없이 asc정렬을 하고싶다하면 그냥 _search만 해도 되는걸까요? ( 실무에서도 그냥 아무런 조건없이 순차적으로 보여준다하면 그냥 findAll만 하는지 궁금합니다 )
안녕하세요, 도큐먼트 저장,조회,수정,삭제하기 영상을보고 궁금한게 있어 질문드립니다 . id를 직접 지정해서 저장하는경우 PUT /users/_create/1 { "name:"testPUT" } POST /users/_creat/1 { "name:"testPOST" } 이러면 결과가 PUT으로 할때나 POST로 할때나 결국 마지막꺼로 덮여씌워지는데 그냥 doc가 덮여져서 저장됐다 생각하면 될까요? 또 PUT이나 POST나 기능이 동일한데 일반 HTTP 메서드와 비슷하게 생각하면 되는걸까요? 두번째 질문으로는 UPSERT의 경우나 UPDATE ( 일부필드만수정 ) 의 경우 UPDATE로 age만 고치나 UPSERT로 그냥 전체 기존값을 쓰고 age만 바꿔서 하나 결과값은 동일한데 퍼포먼스차이나 실무에서는 그냥 update보다는 해당 Id에 다시 insert한다던가 어떠한 식으로 진행되는지 궁금합니다.
안녕하세요. 강의를 다시 듣는 중에 궁금 사항이 생겨 질문을 남깁니다. 색인 시에는 스탠다드 애널라이저를 이용하여 색인을 하고 검색시에는 스탠드다 애널라이저가 아닌 다른 애널라이저로 이용하는 경우도 있을까요? 검색 애널라이저도 따로 설정하지 않으면 스탠다드 애널라이저인가요? 좋은 강의 만들어주셔 감사합니다.
안녕하세요, 강사님! 바쁘신 와중에 질문드려 죄송합니다... 단순한 질문 같지만 ProductDocument 코드에 대해 궁금한 것이 있어 질문드립니다. Elasticsearch 관련 Document 코드에 @AllArgsConstructor 나 @Data 같은 롬복(lombok) 애노테이션 을 사용해도 문제가 없을까요...? 추가로 실제 실무에서 Document에 롬복을 사용하는지 강사님 코드대로 직접 생성자, getter & setter를 작성하는지 알고 싶습니다!
일단 해당 질문은 강의 내용하고 관련 없는 점 죄송 드립니다. ' 실전에서 바로 써먹는 Kafka 입문' 해당 강의 구입 전 질문을 하고 싶어서 찾고 있었는데 게시판이 따로 없어서 어쩔수 없이 여기에 글을 등록합니다. 양해 부탁드립니다. 일단 저는 어느 한 스타트업에서 종사 하고 있는 주니어 개발자 입니다. 어쩔수 없이 Kafka 를 당장 사용해야 하는 상황이 발생해서 Kafka 관련 지식도 중요하지만 이보다 더 중요한 것은 상용 서비스에서 실제로 직접 Kafka 를 설치 하고 서버를 운영 해야 하는 일인데요. 일단 해당 강의 내용을 보니 AWS EC2 로 실습을 하는 것 같은데요. <질문1> 이 강의 내용만 잘 따른다면 기초적인 Kafka 서버 운영에서 크게 무리가 없을까요? (제가 추상적으로 질문을 드렸고 어떤 기능 및 사용자 접속량도 말하지 않는 상황에서 답변드리기 곤란하시겠지만 대략 적으로 말씀드리자면 아직 초반이라 하루에 100명 정도 사용자가 접속 한다고 생각하시면 될 것 같습니다!) <질문2> 그리고 제가 한번 찾아보니 "Amazon MSK", "컨플루언트" 같은 SaaS 형태로 제공하는 서비스를 제외 했는지 알고 싶습니다. <질문3> 혹시 제가 말씀드린 상 황에서 SaaS 형태로 제공하는 서비스는 비추천일까요? 다시 한번 강의 내용과 관련없는 질문을 남겨드려서 죄송 합니다. 답변 부탁드립니다 감사합니다 :)
안녕하세요. spring boot project 에 테이블을 여러 개 만드는 경우의 설정을 알고 싶습니다. 강의에서는 products 테이블과 index 하나이지만 실제로 프로젝트를 하게 되면 테이블을 여러 개 만들게 됩니다. 가령, 학사관리 시스템의 경우 필요한 테이블이, student, professor, department, subject, course_registration.. 최소한 이정도는 있어야 되는데요... 이러한 경우, Spring Boot JPA + Elasticsearch 조합으로 프로젝트를 진행하게 되는데. 테이블이 여러 개 있는 경우입니다. 관리자 페이지이도 있어야 되고요. 학생과 교수님의 경우에는 학생검색, 교수님 검색, 과목 검색, 학과 검색을 해야 되고, 관리자는 모두 다 검색할 수 있어야 됩니다. (수강신청내역검색 추가) 이런 경우에는 settings.json 파일을 어떻게 설정해야 되는지요? 자세한 답변 부탁드립니다.
58 강에서 자동완성 기능은 잘 적용되나 동의어처리가 안 됩니다 강의에 나온대로 elasticsearch와 spring boot 의json파일에서 동의어처리와 자동 완성 처리를 설정하고 엘지 건조기 엘지 휴대폰 LG 에어컨 엘지 청소기 LG 공기 청정기 엘지 식기세척기 라고 POST 한 후에 GET /products7/_search { "query":{ "multi_match":{ "query":"엘지", "type":"bool_prefix", "fields":[ " name.auto _complete", " name.auto _complete._2gram", " name.auto _complete._3gram" ] } }, "size":5 } 이렇게 검색하면 LG 에어컨 LG 공기 청정기 는 조회가 안 됩니다 GET /products7/_search { "query":{ "multi_match":{ "query":"LG", "type":"bool_prefix", "fields":[ " name.auto _complete", " name.auto _complete._2gram", " name.auto _complete._3gram" ] } }, "size":5 } 이렇게 검색하면 LG 에어컨 LG 공기 청정기 만 조회 됩니다 그리고, Spring Boot 를 사용하는 강의는 17, 18 강에서 하시고 kibana 에서 실습하다가 60강에서 다시 Spring Boot 에 적용하는 강의가 진행되는데, 18 강에서 없던 ProductService 가 이미 작성되어서 나옵니다. ProductController ProductRepository 도 그러네요... 혹시 중간에 있었는데 제가 놓친 건가요?....
es 설정을 입력해주는 부분이라고 이해했는데 운영환경에서는 설정하면 안된다는 게 무슨 말인지 잘 이해되지 않습니다. 실제 docker 서버에서 경로에 elasticsearch.yml에서 설정하면 적용 안된다는 건가요? 아니면 보안 설정이라 실무에서 주의하라는 말씀이신가요?
Elastic Cloud 에서 "Logs and metrics" 기능 활성화를 통해 나중에 문제 발생시 로그 및 매트릭 확인을 위해서 해당 기능을 활성화 하고자 하는데요. 이 기능은 좋은데 문제점이 너무 빠르게 용량을 잡아 먹는다는 것 입니다. 저 예산으로 가야 되는 상황이라 어쩔 수 없이 낮은 사양으로 할 수 밖에 없는 상황이지만 그렇다고 "Logs and metrics" 기능을 비활성화 하기에 나중에 문제 발생시 대처가 안 될 것 같아서 고민이 됩니다. 한번 여러 방면으로 대책법을 찾아보니 필수 로그 및 메트릭만 수집 (필터링) 수집 주기 조정 (Metrics 기준) 이렇게 대응 방법을 말해주고 있는데요. 지금부터 ChatGPT 가 답변해준 글을 공유 하도록 하겠습니다. ================================================== 💥 주요 성능 부하 원인 🔁 수집량 과다 수집 주기 짧음, 많은 필드 → 데이터 폭주 📥 Ingest Pipeline 부하 Elastic Agent가 사용하는 Ingest Pipeline이 CPU/RAM 자원 소비 💾 인덱싱 부하 많은 로그가 빠르게 들어오며 디스크 I/O 및 CPU 부하 증가 🔍 자동 매핑 확장 필드가 자동으로 확장되어 메모리, 클러스터 상태 불안정 🧠 ILM 미적용 / 장기 보존 오래된 데이터가 계속 쌓이며 성능 하락 및 디스크 압박 ✅ 해결책: 성능 최적화 전략 1. 필수 로그 및 메트릭만 수집 (필터링) 수집 대상 최소화: log.level: error , source: app-* 등 필요 데이터만 수집 예: Elastic Agent policy에서 수집 대상 제외 설정 processors: - drop_event: when: not: equals: log.level: "error" 2. 수집 주기 조정 (Metrics 기준) 리소스기본 주기추천 조정Metrics (System, Docker 등)10s~15s→ 30s~60s로 늘리기 Elastic Agent 정책에서 조정 가능 (Kibana → Fleet → Integration Policy → Advanced options) 3. ILM 수명주기 정책 설정 오래된 로그/메트릭 자동 삭제 또는 cold/warm tier로 이동 예: logs-* , metrics-* 인덱스 7일 후 삭제 📍 Elastic Agent Policy 설정 페이지 찾는 방법 🔹 경로: Kibana에 로그인 왼쪽 메뉴에서 "Management" → "Fleet" 클릭 → Fleet 은 Elastic Agent를 중앙에서 관리하는 UI입니다. 상단 탭에서 "Agents" 또는 "Agent policies" 클릭 원하는 정책 이름 클릭 (예: Agent policy 1 ) Integrations 리스트 가 보이면, 로그/메트릭 관련 항목 클릭 (예: System , NGINX , Kubernetes 등) Advanced Options 또는 Streams 탭에서 수집 조건/필터 조정 가능 🎯 필수 로그/메트릭만 수집하는 핵심 위치 Integrations 안의 Stream 설정 예: system.syslog → enabled ✅ / ❌ 메트릭 → 수집 주기(Collect every 10s 등) Advanced YAML (고급 설정) 예를 들어, error 레벨만 수집하도록 필터 추가: processors: - drop_event: when: not: equals: log.level: "error" 🧭 화면 예시 흐름 Kibana └─ Management └─ Fleet ├─ Agent Policies ← 여기서 정책 선택 │ └─ [Agent policy 1] │ └─ System integration 등 클릭 │ └─ Streams or Advanced options 설정 ================================================== 이렇게 필수로그 수집 기능 및 수집 주기 조정 기능으로 조금이나마 성능 부하를 줄이고자 할려고 하는데요. 말 그래도 키바나 접속 해서 Fleet 페이지로 가서 먼저 agent policy 등록를 하고 등록한 agent policy 접근 해서 system-1 클릭하면 Edit System integration 페이지 접근 할텐데요. 여기서 Collect metrics from System instances 에서 Change defaults 클릭 하고 여기서 원하는 Period 를 설정 하면 되는게 맞는 것인지 궁금 합니다... 혹시 또 추가적으로 설정 해야 하는 부분이 있을까요?
안녕하세요. 유익한 강의 열심히 수강하고 있습니다. 이번에 must_not 쿼리를 공부하는 과정에서 filter와 같이 term 쿼리를 사용하셨습니다. 주어진 상황이 광고 게시판의 글이 아니고 공지 글이 아니라 유연한 검색이 필요하지 않는 상황이어서 term 쿼리를 쓰신 것 같습니다. 그럼 만약, "검색엔진" 키워드를 제외한 관련된 게시글을 조회하고 싶다고 가정한다면 아래와 같은 쿼리문을 작성할 수 있을까요 ? "query" : { "bool" : { "must_not" : [ "match" : { "title" : "검색엔진" } ] } }