묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
다대일 양방향 질문입니다.
안녕하세요. 다대일 양방향 관계에 대해 질문 드립니다. Member 엔티티와 Team 엔티티가 다대일 양방향 맵핑 되어있고, package hellojpa; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity public class Member { @Id @GeneratedValue @Column(name= "MEMBER_ID") private Long id; private String name; private int age; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<Order>(); @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "TEAM_ID") private Team team; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setTeam(Team team) { this.team = team; team.getMembers().add(this); } } package hellojpa; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany(mappedBy = "team",fetch = FetchType.LAZY) private List<Member> members = new ArrayList<>(); public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public List<Member> getMembers() { return members; } public void setName(String name) { this.name = name; } } 팀에서 getMembers 메소드를 통하여 해당 팀에 소속된 멤버들을 조회할 때 public class hellojpa { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction transaction = em.getTransaction(); transaction.begin(); try { Member member =new Member(); member.setName("member1"); member.setAge(20); Team team = new Team(); team.setName("team a"); em.persist(team); member.setTeam(team); em.persist(member); Member member2 = new Member(); member2.setName("member222"); member2.setTeam(team); em.persist(member2); em.flush(); em.clear(); List<Member> memberList = em.find(Team.class, team.getId()).getMembers(); for (Member member1 : memberList) { System.out.println(member1.getName()); } } catch (Exception e) { transaction.rollback(); } finally { em.close(); } emf.close(); } } 저는 select member0_.MEMBER_ID members0_.TEAM_ID members0_.age members0_.name from Member members0_ where members0_.TEAM_ID=? 이러한 쿼리가 생성될 것으로 예상했습니다. 하지만 실제 쿼리가 나간것을 확인해보니 select members0_.TEAM_ID as team_id4_0_0_, members0_.MEMBER_ID as member_i1_0_0_, members0_.MEMBER_ID as member_i1_0_1_, members0_.age as age2_0_1_, members0_.name as name3_0_1_, members0_.TEAM_ID as team_id4_0_1_ from Member members0_ where members0_.TEAM_ID=? select문에서 특정 컬럼들이 중복되어 표시되는데(bold표시), 혹시 이렇게 표시되는게 정상적인 것인지 혹은 맵핑 과정에서 실수가 있었던지 궁금하여 질문 드립니다!
-
미해결혼자 공부하는 머신러닝+딥러닝
프로그램 소스코드
소스코드는 어디있나요? 뭔가 실행이 안되는데...
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
기획적인 질문!
안녕하세요 강사님! 최근에 수강신청하고 정말 열심히 듣고 있습니다. 강의 감사합니다! 저희가 배우는 주제와 조금 다른 질문일 수는 있지만 너무 궁금해서 질문 남깁니다! 제가 Coffee Talk 와 va-11 hall-a 같은 비주얼노벨 형식으로 중간중간 선택지와 간단한 게임 이벤트가 있는 쪽으로 개발 방향을 잡고 싶은데 짜인 텍스트를 계속 불러오면서 게임이 진행되기 위해서는 어떻게 해야 할까요? 자세한 방법을 알고 싶다기보다는 대략적인 설명만 들어도 충분할 것 같습니다!
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
강의자료 관련 문의드립니다.
안녕하세요. 혹시 강의에서 사용하셨던 ppt 자료들을 요청드려도 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
src 디렉토리도 안보이고 build.gradle도 안보이는것 같습니다 ㅠㅠ
안녕하십니까.무료 강의인데번거롭게 해드리는거같아 죄송합니다.. spring initializr 로 파일 생성후 (빌드툴 : 그레이들,언어: 자바, 스프링부트버전:2.4.3, 의존성:springweb 과 mustache를 선택하였습니다...ㅠ) 인텔리제이로 파일을 열었는데 위에 그림처럼 맨 왼쪽에 src 디렉토리가 안보이고 build.gradle 파일도 안보이는 것 같습니다ㅠㅠ며칠간 검색해보고 stackoverflow에서 하라는 것도 다 해봤는데잘 해결이안되는것 같습니다 . 어떻게 하면 src 디렉토리와 build.gradle파일이 보이게 할 수 있을까요?..
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
다음 강의 질문
보통 게임학원의 커리큘럼을 보면 c++ -> winapi를 하고난 후 DirectX강의를 하던데 다음강의가 나오기전에 winapi를 공부하는게 DirectX를 공부할 때 이해가 더 잘될까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
선생님 feature selection 파일 다운로드
선생님 ~ PerfectGuid수정ver01.zip 파일은 다운로드 버튼이 있어서 쉽게 받을 수 있었는데.. feature selection 파일은 클릭하면 다운로드 버튼이 없네요.. 깃을 사용해서 다운로드 받아야 하나요..? 깃허브 처음 사용해봐서 ..ㅠ 모르겠네요..
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
cnt 배열 크기 질문입니다.
안녕하세요. 정말 잘 보고 있습니다. 다름이 아니라 질문이 있습니다. cnt[50001] 배열의 크기가 설명 해주신대로 의하면 50,000까지 해야하므로, 0부터이니까 50,000으로 해야 더 정확한 것 아닐까 하여 여쭤봅니다. 50,001로 범위를 잡는다해서 문제는 안되겠지만 조금 더 정확성을 위해 여쭤봅니다! :D 답변 주시면 감사하겠습니다!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요 제로초님
강의잘듣고있습니다!!!.. 듣는도중 궁금한게 생겼는데 구글링을 해도 잘안나와서 질문드립니다! Button 의 html 태그에서 htmlType이 어떤 역활을 하는지 궁금합니다!
-
해결됨홍정모의 따라하며 배우는 C++
[13:30] 구조체 안에 구조체 초기화 하기
안녕하세요! 항상 좋은 강의 감사드립니다. struct Family{ Person me, mom, dad; }; 구조체 안에 구조체를 선언하고, 메인 함수에서 초기화를 하려고 하는데 Family my_family; //Family 구조체 변수 선언 my_family.mom{3.0, 150, 54, "my mom"};으로 초기화가 안되네요. (Person me{ 2.0, 100.0, 20, "John coder" }; 처럼요) my_family.mom.age = 54; 같이 개별로 초기화는 가능한 것 확인했는데 말이죠..
-
미해결WEB2 - Node.js
4:12 쯤에 주석처리
주석처리 어떻게 한 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이클립스 환경에선 gitignore 파일이 없는게 맞는건가요 ???
이클립스 환경에선 gitignore 파일이 없는게 맞는건가요 ???
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
에러 메세지가 사라지지 않습니다.
패스워드가 맞지 않는 경우나 유저가 없는 경우에 대한 메세지가 사라지지 않습니다. 어떤 이유일까요? 제 깃 주소입니다. 확인좀 부탁드려요 https://github.com/yjoung-7874/mern_stack
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
n_epochs 문의
강의에서 GridSearchCV를 하였을 때 최적 n_epochs 파라미터가 20으로 도출되었습니다. n_epochs가 행렬 분해 시 SGD를 얼마나 반복할지를 지정하는 파라미터로 알고 있는데, 그렇다면 이론적으로는 n_epochs가 높을수록 정확도가 높은게 아닌가요?? n_epochs가 낮아도 모델의 정확도가 높은 경우가 빈번하니 하이퍼파라미터로 n_epochs 최적값을 도출하는 과정을 만들었을거라고 생각됩니다. n_epochs가 낮아도 정확도 값이 높은 케이스는 어떤게 있나요?
-
미해결Vue로 Nodebird SNS 만들기
VueNodeBird - 2-5강 - 8분
PostCard.vue 에서 <template> <div> 코드들 </div> </template> 를 <template> <v-app> 코드들 </v-app> </template> 로 쳤는데 index.vue 에서 v-for(반복)이 안되고 1개만 나오더라구용.. 1. 대충 v-app 이 한번만 들어갈 수 있어서 그런 것 같은데 맞나요?? 2. v-app 은 그럼 component 에서는 안쓰나요?? 3. v-app 안에 무조건 써야하는 것 아닌가요?? (vuetify)
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
async, await, promise관련질문입니다
안녕하세요 강의대로 전부 만들고 추가로 책에서 추천해주신 기능들 구현하다가 약간의 문제가 생겨서 질문드립니다. 현재 만들던게 로그인일때랑 프로필변경할때 닉네임중복체크를하고 중복되면 사용자에게 알려주려고 합니다. 닉네임중복처리하는부분이 회원가입할때 프로필변경할때 2번사용이되서 따로 함수로 빼서 require해서 처리하려고 따로만들었는데요 코드보면 // 닉네임중복체크 : 중복시 true반환 exports.nicknameOverlapCheck = async (nick) => { const exUserNick = await User.findOne({ where: { nick } }); if (exUserNick) { return true; } return false; } 위와같이 만들었습니다. 처음 생각했던방식이 boolean반환형식이니까 사용하는곳에서 if(nicknameOverlapCheck(nick)){ res.redirect()....} 이런식으로사용하려고했는데 오류나서 확인해보니 async함수일경우에는 자동으로 return값이 Promise.resolve(true)이런식으로 감싸져서 리턴되기때문에 오류나서 aysnc를 뺄순없고 받는곳에서 .then(( bool)=>{ if(bool){return res.redirect() ... } }) 처리로 바꿔보니 이것도 콜백함수에서 빠져나가는 리턴이 되어버려서 현재는 그냥 사용하는곳에서 직접 적어줘서 처리를 하고 있습니다. 물론 두번밖에 반복안되서 크게 상관없지만 이런반복이 개인적으로 불편해서 함수로 만들어서 처리하고 싶습니다. 혹시 async함수에서 값을 함수밖으로 받아오는 좋은방법이 있을까요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
로그인 시 오류가 납니다.
이 강의 뒤를 봐야 에러가 안나는 건지는 모르겠는데 현재 length의 앞부분이 정의 되어 있지 않다는 아래와 같은 에러가 납니다. TypeError: Cannot read property 'length' of undefined 에러가 나는 곳은 UserProfile.js 부분의 <Card actions={[ <div key="twit">짹짹<br />{me.Posts.length}</div>, <div key="following">팔로잉<br />{me.Followings.length}</div>, <div key="follower">팔로워<br />{me.Followers.length}</div>, ]} > 이 부분인데요. me 부분을 보기위해서 리듀서의 user.js로 가면 아래와 같습니다... export const initialState = { logInLoading: false, // 로그인 시도중 logInDone: false, logInError: null, logOutLoading: false, // 로그아웃 시도중 logOutDone: false, logOutError: null, signUpLoading: false, // 회원가입 시도중 signUpDone: false, signUpError: null, me: null, signUpData: {}, loginData: {}, } export const LOG_IN_REQUEST = 'LOG_IN_REQUEST'; export const LOG_IN_SUCCESS = 'LOG_IN_SUCCESS'; export const LOG_IN_FAILURE = 'LOG_IN_FAILURE'; export const LOG_OUT_REQUEST = 'LOG_OUT_REQUEST'; export const LOG_OUT_SUCCESS = 'LOG_OUT_SUCCESS'; export const LOG_OUT_FAILURE = 'LOG_OUT_FAILURE'; export const SIGN_UP_REQUEST = 'SIGN_UP_REQUEST'; export const SIGN_UP_SUCCESS = 'SIGN_UP_SUCCESS'; export const SIGN_UP_FAILURE = 'SIGN_UP_FAILURE'; export const FOLLOW_REQUEST = 'FOLLOW_REQUEST'; export const FOLLOW_SUCCESS = 'FOLLOW_SUCCESS'; export const FOLLOW_FAILURE = 'FOLLOW_FAILURE'; export const UNFOLLOW_REQUEST = 'UNFOLLOW_REQUEST'; export const UNFOLLOW_SUCCESS = 'UNFOLLOW_SUCCESS'; export const UNFOLLOW_FAILURE = 'UNFOLLOW_FAILURE'; const dummyUser = (data) => ({ ...data, nickname: 'harry', id: 1, posts: [], Followings: [], Followers: [], }); export const loginRequestAction = (data) => { return { type: LOG_IN_REQUEST, data, } } export const logoutRequestAction = (data) => { return { type: LOG_OUT_REQUEST, data, } } const reducer = (state = initialState, action) => { switch (action.type) { case LOG_IN_REQUEST: console.log('reducer logIn') return { ...state, logInLoading: true, logInError: null, logInDone: false, }; case LOG_IN_SUCCESS: return { ...state, logInLoading: false, logInDone: true, me: dummyUser(action.data), }; case LOG_IN_FAILURE: return { ...state, logInLoading: false, logInError: action.error, }; case LOG_OUT_REQUEST: return { logOutLoading : true, logOutError : null, logOutDone : false, } case LOG_OUT_SUCCESS: return { logOutLoading : false, logOutDone : true, me : null, } case LOG_OUT_FAILURE: return { logOutLoading : false, logOutError : action.error, } case SIGN_UP_REQUEST: return { signUpLoading : true, signUpError : null, signUpDone : false, } case SIGN_UP_SUCCESS: return { signUpLoading : false, signUpDone : true, } case SIGN_UP_FAILURE: return { signUpLoading : false, signUpError : action.error, } default: return state; } }; export default reducer; 혹시 더미유저부분의 배열이 빈배열이기 때문인가 싶어서 그부분만 제로초님 깃허브 부분 복붙했는데 그래도 같은 에러가 발생합니다. 혹시몰라서 사가의 user.js도 넣겠습니다. import axios from 'axios' import { all, fork, put, delay, takeLatest } from 'redux-saga/effects'; import { LOG_IN_REQUEST, LOG_IN_SUCCESS, LOG_IN_FAILURE, LOG_OUT_REQUEST, LOG_OUT_SUCCESS, LOG_OUT_FAILURE, SIGN_UP_REQUEST, SIGN_UP_SUCCESS, SIGN_UP_FAILURE, } from '../reducers/user' function logInAPI(data) { return axios.post('/api/login', data) } function* logIn(action) { try { console.log('saga logIn') // const result = yield call(logInAPI, action.data) yield delay(1000); yield put({ type: LOG_IN_SUCCESS, data: action.data, }); } catch (err) { yield put({ // put은 디스패치 type: LOG_IN_FAILURE, error: err.response.data, }) } } function logOutAPI() { return axios.post('/api/logout') } function* logOut() { try { // const result = yield call(logOutAPI) yield delay(1000); yield put({ type: LOG_OUT_SUCCESS, // data: result.data }); } catch (err) { yield put({ // put은 디스패치 type: LOG_OUT_FAILURE, error: err.response.data, }) } } function signUpAPI() { return axios.post('/api/logout') } function* signUp() { try { // const result = yield call(signUpAPI) yield delay(1000); yield put({ type: SIGN_UP_SUCCESS, // data: result.data }); } catch (err) { yield put({ // put은 디스패치 type: SIGN_UP_FAILURE, error: err.response.data, }) } } function* watchLogIn() { yield takeLatest(LOG_IN_REQUEST, logIn); } function* watchLogOut() { yield takeLatest(LOG_OUT_REQUEST, logOut); } function* watchSignUp() { yield takeLatest(SIGN_UP_REQUEST, signUp); } export default function* userSaga() { yield all([ fork(watchLogIn), fork(watchLogOut), fork(watchLogOut), ]) }
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
각각 다른아이디로 로그인이 안되는데요..!!
안녕하세요 강사님!! 로컬호스트:3000으로 브라우저 두개 띄우고 알림테스트 하고 싶은데 한쪽에서 로그아웃하면 다른쪽에서도 로그아웃되고 다시 한쪽에서 로그인하면 다른쪽에서 또 로그인 되어서 강사님처럼 안되는데 무슨 차이가 있어서 안되는 것일까요..?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
이 강의에 상관없는 질문이지만 강사님한테 직접 여쭤볼 곳이 여기 밖에 없네요..ㅎ
안녕하세요 강사님이 올려주신 강의를 정말 잘 듣고 열심히 공부 중입니다, 다름이 아니라 강사님 강의 중에 TDD 강의가 있다는 걸 알게 되었습니다. 제가 사실 개인 프로젝트에 TDD을 적용할 계획인데 강사님이 올려주신 TDD 강의가 Node.js에 jest을 이용한 것처럼 보이는데요 제가 아직 TDD의 개념을 기본도 거의 없어서 제가 지금 진행 중인 react+express+mongoDB을 이용하고 있는 프로젝트에 강사님의 TDD 강의를 듣고 react에서도 jest을 활용할 수 있을지 확실치가 않네요. 혹시 TDD에 대한 조언 한 번 부탁드려도 될까요?
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
첨부파일 문의 (인터렉션과 애니메이션)
안녕하세요 데이먼 선생님! Axure도 멋진 툴이고 자세히 잘 알려주셔서 따라가기도 쉽네요. 좋은 강의 감사합니다. 인터렉션과 애니메이션 파트 시작부분에서 샘플파일을 공유해 주신다고 했는데 찾을수가 없는데요.. 어디서 확인할수 있을까요?