묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
(fetch=FetchType.LAZY,cascade = CascadeType.ALL)에 관해 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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개를 같이 사용했을 때, 엔티티를 생성,조회 그리고 삭제 하는등의 동작을 수행할 때, 어떻게 동작되는지 연관성과 차이점을 잘 모르겠습니다 ..매번 훌륭한 강의 감사합니다
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영속 상태에서 값을 가져오는 것에 대해 질문 드립니다.
[질문 템플릿]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(); } }<실행 결과>
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
교차추적 관련 질문이 있습니다.
도메인 A : https://DomainA.com도메인 B : https://DomainB.com두개의 도메인을 데이터스트림 - 태그설정 구성 - 도메인 구성에 두 도메인을 '다음 값을 포함'으로 각각 추가 하였습니다. 도메인 A는 포털사이트에서 들어오는 페이지도메인 B는 도메인A에서 연결되는 결제 페이지로 구성이 되어있고,결제 페이지인 도메인 B의 레퍼러에 도메인 A가 잡히면 안되니,원치 않는 추천 나열에 도메인 A를 추가하였습니다. 그런데, 전자상거래 개요 보고서에+버튼으로 부가측정기준(?)으로 세션 소스/매체를 클릭하니도메인 A/레퍼러가 세션 소스/매체에 있는데 왜 그런건지..해결을 하려면 어떻게 해야하는지 알려주시면 감사하겠습니다.원하는 건 포털사이트에서 들어온 소스/매체(또는 utm 정보)를도메인 b에 레퍼러 정보를 그대로 넘기고 싶습니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
이론 자료 문의사항
이론자료 파일을 다운로드 받아 열어보니 24 -26 페이지가 흑백으로 보이고 오류가 발생합니다. 원래 없는 페이지인데 생성이 되서 오류가 발생한건지 궁금합니다.오류가 나서 페이지가 제대로 표기가 안 되는 것이면 수정하여 올려주시면 감사하겠습니다.그리고 워터마크가 너무 진해서 간혹 글씨가 가려서 잘 안 보이던데 조금만 연하게 해주실 순 없을까요?
-
해결됨실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)
default tags , 리소스에 tags 중복 문의
안녕하세요영상에서 default_tags = resource tags가 중복되면 duplicated 에러가 발생한다고 해주셨는데, 제가 재현해보면 중복돼도 에러없이 배포가 됩니다.aws provider는 5.57, terraform은 1.9.1 버전 사용중입니다.해당 링크를 보면 5.0.0 버전부터 중복 가능하게 수정됐다는 내용이 있는 것 같은데 강의 촬영 당시와 현재 버전 차이로 배포가 되는걸까요??
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
command not found
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : 현재 강의에서 나온 2022버전의 설치가 tab이 없어 2024 버전으로 설치를 진행했습니다. 영상에 따라서 모두 source까지 진행하였습니다하기 이미지와 같이 에러가 뜨네요permission을 확인하라 하여 su로 바꾸어 진행을 하였을 때 하기 이미지와 같이 에러가 발생을 합니다다른 질문들로 보았을때 위의 세가지가 설치가 정상적으로 되지 않았다 라고 말씀을 하신것 같은데, 어떤부분에서 설치가 안된것인지 알고싶습니다[3. 시도했던 내용, 그렇게 생각하는 이유] : 설치도중에 에러가 뜨지않아 설치는 정상적으로 된것으로 판단됩니다. 또한 강의에서 사용하시는 버전에 비해 최신버전이기에 기능이 부족할것이라고는 생각이 안듭니다================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨Flutter로 SNS 앱 만들기
7게시글목록화면_게시글정보가져오기
7게시글목록화면_게시글정보가져오기 에서 15:13 쯤에 Instance of feedmodel이라고 출력이 되어야 하는데 안보이고 있어요. 출력이 안돼고 있는데 한번 봐주세요. 데이타도 출력이 안돼고 있습니다.멜 보냅니다.
-
미해결기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
소스 수정 후 자동 컴파일 문의드립니다.
1.3 NextJS 설치 편에서다크모드 설정하는 부분에서 문의드립니다.<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange > {children} </ThemeProvider>설정 후, 영상에서는 dark, light로 수정하면 반영되는것을 확인할 수 있는데 제 코드에서는Warning: Extra attributes from the server: class,style그리고Warning: Prop className did not match. Server: "__className_aaf875 vsc-initialized" Client: "__className_aaf875"라는 워닝이 발생하여 자동적으로 반영되지 않는 것을 확인했습니다.해당 이슈를 수정할 수 있는 방법이 있을까요 ?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
섹션11 [UserModel 생성하기] postgresql Explorer 에서 UserModel 생성문제
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; import { RolesEnum } from '../const/roles.const'; @Entity() export class UserModel { @PrimaryGeneratedColumn() id: number; @Column({ length: 20, unique: true, }) nickname: string; @Column({ unique: true, }) email: string; @Column() password: string; @Column({ enum: Object.values(RolesEnum), default: RolesEnum.USER, }) role: RolesEnum; }
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
비주얼 스튜디오 솔루션 탐색기 구조 짜는법
완전 초보입니다.압축 파일 해제해놓고 강의에서 설명하시는거 따라가려고 솔루션 탐색기에 나와있는 모습 그대로 만들려고 하는데 평소에 유니티랑 rider만 사용해왔던 터라 어떻게 해야하는지 잘 모르겠습니다. 글로 설명된 내용이라도 좋으니 알려주시면 안될까요? ㅠㅠ
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의 자료 부탁드립니다.
강의 자료 부탁드립니다. 메일 주소는 kimna3193@gmail.com 입니다.
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
SecurityContextRepository / SecurityContextHolderFilter - 2 강의 질문 있습니다
13분 40초에 세션에서 Context 객체가 있는지 확인하고세션에 없어서 request 를 확인한다고 하셨는데, request 확인하는 부분을 건너뛰고 바로 AnonymousAuthenticationToken 을 만드는 부분으로 넘어가셨네요인증이 없는 상태에서 요청하면 SecurityContext를 찾을 때, reuqest는 확인하지 않고 세션만 확인하는걸까요 ?
-
미해결홍정모의 따라하며 배우는 C언어
18분 30초경 코드가 뭐가 문제인가요/?
18분 30초경 코드가 뭐가 문제인가요?? y는 그냥 const를 사용한 변수고, p2는 y의 주소를 담는 변수이고, p1도 그냥 y의 주소를 담는 변수인 것 아닌가요?
-
해결됨실무에 바로 적용하는 AWS 배포
3.6 강의 내용 중 파이프라인 deploy단계에서 에러가 납니다.
Tags can not be empty.라는 에러가 발생합니다. taskdef.jsonappspec.yaml강의 내용대로 따라서 진행하였습니다, build까지는 성공 되었으나, deploy단에서 해당 에러가 발생합니다.혹시 몰라서, taskdef.json에 마지막 부분에 tag를 지워봐서 진행했을때는, deploy가 24분넘게 진행이 안되었습니다.혹시 다른 설정를 봐야하는곳이 있을까요??
-
미해결그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
안녕하세요~ 블로그 정리 요약 관련 문의 드립니다!
안녕하세요~ 개발자 취준 준비중인 취준생입니다! 다름아니라 제가 여러 알고리즘 강의들을 봐오면서 감자님 강의가 제일 설명이 잘 되어있어서 심화까지 사서 열심히 듣는 중인데요! 제 개인 블로그 (벨로그이고 수익 창출은 전혀 안합니다.)에 공부용으로 내용을 정리해도될지 여쭈어보고 싶습니다! 물론 강의 그림자료는 첨부 안하고 말씀 하신 내용만 정리해서 게시글을 정리할 생각이고 출처는 무조건 남기려고 합니다!
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
헥사고날 아키텍처에서 Entity 내의 from과 to 메서드도 분리하고 싶다면?
강의 열심히 들으며 실습하고 있습니다!헥사고날 아키텍처를 학습하며 적용해 보니 다양한 어려움이 생기더라구요 ㅠㅠ혹시 entity 내의 from과 to 메서드조차 분리하고자 할 때 궁금한 점이 생겼습니다.Entity 내의 from과 to 메서드로 domain ↔ entity를 변환하는 것을 Converter 클래스를 통해 관심사를 분리하는 것이 괜찮은지?만일 분리한다면, Converter interface의 위치는 domain 하위 port package일지, infrastructure 하위 port를 만들어 사용할지? (Impl 구현체는 따로 패키지를 생성할 예정입니다)강의 열심히 듣고 보내주신 책도 잘 받아 열심히 공부하고 있습니다 ㅎㅎ책에 껴주신 Thankyou.java 파일 잘 받았습니다! 감사합니다
-
미해결홍정모의 따라하며 배우는 C++
cpp파일 include 관련 질문
안녕하세요. 아래의 main.cpp 파일을 실행시킬 때 doSomething()함수가 differentSource.cpp 파일에서 정의 되어있어 헤더파일의 개념처럼 differentSource.cpp를 main.cpp파일에서 include를 했습니다. 그런데 링크 에러가 나더라구요. main.cpp 파일엔 doSomething의 정의가 되어있지 않기 때문에 함수 중복 정의도 아닌 것이 아닌가요? 에러의 이유가 궁금합니다! <main.cpp 파일> #include <iostream> #include "diffrentSource.cpp" using namespace std; #define LIKE_APPLE // 매크로 int main() { doSomething(); return 0; } <diffrentSource.cpp 파일> #include <iostream> using namespace std; void doSomething() { #ifdef LIKE_APPLE cout << "Apple" << endl; #endif #ifndef LIKE_APPLE cout << "Orange" << endl; #endif }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
ServletApplication 실행 안됨
잘 실행되면 서버가 갑자기 위와 같은 에러가 뜨면서 실행이 안됩니다.https://docs.google.com/document/d/1j0jcJ9EoXMGzwAA2H0b9TOvRtpwlxI5Dtn3sRtuXQas/edit#heading=h.owcsqc19zslv여기 나와있는대로 해보았지만 해결이 계속 안돼서 해결방법을 알려주시면 감사하겠습니다스프링 기본 강의에서 했던 core 프로젝트는 잘 동작이 됩니다.
-
미해결쥬쥬와 함께 하루만에 끝내는 스프링 테스트
Model 의존 java.lang, jakarta
좋은 강의 잘 듣고 있습니다.<의존성 검증: Controller는 Entity를 사용하고 있을까?> 강의에서요.11:40초 쯤에서 에러 로그들이 의미하는 것이 궁금합니다.Class <com.jyujyu.dayonetest.model.StudentFail> is annotated with <jakarta.persistence.Entity> Class <com.jyujyu.dayonetest.model.StudentPass> extends class <java.lang.Object>..위 같은 에러는 해당 모델들(StudentFail, StudentPass) 이 @Entity 로 정의되었으므로 jakarta.persistence.Entity, jakarta.persistence.Table> 에서 사용된 것은 알겠는데java.lang.Object 로 사용된 것은 어떻게 봐야 하나요?단순 Object 라면, 모든 클래스는 Object 를 의존하는 것 아닌가요?미리 답변 감사합니다!
-
미해결스프링 핵심 원리 - 기본편
bean 주입관련 로그 출력이 안됩니다...
[질문 내용]‘스프링 핵심 원리 - 기본편’커리큘럼의 섹션3 ->스프링으로 전환하기 강의에서, 4분 56초쯤 보시면 런타임 후에 bean등록하는 내용을 설명해주시는데요.저는 해당 로그가 출력이 안됩니다 ㅠ참고로 JDK17버전, springframework.boot는 3.3.1버전으로 프로젝트를 생성했습니다…그리고 혹시 Preferences의 build, run설정이 IntelliJ IDEA로 해놔서 그런가? 해서 gradle로 바꿔서 Refresh하고 재런타임해봤는데도 동일했고요…또 챗지피티로 검색해서나온 제가 올린 이미지의 3번내용 vm option를 부여해봐도 안됩니다…물론 기존 비슷한 질문에 대해 해결책으로 낮은 버전으로 하면 된다고 되어 있는데 어차피 버전 상관없이 로그출력될수있도록 설정이 맞춰져있다면 출력이 되어야 하는거잖아요..? 그래서 지금 진행하는 버전으로 시도해보고 싶어서요... 어떻게 해야 해결이 될까요..?https://drive.google.com/file/d/1XNU4xQnzjefJlXhUMkGRNKzQ_aT02-yJ/view?usp=drive_link해당 프로젝트의 공유파일링크입니다. 접근권한에 대해 docs내용에 해당 공유부여자의 이메일이 안나와있어 공유대상자를 추가하진 못했습니다. 댓글로 말씀주시면 바로 접근권한 부여드리도록 하겠습니다.