안녕하세요 강사님 다름아니라 2과목 중 데이터 전처리에서 이상치 관련 질문있습니다. 제가 강의를 듣었을 때는 이상치를 데이터의 현실적 한계성으로 판단하신거로 이해하였습니다. ex( age 컬럼은 음수가 될 수 없다.) 제가 예전에 학교에서는 이상치를 quantile을 통해 IQR값을 추출하고 그 추출한 값을 바탕으로 이상치를 판단했었던 기억이 있습니다. 그렇기에 빅데이터분석기사에서 이상치 값을 판단할 때, IQR로 이상치를 판단 또한 하는게 맞을까요? 아니면 이 과정까지는 필요가 없을까요?
설명중에 @Version 필드를 낙관적 락에서 이용할 수 있어가지고~ 라고 하셧는데 실제 돌려보니 비관적락 2에도 DB 업데이트가 되었습니다. AI 에게 물어보니 @Version 어노테이션이 붙은 필드는 JPA 사용시 @Lock 어노테이션 사용여부 상관없이 업데이트가 된다고 합니다. 혹 다른 qna 에도 같은 내용이 있는지 확인은 모두 안해 보았습니다. ======================== 응, 같은 엔터티 row에 실제 UPDATE 가 나가면 @Version 필드는 증가한다고 보면 돼. 락 방식이 낙관적이든 비관적이든 핵심은 이거야. @Version private Long version; 이 필드가 있는 엔터티가 dirty checking으로 변경 감지 되고, flush/commit 때 UPDATE 대상이 되면 JPA/Hibernate가 version 값을 같이 갱신해. ========================
안녕하세요. 우선 좋은 강의 제작해주신 토비님께 항상 감사하고 있어요. 이제 배운지 1년된 왕초보입니당.. 혼자 배워보면서 개인 프로젝트를 만들고 있는데 JPA를 사용하고 있어요. 제가 궁금한 것이... N+1 관련한 문제입니다. 아 일단 프로젝트 주제는 복식부기 가계부에요. @Entity ... public class Journal extends BaseEntity { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "ledger_id", nullable = false, updatable = false) @OnDelete(action = OnDeleteAction.CASCADE) private Ledger ledger; ... @OneToMany(mappedBy = "journal", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true) private List<EntryLine> entries = new ArrayList<>(2); ... public EntryLine getEntryLine(EntrySide side) { switch (side) { case CREDIT : this.entries.stream().filter(line -> line.isCredit()).findFirst() .orElseThrow(...); case DEBIT : this.entries.stream().filter(line -> line.isDebit()).findFirst() .orElseThrow(...); default : throw new ... } } ... // Service에서 저장되기 전에 호출 public void validateSavable() { ... validateJournalSave(); } private void validateJournalSave() { AccountType debit = getEntryLine(EntrySide.DEBIT).getAccountType(); AccountType credit = getEntryLine(EntrySide.CREDIT).getAccountType(); if(!this.transactionType.isValidPlacement(debit, credit)) { throw new ... } } } Journal Class에서 EntryLine List에 접근하고 있어요. 그리고 EntryLine Class는 이렇게 생겼어요. @Entity ... public class EntryLine extends BaseEntity { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "journal_id", nullable = false, updatable = false) private Journal journal; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "account_id", nullable = false) private Account account; ... // private package 접근제어자 사용 // Account는 Category를 참조중이에요. AccountType getAccountType() { return this.account.getCategory().getAccountType(); } } 거래가 저장되기 전에 Journal : validateJournalSave() 에서 this.transactionType에 따라 차변과 대변에 올바르게 위치하고 있는지 검사한 후 저장하고 있는데 이것을 생성과 수정할 때 두 곳에서 사용하고 있어요. Ledger에 5개 Category가 있고, Account는 그 Category를 참조하고 Category에서만 AccountType이 있어요. Journal이 각 EntryLine의 AccountType을 얻기 위해 Journal -> EntryLine -> Account -> Category -> getAccountType() 이렇게 흘러가네요. 이렇게 접근해도 설계상 괜찮은걸까요? Journal을 저장할때는 @Query 사용해서 Fetch Join으로 필요한 Account를 가져오고 있는 상황이에요. Journal이라는 엔티티가 비즈니스 로직 수행을 위해서 다른 엔티티의 필드까지 깊게 참조?? 가져오도록 설계하는게 옳은건지 모르겠어요.
강사님 안녕하세요 아래부터 자세한 설명 없이 코드를 쳤는데 하둡 셋업할때 필수로 입력 해야 하는건가요? export PDSH_RCMD_TYPE=ssh ssh-keygen -t rsa -P "" cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
volatile 관련해서 자료를 보다 보니, 일부 자료에서는 “CPU 캐시를 우회하는 것이 아니라 happens-before 관계와 메모리 배리어를 통해 가시성과 재정렬 제한을 보장한다”고 설명하더라고요. 골드 답변의 내용과 정반대되는 내용이라 혼란스러워서 어떻게 이해하면 좋을지 질문드립니다.
안녕하세요! F1 스코어 설명하시면서 average = micro, macro, weighted 중에 문제에서 요구하는데로 쓰면 된다고 하셨는데.. 만약 문제에서 제시된 평가지표가 F1 스코어가 아니지만 F1 스코어를 사용하려고 할 경우(문제에서 요구된게 없는 경우)에는 micro, macro, weighted 중 어떤걸 사용하면 될까요? 감사합니다.
현재 '6. 데이터 분석 프로세스 - 데이터의 이해'를 학습 중인데, 매 차시에서 프롬프트 작성하시는 화면이 크게 제공되는 것도 있고 아닌것도 있어서, 어떤 질문을 하셨는지 확인해서 따라해 보기가 어렵습니다. 통계에 대해 평균, 중간값 정도의 이해만 있는 상태에서 깨져 나오는 화면의 글자를 보고 따라 하기가 너무 어렵네요 어떤 차시는 질문 타이핑 하신 걸 확대 해주셔서 보고 했는데, 이번 차시부터는 확대를 안 해주셔셔.. 뭉그러진 화면을 보고 추측해서 학습을 하고 있습니다.(따라 하고) 좀더 데이터 분석에 대해 알면 프롬프트를 따라 하지 않고, 말만 듣고도 내가 질문을 적당히 만들어 할 수있지만, 이제 시작하는 저로서는 무척 어렵네요 강의 내 사용하신 프롬프트라도 따로 텍스트로 제공해 주시면 좋겠어요