학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 듣다가 문득 궁금하여 질문드립니다. 보통 Repository를 바로 접근하지 않기 위해서 Service를 만드는 건데, OrderService에서 MemberRepository에 바로 접근한 것은 OrderService 또한 같은 Service 단계이기 때문인가요?
제로초님 하신대로 그대로 프로젝트를 생성하고 실행했더니 화면은 그대로 뜨는데 에러가 1개 있어서 봤더니 hydration 에러라고 뜨네요 ㅠㅠ 지금 z-com 프로젝트를 수업용 / 연습용으로 총 2개 진행중인데 수업용 프로젝트는 이런 에러가 없었는데 연습용에서 에러가 발생하네요. 아래는 에러 코드입니다 ! Console Error 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
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 선생님 안녕하세요, 강의 잘 보고 있습니다. 강의를 보다가 하나 궁금한게 있어서 질문드립니다. 강의를 보면 별도의 BooleanExpression를 반환하는 별도의 비교결과를 반환하는 함수를 통해 재사용이 가능하다고 말씀하셨는데, 코드를 보면 member를 가지고 비교하는 방식으로 사용을하고 있습니다. 그러면 member테이블 두번 조인하는 경우에 대해서는 해당 함수를 재사용할 수 없을꺼같은데, 혹시 방법이 있을까요? 그리고 해당 함수의 경우 해당 Repository에서만 사용 가능할꺼같은데.. 혹시 맞을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] The object is already closed [90007-224] org.h2.jdbc.JdbcSQLNonTransientException: The object is already closed [90007-224] at org.h2.message.DbException.getJdbcSQLException( DbException.java:566 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:489 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.message.DbException.get( DbException.java:188 ) at org.h2.jdbc.JdbcConnection.checkClosed( JdbcConnection.java:1422 ) at org.h2.jdbc.JdbcConnection.rollback( JdbcConnection.java:511 ) at hello.jdbc.service.MemberServiceV2.accountTransfer( MemberServiceV2.java:34 ) at hello.jdbc.service.MemberServiceV2Test.accountTransfer( MemberServiceV2Test.java:65 ) at java.base/java.lang.reflect.Method.invoke( Method.java:568 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1511 ) at java.base/java.util.ArrayList.forEach( ArrayList.java:1511 ) > Task :test FAILED MemberServiceV2Test > 정상 이체 FAILED org.h2.jdbc.JdbcSQLNonTransientException at MemberServiceV2Test.java:65 1 test completed, 1 failed FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/user/Desktop/jdbc/jdbc/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. BUILD FAILED in 1s 4 actionable tasks: 1 executed, 3 up-to-date 이런식으로 오류가 나는데 구글링해도 도저히 원인을 못찾겠네요ㅠㅠ 도와주세요 ㅠㅠ
@SpringBootTest public class MessageSourceTest { @Autowired MessageSource ms; @Test void helloMessage(){ String result = ms.getMessage("hello", null, null); Assertions.assertThat(result).isEqualTo("안녕"); } } 코드 실행시 에러 발생 인텔리제이 jdk 11로 빌드 하였습니다 org.opentest4j.AssertionFailedError: Expecting: <"??"> to be equal to: <"안녕"> but was not. at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
이렇게 @GroupSequence 를 사용해서 검증의 순서를 정하고싶은데 예를 들자면 클라이언트에서 이메일을 작성할때 "ㅇㅇ" 이런 식으로 작성을 하면 @NotBlank 가 통과가 되고 @Email 이 실행이 되어야 하는거 같은데 실행이 되지 않습니다 그리고 실행이 안되는줄 알았지만 아래 아이디 비밀번호를 입력 하게되면 이때 형식에 맞지 않다는 오류 메시지가 나오게 됩니다, 어떻게 해야 할까요.. package hello.instar.validation; import jakarta.validation.GroupSequence; import jakarta.validation.groups.Default; @GroupSequence({Default.class,ValidationGroups.NotBlankGroup.class, ValidationGroups.EmailGroup.class,ValidationGroups.SizeGroup.class, }) public interface ValidationSequence { } @NotBlank(groups = ValidationGroups.NotBlankGroup.class) @Email(groups = ValidationGroups.EmailGroup.class) private String email;
@Controller @RequestMapping("/validation/v2/items") @RequiredArgsConstructor @Slf4j public class ValidationItemControllerV2 { private final ItemRepository itemRepository; private final ItemValidator itemValidator; @GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "validation/v2/addForm"; } @PostMapping("/add") public String addItemV6( @Validated @ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { //검증에 실패하면 다시 입력 폼으로 이동 if(bindingResult.hasErrors()) { log.info("errors = {}", bindingResult); return "validation/v2/addForm"; //TODO 이거는 왜 리다이렉트 안하지 ? } //에러에 안 걸려서, 이후는 성공 로직 Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/validation/v2/items/{itemId}"; } } 위 코드에서 TODO 부분인데요 검증에 실패했을때 addForm 으로 다시 보내는데, 리다이렉트를 안하더라구요 그러면 브라우저에서 새로고침하면 POST 를 보내게 될텐데 상품 등록 폼으로 다시 보내는게 목적이라면 리다이렉트를 하는게 더 좋아 보이는데요 혹시 리다이렉트 안하는 이유가 있을까요 ?
{ "sub" : "1234567890", "iss" : "onjsdnjs.com" // 등록된 클레임 "exp" : 192630000 "https://onjsdnjs.com/claims/job" : "developer" //공개 클레임 "userId" : "leaven" // 비공개 클레임 "username" : "onjsdnjs" } 공개와 비공개 개념이 있습니다. 어디에 혹은 어느 대상에 공개를 한다는 것인지 설명이 없어 문의 드립니다.
[질문 내용] CreateFileV3 코드에서 반복문을 돌고 fos로 보내는 메소드는없는데 어느 시점에서 버퍼에 담긴 데이터가 fos로 보내지는건가요? bos.close() 때 강의에서 설명하신 내부적 flush() 실행으로 보내는줄 알았는데 아니더라구요. 반복문이 종료되는 시점에 보내지는지 아니면 버퍼가 가득찼을때 보내지는지.. 어느 시점인지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. package collection.set.test; 의 RetangleTest 클래스에 관한 질문입니다 package collection.set.test; import java.util.HashSet; import java.util.Set; public class RetangleTest { public static void main(String[] args) { Set<Retangle> retangleSet = new HashSet<>(); retangleSet.add(new Retangle(10,20)); retangleSet.add(new Retangle(20,10)); retangleSet.add(new Retangle(30,30)); for (Retangle retangle : retangleSet) { System.out.println(retangle); } } } 중복된 값은 출력하지않아야하는데 예시코드를 돌려보아도 중복된값을 출력하고있는 문제가있습니다 package collection.set.test; import java.util.Objects; public class Retangle { private int width; private int height; public Retangle(int width, int height) { this.width = width; this.height = height; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Retangle retangle = (Retangle) o; return width == retangle.width && height == retangle.height; } @Override public int hashCode() { return Objects.hash(width, height); } @Override public String toString() { return "Retangle{" + "width=" + width + ", height=" + height + '}'; } } 이거는 Retangle 클래스입니다 hashCode , eqauls를 오버라이딩했는데도 중복출력이되네요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 군 복무 중이라 사지방에서 재부팅하면 모든 작업 내용이 초기화되는 상황에서 인텔리제이를 계속 설치하며 공부 중입니다. 작업한 코드를 구글 스토리지 같은 외부 저장소에 업로드해 다음 학습 시점에도 이어서 사용하고 싶습니다. 김영한님의 강의에서 제공하는 다운로드 소스 코드와 비슷한 형태로 만들려면 어떻게 해야 할까요?
안녕하세요!! 페이지 별 적용을 원하는 레이아웃이 있는 경우 getLayout 함수를 컴포넌트의 메서드로 추가하여 적용하는 강의를 들었습니다. 그런 식으로 레이아웃을 설정하는 방법은 처음 봐서 매우 새롭고 신기하고 즐거운 강좌였습니다. 감사합니다! 궁금한 점이 있는데요, 그렇게 했을 때 페이지별로 최상단에 SearchableLayout 컴포넌트를 적용하는 것과 무슨 차이가 있는지 궁금했습니다. (혹은 강의에서 그렇게 설명해주신 이유가 궁금합니다!)
1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] synchronized를 사용하면 사용되는 스레드 대기 집합과 기존 멀티스레드 환경에서 사용되는 스케쥴링큐는 다른건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 인털레제이를 업데이트 한 후 모든 코드에 에러가 생깁니다...