묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
5. websocket, stomp 비교 강의 질문
안녕하세요강의 잘 듣고 있습니다."5. websocket, stomp 비교" 강의 6:07초에 STOMP 흐름에서 궁금한 점이 있습니다!방법1"(클라이언트 1-> 서버)로 연결 요청 및 특정 room 구독"으로 되어 있어서 서버를 통해 브로커를 거쳐 구독하는 방법방법2"(클라이언트 2 -> 브로커)로 연결 요청 및 특정 room 구독"에서는 클라이언트 2는 웹 소켓 서버로 다이렉트로 전달하지 않고, 바로 브로커에게 요청을 보내는 방법질문두 가지 방법으로 요청을 할 수 있는건가요?두 방법의 차이는 무엇인가요??
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
http,websocket의 비교
안녕하세요.강의 잘 듣고 있습니다!http,websocket의 비교 강의를 듣다가 갑자기 궁금한게 생겼는데요.http 통신의 경우 요청을 보내는 쪽은 클라이언트로 정해져 있는 것 같은데, 웹 소켓 통신을 위해 클라이언트와 서버가 연결을 맺을 땐 연결 요청 주체는 항상 클라이언트라고 보면 될까요? 반대로 서버가 클라이언트에게 연결 요청을 보낸 후 클라이언트와 웹 소켓 연결이 될 수도 있나요??
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
JwtTokenPriver를 주입받는 곳 질문 있습니다.
JwtTokenPriver를 서비스단이 아닌 컨트롤러에서 주입받는 이유가 있을까요?!서비스에서 주입받아야할지 컨트롤러에서 받아야할지 의문입니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
MSA -> 모놀리식 패턴으로 수정
안녕하세요 선생님현재 애플리케이션을 MSA에서 모놀리식으로 바꾸고 있습니다.MSA 에서는 hot-article 애플리케이션에서는각각의 서비스들과 통신하지 않고 데이터를 저장하기 위해ArticleCommentCountRepository, ArticleViewCountRepository,ArticleLikeCountRepository 를 따로 만든 것으로 이해했습니다 .모놀리식에서는 이 3개의 Count Repository를 따로 만들지 않고 각각의 서비스에 있는 Count Repository 에서 가져오는 것이 더 좋을까요, 아니면아니면 MSA hot-article 패키지에 따로 count repository를 만드는 것이 좋을까요 ..선생님의 의견이 궁금합니다 .
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
updateMemberResponse 반환 값
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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로 바로 하는 것 보다 어떤 이점이 있는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew 빌드 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.계속 "내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라고 뜹니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
중복회원예외()에서 오류 발생
[질문 템플릿]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 appendedjava.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)
-
미해결스프링 부트와 리액트로 구현하는 소셜 로그인
강의자료
안녕하세요 혹시 해당 강의에 GitHub 주소나 자료가 따로 없을까요..?
-
미해결스프링 부트와 리액트로 구현하는 소셜 로그인
리엑트 페이지 랜더링
안녕하세요,강사님 리엑트 코드와 똑같이 만들었지만페이지가 이상하게 나옵니다. 요런 식으로 나오는데 추가적으로 만져야 할 게 있을까요?제 패키지 파일 공유드립니다.{ "name": "login_react", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "lint": "eslint .", "preview": "vite preview" }, "dependencies": { "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", "@mui/icons-material": "^7.1.1", "@mui/material": "^7.1.1", "react": "^19.1.0", "react-dom": "^19.1.0", "react-router-dom": "^7.6.2" }, "devDependencies": { "@eslint/js": "^9.25.0", "@types/react": "^19.1.2", "@types/react-dom": "^19.1.2", "@vitejs/plugin-react": "^4.4.1", "eslint": "^9.25.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", "vite": "^6.3.5" } }
-
미해결스프링 부트와 리액트로 구현하는 소셜 로그인
질문있습니다.
안녕하세요, 강의 너무 잘 수강하고 있습니다.강의 수강 중 질문이 생겨서요refresh Token을 사용하지 않는 이유가 있을까요?access 토큰 하나를 하루의 유효기간을 부여해서 사용하는 이유가 궁금합니다.jwt 버전이 0.11.5로 진행해주셨는데0.12.x 버전도 있는 걸로 알고 있어요버전의 올라감과 동시에 로직의 변화도 있는 거로 알고 있습니다.요것도 0.11.x로 진행하신 이유가 궁금합니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
교재 576페이지 : S3의 버킷을 AWS에서 찾을 수가 없음
위 이미지는 교재 376페이지의 상단 부분입니다.testUpload()를 실행시켰더니 "Tests Passed:"라는 메시지와 함께 실행성공되었습니다.그런데, 위 이미지에 나와있는, "S3의 버킷"을 AWS 어디에서 찾을 수 있는 지 모르겠습니다.아래 이미지는 나의 AWS S3 버킷 부분입니다.
-
미해결Spring Boot TDD - 입문부터 실전까지 정확하게
cqrs 명령 아키텍처 개선 질문
안녕하세요 선생님 제가 이해가 잘 안된걸 수 있어서 확인차 질문 드립니다!var executor = new RegisterProductCommandExecutor(productRepository::save); executor.execute(command, uuid, sellerId);명령 조회를 개선하면 RegisterProductCommandExecutor 라는 실행기를 만들어서 execute 로 실행하는 동작으로 이 구조를 pdf 자료에서 확인하면궁금한점이명령모델이 new RegisterProductCommandExecutor(productRepository::save); 로 실행기를 만들면 명령모델이 실행기를 만들면서 productRepository 라는 기반구조에 의존하고 있는거 아닌가요? 구조자체에서 보면 명령실행기는 execute 를 통해서 실행기가 참조하는 기반구조 기능을 실행하는 건 직접 의존하지 않아서 자유도가 높아보인다? 라는 생각이드는데요, 실행기를 만들때 명령모델은ProductRepository 를 알아야할 것같아서 의미가 없어보입니다.실행기를 만들때 실행기 자체가 bean으로 등록이 되고 실행기 bean 안에서 ProductRepository 를 스프링에서 주입받고, 실행기를 만드는 명령 모델은 실행기만 주입받고 파라미터로 repository 를 넘겨도 되지 않으니 이게 정말 의존하지않는 구조같은데요.(제가 말한 (2) 방식이라면) 이이렇게 되면 그냥 돌고돌아서 결국엔 처음 방식인 ProductRepository 인터페이스를 (추상화 되어있으니) 그냥 바로 빈을 주입받는 것이랑 별차이 없다고 생각합니다조회도 역시 이런생각이 들었습니다. 명령과 조회를 분리한다는 개념은 이해가 갈거같은데 각 명령과 조회 모델이 기반구조에 의존? 한다는 개념을 잘 이해가 가지 않습니다!
-
해결됨옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트
수업 자료는 어디에 있나요?
안녕하세요,수업자료 pdf는 어디에 있나요?
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
교재 571페이지: AWS ACL 편집 관련
부록 AWS Elastic Beanstalk 공부 중입니다.교재 571페이지 ACL 편집부분에서....AWS 버킷에서 ACL을 편집할 수 있는 창을 찾을 수가 없네요. 답변 좀 부탁드리겠습니다.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
외부 API 테스트
kill9형 오매불망 테스트만 기다리고있었는데 업로드 되서 너무 좋다. 근데 외부 API 호출이 Step 안에 있는 경우 어떻게 테스트하면 좋을지 알려 줄 수 있을까?호출이 가능한 상황과 호출이 불가능한 상황 2가지 경우에 대해서 설명부탁해
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
findOrders 문제
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]orderService.findOrders(orderSearch) 가 작동하지 않습니다.오류를 고쳐보다 join에 무언가 문제가 있다는 걸 알아냈습니다.em.createQuery("select o from Order o", Order.class).getResultList()는 정상적으로 작동하나 em.createQuery("select o from Order o join o.member m", Order.class).getResultList() 는 반환 값이 없습니다. 조인을 하게 되면 문제가 발생하는데 어떻게 해결해야 할까요.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
테스트 챕터는 언제 올라오는것인가
6월 8일부터 기다리고 있어 형 얼른 마지막 섹션을 줘..현기증..나..
-
미해결DGS: NETFLIX가 스프링 부트로 대용량 트래픽을 처리하는 방법
Subscription Test
Subscription에 대한 테스트를 진행을 할 때 onNext에서 실행이 되는 기능들이 호출이 되지가 않아서 reviews에 담겨 있는 값이 0으로 계속 나오는데 해당 부분을 어떻게 해결을 해야할까요?// val result = t.getData<Map<String, Any>>()해당 부분도 컴파일 오류가 발생을 하고 있습니다. 코드 관련해서 완성본을 볼 수 있나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
홈 화면 질문(캐시 문제에 대해서)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 궁금증이 생겨서 질문을 드립니다.home.html을 만들고 나서 localHost:8080을 호출 할때, 크롬에서 index.html 페이지가 계속 떠서 코드에 문제가 없는지 확인해 보았습니다.그래서 pdf파일에 있는 코드들도 복사 붙여놓기 해보고, 빠진것들이 없나 확인도 해보았지만 문제를 해결할수 없어서, 질문들을 확인해보니 캐시에 대한 답변이 있어서 다른 인터넷으로(edge) localHost:8080 을 치니 home이 잘 표시되더라고요… 그리고 나서 크롬 설정에 들어가서 캐시를 지우니까 홈 화면이 나오는 것을 확인할 수 있었는데요.(그전까지는 계속 index.html 뜨더라고요)개발을 하다 보면 이런 것이 생각 안날수도 있을것같은데(캐시 문제 보다 내 코드가 문제 있겠지라는 생각이요)이것에 대안 대처법 은 없나요?(계속 저가 일일히 캐시를 삭제 해야하 는건지? - 귀찮은 생각이 들더라고요)답변 부탁 드립니다. 수정1읽어보니 글이 이상해서 수정
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
질문
새로 개강한 강좌에 수강전문의게시판이없어서 여기에 질문을 남기게되었습니다. eks를 활용한 spring 운영서버 배포(feat. devops의 모든것) 이강좌가 새로 오픈했던데 빠르게 배우는 Spring Cloud 기초(MSA) 이강좌가 선수과정인가요??? 아니면 이걸안해도 새로 개강한강좌만 신청해도 되는관계인지 궁금합니다.