묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
'다대다' 속성 value 타입은 'Category'일 수 없습니다. 오류
안녕하세요 강의를 따라하던중 다음과 같은 오류가 발생합니다.교안과도 같은 코드이고 인텔리제이도 껐다 켰는데 왜 이런 문제가 발생하는지 모르겠습니다.
-
미해결견고한 결제 시스템 구축
완강!!!!!!!!!!!!!!
드디어 완강!! 🥳유익한 강의 잘들었습니다.감사합니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
장바구니 수량 변경 문의드립니다.
장바구니 수량 변경 및 커스텀 훅 강의에서 장바구니 수량 +,- 버튼 클릭하면 장바구니의 수량이 동적으로 변경되더라구요. 그런데 저는 화면에 수량이 변경되지않네요. ajax 로 정상 처리 되고 장바구니 데이터도 정상적으로 받아 와서 새로고침 하면 수량이 변경된것을 확인은 할 수 있어요. 소스코드:React CH11 에서 코드를 비교했는데 다르지 않았습니다. 확인부탁드릴게요~
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
실무에서 매핑 테이블은 어떻게 활용할 수 있을까요?
토이 프로젝트를 진행하던 중 궁금한 내용이 생겨서 질문 드립니다.과거 Mybatis와 같은 것을 활용해 진행할 때는코드 매핑 테이블에 코드값 (기본키)과 코드명 이렇게 있고특정 테이블에서는 이러한 코드 값 키를 들고 있어 서브쿼리를 활용해 코드 명을 가져오는 방식으로 활용했습니다.JPA에서 위 구조를 활용하려면 특정 엔티티에 코드 엔티티를 넣고 서로 연관관계를 걸어 준 후에 fetch join으로 select 하는게 베스트 일까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
Security 에서 사용되는 Filter 의 @Bean 등록에 관하여 질문있습니다.
안녕하세요 선생님, 제가 읽은 spring security 문서와 제공해주신 ppt 의 내용에 약간 다른 점이 있어서 질문드립니다. [인증 관리자 - AuthenticationManager - 1] 강의 20:54 에 나오는 ppt 에는 CustomAuthenticationFilter 를 @Bean 으로 등록하라고 나옵니다. 그런데 제가 읽은 spring security 문서에서는 spring security 전용 Filter 는 단순히 @Bean 으로만 등록하면 servlet container 에 의해서 자동으로 Filter 로 등록되버리기 때문에 FilterRegistrationBean 까지 사용해서 이를 우회하라는 글을 본적이 있습니다. 참고: Architecture :: Spring Security 혹시 ppt 오타일까요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
주문조회 강제 초기화 질문
@GetMapping("/api/v1/orders") public List<Order> ordersV1() { List<Order> all = orderRepository.findAll(); for (Order order : all) { order.getMember().getName(); //Lazy 강제 초기화 order.getDelivery().getAddress(); //Lazy 강제 초기화 List<OrderItem> orderItems = order.getOrderItems(); orderItems.stream().forEach(o -> o.getItem().getName()); //Lazy 강제 초기화 } return all; }첫 질문Lazy방식이기에 조인되어 있는 필드를 가져오지 못하기에 member와 delivery는 One이기 때문에 get으로 초기화 하고orderItem은 Many이기 때문에 List형식으로 stream으로 초기화 하는걸로 이해해도 될까요?강제 초기화를 하는 이유는 값을 넣어주기 위해..? 인가요..? 두번째 질문orderItems.stream().forEach(o -> o.getItem().getName());이 부분 코드 제가 이해한게 맞는지 확인부탁드립니다.o(orderItems 컬렉션에서 하나하나)에서 getItem().getName()를 가져와서 반환할 것이다.근데 getName(이름 가져오기)만 하는데 Item의 모든 api값을 가져오는것 같아서 질문드립니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
RestAPI를 제공하는 서버에서 Redis + Session을 통해 인증을 시도하고 있는데 직렬화가 되지 않습니다.
안녕하세요 강의 잘 보고 있습니다.저는 지금 Rest API서버를 생성하고 인증을 하는 방식은 session으로 하고 session 저장소를 Redis로 옮겨 구현하고자 합니다. 그러나 강의와는 다르게 @EnableRedisHttpSession 어노테이션을 추가해도 Redis에 저장이 되지 않는 오류가 있는데 이를 어떻게 해결해야할지 모르겠어 질문을 드립니다. Redis가 아닌 Memory에 저장을 하였을때는 정상 동작하였으며 디버깅을 통해 문제의 원인을 파악해본 결과 SecurityContextImpl 객체에 대한 직렬화를 수행해주는 클래스가 존재하지 않아 오류가 발생하는 듯 합니다. 혹시 이 문제에 대해 도움을 받을 수 있을까요? 문제상황을 작성해놓은 포스팅과 프로젝트의 압축파일을 첨부해드리도록 하겠습니다.추가로 프로젝트 환경은 로컬에서 진행하였으며 H2 DB와 Redis를 사용하였습니다.https://goto-pangyo.tistory.com/286https://drive.google.com/file/d/1DccNwJWmUPBpe3KwsqxPp_VpYIAQRRaR/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.D:\down\study\hello-spring\hello-spring스프링 폴더를 설치한 곳cmd콘솔로 들어가서 위의 폴더까지 이동 후 강의자료처럼 실행하려 하는데 실행이 안되네요..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew build오류
자바 버전 17으로 맞게 설정해놨고, 인텔리제이 내에서도 전부 버전을 일치시켰습니다. 하지만 자꾸 빌드가 실패해요ㅠㅠ 도저히 모르겠습니다...도와주세요ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
addAttribute에러
에러어떻게 해결해야 하나요!
-
미해결1시간만에 끝내는 virtual thread in spring boot
pinned 확인법
https://github.com/openjdk/jdk/pull/17221이런 내용이 있네요. -Djdk.tracePinnedThreads 보다 JFR 을 권장하는 것 같습니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
섹션 2 마지막 REST컨트롤러-수정/삭제,CORS 설정 첨부파일을 요청합니다.
안녕하세요 강의를 듣는중에 섹션 2 마지막 REST컨트롤러-수정/삭제,CORS 설정 이 부분에서 PutMapping modify 메서드에 서비스 명과 파라미터명이 위에서 코딩한거랑 다르더라구요 service가 아니라 todoservice이고 파라미터는 todoDTO가 아니라 dto 던데 제가 입력한 부분이 정확히 맞는건지 확인하기가 어려워서 코드를 볼 수 있는 첨부파일을 요청합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
실행이 갑자기 안 됩니다.ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.2024-05-17T11:41:14.307+09:00 ERROR 20364 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.2024-05-17T11:41:14.314+09:00 WARN 20364 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata2024-05-17T11:41:14.351+09:00 ERROR 20364 --- [ main] o.s.boot.SpringApplication : Application run failed 해당 강의를 들은 후 유튜브에서 mysql에 mariadb를 사용하는 강의를 따라했는데 현재는 두 프로젝트에 에러가 뜬 상태입니다.유튜브를 보고 따라한 프로젝트는 삭제를 한 상태이고요그 후 hello-spring을 실행한 후 뜬 에러메세지가 위와 같습니다.ㅜㅜ
-
미해결PZM기반 실무중심 백엔드 부트캠프(프리트레이닝)
root-context가 다르게 나와서 복사하려는데 깃허브 어디로 들어가야 하나요?
root-context가 다르게 나와서 복사하려는데 깃허브 어디로 들어가야 하나요?
-
해결됨스프링 시큐리티 OAuth2
oauth2 적용시 cors 에러
안녕하세요 디테일한 강의 어렵지만 조금씩 잘 보고 있습니다.좋은 강의 만들어주셔서 감사합니다. 제가 실무에서 oauth2 로 google , naver 로그인 연동에 진행중에 있습니다.spring boot 3.x 버전이고 kotlin 으로 진행중에 있습니다. 현재 cors 에러가 나서 검색하다가https://www.inflearn.com/questions/1064449/authenticationentrypoint-%EB%A5%BC-%EA%B8%B0%EB%B3%B8-%EC%84%A4%EC%A0%95%EB%90%9C-login%EC%9D%B4-%EC%95%84%EB%8B%8C-react-%EC%9B%B9-%ED%8E%98%EC%9D%B4%EC%A7%80%EB%A1%9C-%EC%84%A4%EC%A0%95-%EC%8B%9C-cors-%EB%AC%B8%EC%A0%9C%EA%B0%80-%EC%A7%80%EC%86%8D%ED%95%B4%EC%84%9C-%EB%B0%9C%EC%83%9D%ED%95%A9 여기서말씀하신CorsConfigurationSource corsConfigurationSource() 적용해보았고정말 많은 수정을 하였지만 계속 cors 에러가 나고 있는상황입니다.현재 local 에서 작업테스트중이며front : localhost:3000backend : localhost:8080 현재 api 서버입니다. 인증이 필요없는 페이지에서는 axios 로 호출된 데이터가 잘 호출이됩니다.아래는 kotlin 으로만든 securityConfig 입니다.혹시 추가할 사항이 있을까요? 봐주셔서 감사합니다.( 별도의 WonCoinfig 클래스에 corsRegistry 도 추가되어 있습니다. ) package hurryup.hukbizibbackend.config import hurryup.hukbizibbackend.service.CustomOAuth2UserService import hurryup.hukbizibbackend.utils.JWTFilter import hurryup.hukbizibbackend.utils.JWTUtil import hurryup.hukbizibbackend.utils.OAuth2SuccessHandler import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.security.config.annotation.web.builders.HttpSecurity import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity import org.springframework.security.config.http.SessionCreationPolicy import org.springframework.security.web.SecurityFilterChain import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter import org.springframework.security.web.authentication.logout.CookieClearingLogoutHandler import org.springframework.web.cors.CorsConfiguration import org.springframework.web.cors.CorsConfigurationSource import org.springframework.web.cors.UrlBasedCorsConfigurationSource @Configuration @EnableWebSecurity class SecurityConfig( private val customOAuth2UserService: CustomOAuth2UserService, private val oAuth2SuccessHandler: OAuth2SuccessHandler, private val jwtUtil: JWTUtil ) { // // private fun configureCors(corsCustomizer: CorsConfigurer<HttpSecurity>) { // corsCustomizer.configurationSource(corsConfigurationSource()) // } // // @Bean // fun corsConfigurationSource(): CorsConfigurationSource { // println("corsConfigurationSource") // val configuration = CorsConfiguration() // configuration.allowedOrigins = listOf("http://localhost:3000") // //configuration.addAllowedOrigin("*") // configuration.allowedMethods = listOf("GET", "POST", "PUT", "DELETE", "OPTIONS") // //configuration.allowedHeaders = listOf("*") // configuration.allowedHeaders = listOf("Origin", "Content-Type", "Accept", "Authorization", "X-Requested-With", "X-XSRF-TOKEN", "X-Auth-Token", "X-Auth-Token-Expire", "X-Auth-Token-Refresh") // //configuration.exposedHeaders = listOf("Set-Cookie", "Authorization") // configuration.maxAge = 3600L // configuration.allowCredentials = true // // return CorsConfigurationSource { configuration } // } @Bean fun corsConfigurationSource(): CorsConfigurationSource { val config = CorsConfiguration() config.allowCredentials = true config.allowedOrigins = listOf("http://localhost:3000") config.allowedMethods = listOf("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS") config.allowedHeaders = listOf("*") config.exposedHeaders = listOf("*") val source: UrlBasedCorsConfigurationSource = UrlBasedCorsConfigurationSource() source.registerCorsConfiguration("/**", config) return source } @Bean fun securityFilterChain(http: HttpSecurity): SecurityFilterChain { http //.cors { configureCors(it) } .cors { it.configurationSource(corsConfigurationSource()) } http .csrf { it.disable() } http .formLogin { it.disable() } http .httpBasic { it.disable() } http .addFilterAfter(JWTFilter(jwtUtil), UsernamePasswordAuthenticationFilter::class.java) http .oauth2Login { oauth2 -> oauth2.userInfoEndpoint { endpoint -> endpoint.userService(customOAuth2UserService) } .successHandler(oAuth2SuccessHandler) } http .logout { it.deleteCookies("Authorization") // 단순 쿠키삭제 // 이 메소드는 LogoutHandler 인터페이스를 구현한 CookieClearingLogoutHandler 객체를 로그아웃 핸들러로 추가합니다. // CookieClearingLogoutHandler는 생성자에서 받은 쿠키 이름들을 로그아웃 시 삭제합니다. // 이 메소드는 여러 개의 쿠키를 한 번에 삭제할 수 있으며, 추가적인 로그아웃 로직을 구현할 수 있습니다. .addLogoutHandler(CookieClearingLogoutHandler("Authorization")) } http .authorizeHttpRequests { auth -> auth.requestMatchers("/", "/login", "/swagger-ui/**", "/v3/**","/api/v1/users/" + "").permitAll() // root 경로는 모두허용 .anyRequest().authenticated() // 나머지는 인증 필요 } http .sessionManagement { session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS) } return http.build() } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.버젼은 다 맞게 깔렸으며인텔리제이 커뮤니티 버젼으로 설치.2020년 3월 버전으로 설치.오류 해결 부탁드려요!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로그에 traceId, spanId 모두 잘 찍히는데 traceId로 조회가 안 됩니다.
로그에 traceId, spanId 모두 잘 찍히는데 브라우저의 zipkin에서 traceId로 조회를 하면 no trace가 뜨네요. 스프링부트 3에 맞춰서 깃허브에 올려주신 자료 참조해서 디펜던시 맞게 설정하고 yml에도 올려주신 자료대로 수정했는데 이런 문제가 생기면 어떤 부분이 잘못된 걸까요?
-
미해결견고한 결제 시스템 구축
테스트 시 오류
안녕하세요 강사님테스트 진행 시에 오류가 발생해서강사님께서 올려주신 샘플 프로젝트에서도 똑같이 테스트 진행해보았으나 동일한 오류가 발생합니다혹시 테이블 제약조건 변경이 필요한건가요..?제가 테이블 생성 시 사용했던 스크립트와 오류메세지 전달드립니다감사합니다 could not execute statement [Cannot add or update a child row: a foreign key constraint fails (`test`.`ledger_entries`, CONSTRAINT ledger_entries_ibfk_1 FOREIGN KEY (`transaction_id`) REFERENCES ledger_transaction (`id`))] [insert into ledger_entries (account_id,amount,transaction_id,type) values (?,?,?,?)]; SQL [insert into ledger_entries (account_id,amount,transaction_id,type) values (?,?,?,?)]; constraint [null]
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
db 컬럼 이름 형식
JPA 관련 질문 드립니다.db 테이블의 컬럼 이름을 만들 때 isSold 라는 컬럼을 케멀케이스 형식으로 만들었습니다.그런데 이러한 함수를 만들어서 사용할려고 하니 계속 에러가 떴습니다.이러한 에러가 나와서 살펴보니 is_sold라는 컬럼을 찾는 것 같은데 저는 IsSold라고 컬럼명을 지어서 오류가 나는 거라고 생각이듭니다.제가 궁금한점은1. jpa가 스네이크케이스 형식으로 컬럼명을 자동으로 찾는 것 같아 오류가 나오는 걸로 생각이 드는데 이게 맞을까요?2. 그럼 db의 컬럼 명을 처음 만들 때 컬럼명이 길 경우 스네이크케이스 형식으로 만들어야 할까요? 보편적으로 어떻게 하는지 궁금합니다.
-
미해결견고한 결제 시스템 구축
JpaLedgerTransactionMapper.class
강사님 샘플 프로젝트에서 발견한 오타 제보드립니다!!referenceType = ledgerTransaction.referenceType,referenceType = ledgerTransaction.referenceType.name,