@Entity @Getter @Setter public class Category { @Id @GeneratedValue @Column(name = "catagory_id") private Long id; private String name; @ManyToMany @JoinTable(name = "category_item",joinColumns = @JoinColumn(name = "category_id"),inverseJoinColumns = @JoinColumn(name = "item_id")) private List<Item> items = new ArrayList<>(); @ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); } 이 부분에서, 카테고리의 계층? 을 표현하기위해 카테고리 엔티티를 위와 같이 하셨는데요. 여기에서 @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); 이 부분이 무슨 의미로 사용되는지 이해가 잘 되지않습니다.. 연관관계의 주인이 아닌쪽이기 떄문에 mappedBy를 적어준거같은데, 해당 코드가 필요한 이유와 사용되는 목적이 무엇인지 질문드립니다. 그리고 private Category parent와 private List<Category> child = new ArrayList<>();가 어떤 연관관계가 있길래 연관관계를 맺는것인지 이해가 잘 되지않아서 질문드립니다. 감사합니다.
'Incorrect API key provided' 강의 내용과 동일하게 아래 주소로 로그인 후 'Create new secret key'를 통해서 API KEY를 발급받았습니다. https://platform.openai.com/api-keys 이후에 Copy 버튼 클릭해서 환경변수(.env) 파일에 OPENAI_API_KEY=복사한_API_KEY 저장 후 ChatOpenAI를 통해서 선언한 llm을 invoke()했는데, 반복적으로 Incorrect API Key provided 오류가 발생합니다. 혹시나 잘못 복사해서 붙여넣었나 싶어서 삭제 후 API KEY를 신규 생성 후 동일하게 invoke 해봤는데, 문제가 해결되지 않았습니다. 혹시 다른 원인이 있을까요?? 답변 기다리겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 타입 매개변수를 Animal로 상한을 지정함으로써 제네릭 타입 안에서 Animal 클래스의 기능을 사용할 수 있다는 건 이해했는데, Animal의 자식인 Dog, Cat의 기능도 사용을 못하나요? 코드를 짜서 실행해본 결과 사용이 안되는걸로 확인 했습니다.. 만약 안되는거면 왜 그런지, 만약 Dog, Cat의 기능을 사용하고 싶다면 어떻게 해야하는지 궁금합니다.(다운 캐스팅을 해야하는건지..?)
학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 좋은 강의 잘 보고있습니다. 이와 같이 마이크로 서비스로 프로젝트가 구성되면, 유저 인증과 관련된 부분은 어떻게 처리되는지 궁금합니다. 일단 스스로 생각해본 바로는, 게시글/댓글 쓰기, 좋아요 API는 로그인 한 유저만 가능하다고 하면, 각각의 서비스에서 클라이언트의 요청을 받았을 때 해당 요청을 유저 API를 호출하여 인증을 하는 방식이 있을 것 같은데 이 방법은 각 서비스들이 유저 서비스를 알고 있어야 한다는 단점이 있을 것 같습니다.. 위와 같은 상황에서의 실무에서 모범 사례나 정형화된 방법이 있을까요?
4강까지 강의를 다 들었습니다. 하지만 연봉 5천만원인 거주자의 소득세는? 이라는 쿼리를 날릴경우 답변이 624만원이 나오지 않고 다양한 값이 나오고 있는것을 확인했습니다. upstage model을 사용하고 pinecone vector store 를 사용하고 있으며 dictionary chain 까지 구성해서 직장인 -> 거주자로 바꾸는것 까지 적용해서 invoke 를 실행했습니다. 직접 테스트한 예시로는 'query': 연봉 5천만원인 거주자의 소득세는 얼마인가요? 소득구간별 세율의 예시를 보여주면서 설명해줘, 'result': '연봉 5천만원인 직장인의 소득세는 550만원입니다. 소득구간별 세율에 따라 계산하면, 5천만원 이하의 과세표준에는 15%의 세율이 적용되어 84만원 + (1,400만원을 초과하는 금액의 15%) = 550만원이 소득세로 산출됩니다.'}, {'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 550만원입니다. 이는 종합소득 과세표준 5,000만원 이하 구간에 해당하는 세율을 적용하여 계산한 금액입니다.', {'query': '연봉 5천만원인 직장인의 소득세는 얼마인가요?', 'result': '연봉 5천만원인 직장인의 소득세는 526만원입니다. (산출식: 5,000만원 - 1,400만원 = 3,600만원, 3,600만원 * 15% - 84만원 = 420만원)'} 이런식으로 지속적으로 다른 답이 나오고 있으며 " 소득구간별 세율의 예시를 보여주면서 설명해줘" 이 부분을 추가하지 않고 처음 쿼리를 날리면 직장인의 소득세는 xxx 만원입니다. 하고 바로 끝나는 result가 나왔습니다. 이러한 원인이 upstage 모델을 사용해서 이런 결과가 발생했는지 궁금하고 4강에서 설명했던 few-shot prompting 이 되지 않아서 처음에는 정확한 답을 주지 못하고 있다가 " 소득구간별 세율의 예시를 보여주면서 설명해줘 " 이 부분이 추가되면서 다음 응답들이 더 자세하게 나오게 된 것인지 궁금합니다.
BufferedInputStream에서 read() 를 호출하면 buf 라는 버퍼에 있는 것을 1바이트씩 꺼내어 조회한다고 하는데, 그렇다면 처음에 FileInputStream에서 하나씩 read() 하는 것이랑 결국 호출 횟수는 같으니 똑같은 것 아닌가? 하는 생각이 들었습니다. 그러니까 버퍼에 데이터 100바이트를 FileInputStream에서 한번에 들고와도 결국 바깥에서는 1바이트씩 꺼낸다고하니 뭐가 다른건가 궁금해졌습니다. 강의에서 버퍼에 데이터가 채워져있으면 FileInputStream의 read()를 호출하지 않고 바로 버퍼에서 꺼내준다고 하셨는데요, 여기서 버퍼에 한번에 많이 가져옴으로서 FileInputStream의 read() 를 적게 호출하게 되기 때문에 이에 따라 시스템콜도 적게 호출되므로 성능이 증가하는건가요? 앞의 강의에서 FileInputStream과 FileOutputStream의 read(),write()의 횟수를 줄여야 성능이 증가한다고 하셨으니까요. 그래서 BufferedInputStream의 read()로 1바이트씩 꺼내는건 성능에 큰 지장이 없는 것인가요?
강의명 : 파일 입출력과 성능 최적화4 - Buffered 스트림 읽기 강의 위치: 1분 22초 오타 위치: 2. IO 기본1.pdf 26페이지 최하단 오타 내용 : Buffered Output Stream 분석 -> Buffered Input Stream 분석 해당 부분의 강의는 BufferedInputStream 에 대한 내용이므로 BufferedInputStream 분석 이 되어야하지 않나 싶습니다. 감사합니다
쉽게 이해할 수 있게 설명해주셔서 강의 잘 봤습니다. 👍 강의 후반부(39. 문서와 코드 다듬기)에 MemberRepository에 @Query를 사용하면서 JPA 종속성이 추가되었는데 이 부분에 대해서 언급 없이 2가지 조인 방식과 관련하여 설명하고 넘어갔습니다. 강의 중반부(23. 회원 애플리케이션의 포트 정의)의 MemberRepository 설명과 같이 spring-data-commons의 Repository라는 마커 인터페이스를 사용하는 것은 동의하나 application layer에 기술 종속성이 추가된 내용 관련하여 부가 설명 요청 드려도 될까요? 물론 다음 강의에 해당 설명이 있을것으로 생각되지만.. MemberQueryRepository로 분리하고 adapter layer에서 구현하는 방향이 더 좋아보이는데 개선 방향도 같이 부탁드립니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 이러한 오류가 뜨는데 어떻게 해결해야 할지 잘 모르겠습니다 ㅠㅠ application.yml 코드는 다음과 같습니다 spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "" driver-class-name: com.mysql.cj.jdbc.Driver
강의 잘 보고 있다. 잘 정리된 자료 덕분에 배치 작업을 이해하고 있는 중이다. 다만 설명 중 이해 안되는 부분이 존재한다. 바로 이 부분 멱등하지 않은 ItemProcessor 를 내결함성(FaultTolerance) 기능 과 함께 사용해야 하는 상황이라면, 반드시 processorNonTransactional 를 설정하도록 하자. 오히려 멱등하지 않은 ItemProecessor의 경우에는 이 설정을 비활성화 해야 하는 거 아닌가? 나의 부족한 영어실력과 GPT를 통해 스프링 배치는 ItemProcessor가 트랜잭션이나 멱등성을 가져야 한다고 되어 있는 것으로 이해하였다. It must be either transactional or idempotent. 출처: https://docs.spring.io/spring-batch/reference/transaction-appendix.html 떠라서 멱등하지 않은 ItemProcessor는 processorNonTransactional()을 지양해야 하는 것으로 나는 이해된다... 답변 부탁한다. (존대로 질문하면 rm -rf 하신다길래 이렇게 남겨요 ㅎㅎ..)
안녕하세요. 수업을 듣고 실습도 같이 해보고 있습니다. 유사도 쿼리 관련해서 질문이 있어서 문의드렸습니다. 같은 upstatge 임베딩 모델을 사용했고 chunk size 등 같은 문서 spliter 를 사용했는데 유사도 검색에서 나오는 결과가 예시랑 다르게 나오는 이유가 무엇인가요?
[질문 내용] 처음 문제를 풀떄 Card 클래스에 compareTo 오버라이딩을 @Override public int compareTo(Card o) { if(number != o.getNumber()){ return this.number - o.number; } return shape.compareTo(o.getShape()); } 위 코드처럼 작성했는데 숫자가 낮은 카드 먼저 안 나올때가 있는데 잘못 작성한걸까요?
안녕하세요. 현재 강의에서 배운것만으로도 심리 상담 챗봇을 만들 수 있을까요? 소득세법 같이 정답이 있는 자료는 없는것 같아 인터넷 서칭으로 자료들을 긁어모을 생각입니다. ex) 연애 심리 상담 Bot - 연애에 대해 고민하는 사람들에게 질문에 따른 조언을 해줌 - 연애 커뮤니티 등에서 수동으로 데이터 수집 - 도움이 되는 질문들과 댓글을 직접 선정하여 .docs 문서에 복사 붙여넣기 알찬 강의 만들어 주셔서 감사합니다! (수강평 작성했습니다. 데헷)
안녕하세요 문제1번 관련 문의 사항이 있어 글 남깁니다. 1번에 getCount는 synchroinized 하는 이유가 뭔가요? 중간에 호출되는 부분이 없는 것 같고, t1.join() t2.join() 으로 마지막 출력할때도,,, synchroinized이게 안필요하다는 생각이 들어서요 제가 이해를 잘못한건지 문의드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] h2데이터베이스를 사용해보고 난 후 직접 mysql을 연결하여 해보고 싶어져 연동을 시도하였습니다. <오류화면> <application.properties> 그런데 이때 사진과 같은 오류가 발생합니다. application.properties에 mysql에 대한 정보를 정확히 적었으나 해당 오류가 발생합니다. application.properties의 위치는 src/main/resources에 위치하고 있습니다. 사진과 같이 build.gradle에 의존성도 추가해 두었습니다. 이 때, 영상에서 말씀해주신대로 빌드를 intelliJ로 설정해두면 해당 오류가 발생하나 gradle로 변경하면 정상적으로 db와 연결되어 작동합니다,, intelliJ가 속도가 빠르다고 하셔서 사용하고 있었으나 intelliJ로 빌드하면 오류가 발생하는지 모르겠습니다...ㅜ 코드가 정확히 작성되어도 해당 오류가 발생할 수 있는 것일까요? 이대로 gradle로 빌드하면서 나아가도 나중에 문제가 없을지 궁금합니다.
안녕하세요. 트랜잭션 메시징에 대해 궁금한 것이 생겨 질문드립니다. 트랜잭션 메시징은 데이터베이스 작업과 메시지 발행 작업을 원자적으로 수행하여 데이터의 일관성을 보장하는 것으로 알고 있습니다. 강의 내용 중 '트랜잭션 메시징의 한계'에서 분산 트랜잭션을 완벽하게 보장하지는 않는다고 하셔서 이를 DB의 트랜잭션과 메시지 전송의 트랜잭션이 서로 독립적으로 작동한다고 이해했습니다. 그럼 RabbitMQ에서 트랜잭션 메시징을 지원한다고 할 수 있나요?
안녕하세요 강병진 강사님 강의에서는 docx파일을 불러오셨는데, 혹시 이미지나 표가 포함된 pdf파일을 불러오기 위해서는 어떤 라이브러리를 쓰는게 좋을까요? PyMuPDFLoader를 사용했을 때는 이미지 안에 있는 내용을 전혀 텍스트로 변환하지 못하는 것 같아서 질문드립니다. 감사합니다.