묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Member를 다른페키지에서 도입시에 import 문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 회원 도메인과 리포지토리 만들기 파트에서 Member을 사용하게 되면 import.hellospring.domain.Member를 불러오는데 제 intellij에서 import java.lang.reflect.Member를 불러오게 됩니다. 둘다 Member를 불러오는 import 인데 뭐가 다른지 물어보고 싶습니다.[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
설계에 대한 질문입니다.
강의를 듣고 간단한 게시판을 만들고 있습니다.구현을 하다가 이런식으로 양방향 편의메서드를 작성했습니다.Post(게시글)을 생성할 때 setBoard()를 사용해서 Board.posts 리스트에 생성된 Post 객체를 넣도록 하고 있습니다. public void setBoard(Board board) { this.board = board; if (!board.getPosts().contains(this)) { board.getPosts().add(this); } 여기서 든 고민이 있습니다. 예를 들어 한 게시판에 게시글이 100만개 혹은 엄청난 양의 게시글이 쌓여있다고 가정을 한다면 contains()를 하는 과정이 O(N) 이 걸려 성능이 안좋아질거라고 생각했습니다. 근데 논리적으로 생각했을 때 Board(게시판)에 똑같은 객체(=PK가 같은) Post(게시글) 가 들어갈 일이 있을까? 라는 생각을 해서 굳이 중복 검사하는 로직이 필요하나라는 생각이 들었습니다. 이럴 경우는 어떻게 생각하시나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
index.html 실행 안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 프로젝트 환경 설정 강의 3번째 파트 view 환경설정하는 부분에서 index.html 파일이 실행이 안 됩니다.out 파일 삭제, 캐시 삭제, http://localhost:8080 직접 쳐서 접근, 포트 삭제 다 해봤는데도 사파리, 크롬 둘 다 welcome 페이지가 뜨지 않습니다.어디가 문제인 걸까요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
커스텀 AuthenticationProvider 구현 질문
저번시간에 커스텀 UserDetailsService를 만들고 이번에 커스텀 AuthenticationProvider를 만드는데 커스텀 AuthenticationProvider는 왜 만드는건가요? 커스텀 UserDetailsService는 저희가 이번 프로젝트에서 유저 객체를 db와 연동하기 때문에 구현을 안하면 제대로 작동하지 않아서 반드시 만들어야 하는데, 커스텀 AuthenticationProvider는 만들지 않아도 저번시간마지막에 보면 로그인 인증이 제대로 되는데 왜 만드는건가요?
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
AccountDto 생성 이유
지금 생성한 AccountDto는 Account 와 모든 필드가 동일한데 무슨 이유로 만든건가요? 보통 Dto는 Entity 객체와 응답하거나 받을때 필드가 달라서 그럴때를 위해 만드는걸로 아는데 지금 만든 두 객체는 필드가 동일한데 뭐하러 만드는지 모르겠습니다.FormUserDetailsService에서 마지막에 return하기전에 account 객체를 AccountDto 타입으로 바꾸면서 하신 말씀이 클라이언트에서 엔티티 객체를 그대로 주지 않기 위해서 라고 하셨는데 지금 FormUserDetailsService는 인증 필터에서 받고 사용하는거라 클라이언트에게 주는게 아니지 않나요?
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
-
-
-
미해결스프링 시큐리티 OAuth2
rsa 512 복호화 에러
org.springframework.security.oauth2.jwt.BadJwtException: An error occurred while attempting to decode the Jwt: Signed JWT rejected: Invalid signature at org.springframework.security.oauth2.jwt.NimbusJwtDecoder.createJwt(NimbusJwtDecoder.java:180) ~[spring-security-oauth2-jose-5.7.3.jar:5.7.3] at org.springframework.security.oauth2.jwt.NimbusJwtDecoder.decode(NimbusJwtDecoder.java:137) ~[spring-security-oauth2-jose-5.7.3.jar:5.7.3] at io.security.oauth2.resource.server.filter.authorization.JwtAuthorizationRsaPublicKeyFilter.doFilterInternal(JwtAuthorizationRsaPublicKeyFilter.java:38) ~[classes/:na] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:223) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:217) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.7.3.jar:5.7.3] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.22.jar:5.3.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.22.jar:5.3.22] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.22.jar:5.3.22] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.65.jar:9.0.65] at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]Caused by: com.nimbusds.jose.proc.BadJWSException: Signed JWT rejected: Invalid signature at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:378) ~[nimbus-jose-jwt-9.22.jar:9.22] at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:303) ~[nimbus-jose-jwt-9.22.jar:9.22] at org.springframework.security.oauth2.jwt.NimbusJwtDecoder.createJwt(NimbusJwtDecoder.java:154) ~[spring-security-oauth2-jose-5.7.3.jar:5.7.3] ... 57 common frames omitted이런 에러가 발생하고 있습니다. 이유를 잘 모르겠습니다.
-
해결됨생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
토큰발행시 500 INTERNAL_SERVER_ERROR
{errorCode: "500 INTERNAL_SERVER_ERROR",errorMessage: "[405 Method Not Allowed] during [POST] to [https://kauth.kakako.com/oauth/token?code=fTm_uxdiNTjsBlzeAOwQfGPMqg6kR0ouuBK8VkuKSBohWDx0skqriAAAAAQKPXObAAABkkMviG3MISgqRbFCUQ&grant_type=authorization_code&client_secret=kGuBVOPHxDwPJpEOJBDo5TtagIjOGLri&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Foauth%2Fkakao%2Fcallback&client_id=8fbba150815fc1d671141795f363410a] [KakaoTokenClient#requestKakaoToken(String,Request)]: [<html> <head><title>405 Not Allowed</title></head> <body> <center><h1>405 Not Allowed</h1></center> <hr><center>openresty</center> </body> </html> ]"} 해당 오류에 대한 원인을 찾지 못하고있습니다.
-
해결됨개발 입문을 위한 실무자가 알려주는 Spring Boot
OTP_ISSUER 가 2번 들어가는 이유 문의
generateQRCodeURL 에서 OTP_ISSUER 가 2번 들어가던데 특별한 이유가 있을까요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
안녕하세요. 공부하다가 막히는 부분이 있어서 질문드리는데 질문 내용이 ...
안녕하세요. 이 강의를 마치고 비동기 spring boot를 공부 하고 있습니다. Reactor이라고 부르던데 mvc와 크게 다른거 같지 않는거 같은데 코딩이 생각 보다 어렵네요....mvc랑 코딩 자체가 틀림 ... 솔직히 질문드리기가 너무 죄송합니다. 근데 답변 해줄 분이 안계셔서 ..여기에 질문 드리네요...... 질문 내용은 @Aspect 이딴걸 왜 하는거냐 입니다. class A아래 함수에 주석을 원래 하는거지만 주석을 제거 하려면 이걸 Aspect를 해야한다고 하네요....@GetMapping("/test/mdc") suspend fun testRequestTxid() { // withContext(MDCContext()) { logger.debug { "start MDC TxId" } delay(100) service.mdc() logger.debug { "end MDC TxId" } // } }이과정이 꽤나 복잡합니다. class B처럼요 class BMapping을 대신할 어노 테이션을 만드는거 내용이라고 생각 됩니다.classA에 @GetMapping을 하면 아래 class의 hindMdcContext를 사용하게끔 하는거 같아요...질문 드릴껀 이 과정이 왜 필요한거죠???의도가 잘 파악이 안되서요...trance id를 생성하고 class A가 완전히 처리 될때까지 블러킹 하기 위해서 그런거 같은데 이렇게 까지 해야되나 싶네요... 내용은 아직도 파악 중입니다. ^^ 현제 ProceedingJoinPoint가 뭔지 파악 중에 있고요 ... @Aspect class AspectConfig { @Around(""" @annotation(org.springframework.web.bind.annotation.GetMapping) """) fun hindMdcContext(jp: ProceedingJoinPoint): Any? { return if(jp.hasSuspendFunction) { val continuation = jp.args.last() as Continuation<*> val newContext = continuation.context + MDCContext() val newContinuation = Continuation(newContext) { continuation.resumeWith(it)} val newArgs = jp.args.dropLast(1) + newContinuation jp.proceed(newArgs.toTypedArray()) } else { jp.proceed() } } private val ProceedingJoinPoint.hasSuspendFunction: Boolean get() { val method = (this.signature as MethodSignature).method return KotlinDetector.isSuspendingFunction(method) } }빨리 비동기 강의좀 내주세요 ㅠ.ㅠ 수없는 인강을 들었지만 강사님 만큼 강의 잘하는 강의 못봤어요 ㅠ.ㅠ
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
homebrew로 mysql 설치시 오류
안녕하세요. homebrew를 이용해서 mysql을 설치하려고 했는데 다음과 같은 오류가 떠서 질문글 남깁니다. 혼자 고쳐보려고 해도 인터넷에 레퍼런스가 없네요 .. homebrew 삭제후 재설치도 해봤는데 해결되지 않습니다. 도와주세요.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertj의 import가 안 돼요
지금 30분째 붙잡고 검색하면서 해결 중인데 뭔 짓을 해도 import가 안 돼요
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
csrf 토큰 자동추가 질문 있습니다
thymleaf 의 경우에는 form tag가 붙어있고, spring security에 csrf설정이 켜져 있으면 해당 form 에 csrf input 이 hidden으로 추가되고CookieCsrfTokenRepository를 사용할 경우에는 post요청이 아니여도 쿠키를 통해 csrf token을 전달해준다고 이해했는데 제대로 이해한걸까요?
-
미해결스프링 시큐리티 OAuth2
스피링 시큐리티 강의 너무 좋습니다
시큐리티 강의를 만들어주셔서 너무 감사합니다!디버깅을 통한 내부 아키텍처 동작원리 이해가 너무재밌습니다 ㅎㅎ 시큐리티에 대한 거부감이 초반에 있었지만, 스프링 시큐리티 동작원리를 이해하게 되므로써 시큐리티가 재밌어지고 활용도 잘할것 같습니다. 그리고 내부 디버깅을 하면서 느낀게 코드 디자인 설계 특히 디자인 패턴에 대해서도 많이 공부할 수 있게되어서 좋은 공부 방향인것 같습니다 ㅎㅎ 다시한번 감사의 말씀을 드립니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
CookieCsrfTokenRepository 방식 질문 있습니다
csrf는 결국 쿠키와 같이 브라우저가 자동으로 추가하는 이유로 발생하는 문제로 이해했습니다. CookieCsrfTokenRepository방식은 csrf 토큰을 쿠키로 전달하고 client 쪽에서 해당 쿠키값을 읽어서 헤더나, 매개변수로 전달하는걸로 이해했습니다. client에서 cookie를 읽기 위해서는 httponly 속성을 꺼야되는데 이러면 보안상으로 취약해진다고 알고 있는데 이러한 점에도 굳이 세션을 놔두고 해당 방식으로 하는 이점이 있을까요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
6장 질문
6장 실습중 이미지가 안보이는 이유가 무엇일까요?빠른 답변 좀 부탁드립니다.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
로그인 하고 나서 GET요청으로 메인페이지 요청
### 로그인 POST http://localhost:8080/auth/login Content-Type: application/x-www-form-urlencoded username=blog&password=1111&remember=1 ### 메인 페이지 GET http://localhost:8080분명 로그인을 하고나면 메인페이지로 잘 넘어가지만localhost / SESSION ZmU5OGQ2ZDEtZjBjZS00NzhiLWI3NDktM2NiNjAxNTYwM2U1 -1 localhost / remember-me YmxvZzoxNzMwMjE1NjY2NzQ5OlNIQTI1Njo2MzBiMmU5ZmMyNzZiYTcxYTY5ZjI4NzYyMjdlODg3NzEyMWNhMmFlZTdlZmM4YTFmNjMxYmFlYjM1YzhhMTll Sun, 29-Sep-2024 16:10:58잘 발급이 된상태에서 GET을 하게되면 자꾸 메인 페이지로 안넘어가고로그인페이지로 넘어가는데 아무리 찾아봐도 잘모르겠습니다...ㅠㅠ 몇시간을 사용했는지 모르겠네요 이거땜시https://github.com/CryingPerson/blog.git깃허브 주소입니다. 도와주세요 호돌맨님 !!! ㅠㅠ
-
미해결스프링 시큐리티 OAuth2
네이버 로그인 시 권한
네이버로 로그인하면 권한이 yml에 설정한 scope - email, profile은 넘어오지 않습니다. 강사님과 코드도 동일한데 어디를 확인해봐야할까요?
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
GitHub Collaborator 초대 관련
안녕하세요.강의 잘 보고 있습니다.깃허브 Collaborator 초대 부탁드립니다.GitHub Email: pdohyung@gmail.com
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
value값이 무엇인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. package hello.hello_spring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloController { @GetMapping("hello-api") @ResponseBody public Hello helloApi(@RequestParam("name") String name) { Hello hello = new Hello(); hello.setName(name); return hello; } static class Hello { // key: name private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } }이 코드에서 key 값은 name이고 value값은 어떤 것인지 알 수 있을까요? 제가 못 알아들어서요ㅠ