묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA의 양방향 연관관계 이해
안녕하세요. 1~2년 정도 지난 강의 같지만(최신 강의를 제가 먼저 들었던 터라.. 이번 것에는 영한님의 목소리 톤도 2020년 녹음에 비해 더 긴장되어 있음^^), 매우 유익하게 잘 배우고 있습니다. 특히 현 강의인 설계 부분은 제 관심 부분이기도 합니다. 참고로 저는 기본편 강의를 아직 듣지 않았습니다. JPA의 양방향 연관관계 개념 이해를 다음과 같이 서술해 보았는데 전체적인 맥락보다는 세부 이해에서 오류가 있다면 '감수'를 해 주시면 감사하겠습니다. 강의 진도에 급하게 필요한 것은 아니니 여유 있을 때 천천히 검토해 주십시오.~ (참조를 위해 문장마다 번호 붙였습니다) ------------- 관계형 DB에서는 한 테이블에 FK 잡으면 테이블(entity)간 연관관계를 정의하는 것은 그걸로 끝이다[1]. DBMS가 FK에 따른 제약조건을 관리해 준다[2]. JPA에서의 '양방향 연관관계'니 단방향이니 하는 것을 인간이 따지지는 않는 것 같다[3]. JPA에서는 양방향 연관관계라는 게 있고 이를 구현키 위해 양쪽 entities에서 각각 서로 상대방을 참조한다[4]. 그 양쪽의 참조변수 중 어느 하나에 우선순위를 두고 그것만 수정하는 식으로 관리된다[5]. JPA가 자동 관리에 개입하여 다른 쪽의 참조변수를 필요시 자동 갱신하며 인간(이 짠 코드)은 readonly로 접근한다[6]. 다시 말해, DB 테이블에서는 FK를 가진 측에서 FK만 변경하면 참조관계가 정리되는데, JPA는 구조상 '양방향 연관관계'라는 것을 정의할 수 밖에 없었던 것이고(정말?)[7], 그 구조 속에서 참조변수 갱신의 혼동을 막기 위해 주도권을 어느 한 쪽에 부여하는 방식을 채용한다[8].
-
해결됨스프링 핵심 원리 - 기본편
TestBean 클래스 관련 질문입니다.
ApplicationContext ac = new AnnotationConfigApplicationContext(TestBean.class);해당 코드를 통해서 TestBean 클래스가 컨테이너에 빈으로 등록이 되었으나,TestBean 클래스 내부의 @Autowired 어노테이션의 warning을 살펴보니 **Autowired members must be defined in valid Spring bean** 라는 경고 문구를 볼 수 있었습니다.해당 내용은, 자동의존주입을 받기 위해서는 현재 클래스 또한 스프링 빈으로 등록되어 있어야 한다는 의미로 해석했습니다. 결론은, 이러한 경고가 뜨는 이유를 잘 모르겠습니다.ide가 이 시점에 경고를 잡아주지 못하는 것인가요? 한가지 더 질문을 드리자면,TestBean 클래스에 @Configuration 애노테이션을 붙이게 되면, @Autowiredpublic void setNoBean2(@Nullable Member noBean2) { System.out.println("noBean2 = " + noBean2);}해당 코드에서 noBean2 부분에 빨간 밑줄이 생깁니다. (Could not autowire. No beans of 'Member' type found.)Member 타입의 빈을 찾을 수 없기 때문에 자동주입을 할 수 없다는 의미인데, 당연히 Member는 빈이 아니지만 왜 @Configuration 애노테이션을 붙였을 때 빨간 밑줄이 뜨는지 이유가 궁금합니다. @Autowiredpublic void setNoBean1(Member noBean1) { System.out.println("noBean1 = " + noBean1);}해당 코드 역시 @Configuration 애노테이션이 붙었을 때 noBean1에 빨간 밑줄이 뜹니다.
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
출력 화면 질문입니다!
안녕하세요! 질 좋은 강의에 우선 감사인사드립니다. 다름이 아니라 itertools의 메서드를 사용할 때 사소한 출력 화면 질문인데요! 위와 같이 코드 라인 97번을 print로 출력하면 98~99라인의 코드가 왜 출력되지 않는 걸까요..? 그래서 밑의 사진과 같이 97번을 주석 처리하니 98~99번 라인의 print가 잘 출력됩니다.. 혹시 이유가 무엇인지 알 수 있을까요..?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
터미널 명령어 질문입니다.
중급 강의 vue cli로 프로젝트 생성하기 2분 40초 쯤에 다시 돌아가라고 하셨는데 처음처럼 파일 위치와 커서 위치가 나오도록 동영상처럼 다시 돌아가려면 어떻게 해야 하는 건가요?단축키가 있는건가요? 선택지에서 빠져나가는 방법을 모르겠어서 그냥 아예 처음부터 터미널 실행해서 새 프로젝트를 생성하기는 했는데 궁금하네요...
-
미해결딥러닝 웹서비스 프로젝트 1 - 기본편. Object Detect 불량품 판별
궁금한사항 올립니다.
항상 좋은 강의 감사합니다. 강의를 듣다보니 궁금한 사항이 생겨 질문 드립니다. 1. 딥러닝 모델 yolo이외의 모델로 학습한 모델일 경우(ex:NetinaNet, Maks R-CNN) 우선 yolo와 NetinaNet경우는 annotation파일을 xml로 만들어지고, Mask R CNN경우는 annotation파일이 json파일로 만들어 지는데(github경우) 이 경우 main.py에서 어떤 부분을 변경해야 다양한 딥러닝 모델을 활용해서 모바일 앱으로 사용 할 수 있습니까? 2. base64방식으로 변경하는 부분이 이해가 잘 되지 않아서 그럽니다. 혹시 참조할 만한 자료나 영상 추천해 줄 수 있습니까? 감사 합니다.
-
미해결스프링 핵심 원리 - 기본편
Oder 클래스 질문입니다.
Order를 생성할 때, Order 클래스의 생성자를 이용하는 것이 아니라, OrderService의 createOrder로 생성하는 이유는 무엇인가요? Member 인스턴스의 경우는 Member클래스의 생성자를 이용해서 생성하는데, Order 클래스의 경우는 바로 Order클래스의 생성자를 이용하지 않는 이유가 궁금합니다. 감사합니다.
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
게시판 pagination에 대해 질문 드립니다.
안녕하세요 '게시판 리스트' 에 pagination 부분에 질문이 있어 글을 남깁니다. url_for 함수를 사용하여 pagination에 링크를 걸었습니다. block_size 는 10으로 했습니다. 그런데 문제는 1페이지는 괜찮은데 2페이지를 클릭하면 block_size가 이상하게 바뀝니다. 1페이지1 2 3 4 5 6 7 8 9 10 2페이지 클릭11 12 13 14 15 16 17 18 19 20 3페이지를 누르면21 22 23 24 25 26 27 28 29 30 이런식으로 바뀌는데 무엇이 문제인가요??
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
질문에 대한 객관식 답변에 대한 후속 질문 보기
질문에 대한 객관식 답변을 라디오 버튼으로 설정하고, 특정 답변을 선택하면 후속 질문이 보이도록 하려면 어떻게 해야 할까요? 제가 만들어 놓은 프로토타입을 예를 들면, [직업]을 묻는 질문에서 직장인, 소상공인, 스타트업 창업자를 선택하면 후속 질문 3가지 내용이 보이는 형식을 만들고 싶어요.. https://l9mgo4.axshare.com
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findById와 findByName의 차이?
안녕하세요, 강사님 강의영상에서보시면 findById에서는 em.find를 사용하시고 findByName에서는 em.creqteQuery를 사용하셨는데요. byId나 byName이나 하나의 컬럼 값으로 검색하는 함수인 것은 똑같은데 왜 내부에서 em을 서로 다른 방식으로 사용하는 것인지 궁금합니다. 어떤 차이가 있는 것인가요? 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
13:39
13:39 시간대에서 public 을 두 줄에 걸쳐 한꺼번에 입력 하셨는데 어떻게 하신건지 알 수 있을까요? 편할 것 같고 신기해서요 ㅎㅎ.. 단축키가 있는건가요?
-
미해결대세는 쿠버네티스 (초급~중급편)
docker log driver
docker log driver설정파일은 마스터에 있는건가요? 그리고 docker container로그파일은 각 노드에 있구요? aws같은 경우는 master노드에 들어갈수 없는데 그럼 저 daemon.json파일은 볼수 없는건가요?
-
미해결타입스크립트 입문 - 기초부터 실전까지
인덱싱과 딕셔너리 패턴이 어떤 차이인지 모르겠는데요.
// 인덱싱 interface StringArray { [index: number]: string; } var arr = ['a', 'b', 'c']; arr[0]; // 'a' // 딕셔너리 패턴 interface StringRegexDictionary { [key: string]: RegExp } var obj: StringRegexDictionary = { sth: /abc/, cssFile: /\.css$/, jsFile: /\.css$/, } 위의 코드처럼 인덱싱과 딕셔너리 패턴이 다른게 없어보이는데요. 어떤 차이가 있는건가요? Array에 접근할떄는 인덱싱, Object에 접근할때는 딕셔너리 패턴이라고 두신건가요?
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
중앙대학교 실습 관련
중앙대학교 나온 배우 실습 관련 질문입니다. actor.drop_indexes() actor.create_index([('학교', pymongo.TEXT)]) docs = actor.find({'$text': {'$search' : '중앙대학교'}}).sort('흥행지수', pymongo.DESCENDING).limit(10) for doc in docs: print(doc) 인덱스 설정하여 위와 같이 실행시켰는데 강사님이 진행하신 코드와 결과치가 조금 다르게 나오네요 위 형광펜 칠한 부분의 검색이 index로 했을 때는 나오지 않아서 혹시 무엇때문인지 질문드립니다.
-
미해결타입스크립트 입문 - 기초부터 실전까지
안녕하세요. 핸드북에서 딕셔너리 패턴에 대한 내용이 빠진듯해요!
안녕하세요. 핸드북에서 딕셔너리 패턴에 대한 내용이 빠진듯해요! 혹시 이 부분도 같이 추가 부탁드려도 될까요?
-
미해결빠르게 git - 핵심만 골라 배우는 Git/Github
강사님 github push 질문이 있습니다!.
강사님 강의에도 나와있듯이 master -> main 으로 이제 바뀐다고 하셨는데 강사님 강의에는 git remote add origin https://github.com/닉네임/Repository이름.git git push -u origin master제 깃헙 안내 페이지에는 git remote add origin https://github.com/닉네임/Repository이름.git git branch -M main git push -u origin main이렇게 나와있는데요 !! 제 깃헙 안내 페이지 데로 따라하면 브랜치를 새로 따서 넣는 형태 같은데 이렇게 하는게 맞나요 ..?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
안녕하세요 질문있습니다.
new : true 를 해도 userInfo가 null로 날아옵니다. 이유가 무엇일까요? 글 수정 : 애초에 findOneAndUpdate 에 userInfo가 null이 나옵니다..ㅜㅜㅜ하... if (duplicate) { User.findOneAndUpdate( { _id: req.user_id, "cart.id": req.body.productId }, { $inc: { "cart.$.quantity": 1 } }, // quantity 1만큼 올리기 { new: true }, //업데이트 된 정보를 받기 위해 하는 옵션 (err, userInfo) => { if (err) return res.status(400).json({ success: false, err }); res.status(200).send(userInfo.cart); } ); } else {
-
미해결C 와 C++ 을 동시에 배워보자 - 두들낙서의 C/C++
2차원 배열 포인터 연습 해보는 중에
백신 프로그램이 돌아가서 프로그램이 안 돌아가게 막아버려요 ㅠ 어떡하죠 백신 삭제해야하나
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findById 질문
안녕하세요 강사님, 후반부의 DB 접근기술이 어려워서 여러번 돌려보고 있네요 ㅠㅠ.. 오늘도 질문 하나 드리겠습니다. findById에서 findAny()로 값을 찾아내는 이유는 id값이 PK이기 때문에 중복값이 있을 수 없으니 결과가 나오는 순간 그 결과가 유일한 녀석이라서 findAny()를 사용한 것이라고 생각합니다. 그런데 결과가 어차피 리스트가 아닌 하나의 객체일 뿐이라면.. 처음부터 querForObject()로 하나의 객체를 받아서 바로 반환하는 편이 좋지 않나요? 어차피 pk인 id를 식별자로 사용하면 하나의 객체만 나올 테니까.. 굳이 query()로 리스트를 반환받아서 리스트에서 해당 객체를 찾는 수고를 한 번 더 거치는 이유가 있을까요? 감사합니다!
-
미해결객체 지향 프로그래밍 입문
NotifierFactory 를 또 추상화 한 이유가 궁금합니다
어떠한 이점으로 NotifierFactory을 또 추상화 작업 한 것인가요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
구글 클라우드 무료 평가판 GPU 사용 여부
안녕하세요 강의에서 구글 클라우드 무료 평가판에서 GPU 사용이 금지되어, Colab으로 진행하라고 말씀하셨는데, 혹시 현재도 금지되어, Colab을 이용해서 하면되는지 여쭤보고 싶습니다.