안녕하세요 my-ordser-sink-connect를 만들고 연계 테스트도 잘 진행하였습니다. 테스트 진행시 데이터 설정값오류로 pk Exception이 발생하였는데 이 이후 부터 데이터 입력도 되지 않고 재기동하여도 topic를 참조하여 pk 에러가 나타나고 신규 데이터를 받지 못하고 있습니다. my-order-sink_connect 장애 발생시 예외 처리나 장에 처리 가이드가 따로 있을까요 감사합니다.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 문제 지문에서알려주는 제출 CSV 파일 형식은 0, 1, 1, 0 ... 이런 predict 결과값인데 0.11385 와 같이 predict_proba 확률값으로 결과를 제출해도 괜찮은 이유가 궁금합니다! roc_auc가 predict_proba 로 해야한다면 predict_proba로 모형 성능테스트를 하고 제출은 predict로 해야하는 것이 아닌가... 라는 의문이 들어서 문의드립니다
다른 분들은 저와 같은 경우 없으신가요?ㅠㅠ 아래와 같이 gradle 파일에 디펜던시 추가해줬습니다. 그런데 implementation 'org.springframework.kafka:spring-kafka' @EnableKafka 어노테이션을 인식하지 못하네요ㅠㅠ 구글링해도 kafka 어노테이션 관련 글은 없어서 질문드립니다.ㅠㅠ <코드내용> <오류 정보 >
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 간단한 내용이지만 조금 고민이 있어서 질문드립니다. 요청을 통해서 받은 데이터를 통해서나 로직상에서 연관관계에 필요한 Entity의 id값을 알고 있는 경우 필요한 Entity를 DB에서 조회하는 과정 없이 id값만 초기화된 Entity를 생성하여 주입하는 방식이 가능한 것으로 알고 있습니다. 이 때, 그렇게 주입된 Entity는 persist된 상태가 아니라는 점인데요. ( cascade 옵션이 적용 안 되었다는 가정 ) 이런 경우에 두 가지 경우의 수를 고려하였습니다. 첫 번째는 연관관계 Entity가 연관관계 설정 외에는 사용될 일이 없는 로직의 경우이고 두 번째는 연관관계에 필요한 Entity가 이후에도 여러 로직에서 사용되는 경우입니다. 두 번째의 경우에는 사실 고민할 것 없이 ID를 이용해 Entity를 생성하는 것이 아닌 SELECT를 통해서 Entity를 조회하여 사용하는 것이 좋은 방법이고 EntityGraph를 맞추는 면에서도 당연히 해주어야 하는 것으로 사료됩니다. 하지만 첫 번째의 경우 굳이 Entity를 ID값을 통해 조회하는 과정이 필요한 지에 대한 의문입니다. 저런 단순한 로직의 경우 굳이 DB와의 정합성을 위해 조회 및 연관관계 편의메소드 등을 이용해서 EntityGraph를 맞춰줄 필요가 있나 싶었습니다. 이런 경우에서 실제 현업에서는 어떤식으로 처리하는 지 궁금합니다. 저렇게 각 상황에 따라 효율을 따져서 다르게 처리하는 지 아니면 ID를 통해 데이터를 조회하는 것은 크게 성능상 문제가 되지 않으니 불필요하더라도 로직의 통일성이나 혹시 모를 사이드 이펙트를 대비해서 조회한 뒤 연관관계 편의 메소드를 통해 EntityGraph까지 맞춰 주는 지 궁금합니다..! 저는 불필요하다고 생각하여 굳이 Entity그래프를 맞춰줄 필요가 없는 경우는 그런 과정을 생략하며 프로젝트를 하고 있었는데, 완성하고 보니 EntityGraph를 맞춰 주는 로직이 단 하나도 없는 걸 알게 되었습니다. 아무래도 복잡한 비즈니스 로직이 없어서 그럴 수도 있겠다는 생각은 들었지만 너무 심한 것 같아 제가 JPA를 제대로 쓰고 있는 게 맞나 싶어 질문드립니다..ㅠㅠ
Postgresql DB 사용시 auto_increment 옵션이 업어서 아래와 같이 작성하여 order등록 테스트 진행시 id 값이 null 이어서 에러가 나타납니다. create table orders ( id int primary key, user_id varchar(50) not null, product_id varchar(20) not null, order_id varchar(50) not null, qty int default 0, unit_price int default 0, total_price int default 0, created_at datetime default now() ) 테이블을 직접 생성하지 않고 소스의 jpa의 create 옵션을 사용하여 orders 테이블을 생성하고 상품을 등록하면 id 값이 자동으로 등록이 되는되 내부적으로 id값이 맵핑되는 로직이 따로 존재 하는 건가요? 테이블을 수동으로 생성 후 id 값을 맵핑시킬수 있는 로직이 따론 존재 하는 걸까요? @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id;
Cookie 값을 삭제 하며 여러 동작을 해보던 도중, 로그인을 하기 전부터 JSSESSIONID 값이 cookie 에 들어가 있는 것을 확인하였습니다. 처음에는 오류인가 싶어 값을 삭제하고 로그인하였더니, 로그인이 동작하지 않고 그냥 페이지가 reload 된 다음 임의의 JSSESSIONID 값을 가져왔습니다. 왜 reload 할 때마다 JSSESSIONID 값을 가져오는 걸까요? 그리고 왜 JSSESSIONID 값 없이는 로그인 동작 자체가 안 되는 걸까요?
안녕하세요 강의중 Kafka-connect-web에 대해 말씀하셔서 실습차 아래와 같은 구성으로 세팅후 확인중 에러가 있어 문의드립니다. 환경설정 zookeeper, Kafka, Kafka Connect 서버 : 10.0.3.16, 10.0.3.17, 10.0.3.18 Kafka-connect-web 서버 : 10.0.1.9 Kafka-connect-web은 위의 서버에 도커 컨테이너로 생성하였고 생성명령어는 아래와 같이 했습니다. docker run -d -p 8080:8080 --name kafka-connect-web -e "VUE_APP_CONNECT_SERVERS= http://10.0.3.16:8083,http://10.0.3.17:8083,http://10.0.3.18:8083 " officialkakao/kafka-connect-web:latest 문제 내용 container 안에서 curl 10.0.3.16:8083/connector-plugins로 확인시 값을 받아와서 네트워크 문제는 없는것 같은데 Kafka-connect-web에서 Connector class 값을 받을려고 실행하는 axios가 timeout이 나고, container 안에서 tcpdump를 떠도 패킷이 보이지 않습니다. Kafka-connect-web에 추가적인 설정이 필요한지 문의드립니다.
안녕하세요 강사님 강의를 보고 토이 프로젝트에서 주문 시 재고 감소 및 메뉴 주문량 증가 로직에서 낙관적락 기법을 적용해 보았는데요, 강의에서 해주신 내용 그대로 파사드 패턴 까지 적용을 해보면서 시도했는데 무한 루프가 돌았습니다. hikariCP pool을 40으로 설정해주니 그제서야 해결이 되었는데요, 강의에선 네임드락에서 커넥션풀을 지정해주었는데요 저는 낙관적락인데도 해당 설정을 해서 해결된 이유가 있을까요? @Service @RequiredArgsConstructor public class OrderService { @Transactional public Order orderWithOptimisticLock(Long memberId, LocalDateTime now) { Cart cart = cartRepository.findByMember(memberId); List<CartItem> cartItems = cart.getCartItems(); cartItems.stream() .map(CartItem::getMenu) .forEach(menu -> { decreaseStockWithOptimisticLock(menu.getId(), 1); increaseMenuOrderCountWithOptimisticLock(menu.getId(), 1); }); Money money = calculator.calculateMenus(cart.getMember(), cart.convertToMenus()); Order order = Order.createOrder(cart, money, now); return orderRepository.save(order); } public void decreaseStockWithOptimisticLock(Long menuId, int quantity) { Menu menu = menuRepository.findByIdForOptimisticLock(menuId); menu.decrease(quantity); } public void increaseMenuOrderCountWithOptimisticLock(Long menuId, int quantity) { Menu menu = menuRepository.findByIdForOptimisticLock(menuId); menu.increaseOrderCount(quantity); } } ``` @Component @RequiredArgsConstructor public class OptimisticLockStockFacade { private final OrderService orderService; public Order order(Long memberId, LocalDateTime localDateTime) throws InterruptedException { while (true) { try { return orderService.orderWithOptimisticLock(memberId, localDateTime); } catch (Exception e) { Thread.sleep(50); } } } } ``` public interface JpaMenuRepository extends JpaRepository<Menu, Long> { @NotNull @Lock(LockModeType.OPTIMISTIC) @Query("select m from Menu m where m.id = :id") Optional<Menu> findByIdForOptimisticLock(@NotNull @Param("id") Long id); }
안녕하세요. 강의 잘 듣고 있습니다! 컨슈머 랙 모니터링 부분 강의를 듣고 있는데 의문이 생겨서 질문 드립니다. 컨슈머 랙을 모니터링하다가 사용량이 많아지게 되면 데이터 처리를 위해 컨슈머 개수와 파티션 개수를 늘려 병렬 처리량을 늘리는 방법이 좋다라고 말씀 하셨는데요. 이전 강의에서는 파티션 수를 늘리면 다시 줄일 수 없기 때문에 처음에 잘 선정해야 한다라고 들어서 이 부분이 약간 헷갈리는 거 같습니다. 많은 데이터량을 처리하려면 파티션 수를 늘리는 방법말고는 없을 거 같은데 설날같이 일시적인 트래픽이 증가하는 날을 위해 평소에도 과도한 파티션 수로 운영하는게 더 좋을까라는 의문도 같이 생기네요. 혹시 현업에서는 어떠한 방식으로 처리하고 있으신가요? 좋은 강의 감사합니다.
인코딩을 할때 선생님이 어쩔때는 원핫인코딩을 하시고 어쩔때는 레이블인코딩을 하시던데 그 인코딩을 정하시는 기준을 잘 모르겠습니다! 인코딩을 정하실때 그 경우에 대해서 자세히 알려주시면 감사하겠습니다 그리고 인코딩을 할때 컬럼도 몇개 정하셔서 하시던데 그 컬럼고르는 기준도 잘 모르겠습니다 그 기준에 대해서도 선택하는 방법을 알려주시면 감사하겠습니다 ㅠㅠ
안녕하세요. 수업 잘 듣고 있습니다! 컨슈머 관련해서 궁금한 점이 생겨 질문드립니다. 제가 지금까지 이해한 내용으로는 하나의 토픽에 대해서 이벤트를 발생하면 key 값을 통해 파티션으로 분배되는 걸로 이해하고 있습니다. 그리고 하나의 토픽에 대해서 여러 컨슈머 그룹이 운영될 수 있고 별도 offset으로 관리되어 각 컨슈머 그룹에서는 이벤트에 대해서 원하는 용도로 처리될 수 있다고 하셨습니다. 이부분에서 궁금한 점이 생겼는데요. 하나의 이벤트에 대해서는 한개의 파티션에 하나의 레코드만 생성되는데, 여러 컨슈머 그룹에서 해당 이벤트를 다 가져가는 경우는 발생할 수 없는 거 같아서 헷갈리는 거 같습니다. 이벤트 -> 토픽에서 특정 파티션 선정 -> 파티션에 레코드 등록 -> 컨슈머 이런 형태로 진행되면 한개의 이벤트는 어떻게 여러 컨슈머 그룹에서 독립적으로 처리할 수 있지라는 의문이 생기게 되었습니다. 혹시 하나의 이벤트에 대해서 레코드가 여러개 생성될 수 있는 걸까요?? 아니면 하나의 컨슈머 그룹에서는 하나의 파티션만 할당될 수 잇지만 여러 컨슈머 그룹인 경우에는 하나의 파티션에 대해서 그룹 당 하나의 컨슈머가 할당이 가능한것일까요??
보통 작업형2에서는 예측값을 물어보는 문제가 나오던데요. 문제가 나올때 어느문제는 분류모델을, 어느문제는 회귀모델을 사용해야하는지 궁금합니다. 지금까지 강의+기출문제를 보면서는 분류/회귀를 결정하는 부분이 평가 모델을 통해 진행된다는 느낌을 받았는데요. 1) roc_auc_score, accuracy_score 이 평가모델로 쓰일 경우, 분류형 모델 사용(Classifier) 2) rmse, mean_squared_error 이 평가모델로 쓰일 경우, 회귀모델 사용(Regressor) 이렇게 생각하면서 작업형2를 접근하는게 맞는지 궁금합니다.
현재 maven이 아닌 gradle로 빌드 환경을 구성하고 있습니다. m2/repository/org 폴더는 존재하지만 그 안에 mariaDB가 없습니다. build.gradle에서 mariadb-client를 추가해준다고 해서 제 PC 환경에 설치되는 것이 아닌것 같은데 어떻게 해야 할까요..