묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 부트 - 핵심 원리와 활용
window gradlew build 에러
The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: C:\Program Files\Java\jdk-11.0.13\bin\java.exe에러위와 같은 에러가 발생합니다. 하지만 사진에서 보듯 JAVA_HOME은 jdk17로 설정이 되어있고,환경 변수 설정이 제대로 동작하고 있음을 확인할 수 있습니다. 그러나 gradlew build를 진행하면 변경전 jdk11을 계속 실행하려고 해서 오류가 발생합니다. settings -> gradle 도 17로 잘 설정되어있습니다.Project Structure -> Project에 들어가도 잘 설정되어있습니다. 삽질 중인데... 도와주시면 감사하겠습니다 === 질문을 하고 한번더 실행해봤는데 성공하였습니다.Q) 왜 성공했는지 알 수 있을까요? cache 떄문에 그런것이었는지.. 아니면 환경변수 변경이 적용되기까지 시간이 걸리는 것인지요? 이 질문은 다른 분들을 위해 남겨두겠습니다!
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
RestTemplate과 Webclient
webflux를 사용할때, webClient를 사용하게 되는데, non-blocking하게 동작해서,,, 란 추상적인 의미 때문에 사용합니다. webclient는 왜 non-blocking 하게 작동하는 걸까요?.. 제대로 이해하지 못하고 사용하는것 같은데, 강사님께 설명 부탁드립니다. 그에 반해 RestTemplate, openFeign은 사용하지 않는데,예제코드를 보니 다음과 같이 사용해도 똑같이 non-blocking 하게 작동할까요?Mono.just(restTemplate.get()).subscribe() Mono.just(feign.get()).subscribe()
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
nosuchmethod 문제해결
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]세팅을 하는 도중, Junittest를 하려고하는데 Nosuchmethod 오류가 발생해 구글링 후 window - preferences - gradle - advanced option- program argyments 에 -Pjunit-jupiter.version=5.10.0 이 코드를 추가했는데 상관이 없는지 여쭤보려고 글 작성하였습니다. 해당 답변은 https://stackoverflow.com/questions/77110882/i-cant-run-junit-5-9-x-tests-in-eclipse-2023-09-4-29-0/77150487#77150487여기서 얻었습니다.[추가질문]기존 sts4로 공부를하는데 강사님이 사용하시는 intelliJ를 사용하는게 좋은지도 궁금합니다!
-
해결됨재고시스템으로 알아보는 동시성이슈 해결방법
redisson lock을 AOP로 변경하는 경우 실무 사용 방법 문의드립니다!
강사님 안녕하세요!해당 강의 수강 후 실무에 재고 동시성 처리 코드를 개발하고 있는데 궁금한 부분이 있어서 문의드립니다! redisson lock 으로 구현하였는데, 중복 코드가 많아서 AOP로 작업 작업을 하려합니다.aop를 작업 하는 경우 facade가 아니라 stockService에 직접 어노테이션을 추가하는 형태로 하는게 맞을지 혹시 해당 부분은 실무에서 사용하실때 어떤 형태로 하시는지 문의드립니다.구글 검색을 하다보니 AOP로 트랜잭션 new로 한다는 이야기가 있는데 실무에서 어떻게 쓰셨는지 궁금해서 문의드립니다!감사합니다! @Component public class RedissonLockFacade { private RedissonClient redissonClient; private StockService stockService; public RedissonLockFacade(RedissonClient redissonClient, StockService stockService) { this.redissonClient = redissonClient; this.stockService = stockService; } public void decrease(Long id, Long quantity) { RLock lock = redissonClient.getLock(id.toString()); try { boolean available = lock.tryLock(10, 1, TimeUnit.SECONDS); if (!available) { System.out.println("lock 획득 실패"); return; } stockService.decrease(id, quantity); } catch (InterruptedException e) { throw new RuntimeException(e); } finally { lock.unlock(); } } }
-
해결됨스프링 핵심 원리 - 기본편
섹션3. 스프링핵심원리 이해 강의내용질문
의존관계 주입을 사용하면 클라이언트 코드를 변경하지 않고, 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있다. 의존관계 주입을 사용하면 정적인 클래스 의존관계를 변경하지 않고, 동적인 객체 인스턴스 의존관계를 쉽게 변경 할 수 있다. 결국 이 두문장은 똑같은 말 아닌가요? 클라이언트 코드를 변경하지 않는다 == 정적인 클래스 의존관계를 변경하지 않는다클라이언트가 호출하는 대상의 타입 인스턴스를 변경할수있다 == 동적인 객체 인스턴스 의존관계를 쉽게 변경할수있다. 결국 실행이 되는부분은 클라이언트코드니까 동적으로 실행될때 정적인 클래스 의존관계가 유지가 되겠고,인스턴스가 변경할 수 있다는 의미는 런타임중에 정률 할인 정책으로 될지, 정액 할인 정책으로 될지가 동적인 인스턴스의 관계를 변경할수있다는 의미로 들려서 결국 두문장은 같은의미로 사용되지않았나 싶습니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
java: cannot find symbol
java: cannot find symbolsymbol:method isEqualTo(hello.hellospring. domain. Member)location: variable result of type hello.hellospring.domain.Member 계속 에러나고 구글링해도 안나와요 ㅠ도와주세여
-
미해결스프링 핵심 원리 - 기본편
List, Map 으로 빈 조회 할 때
AutoAppConfig.class를 넣으면 빈 값이 나와야 하는데 안 나와서 문의 드립니다..!
-
해결됨Java 마이크로서비스(MSA) 프로젝트 실습
첫번째 MSA 설명 문서 7페이지 model 오타요
잘못써있네용
-
해결됨스프링 핵심 원리 - 기본편
질문이 있습니다.
1.ComponenetScan하는 부분에서 어차피 해당부분은 Bean관리를 직접해주지않는데 Configruation을 적어주는 이유가 뭔가요??2.테스트코드에서 다른 Appconfig의 경우에는멤버변수로 스프링 컨테이너를 설정했지만 컴포넌트 스캔을 사용하는경우에는 메소드 내부에서 스프링 컨테이너 객체를 설정했는데 이유를 알수있을까요?public class ApplicationContextSameBeanFindTest { AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext(SameBeanConfig.class);public class AutoAppConfigTest { @Test @DisplayName("컴포넌트 스캔 테스트") void componentScan(){ ApplicationContext ac=new AnnotationConfigApplicationContext(AutoAppConfig.class); MemberService memberService=ac.getBean(MemberService.class); Assertions.assertThat(memberService).isInstanceOf(MemberService.class); }
-
미해결스프링 핵심 원리 - 기본편
싱글톤 관련해서 궁금한점이 있습니다.
@Configuration static class SameBeanConfig{ @Bean public MemberRepository memberRepository1(){ return new MemoryMemberRepository(); } @Bean public MemberRepository memberRepository2(){ return new MemoryMemberRepository(); } }@Test @DisplayName("타입으로 조회시 같은 타입이 둘이상 있을경우 빈이름으로 조회하면 가능함") void findBeansName(){ MemberRepository memberRepository1=ac.getBean("memberRepository1", MemberRepository.class); MemberRepository memberRepository2=ac.getBean("memberRepository2", MemberRepository.class); org.assertj.core.api.Assertions.assertThat(memberRepository1).isEqualTo(memberRepository2); }만약에 이렇게 빈을 등록하고 사용하는경우에는 사실상 싱글톤 패턴은 아니기때문에 예시를 보여주기위해서만 사용하셨을뿐 실무에서는 저런식으로 사용을 안한다고 이해해도될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Spring - Oracle 연동 시 문제입니다.
JDBC 템플릿을 사용해 글을 작성하거나 리스트를 조회하면이런오류가 발생합니다. ㅠㅠ그런데 실제로 글이 잘 저장/조회 하는데는 문제가 없습니다. 다만 작업시마다 저오류가 발생합니다;구글에서 나오는 서비스 - Listener 재시작, ora파일 수정 등의 조치는 다 해본상황입니다..어떻게하면좋을까요 ㅠ
-
미해결스프링 핵심 원리 - 기본편
복습 하던중 궁금한 사항이 생겨 질문드립니다.
섹션 2 부분에서 MemoryMemberRepository의 부분의 store를 정적 변수로 설정한 이유가 만약 멤버변수로 선언하게되면 MemberServiceImpl , OrderServiceImpl에서 각가 의존하는 MemoryMemberRepository내부의 store 객체도 달라지기때문에정적 변수로 설정하신걸까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강의내용대로 따라했는데 localprpfile를 읽어들이지못하고있네요 이유가뭘까요??
spring: config: activate: on-profile: local datasource: url: "jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER" username: "root" password: "1234" driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: show_sql: true format_sql: true dialect: org.hibernate.dialect.H2Dialect h2: console: enabled: true path: /h2-console --- spring: config: activate: on-profile: dev datasource: url: "jdbc:mysql://localhost/liberary" username: "root" password: "1234" driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: none properties: hibernate: format_sql: true use_sql_comments: true disable_sql_comments: org.hibernate.dialect.MySQL8Dialect yaml파일입니다 설정부분입니다콘솔입니다오류부분입니다2023-12-28 11:29:08.692 WARN 11440 --- [ main] o.h.t.s.i.ExceptionHandlerLoggedImpl : GenerationTarget encountered exception accepting command : Error executing DDL "drop table if exists user CASCADE " via JDBC Statement
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
계속 버전을 바꿔줘야되는게 맞는건가요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]오류가 나올때마다 구글링을 하여 해결하고 있는데,점점 버전을 제가 스스로 내려야 사용이 가능이 되네요, 이게 맞는걸까요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp파일 첫 줄 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]jsp파일을 만들고 첫번째 줄에서 오류가 뜨고 있습니다.The default superclass, "javax.servlet.http.HttpServlet", according to the project's Dynamic WebModule facet version (2.4), was not found on the Java Build Path.이런 오류가 뜨는데 구글링을 해보니 톰캣 버전 문제인거 같다~ 이렇게 이야기 하는데 톰캣도 제 눈에서는 보이지가 않네요,,
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링부트 다운받은뒤 오류가 나와 혼자 수정해 보았습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인프런 질문 게시판에는 스프링부트 3.0 이상을써라 3.0 이상이면 jdk 17 이상 써야된다 하셔서 3.0 이상으로 다운도 받았고 버전도 21로 사용하고 있는데, A problem occurred configuring root project 'hello-spring'.> Could not resolve all files for configuration ':classpath'.> Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.1.Required by:project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.1> No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.1 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.5' but:- Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a library, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 8- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '8.5')- Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a component for use during runtime, and its dependencies declared externally:- Incompatible because this component declares documentation and the consumer needed a library- Other compatible attributes:- Doesn't say anything about its target Java version (required compatibility with Java 8)- Doesn't say anything about its elements (required them packaged as a jar)- Doesn't say anything about org.gradle.plugin.api-version (required '8.5')- Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.1 declares a library, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 8- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '8.5')- Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.1 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '8.5')- Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally:- Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8- Other compatible attribute:- Doesn't say anything about org.gradle.plugin.api-version (required '8.5')- Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.1 declares a component for use during runtime, and its dependencies declared externally:- Incompatible because this component declares documentation and the consumer needed a library- Other compatible attributes:- Doesn't say anything about its target Java version (required compatibility with Java 8)- Doesn't say anything about its elements (required them packaged as a jar)- Doesn't say anything about org.gradle.plugin.api-version (required '8.5')* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.이런 오류가 나와서build.gradle 에서플러그인을 id 'org.springframework.boot' version '2.6.3'로 바꿨고dependencies 에implementation 'org.springframework.boot:spring-boot-starter'를 추가하였더니 오류는 안나더군요이렇게 해결하는게 맞는건가요?그럼 스프링부트 버전이 3.0 이상이 아닌 2.6.3버전을 사용하게 되는건데 괜찮은건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA @Transactional
[질문 내용]JPA 기술을 사용할 때 리포지토리 계층에 @Transactional을 붙여줘야 한다고 말씀해주셨는데 MemberRepository 코드에서는 JPA를 사용하는데 왜 @Repository만 붙여주는 건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Hello 클래스 접근제한자
해당 부분 메세지 관련하여 알아본 내용으로는, Hello 클래스를 선언할 때 접근제한자가 생략되어 private으로 취급되는데 helloApi 메소드는 public이어서 private 클래스가 외부로 노출되어 뜨는 경고라고 합니다. 이 내용이 맞는 것인지, 맞다면 해당 방식의 작성법은 문제점이 있을 수 있는 방식인지 답변 부탁드립니다.
-
해결됨스프링 핵심 원리 - 기본편
request 스코프 에러에 대해서 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]김영한님이 하신 그대로 작성하여 Scope를 request에 맞춰서 컨트롤러와 서비스를 만들어 스프링 부트를 작동한 경우 로그에서 에러가 발생하셨습니다.똑같이 코드를 작성하였음에도 이상하게 정상적으로 스프링 부트가 실행이 되고 있고 스크린샷으로 첨부는 하지 않았으나 Debug로 로그 범위를 확장하였음에도 해당 오류 ('request 스코프 예제 만들기' 강좌 14:30 직후)에 대해서 확인이 안되고 있습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
타임리프 리졸브가 안됩니다 ㅜㅜ
타임리프 코드에 오류는 전혀없고 복사 붙여넣기 했는데도basic/items 페이지에 저희가 등록한 상품이 보이지 않습니다. 구글 드라이브 링크 : https://drive.google.com/file/d/1teL4AlmDdsDJD_S7BFYxiw7l6N-2Q3zE/view 전에 저와 같은 문제가 있으신 분을 봤는데 해결이 정확히 안난것같아서 다시한번 여쭙니다 !!😔 봐주시면 감사하겠습니다 ㅜㅜㅜ 참고로 무료버전입니다!