학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요? 실기 체험환경에서 신뢰구간 구할때 결과가 이렇게 나오면 신뢰구간을 보려면 어떻게 하나요? 3,4번째 컬럼을 따로 지정해서 봐야하나요??
프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)
연습 삼아 이것 저것 해보다 궁금한 점이 있어 질문 드립니다. 위 와 같이 코딩을 했을 때, 다음과 같이 출력이 됩니다. print(ex1)으로 했을 경우에는 리스트 형태로 출력이 되는데 반해, print(ex1.append(i * 10) 형태일 때는 None으로 출력이 되는걸까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 자바 고급편 수준이 저한테 높아서, 느린 배속으로 반복해서 내용을 겨우 이해는 했는데 강의 내용이 자기 것으로 되었다는 느낌이 없고 교안이나 영상 없이는 이론 설명이나 예제 코드 작성이 잘 안 됩니다. 강의 내용을 자기 것으로 체화하신 분들은 어떻게 복습하셨나요?
안녕하세요. 저도 개인 프로젝트로 이커머스를 만들면서, 결제와 같은 외부 API를 호출하는 부분에 대해서 많은 고민을 하게 되는 것 같습니다. 가령, 결제 승인을 위해 PG API를 호출한 이후 결제 내역을 DB에 저장한다던가.. 혹은 결제 처리 이후 진행되어야 할 비즈니스 로직(배송 생성, 재고 차감 등..)을 진행해야한다던가.. 하지만 외부 API를 호출한다는 것은 사실 비즈니스 로직의 트랜잭션과 묶일 수 없다는 것이 참 어려운 것 같습니다. PG API 호출에 성공했지만, 이후 비즈니스 로직이 실패된다면 결제 강의 - 코드느끼기 에서 말씀해주신 것 처럼, 사용자의 돈은 빠져나갔지만, 배송 처리가 되지 않거나 그런 일이 발생할 수 있을 것 같아요. 혹은 PG API 호출 시에, 타임 아웃이 발생해서 실패했다고 판단했지만, 알고보니 PG 서버 상으로는 승인이 정상적으로 처리 된 경우도 있을 것 같아요. 이처럼 외부 API 연동 시에 데이터 정합성을 고려하는 것이 엄청 어려운 것 같습니다. 그래서 저는 결제처럼 사용자의 돈을 처리해야하는 경우 세부적인 방어 로직이 필요할 것 같다는 생각을 합니다. 그래서 고민을 하면서, 이것저것 찾아보다가 사용하게 된 패턴이 외부 API를 요청하기 전에, state를 추가해서 관리하자 라는 것이었는데요. 예를 들어 결제로직의 경우 결제 검증을 처리하고 승인 API를 호출하기 전에 Payment의 State를 PENDING_PG_REQUEST(예시) 로 변경한 뒤, PG API를 호출하는 흐름입니다. 만약 PG API 호출에 정상적으로 성공했지만, 결제 후처리 비즈니스 로직에 실패했더라도, 스케줄러 같은 걸 통해 특정 시간 동안 계속해서 PENDING_PG_REQUEST인 결제 건 이 있다면, 이것은 적어도 PG API를 호출하고 나서, 무언가 잘못되었다는 것이니까, 데이터 정합성을 맞춰주기 위해 한번 더 직접 API를 호출하고 나서 비즈니스 로직을 추가적으로 실행시켜주는 그런 작업을 진행해주면 될 것 같아요. 이런 패턴이 어떻게 보면 강의 코드 예제에서 정산을 처리하는 SettlementService의 transfer 메서드와 비슷하다고 생각합니다. Settlement Entity에 Ready인 데이터를 결국 주기적으로 처리하면서, 언젠가는 정산 처리를 진행하게 되니까요! 근데 문득 제가 사용하는 방식, 그리고 transfer 메서드의 방식은 특정 조건이 충족해야한다는 점이 있는 것 같아요. 사용하는 외부 API가 멱등성 을 제공해야하고, 데이터 정합성을 처리하기 위해 돌아가는 스케줄러,배치 또한 자체적으로 중복처리 방지 를 방지해야 한다는 것을요... 이렇게 생각하다보니 끝도 없이 딥해지고 복잡해지는 것 같아서, 문득 다시 결제 부분 강의를 보다보니, 수기 처리 방식도 아주 잠깐 언급하셨더라구요. 문제가 발생했을 때 로그를 남겨놔서, 데이터를 비교 후 데이터 정합성을 맞춘다. 근데 돈과 관련된 부분은 그 즉시, 성공 실패에 대한 처리를 해줘야할 것 같기도 하고 이 부분만큼은 과하게 방어 로직을 작성하는 게 맞을까?라는 생각이 들게 되는 것 같아요. 그리고 만약 외부 API가 멱등성을 제공하지 않으면 어떻게 처리해야하지?라는 생각이 들기도 하고요. 재민님께서는, 이런 외부 API 연동과 데이터 정합성을 고려해야할 때 방어 로직을 깊게 생각하시는지 궁금해서 질문을 하게 되었습니다. 근데 사실 돈과 관련된 부분은 아무리 생각해도 많은 방어 로직을 필요로 하는 것은 당연한 것 같긴한데, 어느 정도로 처리를 해줘야할 지 모르겠네요. 하하.. 최소한의 방어로직, 그리고 예외, 실패 시 로깅 처리로 모든 가능성을 추적해야 하는 게 효율적일까요?? 감사합니다!
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요, 이번 11/29 빅분기 시험을 사정상 보기 어려워져서 학습기간 멈춤를 신청하고 싶은데 최대 몇개월 학습 중단이 가능할까요? 내년 3월이후 다시 준비해서 시험을 치뤄야 될 것 같습니다.
예시만 봤을 때는 continue와 pass의 차이점이 명확히 구분되지 않는 것 같아 질문드립니다. 1. continue: if문에 해당하여 continue를 만나면 (print가 있다는 가정하에) 출력하지 않고 다음 반복으로 넘어감 pass: if문에 해당하여 pass를 만나면 그 부분만 지나가고 (print가 있다는 가정하에) 밑에 출력은 실행함 저는 이렇게 이해하고 있는데 오류가 있을까요? 2. pass 예제2번에 else 없이 print(i)만 있었더라면 3도 출력이 되는건가요?
강의 내에서 dependencies 하고 있는 spring-security-oauth2-authorization-server 랑 아래 org.springframework.boot:spring-boot-starter-oauth2-authorization-server 과는 다른 라이브러리인가요? 프로젝트 생성하면서 oauth2 authorization 서버를 선택 후에 build.gradle를 확인했는데 강의에서 나온 것과 상이하여 질문드립니다.
저는 False 가 나옵니다. 찾아보니 False가 정상이고 True는 캐싱으로 설명이 나옵니다. ( 256보다 큰 숫자 이므로 작은 정수 캐싱 범위에 해당하지 않음) 강사님 설명 부탁합니다. m = 800 n = 800 print(id(m)) print(id(n)) print(id(m) == id(n))
@Version만 붙여도 자동으로 낙관적 락을 적용 시켜주는 걸로 알고 있습니다. 근데 강의에서는 @Lock(LockModeType.OPTIMISTIC) 을 이용해서 조회 시점부터 락을 거는 이유가 있을까요? @Lock(LockModeType.OPTIMISTIC) 를 제거하고 동시성 테스트 했을 떄도 정상적으로 돌아가긴 합니다. 어떤 차이가 있을까요
안녕하세요 토비님! 애그리거트를 사용할 때 질문 사항이 있습니다. 예) A도메인 B도메인이 있다 A는 애그리거트 루트이고 B는 A의 부속 엔티티이다.A와 B는 일대다, 다대일의 양방향 의존성을 가진다.B는 A를 통해서만 조작될 수 있다.이 때 B를 생성하거나 업데이트 할 때 B의 repository는 어디에 존재해야 하는가? @Entity public class A { @OneToMany(mappedBy = "media", cascade = CascadeType.ALL, orphanRemoval = true) private List<B> bs = new ArrayList<>(); public void updateNumber(long n){ this.bs.stream().forEach(b -> b.update(n); } } @Entity public class B { @ManyToOne(fetch = FetchType.LAZY) private A a; private long number; public void update(long n){ this.number = n; } } 이렇게 되어 있다고 할 때 변경 가능성을 생각할 때(물론 엔티티에서 이미 jpa에 기술을 사용하고 있긴하지만) B의 repository를 따로 가지는게 맞나요? 만약 따로 가진다면 B의 repository가 A repository에서 의존하여 처리 되어야 하나요? jpa에 완전 종속적으로 사용하면 B가 따로 repository를 가질 필요 없는데 순수함을 유지하지 하려 하니 이 부분에서 고민이 되네요. 아니면 이런 고민 자체가 잘못된걸까요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요 예 [질문 내용] 안녕하세요 자바 래퍼클래스 강의를 듣다가 궁금해서 질문 남깁니다. 래퍼클래스 생성 (=박싱)하고나서 변수를 출력을 해보면 생성자에 주었던 값이 출력되게 되는데요. 래퍼 클래스는 기본형을 객체화 시킨것이라고 알고 있고, 그렇기 때문에 변수에는 객체기 때문에 참조값이 들어가야한다고 알고있는데 왜 참조값이 아닌, 객체에 들어있는 멤머 변수 값이 출력이될까요?ㅠ
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 캐글에 있는 문제들 코랩에서 풀어보려고하는데 데이터를 어떻게 불러와야하는지 모르겠어요ㅜ 깃허브 URL이나 이런건 없나요? import pandas as pd import numpy as np df = pd.read_csv('../input/titanic/train.csv')
프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)
x = ["grapes", "mango", "orange", "peach", "apple", "lime", "banana", "cherry", "tomato", "kiwi", "blueberry", "watermelon"] 라고 되어 있을때, for문과 if 문을 사용하여 apple, kiwi를 찾고 대문자로 변경하는 수업을 듣다가 궁금한 점이 생겨 질문을 드립니다. 컴퓨터에서 위와 같이 리스트된 x가 있을때, for문과 if 문을 통해 특정 단어 (apple, kiwi)를 찾게 명령하면, 컴퓨터는 apple, kiwi 라는 단어의 스펠링 모양이 일치하는지 아닌지를 가지고 찾는건가요? 아니면 x 내부에 각 각의 요소들에 고유한 값을 부여하여, 일치하는 값을 찾는 건가요? 즉, x 안에 apple = 10322, kiwi = 10323으로 값이 이미 부여되어 있고, 사용자가 apple 이라는 단어를 찾는 명령어를 코딩하는 경우 컴퓨터가 알아서 사용자가 입력한 apple을 10322로 변환후 x 내부에서 찾는지 궁금합니다. 그리고 만약 그렇다면, 이미 입력된 apple과 사용자가 새롭게 입력한 apple 사이의 고유값이 왜 같아지는지 이유도 궁금합니다. 즉, 누군가 apple을 입력해 놨을 때 10322로 지정되지만 새로운 사용자가 apple을 입력했을땐 10932로 될 수 있지 않을까 해서입니다. 누군가 apple 이라는 단어의 고유값을 지정했으면 컴퓨터가 눈이 달린것도 아닌데 무엇을 보고 apple의 고유값을 찾아내는지 궁금하네요. 기초과학 실험하는 연구자 이다보니 컴퓨터의 작동 원리가 이해가 안돼서 질문을 드립니다.
안녕하세요. 제목과 같이 독립성검정의 경우 chi2_contingency 함수를 사용하는데 공부하다 보니 chi2_contingency(table, correction = True) 이렇게 되어있는 글을 보게 되어서 검색하여보니 correction 옵션은 자유도와 관련된 부분이라고 해서 자유도가 1인 경우에는 True이고 , True가 기본값이긴 하지만 1보다 클 경우에는 False를 사용해야 한다고 하는데 예시 문제를 살펴보면 ddof = 1인 경우에만 있었는데 혹시 실기에서도 해당 부분을 고려해야 할까요 ? 감사합니다 :)