음.. 제가 이해한게 맞는지 확인차 질문드립니다. 1) 컴퓨터가 켜지고 게임파일을 읽으면 inputStream이라는 걸로 파일을 설정한 단위로 읽어온다. 2) 그런데 게임은 항상 순차적으로 진행되는건 아니니.. 필요한 부분을 offset으로 해당하는 부분을 찾아서 읽어온다. 3) 이게 실시간으로 잘되면 로딩없이 끊김없이 잘 굴러가는거고, 느리거나 파일이 너무크면 로딩등 딜레이가 생기는거다. 결론: 파일이 어떠한 레스토랑에 있는 모든 음식이라면.. cpu는 사람이고 스트림은 "음식을 전달하는 파이프라인"이다. 이런느낌으로 이해하면되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.void로 써야하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. void로 풀었는데 큰 상관없는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. void로 밖에 쓸 수 없나요?
안녕하세요 선생님 현재 애플리케이션을 MSA에서 모놀리식으로 바꾸고 있습니다. MSA 에서는 hot-article 애플리케이션에서는 각각의 서비스들과 통신하지 않고 데이터를 저장하기 위해 ArticleCommentCountRepository, ArticleViewCountRepository, ArticleLikeCountRepository 를 따로 만든 것으로 이해했습니다 . 모놀리식에서는 이 3개의 Count Repository를 따로 만들지 않고 각각의 서비스에 있는 Count Repository 에서 가져오는 것이 더 좋을까요, 아니면 아니면 MSA hot-article 패키지에 따로 count repository를 만드는 것이 좋을까요 .. 선생님의 의견이 궁금합니다 .
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. @PutMapping("/api/v2/members/{id}") public updateMemberResponse updateMemberV2( @PathVariable("id") Long id, @RequestBody @Valid updateMemberRequest request) { memberService.update(id, request.getName(), request.getAddress()); // Member findMember = memberService.findOne(id); return new updateMemberResponse(id, request.getName(), request.getAddress()); } return에 requst의 값을 넣어서 반환 받는 건 안 좋은 방법일까요? findMember로 꺼내서 return 하면 request로 바로 하는 것 보다 어떤 이점이 있는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 계속 "내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라고 뜹니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 중복 회원 예외()에서 오류가 자꾸 발생합니다. @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); //Then assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } } Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended java.lang.IllegalStateException: 이미 존재하는 회원입니다. at hello.hello_spring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:39) at java.base/java.util.Optional.ifPresent(Optional.java:178) at hello.hello_spring.service.MemberService.validateDuplicateMember(MemberService.java:38) at hello.hello_spring.service.MemberService.join(MemberService.java:31) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.aop.support .AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:728) at hello.hello_spring.service.MemberService$$SpringCGLIB$$0.join(<generated>) at hello.hello_spring.service.MemberServiceIntegrationTest.중복_회원_예외(MemberServiceIntegrationTest.java:45) 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)
선생님! 안녕하세요. 항상 잘 듣고 있습니다! 다름이 아니고, 6분 대부터 나오는 케이스 6, 7에 대해 오류가 있는 거 같아 질문 드립니다. 강의 자료는 class Parent { ~라고 잘 되어있는데 다운 받는 자료에는 class Person [ ~ 이라고 되어있어 Parent 클래스가 없는 거 같습니다. 별개로 이런 상황에서는 person을 parent로 고치던지 class Child extends Person이라고 고치면 될까요?? --- 하나 더 질문을 드리자면 11:12 즈음에 '3. 생성자와 멤버변수를 부를 때 같은 키워드를 쓰니 주의' 라는 부분은 this = 자기자신 객체 super = 부모 객체 . = 멤버의 변수나 메서드 접근 () = 생성자나 메서드 호출 이렇게 생각하면 될까요?? 항상 감사합니다!
Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
안녕하세요, 좋은 강의 감사합니다. 쉬운 예제코드와 그림설명 덕분에 Java 8 stream API, Spring Batch ItemStream 과 대조해가며 쑥쑥 이해하고 있습니다. ContextAPIExmaple02 에서 궁금한 점이 있습니다. contextWrite() 호출 순서에 의문이 생겨 순서를 변경해보니, 무조건 아래에서 위로 진행되는 걸로 확인되었습니다. 이 규칙이 적용되는 원리가 궁금합니다. 현재 추측하기로는 "subscription signal 에 따라 upstream 으로 이동하는 operator 들은 모두 아래에서 위 순서대로 이동(반전)된다." 인 것 같은데, 확신이 생기지 않습니다. 참고 할 수 있는 자료나 내부 클래스가 있을까요?
안녕하세요! 실습문제 풀다가 질문이 있어서 올려봅니다 제가 코드를 작성할때는 흐름대로 쭉 작성하고 마지막에는 간결하게 줄일 수 있는 부분은 줄여서 표현하고 있는데, 이게 저는 흐름대로 쭉 작성을 하고나서 변수를 합치거나 하니깐 괜찮은데 동료들이 이 코드를 보게 되면 변수를 선언하지 않고 합쳐서 표현해놓는 경우 이해가 바로 안되는 경우가 있을 수 있을거 같은데, 이런 경우에는 합치지 않고 두는게 좋을까요? 영한님이 생각하시는 운영관점에서 인라인 활용에 대해 궁금합니다!
안녕하세요, 강의 너무 잘 수강하고 있습니다. 강의 수강 중 질문이 생겨서요 refresh Token을 사용하지 않는 이유가 있을까요? access 토큰 하나를 하루의 유효기간을 부여해서 사용하는 이유가 궁금합니다. jwt 버전이 0.11.5로 진행해주셨는데 0.12.x 버전도 있는 걸로 알고 있어요 버전의 올라감과 동시에 로직의 변화도 있는 거로 알고 있습니다. 요것도 0.11.x로 진행하신 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 배우는 언어들 자바,c언어,파이썬 기본 문법을 먼저 다 수강하는게 좋을까요 아니면 자바를 주력 언어로 공부하면서 틈날때 다른 언어들을 공부해야할까요? 학점 챙기려면 기본언어들만 수강하는게 좋아보이는데 문법 공부만 하루종일 하면 좀 헷갈리기도하고 지루할거같아서 질문드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 영한님 안녕하세요 Spring Data JPA를 사용해서 벌크 연산 관련해서 공부하던 중에 이상한 점을 발견했습니다. (Spring Data JPA 지만 영속성 컨텍스트 flush는 이 강의와 관련이 깊다 생각해 이 강의에 질문 드립니다) ..... 우선 실제 제가 겪었던 상황의 코드가 아닌 다른 같은 상황의 예제 코드이기 때문에 완전하지 않은 점 양해 부탁드립니다.. 3개의 엔티티 (User, UserRole, Comment) 가 존재하고 연관관계 매핑 및 외래키 제약조건은 존재하지 않습니다. // 코드 ~~ List<User> userList = new ArrayList<>(); // 코드 ~~~~ userRepository.saveAll(userList); // 저장 userRoleRepository.save(user_role_map); // 저장 Comment c = new Comment("1", "코멘트"); commentRepository.save(c); // 저장 // 코멘트는 제가 직접 객체를 생성해서 테스트 해보려고 추가하였습니다. 로직과는 관련없습니다. // 위의 userList와 다른 리스트 updateName(userListToUpdate); public interface UserRepository extends JPARepository<User,Long> { @Modifying(clearAutomatically = true) @Query(UPDATE User u SET u.name ="AA" WHERE u IN :users) int updateName(@Param("users") List<User> users); } User에 대해 벌크연산을 진행했습니다. 여기서, userList가 비어있고, userRole와 Comment c에 대해 insert 쿼리가 나가지않고 벌크 연산 업데이트만 진행됩니다..! 이 부분은 당연히 영속성 컨텍스트가 clear 됐기 때문에 그런거라고 이해했습니다. 하지만, userList가 비어있지 않은 경우에는 saveAll로 인해 insert 쿼리가 나가면서 userRole, c 까지 모두 insert 쿼리가 실행되는데 이 부분이 잘 이해가 가질 않습니다... 요약하면, user에 대해 insert 쿼리가 실질적으로 나갈 때에만 다른 엔티티들도 @Modifying(clearAutomatically = true) 되면서 같이 insert 쿼리가 나가고, 비어있지않은 경우에는 insert 쿼리가 나가질 않습니다. 이 벌크 연산이 User에 대한 것이기 떄문에 user에 대한 동기화쿼리는 나가고, 그게 나가면서 다른 엔티티까지 같이 나가는 원리일까요? userRole과 comment는 모두 연관관계매핑도 되어있지않은데 왜 insert 쿼리가 같이 나가는지 궁금합니다
6:46초에서 설명하시는대로 패치 조인을 사용하지 않고, 기본 조회만 했을 때 프록시로 인해 지연 로딩이 발생할 것으로 기대했으나, 마치 패치 조인처럼 한번만 조회되고 모든 데이터가 출력됩니다. 원인을 잘 모르겠는데 알려주세요. Team은 LAZY 조인으로 설정되어 있음 Team teamA = new Team(); teamA.setName("teamA"); em.persist(teamA); Team teamB = new Team(); teamB.setName("teamB"); em.persist(teamB); Member member1 = new Member(); member1.setUsername("USER1"); member1.changeTeam(teamA); em.persist(member1); Member member2 = new Member(); member2.setUsername("USER2"); member2.changeTeam(teamA); em.persist(member2); Member member3 = new Member(); member3.setUsername("USER3"); member3.changeTeam(teamB); em.persist(member3); List<Member> noFetchJoin = em.createQuery("SELECT m FROM Member m", Member.class).getResultList(); for (Member member : noFetchJoin) { System.out.println("member: " + member.getUsername() + " | Team: " + member.getTeam().getName()); } 결과: