묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
주인이 아닌 관계에서 읽기 질문
안녕하세요 강사님, 수강 중 궁금증이 생겨 질문을 남깁니다. 지금까지 설명해주신 연관관계 주인이 왜 존재해야 하는지, 또 어떤 식으로 주인을 설정해야 하는지는 모두 이해했습니다. 설명하신 내용 중에 아래와 같은 내용이 있었는데요. "연관관계 주인이 아닌 관계로는 읽기 기능만 사용이 가능하다. 그 외의 모든 관리는 관계의 주인이 처리한다." 이와 관련하여 팀에 새로운 멤버를 추가하고 싶을 때 team.getMembers().add(member)를 하면 DB에 반영되지 않고, member.setTeam(team)을 해야만 제대로 반영되는 부분까지 이해했습니다. 그런데, member.setTeam(team)으로 멤버가 팀을 가지도록 하고, 트랜잭션 커밋까지 완료해 해당 내용이 DB에 정상적으로 반영이 되었다면.. 그 이후에 따로 team.getMembers().add(member)를 하지 않아도 Team이 가지고있는 List<Member> members에서 방금 추가한 member를 조회할 수 있어야 하는 것이 맞지 않나요? 이를 확인하기 위해 아래와 같은 코드로 실습을 진행하였습니다. try { Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setName("MemberA"); member.setTeam(team); em.persist(member); tx.commit(); Team findTeam = em.find(Team.class, member.getTeam().getId()); List<Member> members = findTeam.getMembers(); for(Member m : members) { System.out.println("Name : " + m.getName()); }}catch(Exception e) { tx.rollback();}finally { em.close();} team을 생성하고 member를 생성하여 member에 team을 할당해줬습니다. em.persist를 통해 해당 객체들을 영속상태로 만들었고 tx.commit으로 flush처리까지 해주었습니다. 하지만 Name : MemberA는 출력되지 않습니다. 물론 DB에는 정상적으로 저장되었더라도 메모리에는 저장되지 않았기 때문에 조회가 안 된다고 말씀하시기는 했지만.. 이 코드의 경우에는 Team과 Member가 정상적으로 DB에 적용된 후에 em.find()를 통해 새롭게 받아온 Team으로 조회한 것인데.. 왜 제대로 조회되지 않는 것인지 모르겠습니다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 추가 질문 하나만 더 드리겠습니다. 관계의 주인이 아닌 List<Member> members는 읽기 전용으로만 사용하기 때문에 members.add(member)를 아무리 해도 DB에 영향을 끼치지는 않겠지만.. 쓰기 권한이 없는 녀석에게 쓰기 메서드가(list.add()) 존재하는 것 자체만으로 어떠한 문제가 야기될 수도 있지는 않을지 궁금합니다. 이 부분에 대해서도 함께 답변해주시면 감사하겠습니다.
-
미해결밑바닥 부터 시작하는 머신러닝 입문
Python 코드 실행을 위한 코드 다운로드 관련
상세한 강의와 설명에 감사드립니다. 강의 내용 중에 코드 설명을 해 주시는 Python 코드를 내려 받을 수 있는 Github 같은 곳이 있으면 안내 부탁 드리겠습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
POST 요청에 멱등성 적용에 대하여
최근에 결제관련 개발을 하던중에, 클라이언트사의 강력한 요청으로 POST 요청에 대해서 멱등성(Idempotency)을 보장해준 경우가 있었는데요. 클라이언트사의 특수한?(실제 사유는 설명해주지 않음) 환경으로 인해, 동일한 요청이 중복해서 발생할 수 있기 때문에, 요청 Body내용이 완전히 동일한 경우에는 두번이든 천번이든 동일하게 응답 해달라는 요구가 있었습니다. 물론 POST 요청으로 인해서 일어나는 비즈니스 로직은 수행하지 않고 동일 응답만 달라는 요구사항이었는데요. 이런 경우엔 POST에도 멱등성이 적용된 것으로 봐야할까요?
-
미해결대세는 쿠버네티스 (초급~중급편)
안녕하세요 강사님. pv,pvc 생성 후 pod 생성 시 에러가 발생합니다.
안녕하세요 강사님. 강사님의 강의를 보고 따라서 실습하고 있습니다. 아래는 pv,pvc,pod 설정 내용 yaml 파일내용입니다. 1. pv 설정. apiVersion: v1 kind: PersistentVolume metadata: name: pv-01 labels: pv: pv-01 spec: capacity: storage: 10G accessModes: - ReadWriteOnce local: path: /nfs nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - {key: kubernetes.io/hostname, operator: In, values: [worker1]} 2. pvc 설정 apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-01 spec: accessModes: - ReadWriteOnce resources: requests: storage: 10G storageClassName: "standard" selector: matchLabels: pv: pv-01 3. pod 생성 apiVersion: v1 kind: Pod metadata: name: pod-volume-test spec: containers: - name: container image: kubetm/init volumeMounts: - name: pvc-pv mountPath: /mysql volumes: - name : pvc-pv persistentVolumeClaim: claimName: pvc-01 4. 에러 내용. kubectl desctibe po pod-volume-test Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 58s (x8 over 9m54s) default-scheduler 0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims. kubectl describe pvc pvc-01 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal FailedBinding 4m11s (x42 over 14m) persistentvolume-controller no persistent volumes available for this claim and no storage class is set 어떤 부분이 잘못되었을까요? ㅠㅠ 노드 정보는 아래와 같습니다. kubectl get nodes NAME STATUS ROLES AGE VERSION master Ready master 85d v1.19.3 worker1 Ready <none> 85d v1.19.3 worker2 Ready <none> 85d v1.19.3 바쁘신 와중에 질문 드려 죄송합니다. 그런데 도저히 원인을 모르겠습니다...
-
미해결예제로 살펴보는 PyQt Tutorial
qt5 질문 드립니다.
1. 테이블에 간격을 엄청 작게 조정이 불가능한가요?최소컬럼 너비가 있네요. 소수점을오 적으면 아예 안보이고.. 1은 제가 원하는 컬럼사이즈가 아니라서 구현을 못하고 있습니다.# self.tableWidget.setColumnWidth(14, 1) <--- 1보다 작게 거의 붙어있을 정도로 수정이 가능할까요?2. 테이블 폰트,배경은 색 변경 성공했는데요. 셀의 테두리 색은 변경을 못하겠습니다., 혹시 아시는 고수님 계시나요..?self.tableWidget.item(i, j).setForeground(QBrush(QColor(0, 0, 255))) - 글자 색 변경self.tableWidget.item(i, j).setBackground(QColor(200, 200, 200)) - 배경 변경테두리 변경은..? ㅜㅜ3. 셀 정렬 문의, 셀을 만들면서 아래 좌표를 찍으면서 하나씩 정렬을 하고 있습니다.혹시 그냥 컬럼 자체를 정렬을 시키는 방법이 있을까요?self.tableWidget.item(0, 0).setTextAlignment(Qt.AlignRight | Qt.AlignVCenter)4. 테이블에 숫자는 안들어가나요? 안들어가서 str( ) 문자화 시켜서 넣고 있습니다.. 원래 이런가요..?self.tableWidget.setItem(0, 0, QTableWidgetItem(str("1234")) ... 숫자는 못넣나요..? 구글링을 해봐도 못 찾고 있습니다...도움 부탁드립니다.
-
해결됨코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
안녕하세요. 질문입니다.
안녕하세요. 강의 사서 잘 보고 있습니다. 혹시 강의 문제 내용은 직접 만드시는 건가요? 리트코드 하신거 처럼 강의 문제 있으면 풀어보려 했는데 혹시 있나 해서 질문 드립니다. 그리고 강의 추가내용들은 언제 올라올까요.ㅠ 다른 강의들도 빨리 보고 싶네요.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
콘솔창에는 TypeError, 홈페이지에는 Post 500 에러가 뜹니다.
홈페이지에서는 login 버튼을 누르면 등록되어 있든, 아니든 post 500에러가 뜹니다. 또한 콘솔창에는 Type에러가 뜹니다. 오류 메세지에서 email에 대한 정의가 되어있지 않다는 내용같아서 그 부분과 관련된 코드들도 다시 보고, 선생님 코드랑 비교해봐도 다른 부분은 없는 것 같은데 왜 오류가 나는지 잘 모르겠습니다. 콘솔창에서 오류가 발생한다고 예상되는 부분 코드입니다 (index.js:48번줄)
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
BOOLEAN
안녕하세요! 게시물에 대해 BOOLEAN 타입을 적용하고 싶은데, 저렇게 설정했을 때 디비에 true나 false값이 넣어지지 않고 계속해서 null이 뜹니다! 혹시 Boolean 뒤에 초기값을 설정해야 하나요?
-
미해결초보를 위한 도커 안내서
docker-compose를 통한 네트워크 구성 질문
기존에 docker에서 두 컨테이너를 연결할 때 --link 명령어를 사용했는데 예제를 보니까 환경변수 만으로 컨테이너를 연결하고 있습니다. 이것이 어떻게 가능한지 궁금합니다.
-
미해결Swift 언어로 배우는 iOS 벽돌깨기 게임
GameViewController에서 오류가 발생 합니다.
첨부된 사진과 같이 다른 부분에서 코드 쓸때는 문제가 없었는데 GameViewController 쪽에서 let scene 이후로 scene에 대한 값이 불러오기? 가 안된다고 해야 할까요? 보통은 sce까지만 쳐도 관련된 코드가 보여지는데 연결이 안되는 느낌입니다. 첨부 파일과 같이 실제로, 연결이 되어 있지 않아서 코드가 작성이 안되는 상태인데 딱히 오탈자는 없는거 같은데 이런 문제가 생기는 이유가 뭘까요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
클래스 관련 질문있습니다.
실무에서도 노드로 서버작성할때, 클래스 문법을 많이 사용하나요?? 계속 함수형으로만 연습해보다가 클래스 써보려고 하니까 쉬운일이 아니네요..!
-
미해결홍정모의 따라하며 배우는 C++
똑같이 쳤는데 결과가 다르게 나와요
강의 마지막에 b.getThis()->print(); ref.getThis()->print(); 이 부분에서 출력하면 b와 ref로 받은 출력값은 각각 B와 A가 나와야 하는데, 저는 B, B가 나옵니다..ㅜ 이유가 멀까요?
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
데이터 원본 초기화 불가 메시지
안녕하세요? 3강에서 <외국인 순매수> 표 로드시, [데이터 원본을 초기화할 수 없습니다. 데이터베이스 서버를 확인하거나 데이터베이스 관리자에게 문의하십시오. 외부 데이터를 사용할 수 있는지 확인하고 작업을 다시 수행하십시오. 이 메시지가 다시 표시되면 데이터베이스에 연결할 새 데이터 원본을 만드십시오.] 라고 나오는데 어떤 문제가 있는지 파악하는대에 어려움이 있습니다. 어떻게 해야 할까요?
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
소스파일 사라졌어요ㅜ
이렇게 소스파일이 사라진 이유가 뭘까요? 다시 코드를 작성하면 되긴하는데 이유를 알고싶습니다! 파일관리할때도 알고있으면 좋을거같네요ㅎㅎ
-
미해결인터랙티브 웹 개발 제대로 시작하기
이 강의 자료는 어디있나요?
궁금합니다
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
순차적 증가시키는 데이터 필드와 마지막 데이터를 find하는 법
강의보다가 궁금한점이 있어 문의드립니다. 데이터를 push나 save 할 때마다 인덱스를 넣고 싶은경우는 어떻게 하나요? 순차적으로 번호를 주고 싶은데 궁금합니다. 쉽게말해서 자동증가필드? 를 만들고 싶습니다. 또 다른 질문 하나는, 맨 마지막의 데이터와 맨 처음의 데이터? 이게 맞는 의미인지 모르겠는데 시간순서로 보았을때 맨처음 데이터와 맨 마지막 데이터를 얻고 싶을때는 어떻게 찾아야하나요? 요약 정리. 1. 자동증가필드? index가 ++ 순차적으로 증가시키는 방법 2. 시간순서에 의거하여 맨처음과 마지막 데이트를 얻는 방법. 두가지 질문입니다.
-
미해결PHP 7+ 프로그래밍
foo2 관련 질문 드립니다.
foo2 에서 static $count = 0 부분이 함수가 실행 될 때마다 실행 되어서 초기화 될 것 같은데 왜 초기화가 안되는 것 인가욤?
-
미해결웹 게임을 만들며 배우는 React
dist 폴더 생성 문의
이 설정의 경우도 dist 폴더가 생성되어야 하는게 맞는건가요? const path = require('path');const RefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin')module.exports = { name: 'numberbaseball-setting', mode: 'development', // 실서비스: production devtool: 'eval', // 실서비스: hidden-source-map resolve: { extensions: ['.js', '.jsx'] }, entry: { // 입력 app: ['./client'], }, module: { rules: [{ test: /\.jsx?$/, loader: 'babel-loader', options: { presets: [ ['@babel/preset-env', { targets: { browsers: ['> 5% in KR'], // browserslist }, debug: true, }], '@babel/preset-react', ], plugins: [ '@babel/plugin-proposal-class-properties', 'react-refresh/babel', ], }, }], }, plugins: [ new RefreshWebpackPlugin() ], // 출력 output: { // 실제 경로 path: path.join(__dirname, 'dist'), filename: 'app.js', publicPath: '/dist/', // app.use('/dist', express.static(__dirname, 'dist') }, devServer: { publicPath: '/dist/', hot: true, },}; { "name": "numberbaseball", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev": "webpack serve --env development" }, "author": "", "license": "MIT", "dependencies": { "react": "^17.0.1", "react-dom": "^17.0.1" }, "devDependencies": { "@babel/core": "^7.12.16", "@babel/plugin-proposal-class-properties": "^7.12.13", "@babel/preset-env": "^7.12.16", "@babel/preset-react": "^7.12.13", "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3", "babel-loader": "^8.2.2", "react-refresh": "^0.9.0", "webpack": "^5.22.0", "webpack-cli": "^4.5.0", "webpack-dev-server": "^3.11.2" }} 제 경우는 위와 같은 설정에서 dist 폴더가 생성이 안되어서 아래와 같이 조치를 했지만 다음과 같은 에러가 발생합니다. webpack.config.js 상단에 const webpack = require('webpack'); 를 추가해주고 plugins: [ new RefreshWebpackPlugin(), new webpack.LoaderOptionsPlugin({ debug: true }),], package.json에 "scripts": { "dev": "webpack serve --env development", "webpack": "webpack"}, 를 추가해줘서 npm run webpack을 실행해보았는데요. 다음과 같은 에러가 발생해서 문의 남겨봅니다. (npm run dev에는 문제가 없습니다.) [Browserslist] Could not parse C:\Users\프로젝트\react-webgame\package.json. Ignoring it. internal/crypto/hash.js:58 throw new ERR_INVALID_ARG_TYPE('data', ^ TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be one of type string, TypedArray, or DataView. Received type undefined at Hash.update (internal/crypto/hash.js:58:11) at BulkUpdateDecorator.update (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\webpack\lib\util\createHash.js:51:14) at NormalModule.updateHash (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\webpack\lib\NormalModule.js:1129:8) at Compilation._createModuleHash (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\webpack\lib\Compilation.js:3085:10) at Compilation.createModuleHashes (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\webpack\lib\Compilation.js:3057:10) at hooks.optimizeChunkModules.callAsync.err (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\webpack\lib\Compilation.js:2334:11) at Hook.eval [as callAsync] (eval at create (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1) at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\tapable\lib\Hook.js:18:14) at hooks.optimizeTree.callAsync.err (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\webpack\lib\Compilation.js:2294:36) at Hook.eval [as callAsync] (eval at create (C:\Users\프로젝트\react-webgame\숫자야구\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1) npm ERR! code 1 npm ERR! path C:\Users\프로젝트\react-webgame\숫자야구 npm ERR! command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c webpack npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\rlawj\AppData\Local\npm-cache\_logs\2021-02-21T06_35_11_452Z-debug.log [Browserslist] Could not parse ~~ 부분은 신경 안써줘도 되는지도 궁금합니다. presets: [ ['@babel/preset-env', { targets: { browsers: ['> 1% in KR'], // browserslist }, debug: true, }], '@babel/preset-react', ],
-
미해결언리얼 엔진4 (Unreal Engine) 3D 횡스크롤 게임 만들기
몬스터 버그 수정 관련 질문드립니다.
몬스터, 보스를 공격전에 Set Actor Rotate를 추가해서 플레이어가 뒤로 이동했을때 따라가서 때리게 수정하셨는데 이때 플레이어가 점프를하면 몬스터가 플레이어가 점프했던 하늘을 바라보게 되는 버그가 있습니다. 이런 경우에는 어떻게 수정해야 하나요?
-
미해결[기초스피치] 14년차 아나운서에게 배우는 말 잘하는 방법!
ㅈ 발음
안녕하세요~ 강의 잘 듣고 있습니다. 다름이 아니라 따로 발음을 하면 ㅈ발음이 괜찮은 것 같은데 원고를 읽고 녹음한 후 들어보면 ㅈ발음이 약간 혀짧은 소리가 납니다. ㅠㅠ ㄷ과 ㅈ 신경써서 하는데 왜 혀짧은 소리가 나는걸까요?