@PersistenceUnit EntityManagerFactory emf; @Test public void fetchJoinNo() { em.flush(); em.clear(); Member findMember = queryFactory.selectFrom(member).where(member.name.eq("kim")).fetchOne(); boolean loaded = emf.getPersistenceUnitUtil().isLoaded(findMember.getCart()); assertThat(loaded).as("패치조인미적용").isFalse(); } // select // m1_0.member_id, // m1_0.city, // m1_0.street, // m1_0.zipcode, // m1_0.cart_id, // m1_0.member_login_id, // m1_0.member_login_pw, // m1_0.name // from // member m1_0 // where // m1_0.name=? // -> 분명히 fetch join 미적용인데 select 절에 연관 entity 가 같이 조회되는 이유를 모르겠습니다. 현재 Cart 엔티티는 member 와 @OneToOne 관계이고 @FetchJoin.LAZY 로 설정되어 있습니다.
안녕하세요 강사님 OAuth2 로그인을 구현하고 회원 탈퇴를 위해 구글과 카카오의 unlink API를 호출하려는데, 소셜 로그인 과정을 시큐리티가 자동으로 처리해주고 있어서 API 호출에 필요한 토큰이 관리되고 있지 않은 상황입니다. 이럴 때 어떤 방식으로 토큰을 받아야 하는지 궁금합니다. 제가 생각해본 방법은 다음 두가지가 있습니다. 첫 번째 방법 : 인증 코드를 직접 요청하고, 반환 받은 인증 코드로 토큰 또한 직접 요청 두 번째 방법 : 설정해둔 리다이렉트 URI에 대한 처리를 직접 구현 후, 인증 코드를 받고, 해당 인증 코드로 토큰을 직접 요청 혹시 이중에 맞는 방법이 있는지, 아니면 시큐리티의 자연스러운 흐름안에서 토큰을 받을 방법이 있을까요? 보통 어떤식으로 토큰 값을 받는지 궁금합니다!
안녕하세요. 수업 내용 중 Ollama 임베딩 모델에서 아래와 같이 임베딩 모델을 설정하고 embed_documents 사용하면 아래와 같은 오류가 발생합니다. from langchain_ollama import OllamaEmbeddings embeddings_model = OllamaEmbeddings(model="bge-m3") documents = [ "인공지능은 컴퓨터 과학의 한 분야입니다.", "머신러닝은 인공지능의 하위 분야입니다.", "딥러닝은 머신러닝의 한 종류입니다.", "자연어 처리는 컴퓨터가 인간의 언어를 이해하고 생성하는 기술입니다.", "컴퓨터 비전은 컴퓨터가 디지털 이미지나 비디오를 이해하는 방법을 연구합니다." ] # 문서 임베딩 document_embeddings = embeddings_model.embed_documents(documents) # 임베딩 결과 출력 print(f"임베딩 벡터의 개수: {len(document_embeddings)}") print(f"임베딩 벡터의 차원: {len(document_embeddings[0])}") print(document_embeddings[0]) 오류의 캡처 사진과 문구는 아래와 같습니다. 오류문구 : ConnectError: [WinError 10061] 대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다 해결방법 확인 부탁드립니다. 감사합니다.
안녕하세요 강사님. jooq 강의 잘 듣고 있습니다. 현재 update 부분 강의를 들으면서 실습해보고 있는데 Actor 에 setter 메소드들이 없어서 dao 를 통한 update를 하는데 다소 어려움이 생겼습니다. insert 의 경우는 생성자에 데이터를 넣어서 잘 넘어갔는데, update 에서는 setter 가 없으니까, insert 한 값을 Actor 객체로 반환 받아서 그 객체에 있는 setter 를 이용해 update 하는 방식이 불가능하다 보니 "setter 는 어디로 갔는가?" 생각이 들더라구요. 실습중인 jooq 버전은 3.19.5 이고, 아래는 Actor pojo 파일 구조 입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. Team team = new Team(); team.setTeamNm("Team"); em.persist(team); Members members = new Members(); members.setName("good"); members.setHelloTeam(team); em.persist(members); em.flush(); em.clear(); Members finMembers = em.find(Members.class, members.getId()); List<Members> result = finMembers.getHelloTeam().getMembers(); System.out.println("aaaaaaaaaaaaaaaaaaaa="+result.size()); 뭔가 이상해요 em.flush(); em.clear(); 을 안쓰면 finMembers까지는 null 이 아닌데 results 까지는 null입니다. 왜 이런거예요 ???
전에 질문 드린바와 같이(아래 링크 참조) https://www.inflearn.com/community/questions/1427027?focusComment=380094 private Date deliveryPlanDate; @Column(name = "delivery_plan_date") private Date planDate; 개발하는데 있어서 이런거에 너무 집착하는게 아닐까 걱정됩니다. 제가 경력이 4년(php만 사용)이어도 자바 백엔드 개발자로 농담삼아서 신분세탁하러 이직한다고 퇴사하고 자바, 스프링 공부 한답시고 직접 개발하면서 부족한 부분이 무엇인지 파악하고 복습하는 식으로 하는데, 저런 네이밍 규칙때문에 너무 발목을 잡고 있는거 같아 자괴감이 듭니다. 너무 쓸데 없는거에 집착하는건지 현실적으로 피드백 주시면 감사하겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] OCP를 공부하면서 궁금한점이 있습니다. Car 인터페이스를 implements 하는 GoodCar이라는 클래스에 Nav() 라는 네비게이션 기능을 추가하려면 Car 인터페이스에도 Nav()라는 함수를 추가해야 Driver가 사용가능할거 같습니다. 이러면 기존의 Car을 implements하는 클래스들이 매서드 미구현으로 에러가 발생합니다. 그래서 Car 인터페이스를 안바꾸려면 앞서 배운 fly 인터페이스처럼 따로 인터페이스를 만들면 구현은 가능할거 같은데, 이런 경우 OCP를 지킨다고 할 수 있나요? 아니면 다른 방법이 있을까요?
안녕하세요. 이번에 JPA 로드맵을 다시 한번 복습을 하면서 부모 객체, 자식 객체에 대한 궁금한 점이 생겼습니다. 부모 객체, 자식 객체 관계의 용어는 어떤 상황에서 사용해야 하는 건가요? 연관 관계도 아닌 것 같고.. 상속 관계도 아닌 것 같고.. (자바, 스프링 로드맵에서 강사님이 항상 강조하시는 말씀이 있죠. 부모는 ~ 품을 수 있지만 자식은 ~ 품을 수 없다. 근데 JPA에서는 전혀 다른 상황인 것 같아서요.) cascade와 orphanRemoval 기능을 사용하기 위해 cascade와 orphanRemoval 코드를 내부에 적은 객체 자체가 부모 객체가 되는 건가요? 예를 들면 @Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = LAZY) @JoinColumn(name = "member_id") private Member member; @JsonIgnore @OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true) private List<OrderItem> orderItems = new ArrayList<>(); @JsonIgnore @OneToOne(fetch = LAZY, cascade = CascadeType.ALL, orphanRemoval = true) @JoinColumn(name = "delivery_id") private Delivery delivery; ... 위의 코드에서 cascade = CascadeType.ALL, orphanRemoval = true 기능을 사용해서 생명주기의 책임이 있는 Order 엔티티 객체가 부모 객체가 되고 OrderItem과 Delivery 엔티티 객체가 자식 객체가 되는건가요?
@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User createUser; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User lastModifyUser; DB 한 테이블에 글 등록 유저 정보와 마지막 수정 유저 정보를 넣도록 설계했는데 아래와 같이 안되면 이럴때는 보통 설계를 어떻게 하나요?? Caused by: org.hibernate.MappingException : Column 'user_id' is duplicated in mapping for entity 'study.factory.domain.Order' (use '@Column(insertable=false, updatable=false)' when mapping multiple properties to the same column)
안녕하세요~ 지난번에 gemini로 한다고 고전한다고 질문글을 남겼던 학생입니다. 그냥 openai로 다시 시작하니 실크로드마냥 뻥 뚫리더라고요.....기억나실지는 모르겠지만 지지난번에 남겼던 .env 문제도 해결했습니다. vscode에서도 그냥.env로 파일명 만들면 만들어지더라고요. 전엔 해당 확장자로 안 됐는데 어느순간 되는것이 이유를 모르겠습니다만... 아무튼 네 됐습니다. 그런데 (어쩌면 수업 외적인) 질문이 있는데요. 만약에 제가 chatbot에 2개 이상의 문서를 넣고 싶으면 어떻게 해야되나요? 가령 소비자 보호법과 세법을 넣는다고하면 소비자보호법 관련 문서에는 이게 소비자 보호법이라는게 명시가 안 되어 있고, 세법 문서에는 해당 내용이 세법이라는 것에 대해 명시가 되어 있지 않아 1) 단순히 두 word파일을 하나의 파일로 합치면 혼란이 올 것 같은데, 2) 안 합치고 따로 하자니 일단 그 방법도 모르거니와 각각 넣는 게 파일명 말고는 1번과 무슨 차이인지도 모르겠어서 선생님께 질문을 드립니다. 비슷한 상황으로 다른 예시를 들어드리자면 , 가령 대출 관련 챗봇을 만드려고 할 때, 신용 대출에 대한 문서가 신용 대출 << 언급이 안되어 있는 아래와 같은 상황이고 [직장인 대출] 금리 10% 조건 : 1년이상 재직자 대출한도: 만원 [직장인 대출2] 금리 9% 조건 : 3년이상 재직자 대출한도: 2만원 [CSS 대출] 금리 11% 조건 : 20세이상 30세 미만 대출한도: 3만원 그리고 주택 담보 대출은 아래와 같을 때, (= 대출 내용은 다르지만 대출을 받을 수 있는 컨디션은 똑같을 때) [a아파트 대출] 금리 10% 조건 : 1년이상 재직자 대출한도: 50만원 [주택 대출] 금리 9% 조건 : 3년이상 재직자 대출한도: 60만원 [버팀목 대출] 금리 11% 조건 : 20세이상 30세 미만 대출한도: 70만원 이 상황에서 만약에 주택담보대출을 알아보고 있으면 굳이 신용대출까지 조회를 안 해도 되잖아요. 이런 상황은 어떻게 거르죠? 참고로 직장인 대출 <- 신용이라는 키워드로 거를수가 없습니다. 강의에서 알려주신 대로 데이터 사전이나 프롬포트를 이용해 처리하는 방법밖엔 없을까요? (생각나는 상황이 이런거인데 사실 대출을 잘몰라서 ;; 제 질문이 잘 전달됐는지 모르겠네요..) 아무튼 긴 글 읽어주셔서 다시 한 번 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. private String model; private int chargeLevel; private Engine engine; public Car(String model, int chargeLevel) { this.model = model; this.chargeLevel = chargeLevel; engine = new Engine(this); } Car 를 생성하는 도중에 Engine 객체를 생성하기 위해 this 로 자기 자신을 넘겨주게 되면 어떤 순서로 객체가 만들어지는 건가요? - 초기화가 제대로 이루어지지 않은 Car 객체를 Engine에 넘겨주는 건가요? - 아니면 객체의 필드를 초기화하고 생성하기 이전에 참조 값만 생성해서 넘겨주는 건가요?
마지막에 회원가입이랑 회원목록 누르니 이렇게 나옵니다 h2서버 켜진상태에서 spring1 spring2있는거 확인하고 나서 run하였습니다 잘되다가 갑자기 2024-11-12T23:46:40.432+09:00 ERROR 13916 --- [hello-spring] [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection] with root cause 가 나옵니다. 그 밑에는 org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224] 라고 나옵니다. 코드 복붙하였으며 구글링했는데 잘 모르겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! MVC 패턴에 대해서 공부를 하다가 궁금한 것이 있어서 질문드립니다 ! 제가 프로젝트를 했을 때는 주로 프론트와 백엔드 코드를 분리하여 프로젝트를 관리하였습니다. 이때는 지금 강의에서 하는 방식(MVC)과 다르게 RESTful 방식으로 진행을 하였습니다. 그렇다면 당연하게도, Model과 View는 프론트에서 관리를 하고, 들어오는 요청을 받는 Controller와 로직을 처리하는 Service, 데이터베이스와 관련된 로직을 처리하는Repository 이 3가지로 패키지가 관리되고 있었습니다. 그렇다면 RESTful하게 개발하는 방식에는 과연 MVC 패턴이 적용되지 않는 것인가 ? 하는 궁금증이 생겨서 조사를 해보았어요 ! https://okky.kr/questions/1414743 여기서 제가 이해한 것을 짧게 정리를 해보자면, RESTful한 방식과 MVC는 별개의 것이 아니라는 것입니다. 지금 강의에서 하는 방식의 model과 view는 물리적으로 화면에 나오기는 방식으로 이해할 수 있고, RESTful한 방식에서 VIEW는 JSON 데이터를 반환하는 것을 논리적인 개념으로 이해할 수 있다는 것으로 이해를 했습니다. 다시 위의 글에 적용을 해보자면 Service, Repository 부분이 model, 다시 값을 Controller부터 return(JSON 값)하는 것이 View라고 이해하면 맞을까요..? 개념적으로 service: Model JSON반환타입: View controller: Controller 이렇게 딱 맞게 정의한다면... repository는 어디에 해당하는 것일까요..? 혼란스럽습니다 ㅠㅠ