의문점이있습니다. public interface UsernameOnly { String getUsername(); } 이런식으로 사용자 이름만 가져올수있게 하는건 알겠는데 그냥 레파지토리에 @Query("select m.userName from Member m ") 그냥 이런식으로 하면되는거아닌가요?굳이 projection안쓰고?햇갈립니다
안녕하세요. 스프링과 문제해결 - 예외처리, 반복에서 ExTranslatorV1Test.java 소스를 보면 repository.save호출시 MyDuplicateKeyException예외가 발생하면 random숫자를 더해서 복구를 합니다. 예외를 잘 다루줄 몰랐던 시절, 저는 save전에 findById를 통해 DB에 동일한 값이 있는지 확인하는 코드를 짜왔는데요. 위 두 방법의 장단점이 무엇인지 궁금합니다. 혹시 전자의 방식이 더 올바르다고 말할 수 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 저와 비슷한 질문을 남긴 사람들의 글을 읽어보았는데, 명확하게 이해가 가질 않아서 질문을 남깁니다. 부모 변수가 자식 인스턴스를 참조하는 상황 Parent poly = new Child(); 이 상황은 Parent를 상속받은 Child라는 객체를 생성하여, 현재 Parent,Child 두 객체가 생성된 상황이며, poly를 부모 변수로 선언하였습니다. 부모는 자식에 대해 알 수 없다라는 논리에 따라 Child라는 객체가 있어도 부모 Parent는 Child에 선언된 메서드와 필드를 모른다는 것이 영한님의 설명인 것 같습니다. 그런데, 오버라이딩을 하게 되더라도 제 생각에는 여전히, Parent는 Child의 메서드와 필드를 모르는 상황은 여전한데, 어떻게 Parent가 Child 메서드가 오버라이딩을 한 상황을 알고, 오버라이딩된 Child 메서드가 우선권을 갖는지 잘 모르겠습니다. 이는 '부모는 자식에 대해 알 수 없다'라는 논리와 맞지 않는 것 같아서 부가적인 설명을 원합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요! 혹시 다대다의 경우는 중간테이블을 두어 푸는 것이 실무에서 필수적이라 했는데, 일대 다의 경우에도 비즈니스 로직 분리 : 중간 테이블을 통해 비즈니스 로직(보상 분배, 순위 계산 등)을 별도로 관리함으로써, 엔티티 간의 복잡성을 줄입니다. 데이터의 독립적 관리 : 과거 랭킹 기록, 보상 내역 등 변경하지 않아야 할 데이터를 독립적으로 저장하고 관리할 수 있습니다. 이런 이유로 중간테이블을 두기도 하나요? 예를 들어 사용자와 랭크 관계가 일대 다인 상황에서(사용자는 한 랭크만 참가 가능) 과거 정보들을 저장하기 위해 중간테이블을 두고 거기에 전적 같은 정보를 저장하고자 하는데 이런 경우 일대 다임에도 중간테이블을 놔두어 관리해도 되나요?
Entity들의 id를 따로 Column으로 name을 지정해주지 않아도 괜찮나요?? 연관관계 매핑할 때 예를 들어 MEMBER랑 TEAM을 매핑하면 MEMBER의 FK 이름은 TEAM_ID인데 TEAM의 PK는 ID라서 TEAM의 ID를 TEAM_ID로 바꾸지 않아도 괜찮은건가요??
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 이전에 들었던 실전! JPA1편에서는 https://start.spring.io/ 이곳에서 다운로드 하고 설치했는데 이번 강의에선 왜 따로 소스코드를 주시고 시작했는지 궁금합니다! 단순하게 springBoot를 사용하지 않아서인가요? 아니면 초기 설정이 힘들어서인가요?
안녕하세요. 강사님 강의내용을 좀 더 눈에 들어오게 만들고 싶어 아래와 같이 표로 정리했습니다. 두 가지 질문이 있습니다. 질문1) 표로 분류한 것처럼 한 체크예외에 복구가능/복구불가 , 한 언체크예외에 복구가능/복구불가 분류가 가능한가요? 체크예외 복구 가능한 예외 복구 불가능한 예외 언체크예외 복구 가능한 예외 복구 불가능한 예외 질문2) 언체크예외 특징을 위 표로 정리를 했음에도 강의에서 문서화를 강조하신 이유를 파악하지 못했습니다. 개발자가 개발당시 미래에 실행중에 어떤 런타임예외가 발생할 지 모르기 때문에 즉, 런타임예외 모든 경우의수를 예측하기 어렵기 떄문에 '처리'를 하지 못한다고 이해해도 될까요? 따라서 운영중에 마주하게 되는 런타임예외들을 매 순간마다 문서에 기록해두라는 말씀이신지 궁금합니다.
안녕하세요 선생님 강의 잘 듣고 있습니다. 직접 구현한 atom 컴포넌트들의 테스트 범위에 대하여 질문드립니다. Typography, Badge, Divider와 같이 별도의 로직이 존재하지 않는 컴포넌트들은 ProductInfoArea처럼 스토리북으로 확인만 해도 되는 것인지 궁금합니다. 아니면 atom 컴포넌트의 경우에는 props로 전달 받은 값이 잘 반영되는지 검증이 필요할까요? ( className 값이 잘 적용되는지, Typography의 경우 children 값이 화면에 잘 노출되는지 등등)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 내추럴 템플릿 기능이라는 것이 정확히 무엇인지 모르겠습니다. 느낌은 파일을 직접 열기 할 때, html css 자바스크립트의 순수한 구조가 그대로 남겨진 것? 이라는 것 같은데 맞는지 모르겠습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 강의에서 volatile을 적용하지 않은 예제에서 MyTask flag값을 false로 바꾸고 count값을 출력했는데 이때 MyTask Thread의 캐시메모리에있는 값을 메인메모리로 업데이트하고, Main Thread는 메인메모리에있는 count값을 캐시메모리에 동기화해서 갖고온걸까요? 출력할 때 컨텍스트 스위칭이 일어났다고 가정하면, 1_100_000_000이 출력될거라 생각했는데 궁금해서 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 저는 memberForm을 생성해서 뷰로 전송 -> 뷰에서 memberForm을 setter로 채움 -> 채운 memberForm을 post요청에 함께 전송 으로 이해했습니다. 근데 create에서 받은 memberForm하고 createForm에서 받은 memberForm하고 다른 객체로 나옵니다. 어디 부분이 잘못됐는지 알고싶습니다.
npm run dev로 프로젝트 시작할 때 보면 하이드레이션 오류가 자주 뜨거든요. 페이지 이동했다가 다시 오면 에러가 사라지길래 그냥 강의 들었었는데. 빠트린 코드가 있는가 싶어서 새로 프로젝트를 새로 만들었거든요. 근데. 처음부터 같은 에러가 발생하네요!!!!!!!!!!!!!!!!!! 제 컴퓨터가 이상한건지.... 다른 분들은 에러가 안나는걸까요>??ㅜ_ㅜ 어떻게 했더니 에러가 났다. 이걸 말씀드려야 하는데ㅎㅎ 허허허..... 어디서 왜 에러가 났는지 감이 안오네요 < 에러 > Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used - A server/client branch if (typeof window !== 'undefined') . - Variable input such as Date.now() or Math.random() which changes each time it's called. - Date formatting in a user's locale which doesn't match the server. - External changing data without sending a snapshot of it along with the HTML. - Invalid HTML tag nesting. It can also happen if the client has a browser extension installed which messes with the HTML before React loaded. See more info here: https://nextjs.org/docs/messages/react-hydration-error 검색해보니까. 뭐 버전차이 이런것도 있는 것 같아서 제 의존성 버전을 봤는데.. 최신 버전으로 설치된건데. 음...이거 말고 next 15.0.3 react 19.0.0은 설치가 안되더라고영 ㅎㅎ.... 원인을 밝히기가 어렵네영. "dependencies": { "react": "19.0.0-rc-66855b96-20241106", "react-dom": "19.0.0-rc-66855b96-20241106", "next": "15.0.3" }, 혹시나 해서 강사님 패키지 봤는데 next가 15.0.0버전이더라고요 이거로 설치했더니 하이드레이션 에러는 안뜨네요!!! 험......... 버전 문ㅈㅔ였나봐요.. "dependencies": { "react": "19.0.0-rc-f994737d14-20240522", "react-dom": "19.0.0-rc-f994737d14-20240522", "next": "15.0.0-rc.0" }, 나름 해결한 것 같긴한데, 뭔가 찜찜해서 ㅎㅎ 버전 차이로도 저와 같은 에러가 발생할 수 있는건가요?? 버전을 바꿔서 install 했는데, 이 상태로 강의를 계속 들어도 되겠죠??? 주저리주저리... 고민의 글을 적어봤습니다ㅎㅎ
안녕하세요. 앞선 강의에서 @RequestParam, @ModelAttribute, @RequestBody, HttpEntity 같이 컨트롤러에서 다양한 파라미터를 사용할 수 있는 이유가 ArgumentResolver 때문이라고 배웠습니다. 이 중에 @RequestBody와 HttpEntity를 처리하는 ArgumentResolver에서 Http 메시지 컨버터를 사용한다고 했는데 이 Http 메시지 컨버터가 타입 컨버터인건가요? 또 @ModelAttibute, @RequestParam을 처리한는 ArgumentResovler는 DataBinder을 사용하는 것 같던데 이번 강의에서는 타입 컨버터를 사용하는 것 처럼 이야기를 하셔서 헷갈리네요..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @Test public void 중복_회원_예외() throws Exception{ //given Member member1= new Member(); member1.setName("kim"); Member member2= new Member(); member2.setName("kim"); //when memberService.join(member1); //then assertThrows(IllegalStateException.class,()->{ memberService.join(member1); }); } 중복 회원 예외 테스트에서 Junit5에선 @Test(expected)를 지원하지 않는 것 같아 assertThrows를 사용하는 방식으로 변경해야한다고 하여 변경했는데 올바른 방법인지 궁금합니다. (변경한 방식으로 테스트 케이스는 통과는 하였습니다.)