묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Mysql 연결 부분 오류
spring: datasource: url: "jdbc:mysql://localhost/library" username: "root" password: "비밀번호" driver-class-name: com.mysql.cj.jdbc.Driver위와 같이 application.yml 파일을 작성했는데, 사용자 등록을 하면 서버 내부 오류라고 뜨면서 아무것도 안되더라구요.개발자 도구로도 봤는데 뭐가 문제인지 잘 모르겠어서 구글을 찾아보다가 jpa: database: mysql hibernate.ddl-auto: update show-sql: trueapplication.yml 파일에 추가로 이걸 입력하니까 정상적으로 작동하네요.. 혹시 이렇게 두고 실행해도 괜찮은건지 여쭤보고싶었습니다!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
try catch
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]다름이 아니라 try-with-resources 사용하면 자원이 끊길 때 알아서 close() 호출해주니까 JdbcUtils로 닫을 필요없이 try-with-resources 사용하면되지 않나요?!try ( Connection con = getConnection(); PreparedStatement pstmt = con.prepareStatement(sql)) { pstmt.setString(1,memberId); int resultSize = pstmt.executeUpdate(); log.info("resultSize={}", resultSize); } catch (SQLException e) { log.error("db error",e); throw e; }
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 cmd에서 서버 실행이후 서버종료 방법
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 강의 중반에 bulid한 이후 맥 환경에서 서버 종료하는 방법은 알려주셨는데 혹시 윈도우 환경에서는 서버를 종료하는 방법이 있는지 궁금합니다.
-
미해결스프링 핵심 원리 - 기본편
강의 테스트 오류내용 질문 / 소스코드 있음
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용][소스코드]https://drive.google.com/drive/folders/12UKQ6SBa5fZeSdpWkr36EDpLkZtXad4t?usp=sharing 강의를 듣는데 @Autowired 어노테이션에서 같은 타입이 2개이상 조회된 경우 필드명을 동일하게 해주면 해당 필드명에 맞는 빈을 주입한다고 했는데 빈이 적용되지 않는 오류가 납니다.. ㅠㅠ 테스트 코드를 아무리 돌려봐도 안되네요. 도와주세요!또한 rateDiscountPolicy로 바꿔도 강사님과는 다르게 전체 테스트를 돌려보았을 때 xml은 성공적으로 수행하는 모습입니다. 이것도 왜 그런지 잘 모르겠습니다.앞전 강의에서 전체 테스트를 돌렸을 때 CoreApplicationTests 에서 에러가 났는데, 여기서도 에러가 해결되지 않아 CoreApplication에 컴포넌트 스캔 및 excludeFilters 를 달아서 해결하였는데 이것도 왜 안되었던건지 궁금합니다.!!전체 테스트를 돌렸을 때 총 3개가 에러가 나는데 basicSacn 뿐 아니라 나머지 2개가 왜 에러나는지도 해결 부탁드리고 싶습니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
messages.properties 한글이 왜 깨짐 ?
[질문 내용]settings에 encoding 드가서 UTF-8로 다 설정도 해줬는데 왜 자꾸 안녕 -> ?? 로 인식이됨?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
파일 업로드
안녕하세요.다른 질문글들을 다 참고하여 따라 해보았으나 업로드가 되지 않아 질문 남기게 되었습니다.[질문 내용]한글 주소로 사용하지 않기 위해 로컬디스크 C에 file을 만들어 진행하였는데 사진과 같은 오류가 발생합니다. (노랗게 칠한부분은 한글로 제이름입니다.) [구글 드라이브 주소]https://drive.google.com/file/d/1VW52xdG7KyWdewGShZijEcJjhXc2v_4w/view?usp=sharing
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리하기 - 세션 직접 만들기 관련 추가 질문입니다.
https://www.inflearn.com/questions/1277199/%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0-%EC%84%B8%EC%85%98-%EC%A7%81%EC%A0%91-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EA%B4%80%EB%A0%A8-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4 질문에 대해서세션은 서버에 저장되고, 쿠키는 클라이언트에 저장된다는걸 깜빡했네요....추가질문입니다.서로 다른 프로그렘들이 SESSION_COOKIE_NAME 을 동일하게 사용한다면 중복으로 인한 문제가 발생하겠네요? 그렇다면 이를 회피하기 위한 방법도 있나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
트랜잭션을 리포지토리가 아닌 서비스계층에 적용하는 이유가 궁금합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.왜 서비스에 트랜잭션을 적용하냐는 다른 분의 질문에 하나의 트랜잭션으로 묶어서 사용하기 위함이라고 답글이 달린걸 봤는데 이것또한 그러한 이유때문인가요?
-
해결됨스프링부트 시큐리티 & JWT 강의
구글 로그인시 authentication이 null 값이라고 에러가 발생합니다.
8강 15:08쯤에 구글 로그인을 하고 http://localhost:8080/test/oauth/login 경로로 get요청을 보내게 되면 아래와 같은 에러가 발생합니다. 원인은 authentiacation의 값이 null이기 때문에 getPrincipal()을 하지 못하는 것 같습니다. 어떤 부분에서 Authentication객체에 값을 넣어주는 걸까요??혹시 loadUser메소드에서는 값이 정확하게 노출이 되는것을 확인 할 수 있는데 혹시 loadUser에서 authentication객체에 값을 넣어주는 부분일까요??
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
[긴급-재업로드]수업질문 로그인 안 되는 문제
https://drive.google.com/file/d/1ZLSuM4WzJVs4Hec74h64ketY0KtzEEFu/view?usp=sharing이 링크에 가면 pdf가 있는데, 여기에 제가 작성한 코드를 모두 작성했습니다.이 구글드라이브 링크에 가서 코드를 확인해보시고 답변에 참고가 되셨으면 좋겠습니다. 이 외에Tag.java, ConsoleMailSendeer.java, check-email.html, checked-email.html, profile.html, fragments.html는 pdf에 있습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Integer age에 age=""를 넘기는 경우
@ResponseBody @RequestMapping("/request-param-required") public String requestParamRequired( @RequestParam(required = true) String username, @RequestParam(required = false) Integer age) { log.info("username={}, age={}", username, age); return "ok"; }'http://localhost:8080/request-param-required?username=&age='라고 요청을 했습니다. Integer age = "";과 같이 되기에 오류가 발생할 것이라고 생각했는데, 요청이 정상적으로 처리되었고 콘솔에는 'username=, age=null'로 찍혔습니다. 왜 그런걸까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
비동기 인증까지 한 상태이며, 배포 목적으로 빌드 시 에러가 발생합니다.
ubuntu@ip-172-31-86-200:~/memberCertification$ ./gradlew clean buildDeprecated 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.7/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 15s 8 actionable tasks: 8 executed ubuntu@ip-172-31-86-200:~/memberCertification$ ./gradlew clean build > Task :test MemberCertificationApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1773 Caused by: org.hibernate.service.spi.ServiceException at AbstractServiceRegistryImpl.java:276 Caused by: org.hibernate.HibernateException at DialectFactoryImpl.java:191 1 test completed, 1 failed > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/ubuntu/memberCertification/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. Deprecated 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.7/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 15s 8 actionable tasks: 8 executed ubuntu@ip-172-31-86-200:~/memberCertification$ ./gradlew clean build > Task :test MemberCertificationApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1773 Caused by: org.hibernate.service.spi.ServiceException at AbstractServiceRegistryImpl.java:276 Caused by: org.hibernate.HibernateException at DialectFactoryImpl.java:191 1 test completed, 1 failed > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/ubuntu/memberCertification/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. Deprecated 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.7/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 14s 8 actionable tasks: 8 executed구글에 검색해본 결과, java: error: invalid flag: --warning-mode=all을 하면 된다는 글을 보고 Preferences > Compiler > java Compiler에 --warning-mode all --stacktrace 입력을 하고 실행을 해봤습니다.java: error: invalid flag: --warning-mode=all가 발생하며 실행이 되지 않습니다. 어떻게 해야 에러를 고칠 수 있을까요 ?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요 질문있습니다.
MemberListControllerV4 에서 model을 return 하지 않고도 FrontControllerServletV4에서 process메소드를 호출해도 model에 members 값이 들어가 있는이유가 참조변수라서 그런건가요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
jpaRepository 에서 update 메서드 테스트 질문 드립니다.
jpaRepository에서 update 관련 메서드를 테스트하던 중 고민이 생겼습니다.update로 변경한 결과가 DB가 아닌, 영속성 컨텍스트에만 반영이 되어서 수정된 값을 확인하기 위해 find()메서드로 저장된 객체를 불러오면 수정한 것과 다른 원본 결과가 출력됩니다.이 문제를 해결하기 위해 두 가지 방법을 생각해보았습니다.하나는 @Modifying 애노테이션에 clearAutomatically = true 라는 옵션을 달아주는 방법이었는데, 이 방식은 테스트를 위해 프로덕션 코드를 수정하기도 하고 성능에 문제가 발생해서 제외하였고다른 하나는 테스트 코드에 EntityManager를 이용해 강제로 flush()와 clear()를 이용해 영속성 컨텍스트를 비워주도록 하는 방법이었습니다. 이 방식도 테스트 코드가 깔끔하지 않고 더 jpa에 종속적이게 되는 것 같아서 마음에 들진 않는데 강사님은 어떤 방식으로 해결하셨는지 궁금합니다!
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
Build and run using과 Run tests using을 Gradle이 아닌 InteliJ IDEA로 실행하면 해당 에러가 발생합니다.
Description: Parameter 0 of constructor in com.example.membercertification.security.config.SecurityConfig required a single bean, but 2 were found: - authenticationProvider: defined in file [/Users/jjeong/Desktop/study/memberCertification/out/production/classes/com/example/membercertification/security/provider/FormAuthenticationProvider.class] - restAuthenticationProvider: defined in file [/Users/jjeong/Desktop/study/memberCertification/out/production/classes/com/example/membercertification/security/provider/RestAuthenticationProvider.class] This may be due to missing parameter name information Action: Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed Ensure that your compiler is configured to use the '-parameters' flag. You may need to update both your build tool settings as well as your IDE. (See https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-6.x#parameter-name-retention) 해당 에러에서 적힌 provider 2개를 @Qualifier와 @Primary로 설정하면 /api에서 로그인 할 경우, 로그인 영속성이 안 되는데 어떻게 해결해야 하나요 ?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
질문
[질문 내용]objectMapper을 써서 JSON을 Java로 변환시킬때readValue()안에 있는 자바 클래스안에 생성자가 있어야 되는걸로 알고있습니다 !그럼 따로 만들지 않았으니 자바가 생성해주는 기본생성자를 쓰는 것인가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리하기 - 세션 직접 만들기 관련 질문입니다.
SessionManager를 보면 SESSION_COOKIE_NAME과 로그인 할 때마다 새로 생성한 sessionId로 쿠키를 만드는 것 같습니다.이 프로그램을 사용하는 여러 멤버들이 동시에 로그인을 한다면, sessionId는 다르지만 SESSION_COOKIE_NAME이 동일한 쿠키가 중복되서 생기지 않나요?findCookie에서는 SESSION_COOKIE_NAME만 가지고 로그인한 멤버가 사용하는 sessionId를 제대로 찾을 수 있는건가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
SQL MAPPER Mybatis
최근에 우연히 spring.start.io에서 프로젝트를 만들다가 스프링 부트 3.3버전에서는 mybatis 의존성 추가를 막아 놓은것을 발견했습니다. mybatis라는 기술이 최신 버전의 스프링에서는 별로 좋지않은 방법이어서 의존성 추가를 못하게 막아놓는 건가요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
JpaRepository 조건
스프링 데이터 JPA 조건2에서SpringDataJpaRepository의 findAll 메서드의 `@Query`에서 오타를 내서 코드가 테스트에서 오류가 발생했습니다. 추후 코드를 고치니 문제를 해결할 수 있었습니다. 여기서 궁금한 점은 테스트에서 findAll에만 영향을 미치는 것이 아니라 왜 전체 테스트에서 오류가 발생하는 것인지 궁금합니다. 혹시 이 부분에 대해선 프록시 객체를 띄우는 데, 메서드의 유효성을 검사하는 로직이 존재하거나 아니면 다른 무언가가 있는지 궁금합니다. package hello.itemservice.repository.jpa; import hello.itemservice.domain.Item; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; public interface SpringDataJpaItemRepository extends JpaRepository<Item, Long> { List<Item> findByItemNameLike(String itemName); List<Item> findByPriceLessThanEqual(Integer price); // 쿼리 메서드(아래 메서드와 같은 기능 수행) List<Item> findByItemNameLikeAndPriceLessThanEqual(String itemName, Integer price); // 쿼리 직접 실행 // error를 추가해 쿼리 오류 생성 @Query("error select i from Item i where i.itemName like :itemName and i.price <= :price") List<Item> findItems(@Param("itemName") String itemName, @Param("price") Integer price); }
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
DTO request와 response
dto에서 request를 구성할 때에 Create와 Update에 대한 request를 두 개로 나누어 구성하시는 것을 봤습니다.제가 생각하기에 user 테이블에 접근하여, userService에 사용되기 위한 것이니 UserRequest라는 클래스를 만들어 하나로 통합하여 사용하면 보기 편하고 사용하기 쉬울 것 같습니다.성능에서 차이가 있다던지 request를 따로 구별해서 사용하신 이유가 있는지 궁금합니다.