이전 단일 표본 검정에서 정규성 검증을 진행할 때 willcoxon 코드를 알려주실 때stats.wilcoxon(df[’무게‘]-120, alternative=’less’)와 같이 알려주셨는데 이번 대응표본 검정에서 정규성 검증을 진행할 때 willcoxon는 stats.wilcoxon(df[‘after’] ,df[‘before’], alternative = ‘greater’)와 같이 알려주셨습니다.또한 강의에서도 after와 before의 값을 빼서 넣은 값인 df['diff']를 그대로 사용해도 된다고 말씀하셨습니다.그래서 아래 사진과 같이 임의로 df[‘after’] - df[‘before’]를 넣어서 실행해봤는데 결과값이 똑같이 나왔습니다. 그럼 단일 표본 검정에서 알려주신대로 df[’무게‘]-120와 같이 df[‘after’] - df[‘before’]로 생각하고 넣어줘도 무방한 것인가요?
centos 6을 다운 받을 수 없어 centos7을 다운 받아 진행하려고 합니다. 지금 진행하다가 막힌 부분은 server01과 server02를 virtual Machine에서 centos7 파일 적용이 안 됩니다.\ 이 다음에 아무것도 안 뜨고 검은색 화면만 뜹니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 버추얼머신 깔 때 확장팩 필수인가요?
ANOVA를 배울때는 ols 사용할때 독립변수 앞에 C()를 붙이는것이 분산분석은 범주형 분석이기에 앞에 C를 붙인다고 생각했는데요~ 로지스틱 회귀분석은 독립변수가 수치형, 종속변수가 이산/명목형으로 알고있는데.. Gender 앞에 C를 붙이는 이유가 있을가요? 오히려 Gender은 수치로 바꿔줘야할것 같은데.. 혹시 C 의 의미가 수치형->범주형, 범주형->수치형으로 양쪽 모두 바꿔주는 역할인건지 궁금합니다.
인터넷 보면서 자바 환경 변수 설정을 해보았는데 혹시 제대로 된 것이 맞을까요..? ㅠㅠ 자바 환경 변수 부터 쉽지 않네요 -- 자바 설치 sudo apt-get install openjdk-8-jdk -- 자바 버전 확인 tghong@redhat7-1:~$ java -version openjdk version "1.8.0_382" -- 설치 경로 확인? tghong@redhat7-1:~$ readlink -f $(which java) /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java sudo vi /etc/profile export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin source /etc/profile -- 확인 tghong@redhat7-1:~$ echo $JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64 tghong@redhat7-1:~$ echo $PATH | grep java /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin
안녕하세요 강사님! 먼저 인프런에서 하둡을 공부 할 수 있도록 강의 내주셔서 너무 감사합니다! jar 파일 압축이 풀리지 않아 방법을 찾던 중 sudo apt-get install openjdk-8-jdk* 으로 설치가 잘 되었습니다 혹시 이 방법으로 해도 문제가 없을까요..? 자바를 해본 적이 없는 상황에서 자바 설치 방법이? 강의와 다른데 그 이후 환경 변수 셋팅 구축 방법 및 하둡 설치는 달라지는 것이 없나요? 클라우드 환경이라 터미널에서 wget 으로 다운 받았는데 gzip 파일이 아니라는 에러가 나오는 이유가 무엇일까요.. 혹시.. wget 으로 다운 받을 수 있는 자바 1.8버전을 영상 아래 코멘트 한줄만 남겨 주실 수 있으신가요..ㅠ
섹션7] 과제2번 질문있습니다. users1 = [(0, "ALEX"), (1, "BERT"), (2, "CURT"), (3, "DONT")] subs1 = [(0, "Writing"), (0, "Gym"), (1, "Swimming")] userRDD = sc.parallelize(users1) subsRDD = sc.parallelize(subs1) mergedRDD = userRDD.rightOuterJoin(subsRDD) mergedRDD.map(lambda value : value[1][0] + " loves " + value[1][1]) 조인되어서 collect 되었을 때 데이터 구조가 key (leftvalue, rightvalue) 이렇게 반복구조가 되는 것 같은데 답이 ['ALEX loves Writing'] 이것만 나오는 것이 아니라 ['ALEX loves Writing', 'ALEX loves Gym', 'BERT loves Swimming'] 이렇게 나오는 이유를 모르겠습니다. 좋은 강의 잘 듣고 있습니다. 감사합니다. 아래와 같은 양식으로 질문을 남겨주세요 🙂 수업을 들으시면 이해하기 어려운 부분이 있으면 상세히 질문을 남겨주세요. 서로 Tone and Manner 를 지키며, 즐거운 수업 시간을 만들어보아요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 문제 지문에서알려주는 제출 CSV 파일 형식은 0, 1, 1, 0 ... 이런 predict 결과값인데 0.11385 와 같이 predict_proba 확률값으로 결과를 제출해도 괜찮은 이유가 궁금합니다! roc_auc가 predict_proba 로 해야한다면 predict_proba로 모형 성능테스트를 하고 제출은 predict로 해야하는 것이 아닌가... 라는 의문이 들어서 문의드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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를 제대로 쓰고 있는 게 맞나 싶어 질문드립니다..ㅠㅠ
Cookie 값을 삭제 하며 여러 동작을 해보던 도중, 로그인을 하기 전부터 JSSESSIONID 값이 cookie 에 들어가 있는 것을 확인하였습니다. 처음에는 오류인가 싶어 값을 삭제하고 로그인하였더니, 로그인이 동작하지 않고 그냥 페이지가 reload 된 다음 임의의 JSSESSIONID 값을 가져왔습니다. 왜 reload 할 때마다 JSSESSIONID 값을 가져오는 걸까요? 그리고 왜 JSSESSIONID 값 없이는 로그인 동작 자체가 안 되는 걸까요?
안녕하세요 빌리님, 최근 강의 수강을 시작한 수강생입니다. 다름이 아니라, 블로그에 강의 내용을 정리하며 내용을 리마인드 하고 싶은데요, 강의 내용에 들어가 있는 슬라이드를 일부 사용하여 게시글을 작성해도 될 지 문의 드리고 싶습니다. 출처는 당연히 기재할 예정입니다! 혹시 원치 않으신다면 비공개글로 작성하도록 하겠습니다.
안녕하세요 강사님 강의를 보고 토이 프로젝트에서 주문 시 재고 감소 및 메뉴 주문량 증가 로직에서 낙관적락 기법을 적용해 보았는데요, 강의에서 해주신 내용 그대로 파사드 패턴 까지 적용을 해보면서 시도했는데 무한 루프가 돌았습니다. 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); }
안녕하세요. 강사님의 강의를 듣는 도중, 질문의 내용과 같이, Zookeper의 Split Brain 방식과 QJM의 Split Brain 방식의 차이가 헷갈려서, 질문 드리게 되었습니다. 제가 이해한 바는 다음과 같습니다.먼저, Network File System의 문제점은 네트워크 문제 발생시에 동기화 문제가 발생하는 Split Brain Issue가 발생합니다. 이는, 두개의 Active NameNode가 생기기 때문에, 데이터의 corruption이 발생하기 때문에, 저희는 Quorum Journal Manager방식을 채택한 것입니다. 이때, QJM의 경우에도 Split Brain 이슈가 발생이 가능하나, 자체적으로 해결할 수 있다고 했습니다. 해당 방법을 찾아보니, 충분한 수의 Journal Node가 살아있다면, 데이터의 일관성을 유지하기 위해 다수결 원칙을 적용하여 정상적인 Jouranl Node들 간의 동의를 얻게 된다는 점입니다. 저는 해당 방법을 찾아보며, zookeper와 같은 Consoliation Algorithms 방식을 사용하고 있구나... 생각이 들었습니다. 그러니까 Split Brain 이슈 중 하나인 데이터 충돌이 발생했을 때, 맞지 않는 데이터를 지우고, 다수가 가지고 있는 데이터로 통일한다는 것인가..? 라는 생각이 들었습니다. 그러다가, Final Wrap UP 수업에서, zookeper의 경우 NN을 모니터링하며, 장애발생시 (이를 테면, Split Brain과 같은 이슈), StandBy NameNode를 Active NameNode로 전환하며, 여러 개의 Standby NN이 있을 경우 Leader 투표 기능을 통해, Active NameNode를 선출하는 기능이라고 정리하였습니다. Q1. 시간 순으로 어떻게 되는지가 헷갈립니다. 주키퍼를 통해 상시 모니터링을 하다가, 해당 이슈가 발생할 시, 재빠르게 Active Node로 전환이 되고 나서, 해당 Split Brain 이슈가 발생하며 데이터 충돌이 발생했던 부분을 QJM에서 다수결 원칙을 통해, 올바르지 않은 Journal Node에 있는 데이터는 삭제하며, 데이터의 일관성을 유지한다는 것일까요? Q2. 만약에 Active Node로 전환이 이루어졌는데도, 해당 문제가 지속적으로 해결이 되지 못해서, QJM에서 다수결 원칙을 통해 해결을 못하는 상황이 발생하면, 심각한 문제상황이라고 볼 수 있는건가요? 잘못 설계해서, 삭제된 데이터는 복구를 할 수 없는건가요? Q3. Network File System의 경우 hdfs-site.xml에 fencing을 추가함으로써, Split Brain issue를 해결할 수 있다고 공부할 수 있었습니다. 그런데, 상기 방법이 있는데도 불구하고, QJM 방식을 사용하는 이유는, 일정정도 해당 문제가 발생할 시, 데이터의 정합성을 보장해준다는 부분 때문에 차용하는 것일까요?