1090번 문제 3번째 아이디어가 잘 이해가 안돼서 질문 드립니다. 제가 이해한 바로는, 최소거리를 구하는 것을 요구하고 있으니깐, 특정 인물이 특정 집으로 가기 위한 거리를 각각 저장해둔 뒤에 2명이 모였을 때 최소거리를 구할 때에는 각각 저장해둔 값 중 둘이 더했을 때의 최소값을, 3명이 모였을 때의 최소거리를 구할 때에는 동일하게 저장해둔 값 중 셋 더했을 때의 최소값을구하는 방식으로 최소 거리를 구하는 것이 맞나요? 영상에서 설명해주실 때에는 [1,2,3] , [3,4,5], [2,2,5]의 예시를 들어주셨는데 2명이서 모였을 때 최소거리는 둘이 합했을 때 가장 적은 1+2 즉 3이 되는거라고 설명해주셨습니다. 하지만 저장한 값이 특정 집에서 다른 사람의 거리를 저장한 것이므로 한 사람은 본인의 집에, 다른 사람은 최소 거리만큼 이동하여 0+1 즉, 2명이 모였을 때 최소거리는 1이 되는 것 아닌가용..? 제가 잘 이해를 못해서 질문 드립니다 .
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 김영한 강사님 항상 강의 잘 보고 있습니다. 다름이 아니라, 연관 관계를 맺고 있는 엔티티들 사이에서 (fetch=FetchType.LAZY,cascade = CascadeType.ALL)에 대해 질문 있습니다. 예를 들어, public class Site { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="site_id") private Long id; @Column(name="site_name") private String siteName; @Column(name="site_url") private String siteUrl; @ManyToOne(fetch=FetchType.LAZY,cascade = CascadeType.ALL) @JoinColumn(name="directory_id") private Directory directory; public class Directory { @Id@GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="directory_id") private Long id; @Column(name="directory_name") private String directoryName; @OneToMany(mappedBy="directory", cascade = CascadeType.ALL,orphanRemoval = true) private List<Site> sites = new ArrayList<>(); 에서 directory와 site가 1:N 연관 관계를 맺고 있습니다. 예를 들어, 클라이언트로부터 directory를 조회하는 요청이 온다면 다음과 같이 수행된다고 이해를 하고 있습니다. db에 접근해서 directory를 조회함. 해당 directory entity를 영속성 컨텍스트에 저장함. 이때, fetch=FetchType.LAZY를 사용하고 있기 때문에, 쿼리문을 날릴 때, site를 조회하는 쿼리문을 날리는게 아니라 directory만 조회하는 쿼리문을 날림 그리고 directory 필드에 있는 site는 기본 생성자를 통해 프록시 객체로 생성되어 저장됨. 근데, 여기서 헷갈리는게 그렇다면 "cascade = CascadeType.ALL"는 언제 어떻게 사용되는 것인지 잘 모르겠습니다. 제가 "cascade = CascadeType.ALL"에 대해서 이해하기로는 부모 엔티티와 자식 엔티티를 라이프 싸이클을 동일하게 가져가기 위해서 부모 엔티티가 영속화될 때 자식 엔티티도 같이 영속화 된다. 라는 정도로 이해하고 있습니다. 근데, 여기서 헷갈리는 부분이 directory를 조회하고, directory의 필드로 있는 site는 fetch=FetchType.LAZY로 설정했기 때문에 프록시 객체로 생성됩니다. 그렇다면 이때 site는 directory와 관련된 실제 데이터가 저장되어 있는 객체가 아니라 빈 껍데기같은 객체가 되는게 아닌가요?? 그러면 directory랑 site가 "cascade = CascadeType.ALL로 설정해서 부모 엔티티와 자식 엔티티를 라이프 싸이클을 동일하게 가져간다"라는게 틀린게 되는게 아닌가요?? fetch=FetchType.LAZY,cascade = CascadeType.ALL이 2개를 같이 사용했을 때, 엔티티를 생성,조회 그리고 삭제 하는등의 동작을 수행할 때, 어떻게 동작되는지 연관성과 차이점을 잘 모르겠습니다 .. 매번 훌륭한 강의 감사합니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] em.flush() 와 em.clear() 를 하지 않은 영속 상태에서 1차 캐시로부터 가져온 값인 members 에 대해 질문이 있습니다. 아래 코드 중 주석으로 '궁금한 부분'이라 표시한 것 처럼 출력하고자 할 때, 제 예상으로는 1차 캐시에서 members 도 무사히 가져왔으니(확인 완료) 가져온 값을 출력만 하면 될 것 같았습니다. 그러나 이후 실행 결과 출력 되지 않았습니다. 이유를 알려주시면 감사할 것 같습니다! <코드> package hellojpa; import jakarta.persistence.*; import java.util.List; public class JpaMain { public static void main(String[] args) { // 문제 없이 돌아가는 지 확인 EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); // 쿼리를 한 번 날리고 종료되는 일관적인 단위를 할 때마다, 이 EntityManager 를 꼭 생성해야 한다. EntityManager em = emf.createEntityManager(); // JPA 에서 데이터를 변경하는 모든 작업은 꼭 Transaction 안에서 작업을 해야 한다. EntityTransaction tx = em.getTransaction(); tx.begin(); // 트랜잭션 시작 // 실제 code를 작성한다. try { // 팀 등록 Team team = new Team(); team.setName("TeamA"); em.persist(team); // 회원 등록 Member member = new Member(); member.setUsername("userA"); member.setTeam(team); em.persist(member); // JPA 저장 Member findMember = em.find(Member.class, member.getId()); Team findTeam = findMember.getTeam(); System.out.println("findTeam = " + findTeam.getName()); List<Member> members = findMember.getTeam().getMembers(); System.out.println("==============="); // 궁금한 부분!!! // em.clear()~ 등을 하지 않은 영속 상태라고 가정할 때(1차 캐시에서 값을 가져옴) // team 을 통해 members 목록도 불러올 수 있는데, 왜 아래의 iterator 는 작동하지 않을까? for (Member m : members) { System.out.println("통과"); System.out.println("member1 = " + m.getUsername()); } System.out.println("==============="); tx.commit(); // 커밋 } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } } <실행 결과>
이론자료 파일을 다운로드 받아 열어보니 24 -26 페이지가 흑백으로 보이고 오류가 발생합니다. 원래 없는 페이지인데 생성이 되서 오류가 발생한건지 궁금합니다. 오류가 나서 페이지가 제대로 표기가 안 되는 것이면 수정하여 올려주시면 감사하겠습니다. 그리고 워터마크가 너무 진해서 간혹 글씨가 가려서 잘 안 보이던데 조금만 연하게 해주실 순 없을까요?
안녕하세요 영상에서 default_tags = resource tags가 중복되면 duplicated 에러가 발생한다고 해주셨는데, 제가 재현해보면 중복돼도 에러없이 배포가 됩니다. aws provider는 5.57, terraform은 1.9.1 버전 사용중입니다. 해당 링크 를 보면 5.0.0 버전부터 중복 가능하게 수정됐다는 내용이 있는 것 같은데 강의 촬영 당시와 현재 버전 차이로 배포가 되는걸까요??
안녕하세요. 회사에서 기술 스택을 코틀린+스프링으로 변경하는데 Querydsl도 같이 사용하려고 학습하고 있습니다. 자료를 찾아보던 중 Querydsl의 유지보수 문제로 Querydsl 대신 다른 쿼리 빌더를 사용한다는 글을 보게 됐습니다. https://spoqa.github.io/2024/05/03/transfer-jdsl.html kapt 이슈 이외에도 Querydsl의 유지보수가 진행되지 않는건 맞아보이는데 Querydsl을 실무에서 도입하는데 문제가 없을지 고민이 많이 되고 있습니다. 실무에서 Querydsl을 도입하는데 문제가 없을지 많은 분들의 의견이 궁금합니다!
[리뉴얼] 처음하는 파이썬 머신러닝 부트캠프 (쉽게! 실제 캐글 문제 풀며 정리하기) [데이터분석/과학 Part2]
vscode에서 ipynb파일에서 iplot사용 동일한 에러가 발생합니다. 타이타닉 문제로 시작하는 EDA: 수치형 데이터 분석 패턴1에서 df.corr(numeric_only=True).iplot(kind='histogram', histfunc='count') 했는데 해당 에러가 발생합니다. 현재 버전은 이렇습니다. plotly==4.14.3 cufflinks==0.17.3
[질문 내용] h2 db랑 연결이 되지 않는 것 같은데 어제 gradle에서 TRUE 설정을 뺐을 때는 작동이 잘 됐는데 오늘 다시 작동시켜보려 하니 작동이 안됩니다.. 오류는 10000자가 넘어가서 사진으로 첨부합니다.. zip파일 드라이브에 첨부하겠습니다. https://drive.google.com/file/d/126dOVMwaCPYOSqD4f7XOC0BkCUqtONAK/view
파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
안녕하세요 강사님 ! 동시성과 병렬성의 개념을 멀티스레딩과 연계시켜 이해하는게 어려워 질문 남깁니다. asyncio 의 경우에는, 싱글 스레드에서 이벤트루프를 이용해서 동시성을 구현했다는 점은 이해가 되었습니다. 그래서 asyncio는 동시성일 수 밖에 없다는 걸로 이해됩니다. 이에 반해, 멀티 스레딩은 동시성일 수도 있고 병렬성일 수도 있다고 생각하는데 제가 맞게 이해한건지 헷갈립니다. 저는 이렇게 이해했는데 한번 과정이 맞는지 검토 요청드립니다. 우선 [c언어]로 구현된 하나의 프로세스만 띄워져 있고, 해당 프로세스가 여러 쓰레드를 생성하는 상황이라고 가정하겠습니다. 이때 멀티 스레딩은, 컴퓨터 환경이 [싱글] 코어였다면, 여러개의 스레드가 결국엔 컨텍스트 스위칭되어 concurrency하게 처리될 수 밖에 없기에 이는 동시성이라고 말할 수 있고, 멀티 코어였다면 여러 쓰레드가 병렬적으로 [각각의 코어]에서 처리가 될수 있기에 이런 경우는 병렬성이라고 말할 수 있을 것 같은데 맞을까요? 즉, 멀티스레딩으로 구현된 프로그램을 두고 이를 동시성이라 부를지 병렬성으로 부를지는 컴퓨터환경이 싱글코어냐 멀티코어냐에 좌우되는지가 궁금합니다. 만약 그런 논리라면 멀티프로세싱도 마찬가지일까요.. 멀티프로세싱은 병렬처리라고 생각하고 있긴했는데, 위와 같은 논리라면 싱글코어의 환경에선 여러 프로세스가 존재하더라도 결국엔 os에 의해 컨텍스트 스위칭 되면서 한순간에 하나의 프로세스만 실행되는거니까 동시성으로 전락해버리는게 아닌가..생각됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 5분 18 초에서 필드에서 컬렉션을 초기화해주는 이유가 add할때 nulpointexception을 안뜨게 하기 위해서라고 말씀하셨습니다. 근데 엔티티의 객체를 만들 때, 컬렉션을 생성하고 초기화해서 사용하지 않고 필드에서 초기화해서 사용하는 명확한 이유가 잘 이해가 안되는데 왜 그런건가요??
a=10 b=5가 다르고 b=5 c=8이 다르고 a=10 c=8이 다르고 위 세가지 문장에 따라서 if(true)가 되어 "세 수는 모두 다릅니다" 가 출력되는 건가요? 아니면 a !=b 가 (true)이고 (true) != c 이렇게 봐야하는 건가요? 이해가 어려운 섹션이나 영상 설명은 질문으로 꼭 남겨주세요. 기출문제를 풀다가 막힌 개념이 있나요? 질문으로 회차나 번호, 개념을 예시로 질문해주세요. 답변에 도움이 됩니다. 이론 문제는 통합본 PDF 파일로 제공될 예정입니다. (6월 중 업로드 예정) 합격을 가르는 것은 역시 코드해석문제. 이론을 외울 시간이 없다면 코드에 익숙해지고, 중요 개념을 몇 가지 외워가면 합격할 수 있습니다.
이해가 어려운 섹션이나 영상 설명은 질문으로 꼭 남겨주세요. 기출문제를 풀다가 막힌 개념이 있나요? 질문으로 회차나 번호, 개념을 예시로 질문해주세요. 답변에 도움이 됩니다. 이론 문제는 통합본 PDF 파일로 제공될 예정입니다. (6월 중 업로드 예정) 합격을 가르는 것은 역시 코드해석문제. 이론을 외울 시간이 없다면 코드에 익숙해지고, 중요 개념을 몇 가지 외워가면 합격할 수 있습니다.