모든 명령어가 정상작동확인하고 크롬 시크릿탭에서 localhost:5000으로 접속하면 html 화면이 보이지 않고, welcome to nginx 화면이 보이는데 어디서 문제가 생겨서 그런걸까요? intelliJ ce 환경에서 index.html, Dockerfile, style.css, web-server-pod.yaml 파일을 작성하였습니다.
선생님 안녕하세요. 여러 모델을 외우기 힘들면 랜덤포레스트 하나로 가도 된다고 말씀해주셨는데, 그렇게하면 평가(RMSE, ...)를 하는게 의미가 없다고 생각하는데요. 평가자체를 하지 않고 랜덤포레스트 모델로 학습시켜 바로 예측하여 제출해도 문제가 없는걸까요? 그리고, 연습문제 저 혼자 풀어보고 선생님 파일이랑 대략 비교해보고싶은데, 어떻게 비교 또는 확인해볼 수 있을까요?
안녕하세요 공부하다가 보니 FetchGroups방식으로 했을때 Map으로 반환되고 DTO로 변환해야하는 오버헤드가 발생하는데요 Multiset방식으로 하면 1:N 관계에서 바로 DTO로 반환 할 수 있는데요 코드 보기가 조금은 더 복잡해 보이지만 WHERE절이 있을때 현재 테이블 데이터와 인덱스 상으로는 성능적으로 더 괜찮은거 같아서 multiset방식은 강의에 없어서 어떤지 궁금해서 여쭤봅니다 public List<ActorFilmography> findActorFilmographyWithMultiset(ActorFilmographySearchOption searchOption) { final JFilmActor FILM_ACTOR = JFilmActor.FILM_ACTOR; final JFilm FILM = JFilm.FILM; return dslContext.select( ACTOR, DSL.multiset( DSL.select(FILM.fields()) .from(FILM) .join(FILM_ACTOR) .on(FILM.FILM_ID.eq(FILM_ACTOR.FILM_ID)) .where( FILM_ACTOR.ACTOR_ID.eq(ACTOR.ACTOR_ID), containsIfNotBlank(FILM.TITLE, searchOption.getFilmTitle()) ) ).convertFrom(r -> r.into(Film.class)) ) .from(ACTOR) .where( containsIfNotBlank(ACTOR.FIRST_NAME.concat(" ").concat(ACTOR.LAST_NAME), searchOption.getActorName()) ) .fetch(record -> new ActorFilmography( record.value1().into(Actor.class), record.value2() )); } WHERE 조건 포함 시 성능 비교 fetchGroups 방식 (cost=405, rows=609) Film 필터링 먼저 → FilmActor 조인 → Actor 필터링 1. film 테이블 스캔 (1000 rows) └─ LIKE '%COMMANDMENTS EXPRESS%' → 111 rows 2. film_actor 인덱스 조회 (idx_fk_film_id) → 609 rows 3. actor PRIMARY KEY 조회 → 609 rows └─ LIKE '%LOLLOBRIGIDA%' → 1 row (최종) 특징: - Film 조건이 선택적이면 먼저 필터링하여 조인 범위 축소 - 하지만 Actor 필터링은 마지막에 수행 (비효율) - 609개 row가 네트워크 전송 → 애플리케이션에서 1개로 그룹핑 --- multiset 방식 (cost=20.2 + 13.3 × filtered_actors) Actor 필터링 먼저 → 각 Actor의 Film 서브쿼리 1. actor 테이블 스캔 (200 rows) └─ LIKE '%LOLLOBRIGIDA%' → 1 row (필터링 후) 2. 필터링된 1개 actor에 대해 서브쿼리 실행: - film_actor PRIMARY KEY 조회 (27.3 rows 추정) - film PRIMARY KEY 조회 (27.3번) - LIKE '%COMMANDMENTS EXPRESS%' → 1개 매칭 특징: - Actor 조건을 먼저 적용하여 서브쿼리 실행 횟수 최소화 - 필터링된 1개 Actor만 네트워크 전송 (JSON 포함) - Film 필터링은 각 actor 서브쿼리 내부에서 수행 --- 실제 Total Cost 계산 fetchGroups Total: 405 네트워크 전송: 609 rows (Actor + Film 중복 포함) 애플리케이션 처리: Map 생성 + Stream 변환 multiset Total: 20.2 + (13.3 × 1) = 33.5 네트워크 전송: 1 row (Actor + JSON array) 애플리케이션 처리: JSON 역직렬화 결론: WHERE 조건이 있으면 multiset이 압도적으로 유리 (405 vs 33.5) FetchGroups는 Actor를 나중에 필터링하고 multiset은 actor를 먼저 필터링해서 1개에 대한 film을 여러개 가져와서 현재 데이터에서는 더 유리한데 일반적인 사용법이 궁금합니다
안녕하세요 딩코딩코 선생님. 다름이 아니라 궁금한 점이 있어 Q&A에다가 글을 올립니다. 6주차 까지 진행을 하며 현재 실제 업무를 하며 해결한 내역들에 대해 다시 한번 정리 해 보는 시간을 가지려고 합니다. 이러한 과정을 수행했을 때 혹시 피드백을 해 주실 수 있는지 궁금합니다.
초기 클러스터 생성시 CoreDNS 와 kube-proxy 추가가 안되는데 생성할때 제가 놓친부분이 있나하여 문의드립니다. 쿠버네티스 버전은 현재 1.34인데 강의와 같이 1.32로 낮춰서 생성했는데 어디서 잘못된건가 싶습니다. POD에서 Service로 통신 확인하는 과정에서 오류가 발생하여 gpt에 물어보니 해당 기능이 생성되지 않아서 나타나는 문제라고 하는데~ 현재는 노드그룹과 클러스터는 삭제해놓고 다시 생성하려고 하는데 어떤것을 확인하면서 생성하면 좋을까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 해당 영상 11분30초에 클라이언트 넘버를 지우는게 이해가 잘안가는데요. 나중에 타겟인 Attrition_Flag는 지우고 비교하는 이유를 알겠지만 CLIENTNUM 얘는 왜 드랍하나요? 그냥 암기로 CLIENTNUM,Attrition_Flag 788544108,0.633 719356008,0.123 712142733,0.355 이런 제출형식에서 타켓이 아닌 그 외에 것은 학습에 도움이 안되니 드랍한다. 라고 외워도 될까요?
안녕하세요. 다른질문에도 동일하게 있는데 답변이 조금 모호한거같아서 다시 질문 드립니다. 강의 자료의 해당 강의 부분을 보면 org.springframework.data .repository.Repository 를 구현한 클래스는 스캔 대상 라고 되어있는데, 제가 이해한 바로는 이 부분이 org.springframework.data .jpa.repository.JpaRepository 를 상속받은 인터페이스 는 스캔 대상 이렇게 수정되어야 할 것 같은데 맞을까요..??
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 1회문제에서는 오브젝트인 컬럼들만 모아서 드랍하는건 이해가 됐는데 강의에서 그냥 데이터가 많다고 해당 열을 삭제하는건가요? 삭제하는이유가 명확하게 제가 이해를 못해서 알려주시면 감사하겠습니다 cols = ['name', 'host_name', 'last_review', 'host_id'] print(train.shape) train = train.drop(cols, axis=1) test = test.drop(cols, axis=1) print(train.shape)