묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
컬렉션 fetch join
안녕하세요 강사님프로젝트 중 궁금한 점이 있어 질문드립니다..!6개의 엔티티를 조인해야 하는 상황인데 현업에서도 이렇게 조인을 하기도 하나요? 물론 성능에 따라 다르겠지만 몇개 정도의 테이블을 조인하는 것이 적당할까요?컬렉션 패치 조인은 1개까지만 하라고 하셨는데 현재 상황은 3개나 컬렉션이 존재합니다. 이런경우는 어떤식으로 해결하는게 좋을까요?? 강사님께서는 어떤식으로 해결하시는지 궁금합니다 ㅎㅎ감사합니다!
-
해결됨스프링 핵심 원리 - 기본편
@Configuration과 @ComponentScan 질문입니다
@Configuration이 설정 정보임을 알려주며 동시에 싱글톤을 보장할 수 있게 설정 파일 클래스에 사용하는 것은 이해했습니다. 마찬가지로 @ComponentScan 또한 @Component가 붙은 클래스들을 스캔하여 스프링 빈 자동 등록과 동시에 싱글톤 유지가 되도록 하는 것도 이해했습니다. 여기서 @ComponetScan(빈 자동 등록)을 사용할 때도 @Configuration 어노테이션도 사용이 필수인가요?@Component 사용 시에도 싱글톤을 유지하기 할 수 있다고 하셨는데, @ComponetScan위에 @Configuration 어노테이션을 사용하는 이유가 따로 있을까요?설정 파일 인식용인가요?아래와 같이 AutoAppConfig 파일 자체도 빈에 등록하기 위함인가요?@Configuration @ComponentScan( /* 탐색할 패키지의 시작 위치를 지정. 이 패키지 포함 하위 패키지 모두 탐색 두 개 이상일 때 → basePackages = {"hello.core", "hello.service"} */ basePackages = "hello.core", // 지정한 클래스의 패키지를 탐색 시작 위로 지정 basePackageClasses = AutoAppConfig.class ) public class AutoAppConfig { } 답변 부탁드립니다!감사합니다
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
자동 로그인시 자동입력방지문자 페이지로 연결
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 다른 에러는 안뜨는거보니 코드는 잘 돌아가는거 같고, time.sleep()의 초를 늘려도 계속 자동입력 방지문자 페이지가 뜨면서 로그인이 안됩니다 ㅠ 뭐가 문제일까요.. 네이버 정책이 바뀐걸까요? from selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.common.by import By# 크롬 드라이버 자동 업데이트from webdriver_manager.chrome import ChromeDriverManagerimport timeimport pyautoguiimport pyperclip# 브라우저 꺼짐 방지chrome_options = Options()chrome_options.add_experimental_option("detach", True)# 불필요한 에러메세지 없애기chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])service = Service(executable_path=ChromeDriverManager().install())driver = webdriver.Chrome(service=service, options=chrome_options)# 웹페이지 해당 주소 이름driver.implicitly_wait(5) # 웹페이지가 로딩될 때까지 5초 기다림driver.maximize_window() # 화면 최대화driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")# 아이디 입력창id = driver.find_element(By.CSS_SELECTOR, "#id")id.click()pyperclip.copy(" ")pyautogui.hotkey("ctrl", "v")time.sleep(5)# 비밀번호 입력창pw = driver.find_element(By.CSS_SELECTOR, "#pw")pw.click()pyperclip.copy(" ")pyautogui.hotkey("ctrl", "v")time.sleep(5)# 로그인 버튼login_btn = driver.find_element(By.CSS_SELECTOR, "#log\.login")login_btn.click()
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@Lob과 @Column(columnDefinition = "TEXT")
현재 강의를 보고 스스로 게시판 서비스를 만들어 보고 있는데요!게시물 본문(content) 컬럼에 @Lob과 @Column(columnDefinition = "TEXT") 중 어떤 것을 써야 좋은지 궁금해서 질문 드립니다! 찾아봐도 자료가 많이 없더라고요..@Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Post extends BaseEntity { @Column(name = "post_id") @GeneratedValue(strategy = GenerationType.IDENTITY) @Id private Long id; @Column(length = 100, nullable = false) private String title; // @Column(columnDefinition = "TEXT", nullable = false) // @Lob private String content; }
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원서비스와 회워리포지토리가 빈으로 등록이 되지 않습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@Service와 @Repository를 붙였음에도 불구하고 빈으로 등록되지 않습니다.그래서 회원 서비스를 테스트 할 때 @Autowired로 자동 주입을 받지 못하고 있습니다. 어디가 문제인지 봐주실 수 있나요? 아래는 프로젝트 전체 압축파일 링크입니다https://drive.google.com/file/d/15aBoeMbIf_z0BXL8zpERp_2J5upJGesC/view?usp=drive_link
-
미해결김영한의 실전 자바 - 기본편
[섹션2 문제풀이] scanner 질문
위에서 int price = scanner.nextInt(); 밑에는 scanner.nextLine();를 안 쓰는 이유가 궁금합니다.버퍼에 개행문자(엔터)가 int quantity 변수 맨 앞으로 입력되지 않나요??
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
logout 후 빈 화면으로 이동합니다 ㅠㅠ
next 인자 값, settings.py 전부 다 확인했는데 며칠째 해결을 못하고 있어요... ㅠㅠㅠlogout 버튼을 누르면 http://127.0.0.1:8000/account/logout/?next=/helloworld.html 여기로 이동하면서 터미널엔 이런 오류가 뜹니다...Method Not Allowed (GET): /account/logout/Method Not Allowed: /account/logout/[12/Jan/2024 08:00:52] "GET /account/logout/?next=/account/hello_world/ HTTP/1.1" 405 0[12/Jan/2024 08:01:00] "GET /account/hello_world/ HTTP/1.1" 200 3426깃허브 링크 첨부합니다 제발 도와주세요.... ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠhttps://github.com/padoz3/django-pinterest
-
미해결스프링 핵심 원리 - 기본편
빈 이름으로 조회 x
[질문 내용]여기에 질문 내용을 남겨주세요. @Test @DisplayName("빈 이름으로 조회X") void findBeanByName_X() { // MemberService memberService = ac.getBean("xxxxx", MemberService.class); assertThrows(NoSuchBeanDefinitionException.class, () -> ac.getBean("xxxxx", MemberService.class)); } }이 코드에서 주석을 제거하면 여전히 NoSuchBeanDefinitionException이 발생하는데 이는 주석 코드에서 오류가 생겨서 더이상 진행되지 않기때문에 assertThrows코드가 실행되지 않은것인가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
트랜잭션 롤백에 관한 질문
tx.begin() Member member = new Member(); member.setName("start"); em.persist(member); tx.commit(); 안녕하세요 트랜잭션 공부를 하다가 질문이 생겨 이렇게 글 남기게 되었습니다! 위처럼 작성하면, Member 테이블에 잘 생성됨을 확인했는데요,트랜잭션 롤백의 작동에 대해 이것저것 해보다가 tx.begin(); Member findMember = em.find(Member.class, 저장된member아이디); try { findMember.setName("newName"); throw new Exception(); } catch (Exception e) { tx.rollback(); } System.out.println(findMember.getName()); // 이 줄에서 원래의 start가 나오길 기대했으나, newName이 나옵니다 findMember 객체가 영속성 컨텍스트에 의해 관리되고 있으므로, 트랜잭션이 롤백된다면 마지막 프린트 문에서 findMember의 name 속성이 원래의 상태인 'start' 로 돌아가길 기대했는데요.질문: 실제로 프린트를 해보니, 'start'가 아닌 'newName'으로 인식되어 이렇게 프린트되는 이유가 궁금합니다!제가 이해하려고 시도한 것.. 조금 이해가 안되어서 em.contains(findMember) 를 해보니, 정확히 tx.rollback() 이전에는 true, 이후에는 false로 출력이 되더라고요. 위의 결과로 추정해본 바로는 tx가 엔티티 객체를 직접 인식하는 것이 아니라, em안의 1차 캐시의 변경된 내역을 인식하고 있고, 엔티티 객체는 그와 별개로 자바 코드에서 활용할 수 있는 용도인가..? 라고 이해를 해봤고,트랜잭션 롤백시, 엔티티 객체는 em과 연관없는 순수 자바 객체가 되며 때문에 객체가 있는 메모리 상의 바뀐 필드의 값이 다시 변경될 필요가 없는건가? (어짜피 트랜잭션으로 em안의 1차 캐시 변경부를 원상태로 바꿔주면 DB에는 아무런 변화가 없을 것이기 때문에) 라고 이해를 했습니다. 아무래도 혼자서 생각해본 이유이기에 정확하지 않을 것 같습니다.위와 같은 질문과 제 뇌피셜인,, 이해한 바에 대해 피드백 주시면 감사하겠습니다!! 감사합니다!!
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
V0 -> V1으로 전환되는 과정에서 궁금한 점이 생겼습니다.
MemberRepositoryV0에서 직접 만든 DBConnectionUtil을 getConnection을 통해 Connection정보를 가져오는 것인데, 이를 V1에서는 직접 만든 DBConnectionUtil을 dataSource로 변경하고 실제 테스트에서 BeforeEach를 통해 Connection 정보를 주입하는 것인가요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다!
아래 메일: pzx0706@gmail.com강의 자료 부탁드립니다! 감사합니다!
-
미해결모두의 한국어 텍스트 분석과 자연어처리 with 파이썬
PDF기준으로 LLM에게 답변/요약을 요청할때 가능한 방법 문의
여러개의 pdf 파일기준으로 LLM에게 답변하거나 요약하라고 할때pdf 데이터를 vectordb에 임베딩하여 조회하는 방법만 알고있었는데 pdf를 txt로 변환후에 langchain 함수를 이용하고 vectordb를 이용하지 않아도LLM이용하여 답변이 가능하던데요. 어떤게 좋은 방법일까요?from langchain.chains.question_answering import load_qa_chainfrom langchain.chains import AnalyzeDocumentChainqa_chain = load_qa_chain(model, chain_type="map_reduce")qa_document_chain = AnalyzeDocumentChain(combine_docs_chain=qa_chain) 데이터가 많으면 vectordb를 쓰고, 많지 않으면 langchain 함수를 이용하는건가요?다른 방법은 또 어떤게 있을까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 서비스 테스트 코드에 대한 질문
서비스 계층의 클래스를 테스트하려고 준비하고 있습니다. mock이 너무 많으면 유지보수가 힘들어져서 MemoryRepository를 직접 구현해서 사용하라고 하던데@DataJpaTest 어노테이션으로 Repository객체의 mock을 대신해도 될까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 매핑 후 getMemberList() 했을 때 빈 list 가 반환되는 이유에 대하여
transaction.begin(); try { Team teamA = new Team(); teamA.setName("teamA"); entityManager.persist(teamA); Member member1 = new Member(); member1.setUsername("Ken"); entityManager.persist(member1); Member member2 = new Member(); member2.setUsername("Jen"); entityManager.persist(member2); Member member3 = new Member(); member3.setUsername("Den"); entityManager.persist(member3); member1.setTeam(teamA); member2.setTeam(teamA); member3.setTeam(teamA); List<Member> memberList = teamA.getMemberList(); System.out.println("========"); System.out.println("memberList = " + memberList); // for (Member member : memberList) { // System.out.println("member = " + member.getUsername()); // } System.out.println("========"); transaction.commit(); 양방향 매핑 예제 관련하여 제 개인적인 예제를 실행하던 중 궁금한 점이 생겼습니다. teamA 객체 생성 + persist, 3명의 멤버 객체를 생성 + persist, 그러고 나서 전부 teamA 라는 데에 소속시켰습니다.persistentContext 에 추가된 상태이므로 team.getMemberList() 하면 세 명의 멤버가 담긴 리스트가 출력될 것이라고 생각한 것과 달리, 빈 리스트로 리턴됩니다. (마지막에 trx.commit() 까지 해서 H2 디비에는 잘 들어가있습니다) 왜 빈 리스트로 리턴되는 것일까요?
-
해결됨실전! 스프링 데이터 JPA
mappedBy로 지정된 필드가 조회하는 시점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]mappedBy로 지정된 필드는 어느 시점에 변경되는지 궁금하여 질문드립니다.예를들어 Member 클래스에서 @ManyToOne private Team team;이렇게 Team 객체를 가지고 Team 클래스에서 @OneToMany(mappedBy="team")List<Member> members = new ArrayList<>(); 이렇게 members 리스트를 읽기전용으로 가진다고 할때 이 리스트가 바라보는 시점은 언제인가요?제생각엔1. 영속성 컨텍스트상에서 연관관계의 주인 객체가 변경됨db에 변경사항이 반영됨db에 변경사항이 커밋됨셋중 하나인거같은데 어떤것인가요?
-
미해결스프링 시큐리티
메소드 로직에 대해 질문드립니다.
SecurityResourceService클래스에서 getResourceList()에서 이렇게 수정 되어야 하지 않나요?? 왜냐하면 configAttributeList에 권한 정보를 다 넣고 나서 result변수에 키 값인 자원과 value인 configAttributeList가 들어가야 할 것 같아서요. 강의 대로라면 1가지 자원에 여러가지 권한이 들어갈 수 있지만, 강의에서 나오는 코드 대로라면 1가지 자원에 1가지 권한밖에 들어가지 않을 것 같아서 질문드려보았습니다.
-
미해결스프링 핵심 원리 - 기본편
인텔리제이 유로 무료
안녕하세요 자바로 졸작을 만들어보기 위해 공부중인 컴공 4학년 학생입니다.해당 강의를 들으면서 프로젝트도 만들어보고 싶은데 유로로 듣는게 나을까요??
-
미해결이득우의 꼭 배워야하는 게임 알고리즘
쿼드트리 삽입 프로그램 실행 예시 질문
안녕하세요, 강사님. 5강 코드트리의 구현 강좌 초반부에서 삽입 예시를 설명해주신 부분에서 의아한 부분이 있어 여쭈어보고자 합니다. 첫 번째 삽입 예시의 Depth를 설명해주실 때, Depth를 4라고 말씀해주셨는데, 5가 아닌가 생각이 들었습니다.이후 세 번째 삽입 예시의 Depth를 설명해주실 때, 첫 번째 삽입 예시보다 한 단계 작게 삽입이 이루어지는 예시일 때도 Depth를 4라고 말씀하셔서, 어느 부분이 맞는 것인지 궁금합니다.
-
미해결스프링 시큐리티
질문 2가지 드립니다.
첫번째 질문입니다.SecurityResourceService클래스에서 ResourcesRepository를 주입받기위한 방법은 3가지가 있는것으로 알고있습니다.첫째, 생성자 주입둘째, @Autowired주입셋째, setter주입여기서 왜 setter주입방식을 사용하였는지 궁금합니다. setter주입방식은 찾아보니 별로 안좋다는 말이 있어서 질문드려보았습니다.이 주입방식을 생성자 주입방식 혹은 @Autowired로 변경하여도 상관없는거죠?? 두번째 질문입니다.SecurityResourceService클래스에서 getResourceList()에서 이렇게 수정 되어야 하지 않나요?? 왜냐하면 configAttributeList에 권한 정보를 다 넣고 나서 result변수에 키 값인 자원과 value인 configAttributeList가 들어가야 할 것 같아서요. 강의 대로라면 1가지 자원에 여러가지 권한이 들어갈 수 있지만, 강의에서 나오는 코드 대로라면 1가지 자원에 1가지 권한밖에 들어가지 않을 것 같아서 질문드려보았습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
18분대에서의 테스트 실행 시 오류
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]WARNING: A Java agent has been loaded dynamically (C:\Users\jkjin\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.10\90ed94ac044ea8953b224304c762316e91fd6b31\byte-buddy-agent-1.14.10.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 아래와 같이 오류가 발생합니다.테스트는 잘 실행되지만, 영상에서처럼 Hibernate: 쿼리문~ 이 부분이 보이지 않네요.. 설정이 다르다는것처럼 보이는데 뭐가 문제일까요?