(AI 퀀트) 코드 한 줄 안 쓰고 주식 자동 분석 시스템 만들기 feat. Claude CLI
노션 승인 신청했습니다. 기다리면 되나요? 어디로 연락이 오나요? 유튜브 타고 들어와 강의 신청했는데 승인 신청하고 기다리고 하는 절차가 불편합니다. 또 이렇게 글까지 남겨야 되나디.. 글은 안남겨도 승인해 준다면 그런 멘트를 어딘가에 남겨주세요. 강의 신청자에게는 자동 승인되도록 개선되었으면 합니다.
설명중에 @Version 필드를 낙관적 락에서 이용할 수 있어가지고~ 라고 하셧는데 실제 돌려보니 비관적락 2에도 DB 업데이트가 되었습니다. AI 에게 물어보니 @Version 어노테이션이 붙은 필드는 JPA 사용시 @Lock 어노테이션 사용여부 상관없이 업데이트가 된다고 합니다. 혹 다른 qna 에도 같은 내용이 있는지 확인은 모두 안해 보았습니다. ======================== 응, 같은 엔터티 row에 실제 UPDATE 가 나가면 @Version 필드는 증가한다고 보면 돼. 락 방식이 낙관적이든 비관적이든 핵심은 이거야. @Version private Long version; 이 필드가 있는 엔터티가 dirty checking으로 변경 감지 되고, flush/commit 때 UPDATE 대상이 되면 JPA/Hibernate가 version 값을 같이 갱신해. ========================
감사한 마음으로 강의 잘 듣고 있는 중입니다. Vue3 + Quasar(UI Framework) + Nuxt3 TypeScript vee-validate/valibot 으로 프로젝트를 한 경험이 있는데 react는 조금 어렵게 느껴지네요. 아마도 원리를 알려주신다고 리액트 훅들을 직접 만들어서 그런 것 같지만 좋은 것 같습니다. 제가 드리고자 하는 질문은 React + UI Framework + Next TypeScript 검증 라이브러리 로 유사한 아키덱처로 갈 예정인데 문제가 UI Framework와 검증 라이브러리를 어떤 것을 사용하는 것이 좋을지 몰라서 질문 드립니다. 혹시 추천해주실 UI Framework와 검증 라이브러리가 있나요? 또 한가지는 아무래도 백오피스이므로 데이타 그리드도 중요한데 추천 부탁드립니다. 이전에 사용한 Quasar는 자체 quasar.css를 가지고 있어 웹 접근성이나 sass 작업할 때 너무 힘들었습니다. 질문이 너무 광범위해서 죄송합니다.
안녕하세요. 우선 좋은 강의 제작해주신 토비님께 항상 감사하고 있어요. 이제 배운지 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이라는 엔티티가 비즈니스 로직 수행을 위해서 다른 엔티티의 필드까지 깊게 참조?? 가져오도록 설계하는게 옳은건지 모르겠어요.
안녕하세요 선생님, 강의 잘 듣고있습니다! 다름이 아니라, 설정 문제인지 현 시점 VSCode 내에서는 오류가 저렇게 많이 표시가 됩니다ㅜ 동작과는 상관없어 그냥 사용중이었는데 앞으로도 계속 저러면 너무 불편할거 같습니다. 해결 방법이 없을까요? 아래는 setting.json 내용입니다.. { "workbench.startupEditor": "none", "editor.formatOnSave": true, "workbench.iconTheme": "material-icon-theme", "js/ts.validate.enabled": true, "editor.defaultFormatter": "esbenp.prettier-vscode", "js/ts.implicitProjectConfig.checkJs": true, "workbench.colorTheme": "Dark Modern", "editor.fontSize": 14, "workbench.secondarySideBar.defaultVisibility": "hidden", "terminal.integrated.fontSize": 14, "window.zoomLevel": 1, } 확인 한 번 부탁드리겠습니다..!
강사님 안녕하세요 아래부터 자세한 설명 없이 코드를 쳤는데 하둡 셋업할때 필수로 입력 해야 하는건가요? export PDSH_RCMD_TYPE=ssh ssh-keygen -t rsa -P "" cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
"26. 2.6) 반복문으로 배열과 객체 순회하기" 강의에서 0분 50초에 등장한 PPT에서 질문이 있습니다! for (let key in Object.keys(person)) { console.log(key); } 위 코드에서 Object.keys(person)이 아니라 그냥 person을 의도하신 것 아닌가요? for in 구문을 통해 객체의 key 값을 출력하는 것을 의도하는게 훨씬 자연스러워서요!!
volatile 관련해서 자료를 보다 보니, 일부 자료에서는 “CPU 캐시를 우회하는 것이 아니라 happens-before 관계와 메모리 배리어를 통해 가시성과 재정렬 제한을 보장한다”고 설명하더라고요. 골드 답변의 내용과 정반대되는 내용이라 혼란스러워서 어떻게 이해하면 좋을지 질문드립니다.