묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 RestClient 호출시 null
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 시 RestClient 호출시 null 발생 됩니다.혹시 어느 부분을 봐야 할까요?? > Task :service:comment:testCommentApiTest > create() FAILED org.springframework.web.client.ResourceAccessException at CommentApiTest.java:36 Caused by: java.net.ConnectException at CommentApiTest.java:36 Caused by: java.net.ConnectException at Utils.java:1041 Caused by: java.nio.channels.ClosedChannelException at SocketChannelImpl.java:2021 test completed, 1 failed> Task :service:comment:test FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':service:comment:test'. package kuke.board.comment.service.api; import kuke.board.comment.service.response.CommentResponse; import lombok.AllArgsConstructor; import lombok.Getter; import org.junit.jupiter.api.Test; import org.springframework.web.client.RestClient; public class CommentApiTest { RestClient restClient = RestClient.create("http://localhost:9001"); @Test void create() { CommentResponse response1 = createComment(new CommentCreateRequest(1L, "my comment1", null, 1L)); CommentResponse response2 = createComment(new CommentCreateRequest(1L, "my comment2", response1.getCommentId(), 1L)); CommentResponse response3 = createComment(new CommentCreateRequest(1L, "my comment3", response1.getCommentId(), 1L)); System.out.println("commentId=%s".formatted(response1.getCommentId())); System.out.println("\tcommentId=%s".formatted(response2.getCommentId())); System.out.println("\tcommentId=%s".formatted(response3.getCommentId())); } CommentResponse createComment(CommentCreateRequest request) { return restClient.post() .uri("/v1/comments") .body(request) .retrieve() .body(CommentResponse.class); } @Getter @AllArgsConstructor public static class CommentCreateRequest { private Long articleId; private String content; private Long parentCommentId; private Long writerId; } }
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
브랜치 주소가 표시되지 않습니다.
'각 강의 브랜치 주소는 챕터가 시작하는 화면 하단에 표시되어 있으니 참고하여 주시기 바랍니다.' 라고 하셨는데, 화면 하단에 어디에 있는지 모르겠습니다. 해당 화면에 대해서 스크롤도 안되고, 메모같은 것도 없어서 현재는 github 를 뒤지면서 보고 있는데, 명확한 가이드를 주실 수 있나요 ? 깃허브에 뒤져가면서 보더라도 숫자-내용basic-내용 형태의 브랜치들 밖에 없다보니 뭘 봐야할지 헷갈립니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
업로드파일 조회/삭제 질문있습니다.
업로드파일 조회/삭제 7분 58초에 ResponseEntity를 컨트롤러에 넣는것은 15년전 방식이라고 말씀해주셨는데요.근데 ProductController에 아래 같이 있는데요. @GetMapping("/view/{fileName}") public ResponseEntity<Resource> viewFileGET(@PathVariable String fileName){ return fileUtil.getFile(fileName); }아래 코드를 Controller에 넣는게 15년전 방식인건가요?//파일 조회하는것 public ResponseEntity<Resource> getFile(String fileName) { Resource resource = new FileSystemResource(uploadPath+ File.separator + fileName); if(!resource.exists()) {//파일이 없을 떄 resource = new FileSystemResource(uploadPath+ File.separator + "default.jpeg"); } //http 헤더가 중요. 내가 보낸 타입을 알아야함. HttpHeaders headers = new HttpHeaders(); try{//마이 타입 headers.add("Content-Type", Files.probeContentType( resource.getFile().toPath() )); } catch(Exception e){ return ResponseEntity.internalServerError().build(); } return ResponseEntity.ok().headers(headers).body(resource); }
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
redis-cli 명령어로 pubsub channels 확인하는 방법
redis-cli 명령어로 pubsub channels 확인하는 방법강사님 처럼 하고나서 3000 포트와 3001 포트에서 서로 채팅하는 것 까지 테스트 해봤습니다.근데 여기서 pubsub channels 명령어로 저는 chat 이라는 값이 나올줄 아랑ㅆ는데 empty array라는 값이 나옵니다. 원래 이런가요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
이벤트 폴링이 안되시는 분들
스프링 최신버전으로 하신분들은 messageRelayPublishPendingEventExecutor가 Executer를 반환하면 안되고 TaskScheduler를 반환해야 한다고 하네요.@Bean public TaskScheduler messageRelayPublishPendingEventExecutor() { ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); scheduler.setPoolSize(1); scheduler.setThreadNamePrefix("task-scheduler-"); scheduler.initialize(); return scheduler; }이렇게 작성하시고ArticleApplication에 @EnableScheduling을 추가해주시면 이벤트가 잘 폴링됩니다. @EntityScan(basePackages = "kuke.board") @SpringBootApplication @EnableJpaRepositories(basePackages = "kuke.board") @EnableScheduling public class ArticleApplication { public static void main(String[] args) { SpringApplication.run(ArticleApplication.class, args); } }
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Driver org.mariadb.jdbc.Driver is not suitable for jdbc:mysql://localhost:3306/mydb
mariadb driver로 접속할 수 없다고 나오는데 이거 혹시 무슨 문제인지 알 수 있을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
댓글 무한 depth 질문입니다.
안녕하세요 강사님 강의 잘 듣고 있습니다.댓글 무한 depth 강의를 듣고 있는 도중에, 전부터 궁금했던 내용인데 Repository에 extends JpaRepository를 하면 @Repository를 안 붙여도 되는 걸로 알고 있는데 붙이시는 이유가 따로 있으신지 궁금합니다.https://sudo-minz.tistory.com/147참고했던 블로그 글입니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
다대일 패치 조인 고민
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]다대일의 관계 패치 조인에 관련한 질문이 있습니다.사이드 프로젝트에서 모임과 참여 모임 테이블이 있습니다.참여 모임 테이블은 (userId, eventId)를 가지고 있습니다. 모임에 참여한 인원과 모임에 대한 정보를 얻고자 합니다.참여 모임을 모임 id로 탐색 하여 참여 모임 List를 얻어 참여 모임의 인원수를 알 수 있습니다.또한 패치 조인을 통하여 List<참여모임> 에 대한 모임의 정보를 얻을 수 있습니다.고민은 여기서 ToOne으로 가지고 오는 모임은 모두 같은것 입니다.이런 경우에도 패치조인을 통해 한번의 쿼리로 가져오는 것이 나은가요? 그래프 탐색이 가능 하도록 참여모임에 해당하는 모임을 넣는 과정이 모두 중복이라 이게 효율적인가?에 대한 고민 입니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
bytebuddyINterceptor 에 대해서 궁금한점이 있습니다.
api 2편을 수강중 궁금한게 있어서 질문올려요2편내용중에 public List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); //Lazy 강제 초기화 order.getDelivery().getAddress(); //Lazy 강제 초기화 } return all; }호출할때 member 지연로딩인경우 예외발생하던데그래서 hibernate5Module 모듈을 설정을했습니다. 그런데 1편엔 그런설정이 없는데 정상작동이 되는데 무슨차이가 있나요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
HotArticleApiTest 오류
package kuke.board.hotarticle.api; import kuke.board.hotarticle.service.response.HotArticleResponse; import org.junit.jupiter.api.Test; import org.springframework.core.ParameterizedTypeReference; import org.springframework.web.client.RestClient; import java.util.List; public class HotArticleApiTest { RestClient restClient = RestClient.create("http://localhost:9004"); @Test void readAllTest() { List<HotArticleResponse> responses = restClient.get() .uri("/v1/hot-articles/articles/date/{dateStr}", "20250225") .retrieve() .body(new ParameterizedTypeReference<List<HotArticleResponse>>() { }); for (HotArticleResponse response : responses) { System.out.println("response = " + response); } } }섹션 6 인기글 Producer&Consumer 테스트 테스트 코드 실행 오류가 발생합니다.2025-02-25T14:24:03.178+09:00 INFO 38230 --- [kuke-board-hot-article-service] [nio-9004-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2025-02-25T14:24:03.178+09:00 INFO 38230 --- [kuke-board-hot-article-service] [nio-9004-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms 2025-02-25T14:24:03.191+09:00 WARN 38230 --- [kuke-board-hot-article-service] [nio-9004-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingPathVariableException: Required URI template variable 'dataStr' for method parameter type String is not present]org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: "{"timestamp":"2025-02-25T05:24:03.195+00:00","status":500,"error":"Internal Server Error","path":"/v1/hot-articles/articles/date/20250225"}" 다른 질문글에서 언급한 500에러 해결책을 참고해봤지만 소용이 없네요. 코드를 점검해봐도 잘못 작성한게 없어보입니다. 기초 선수지식이 없는 상태에서 클론코딩을 하다보니 어디를 어떻게 더 점검해야할지 모르겠는데 제시 해주신다면 찾아서 해결해보려고 합니다. 어떻게 해야할까요?
-
미해결스프링 시큐리티 OAuth2
OIDC SSO 관련 질문 입니다.
안녕하세요OIDC SSO 관련 질문이 있습니다.인증서버 에서 A 시스템에 Token을 발급 해주었습니다.그리고 B시스템에서 인증을 했을 때 , 동일한 사용자 이기 때문에 인증 서버에서는 A시스템에 발급해준 Token를 가지고사용자를 찾아서 B시스템에 토큰을 발급해 줄 수 있나요 ?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
테스트 코드 작성 관련해서 질문드립니다!
강사님 안녕하세요.강의의 테스트 코드도 보고 실무서 테스트 코드 작성시 문득 궁금한 사항이 생겼습니다.테스트 코드 작성시 단위, 통합, E2E 등 종류도 많고 일정 등 고려해야 될 사항이 많은데 강사님의 테스트 코드 작성 기준이 궁금합니다. 제가 정한 기준은 아래와 같습니다.단위 테스트(도메인 폴더 하위 순수 객체)는 반드시 작성일정 일정이 급할때 단위 테스트일정이 여유로울때단위 테스트API 테스트 or 통합 테스트서비스의 핵심 로직단위 테스트API 테스트 or 통합 테스트일정이 급해도 최대한 작성 그리고 다음과 같은 고민도 있습니다.Mockito를 이용한 테스트가 충분히 검증이 될까? 근데 될것 같기도..? XxxFacade 혹은 XxxService에 Mockito를 이용한 테스트의 정확도에 의문을 품었습니다. 그래서 @SpringBootTest를 이용한 통합 테스트를 작성하였는데 테스트를 위한 데이터 세팅이 너무 귀찮더라구요.(하하하) 그래서 도메인 모델링을 잘하고 단위 테스트를 꼼꼼하게 작성한다고 쳤을때 Mockiot의 verify를 이용해 의도한 메서드가 호출이 되었는지만 테스트만 해도 괜찮지 않을까? 란 생각이 들었습니다. 회사일도 바쁘실텐데 다음 강의 준비도 하시고 질의응답도 해주셔서 언제나 감사드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 의존성 주입 코드 질문.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]13:10 부터 시작하는 DI에 관한 코드 내용중 질문있습니다.14:15 강의에 따르면MemberService 클래스에서 만든 MemoryMemberRepository 와 MemberServiceTest 에서 new 하여 만든 것은 MemoryMemberRepository는 각각 다른 인스턴스겠죠. 같은 레포지토리여야 하는데 다른 레포지토리니까 추후에 문제가 생길 수 있다구 하시구요.여기까지는 강의대로 이해가 갑니다.그런데 이에 해결책으로 작성하신 의존성 주입 코드가 잘 이해가 가지 않습니다.public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } ... }class MemberServiceTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } ... }이렇게하면 매 테스트 실행하기 전에 beforeEach()가 실행되고 MemoryMemberRepository를 각각 생성하고 MemberService에 넣어준다고 하시는데요,제가 여기서 이해가 안가는건.. 이것도 결국 매번 MemoryMemberRepository를 생성하는 것이니 전부 다른 인스턴스로 생성 되는 것 아닌가요? 그러니까 지금 문제가 MemberService 클래스와 MemberServiceTest 에서 사용하는 MemoryMemberRepository가 원래는 하나로 사용 해야하지만 각각 new로 생성하여 다른 인스턴스로 사용하여 문제가 되기에 그것을 해결하려는 것이잖아요? 그런데 이번에 생성자를 통해서 MemoryMemberRepository를 매번 생성하여 넣는 것도 결국 또 각각의 인스턴스를 생성하여 넣는것 아닌가요? 이해가 잘 안가요ㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Spring은 무조건 MVC인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]현재 여기까지 강의가 MVC에 관한 내용인데..이게 디자인 패턴같은데 Spring은 무조건 MVC를 사용하나요? 아니면 다른 디자인 패턴도 사용을 하나요?MVVM 같은거요
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
nohup.out 관련 문제
상단 디렉토리에 nohup.out 은 만들어졌는데 사이트에 접속도 안되고 nohup.out 파일 확인도 조금 이상합니다. [ec2-user@ip-172-31-39-4 ~]$ vi nohup.out[ec2-user@ip-172-31-39-4 ~]$ cat nohup.outError: Unable to access jarfile library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar[ec2-user@ip-172-31-39-4 ~]$ tail -f nohup.outError: Unable to access jarfile library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar이렇게 나옵니다. 혹시 몰라 위에있는 코드들도 첨부합니다. BUILD SUCCESSFUL in 2s1 actionable task: 1 executed[ec2-user@ip-172-31-39-4 library-app_complete]$ lsREADME.md build.gradle gradle gradlew gradlew.bat settings.gradle src[ec2-user@ip-172-31-39-4 library-app_complete]$ cd ..[ec2-user@ip-172-31-39-4 ~]$ lslibrary-app_complete[ec2-user@ip-172-31-39-4 ~]$ ps aux | grep javaec2-user 171942 1.8 34.0 2110252 330692 ? Ssl 06:40 1:07 /usr/lib/jvm/java-17-amazon-corretto.x86_64/bin/java --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.base/java.nio.charset=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.country -Duser.language=en -Duser.variant -cp /home/ec2-user/.gradle/wrapper/dists/gradle-7.5-bin/f1w0cc9nuo0eivz97x2xlu9sv/gradle-7.5/lib/gradle-launcher-7.5.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 7.5ec2-user 175460 0.0 0.2 222316 2032 pts/0 S+ 07:40 0:00 grep --color=auto java[ec2-user@ip-172-31-39-4 ~]$ ^[[200~ nohup java -jar library-app/build/libs/library-app-0.0.1-SNAPSHOT.jar --spring.profile-bash: $'\E[200~': command not found[ec2-user@ip-172-31-39-4 ~]$ lslibrary-app_complete[ec2-user@ip-172-31-39-4 ~]$ nohup java -jar library-ap_bbbbbbbbbbu^Cd/libs/library-app-0.0.1-SNAPSHOT.jar -sspring.profile s.active=dev &[ec2-user@ip-172-31-39-4 ~]$ nohup java -jar library-ap_bpppp/^Cild/libs/library-app-0.0.1-SNAPSHOT.ja.profile s.active=dev &[ec2-user@ip-172-31-39-4 ~]$ nohu juuupnupoupgup upbuupuuup^Cava -jar library-app_compleate/build/libs/library-app-0.0.1-.active=dev &[ec2-user@ip-172-31-39-4 ~]$ nohup java -jar library-app_complete/build/libs/library-app-0.1-SNAPSHOT.jar --spring.profiles.active=dev &[1] 175532[ec2-user@ip-172-31-39-4 ~]$ nohup: ignoring input and appending output to 'nohup.out'[1]+ Exit 1 nohup java -jar library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev[ec2-user@ip-172-31-39-4 ~]$ v1. nohup.out-bash: v1.: command not found[ec2-user@ip-172-31-39-4 ~]$ vi nohup.out[ec2-user@ip-172-31-39-4 ~]$ cat nohup.outError: Unable to access jarfile library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar[ec2-user@ip-172-31-39-4 ~]$ tail -f nohup.outError: Unable to access jarfile library-app_complete/build/libs/library-app-0.0.1-SNAPSHOT.jar vi nohup.out 를 했을 때는 E325: ATTENTIONFound a swap file by the name ".nohup.out.swp" owned by: ec2-user dated: Mon Feb 24 07:07:21 2025 file name: ~ec2-user/nohup.out modified: YES user name: ec2-user host name: ip-172-31-39-4.ap-northeast-2.compute.i process ID: 173572While opening file "nohup.out" dated: Mon Feb 24 07:43:35 2025 NEWER than swap file!(1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution.(2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r nohup.out" to recover the changes (see ":help recovery"). If you did this already, delete the swap file ".nohup.out.swp" to avoid this message.Swap file ".nohup.out.swp" already exists![O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort: 이렇게 나옵니다.
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
멀티모듈 구성 질문입니다.
학습관련 질문을 남겨주세요! 상세히 작성주시면 더 좋아요 🙂아래 질문이랑 차이가 있습니다.멀티모듈 extenal에서 kakao-client new 모듈을 만들때 모듈은 생성이 안되고 iml파일과 src폴더만 생성입니다. 이럴 때는 어떻게 해야하나요? 그리고 그림처럼 모듈이 없는데 이미 프로젝트내에서 모듈이 존재한다고 합니다.시도방법:캐시삭제clean 후 build프로젝트 종료후 재시작Import Module 추가settings.gradle에서 아래 글자 추가 하고 멀티모듈 생성했는데 iml 파일 만들어집니다.아래글자 주석 처리했는데도 똑같은 현상 나옵니다.include 'external:kakao-client'파일은 메일로 보냈는데 확인 부탁드립니다.
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
멀티모듈 구성 강의에 대해 질문이 있습니다.
멀티모듈 구성 강의에 대해 질문잉 이씁니다.해당 강의에서 모듈 만들 때 아래처럼 파일 디렉토리가 되어있는데요.search-api├── src │├── main ││ ├── java ││ ├── resources │├── test ├── build.gradle 제가 만들때는 아래 처럼 됩니다.저는 왜 선생님 처럼 java로 모듈을 만들면 src 폴더에 아래 파일이 안생기고 lib 폴더만 생기는 이유가 뭘까요?│ ├── java ││ ├── resources │├── test ├── build.gradle저는 모듈 구성할 때 아래와 같은 창이 나오는데요. 아래에서 grovy를 체크(아래 사진에서 파란색바탕부분임. 아래사진은 안되어있지만 체크함.)했는데 체크 안하고 진행해야 하나요? 참고로 선생님 강의 44초에는 grovy 선택하는 구간이 나와서 저도 체크했어요.제화면 선생님 화면참고로 1. IDE에서 자동 생성 옵션 활성화 https://tychejin.tistory.com/340 이링크에 나와있는데로 세팅함.build.gradle을 아래처럼 세팅했습니다.위 방법 실행 후 ./gradlew clean build 이 명령어 실행프로젝트를 새로 열기 plugins { id 'java' id 'org.springframework.boot' version '3.3.9' id 'io.spring.dependency-management' version '1.1.7' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } sourceSets { main { java { srcDirs = ['src/main/java'] } resources { srcDirs = ['src/main/resources'] } } test { java { srcDirs = ['src/test/java'] } resources { srcDirs = ['src/test/resources'] } } }캐시 삭제 후 재 진행File → Invalidate Caches / Restart 클릭"Invalidate and Restart" 선택IntelliJ가 다시 시작되면 Gradle 탭에서 "Reload Gradle Project" 버튼(↻ 아이콘) 클릭참고로 인텔리제이 2021 얼티미디엇 버전입니다. 위에 파일 아래 메일로 보냈습니다. 혹시 문제점이 있는지 봐주실 수 있으신가요?jaytech108@gmail.com
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이에서 실행이 안됩니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. > Task :prepareKotlinBuildScriptModel UP-TO-DATECould not resolve: org.springframework.boot:spring-boot-starter-thymeleafCould not resolve: org.springframework.boot:spring-boot-starter-webCould not resolve: org.springframework.boot:spring-boot-starter-test[Incubating] Problems report is available at: file:///C:/hello-spring/build/reports/problems/problems-report.htmlDeprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.12.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD SUCCESSFUL in 1s이러한 오류가 떠ㅏ서 진행을 못하고 있습니다. 2일째 고생중인데 도와주세요
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
아키텍처 질문입니다
이 아키텍처 기준으로 질문이 있습니다.client1번 -> LB -> 서버 -> 레디스 -> 서버 -> client2이런 식으로 메세지를 주고 받는다고 하셨는데,그렇다면 만약에 레디스 서버가 다운이 된다면client2번은 메세지를 못 받게 되는건가요?이런 경우는 어떻게 대비 해야 하나요?레디스는 서버 한대에만 구성 해놓나요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
수업자료 한번에 다운받기
수업자료 한번에 다운 받고 싶은데요. 압축파일로 올려주실수 있나요?