묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 주인 위배?
안녕하세요. 강사님. 강의 너무 잘 듣고 있습니다. 이번 Cascade, OrphanRemoval 강의를 들으면서 떠오르는 의문점이 하나 있어 질문 드립니다. 이전 "연관관계 주인" 강의에서 외례키가 있는 쪽이 주인이 되고 mappedBy를 선언한 쪽은 readOnly로 사용하는 것이 좋다고 말씀하셨는데요. Cascade와 OrphanRemoval 기능을 사용하게 되면 mappedBy를 선언한 쪽에서 자식을 관리하게 되면서 연관관계 주인이 뒤바뀌는 느낌이 들었습니다. 좋은 기능인 것 같지만 이렇게 사용하면 부모를 조작했는데 자식과 관련된 Query가 나가게 되므로 혼돈이 생기진 않을까 하는 생각이 들었습니다. 제가 잘못 이해하고 있는 것인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName 관련 에러
package hello.hellospring.repository;import hello.hellospring.domain.Member;import org.junit.jupiter.api.Assertions;import org.junit.jupiter.api.Test;import static org.assertj.core.api.Assertions.*;public class MemoryMemberRepositoryTest { MemberRepository repository = new MemoryMemberRepository(); @Test public void save() { Member member = new Member(); member.setName("ianstream"); repository.save(member); Member result = repository.findById(member.getId()).get(); Assertions.assertEquals(result, member); assertThat(member).isEqualTo(result); } @Test public void findByName() { Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); // member1 을 찾으면 에러가 나는데 왜일까..? Member result = repository.findByName("spring2").get(); assertThat(result).isEqualTo(member2); }} 위 코드로 테스트 하면 에러가 안납니다. 그런데 아래와 같이 spring1 을 찾으면 에러가 나네요.. package hello.hellospring.repository;import hello.hellospring.domain.Member;import org.junit.jupiter.api.Assertions;import org.junit.jupiter.api.Test;import static org.assertj.core.api.Assertions.*;public class MemoryMemberRepositoryTest { MemberRepository repository = new MemoryMemberRepository(); @Test public void save() { Member member = new Member(); member.setName("ianstream"); repository.save(member); Member result = repository.findById(member.getId()).get(); Assertions.assertEquals(result, member); assertThat(member).isEqualTo(result); } @Test public void findByName() { Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); // member1 을 찾으면 에러가 나는데 왜일까..? Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); }} member1 과 비교하도록 수정도 했는데요.. 아래와 같이 나옵니다 무슨 이유일까요..?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
질문있습니다
삭제된 글입니다
-
미해결홍정모의 따라하며 배우는 C언어
비트연산자질문입니다
#include<stdio.h> int main(void) { printf("AND:%8X\n",0x9&0xA); printf("OR : %8X\n", 0x9 | 0xA); printf(:XOR : %08X\n", 0x9 ^ 0xA); printf("NOT : &08X\n", -0x9): } 출력값이 AND : 00000008 OR : 0000000B XOR : 00000003 NOT : FFFFFF6 로 나오는데, 이유를 알 수 있을까요 ? 비트연산자 논리연산이 이해가 안가네요 ㅠㅠ
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
테스트 커버리지 파일 이름
npm run coverage를 통해 테스트 커버리지를 이용하면 위 사진과 같이 파일 이름이 ...으로 나오는 현상이 계속 발생하는데 혹시 해결 방법이 있을까요???
-
미해결Vue.js + TypeScript 완벽 가이드
두 번째 리포지토리 권한 부탁드립니다.
github: msjulyone@gmail.com email: msjulyone@gmail.com
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
서블릿에 대해서 질문있습니다!
서블릿이 싱글톤으로 하나만 생성된다는 것은 알겠는데 만약 url로 /hello, /spring 이렇게 다르게 요청이 올 경우는 싱글톤 서블릿 2개 가 생성된다고 보면 되나요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요
안녕하세요 선생님 ㅎㅎ 프로그래머스 문제를 한번 풀어봤는데 궁금한게 생겼습니다. 프로그래머스는 solution이라는 함수에서 정답을 return 해야 합니다. 저희는 DFS 문제 풀이 할때 main에 있는 변수에 직접 접근 가능 했습니다. 하지만, 프로그래머스에서는 DFS함수에서 solution함수 변수에 접근 불가능 합니다. 이럴 경우, DFS함수 호출시 매개변수로 넘겨 주는게 맞나요?
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
새로고침시 로그인 안되면
혹시나 새로고침시 토큰값은 있는데 페이지가 초기화 되시는분들 saga에서 headers 부분이 대문자 Headers로 되어있지 않나 확인해보세요 소문자로 변경시 유지됩니다. 그러나 원인은 정확히 모르겠네요.. 다른 건 대문자도 동작하던데 아마도 제가 생각하는 원인은 jwt내에서 대문자만 허용하는것 같은데, 강사님 알려주세용
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리액트 개발 스펙에 대해 질문 있습니다.
실무에서 프론트 엔드 개발할때 next js 리엑트 리덕스 리덕스 사가 antd immer , swr 이정도는 그대로 사용해도 되나요? 그리고 ts 도 적용하는게 좋겠죠? 이외에 어떤 스펙으로 개발하는게 추천할만한지 알려주시면 감사요
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
build 후 start 명령어 후 웹 실행시 속도
삭제된 글입니다
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
css 질문
안녕하세요. start.js 파일을 보면 begin함수에 main.style.WebkitAnimation 및 main.style.animation을 사용하셨습니다. 조금 이해가 안가는데 이 코드의 뜻이 main변수에 style을 적용할건데 animation이라는 이름의 css파일을 적용해라. 라는 뜻이 되는건가요?
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
파일 세분화에 관하여
안녕하세요. 궁금한 것이 있어서 질문 드립니다. css나 javascript 코드를 작성하실 때 파일은 굉장히 세분화해서 적용을 하시던데 (ex. animation.css / default.css / main.css / qna.css 등등) 이렇게 파일을 세분화해서 적용을 하면 어떤 점에서 더 좋은건가요? 유지보수 때문인가요? 그리고 javaScript 또한 index.html에 직접 작성하는 것이 아니라 파일을 따로 만들어서 링크를 적용하시는 것도 유지보수를 위해서 이렇게 하시는건가요? 감사합니다.
-
미해결홍정모의 따라하며 배우는 C++
int **mat = new int *[row] 제가 잘 이해한거 맞나요?
int **mat = new int *[row]; for (int r = 0; r < row; ++r) { mat[r] = new int[col]; } 이 부분이 이해하기 진짜 어려웠습니다.. 1번 봤을떈 이해가 안갔습니다 그래서 동적할당을 이해못해서 그런가해서 다시보고 생각하면서 코드 하나하나 다시 뜯어서 보고 다시 영상 보면서 코드를 보니까 아래처럼 이해를 했는데 이게 맞는걸까요? const int row = 3; const int col = 5; const int arr[row][col] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15} }; //출력하기 위해선 초기화를 해줘야됨 int **mat = new int *[row]; // int *[3]크기의 메모리 할당 / 초기화 //const int arr[row][col] ={1~15} 초기화 해주기 for (int r = 0; r < row; ++r) // 3반복 { mat[r] = new int[col]; //int *r1 = new int{1,2,3,4,5};처럼 초기화를 해야하는데 //하나하나 다 해줄 수 없으니 int *[5] 크기의 메모리 즉 [col]5개를 3번 반복해서 [r]에 1~15를 저장해줌 } for (int r = 0; r < row; ++r) // row 열 만들기 3 { for (int c = 0; c < col; ++c) // col 열 만들기 5 { mat[r][c] = arr[r][c]; //mat[0~2][0~4] } } //출력용 for (int r = 0; r < row; ++r) { for (int c = 0; c < col; ++c) { cout << mat[r][c] << " "; } cout << endl; } //delete for (int r = 0; r < row; ++r) { delete[] mat[r]; }
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
메모리풀에서 16바이트 정렬에 관해 질문드립니다.
안녕하세요 강의 공부하던 중 메모리풀에서 16바이트 정렬을 하는 부분이 있었습니다. 다만 왜 구조체를 16바이트 정렬을 하는지.. 16바이트 정렬을 하면 어떻게 되는건지 성능 향상이 있는건지 이런 부분에 대한 궁금증이 생겼습니다. 이에대한 설명 부탁드립니다.
-
미해결인터랙티브 개발 실무 끝장내기 [역량 강화편]
반복문 코드에 대하여 궁금합니다.
안녕하세요. 강의 보면서 재밌게 공부중에 있습니다. 다름아니라 pointBtn구현부에서 선생님이 올려주신 코드와 제가짠 코드에 대해서 뭐가 다른지 조금 궁금합니다. 저렇게 짜도 정상작동 하더라고요. 1. 반복문이 계속 돌고 있는건가요? 해당 인덱스번째가 click되는지 알기 위해서는 반복문이 계속 돌고 있어야 할거 같은데, 로그 찍어보면 첫 실행시 total개수만큼만 돌고 이후에는 안도는데, 그래서 예상으로는 클릭 Eventlistner가 전체개수만큼 생성되는걸까 추측해봤는데 맞는건가요? 2. 선생님이 올려주신 코드에서는 for문 안에 idx로 인자를 받는데, 이때 idx는 어떤 값을 가지고 있는건가요? 3. for문안 function(idx) { .... }(i) 이렇게 되는데 function자체가 언제 실행되는건가요? 함수가 리턴되지 않는데 (func)(i)이렇게 사용하는게 가능한가요? js문법자체가 아직까지 헷갈려서 이해가 명확히 되지 않아서 질문드렸습니다! 감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
AppConfig에서 두번의 new MemberRepo-> 다른 객체를 바라보지 않을까?
AppConfig를 보면 MemberService와 OrderService에서 각각 new를 통해 레포지토리를 주입하는데요! 이때, new를 통해서 서로 다른 객체를 만들고 주입하면, MemberService와 OrderService에서 사용하는 레포지토리가 서로 다른거 아닌가요??
-
미해결홍정모의 따라하며 배우는 C++
다중포인터에서 문법이 이해가 안갑니다..
int *ptr = nullptr; int **ptrptr = nullptr; int va = 5; ptr = &va; ptrptr = &ptr; cout << ptr << " "<< *ptr<<" "<< &ptr<< endl; cout << ptrptr << " " << *ptrptr << " " << **ptrptr << " " << &ptrptr << endl; 이렇게 출력을 해보면 003FF784 5 003FF79C 003FF79C 003FF784 5 003FF790 003FF784 이렇게 나오는데 **ptrptr 에서 *ptr로 출력하는 부분이 이해가 잘 안됩니다.. 제가 이해한대로 설명하자면 *ptr부분은 ptr << *ptr << &ptr ptr은 va에 대입 했으니 va 주소값이 나오고 *ptr은 주소안의 있는 값이 나오는거니 5 나오고 &ptr은 자신 주소값이 나오고 **ptrptr 부분은 ptrptr << *ptrptr << **ptrptr << &ptrptr에서 ptrptr은 ptr에 대입했으니 그 ptr은 va에 대입했으니 va주소값 *ptrptr과 **ptrptr 부분이 이해가 안갔는데 이렇게 출력해보고 제 생각은 **ptrptr의*ptrptr를 출력했을떄 *ptr의 ptr과 같은 맥락이고 **ptrptr를 출력했을떄 *ptr과 같은 맥락이다..라고 이해했습니다 즉 *ptr == ptr 같고 **ptrptr == *ptr 같다 제가 이해한게 맞을까요??
-
미해결인터랙티브 개발 실무 끝장내기 [역량 강화편]
안녕하세요. addEventListener에서 인자로 event의 역할
강의 소스코드에서, addEventListener에서 function(event) { } 에서 인자로 event를 넘겨주는데 이때 이 인자는 어떤 역할을 하게 되는건가요? 인자를 주지 않아도 정상 작동하는거 같아서요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
선생님 h2 db는 사용시 매번 켜야 하나요? ㅠㅠ
안녕하세요. 선생님 선생님 h2 db를 켜지 않은 상태에서 테스트코드나 서버를 실행시 에러가 발생하는데요. 매번 h2디비와 연결된 코드나 서버 실행시 h2를 켜는 작업을 수행해야 하나요? 이걸 자동으로할 수는 없는지...번거롭다는 생각이 많이 드네요 ㅠㅠ