inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

kakao token 발급 시 에러

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

안녕하세요 ! 강의 수강 중에 에러난 부분이 해결되지 않아 질문 남깁니다. 지금 '카카오 토큰 발급 구현(2) - 토큰 받기' 강의 마지막까지 코드 작성 후 api 실행 했는데 결과 {"errorCode":"500 INTERNAL_SERVER_ERROR","errorMessage":"Could not extract response: no suitable HttpMessageConverter found for response type [class com.app.web.kakaotoken.dto.KakaoTokenDto$Response] and content type [text/html]"} 로 나오고 있습니다. 콘솔창의 에러는 feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.app.web.kakaotoken.dto.KakaoTokenDto$Response] and content type [text/html] at feign.InvocationContext.proceed(InvocationContext.java:40) ~[feign-core-11.10.jar:na] at feign.AsyncResponseHandler.decode(AsyncResponseHandler.java:116) ~[feign-core-11.10.jar:na] at feign.AsyncResponseHandler.handleResponse(AsyncResponseHandler.java:89) ~[feign-core-11.10.jar:na] at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:141) ~[feign-core-11.10.jar:na] at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:91) ~[feign-core-11.10.jar:na] at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100) ~[feign-core-11.10.jar:na] at com.sun.proxy.$Proxy109.requestKakaoToken(Unknown Source) ~[na:na] at com.app.web.kakaotoken.controller.KakaoTokenController.loginCallback(KakaoTokenController.java:39) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.20.jar:5.3.20] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.20.jar:5.3.20] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.63.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.20.jar:5.3.20] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.63.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.20.jar:5.3.20] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.63.jar:9.0.63] at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na] Caused by: org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.app.web.kakaotoken.dto.KakaoTokenDto$Response] and content type [text/html] at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:126) ~[spring-web-5.3.20.jar:5.3.20] at org.springframework.cloud.openfeign.support.SpringDecoder.decode(SpringDecoder.java:75) ~[spring-cloud-openfeign-core-3.1.8.jar:3.1.8] at org.springframework.cloud.openfeign.support.ResponseEntityDecoder.decode(ResponseEntityDecoder.java:61) ~[spring-cloud-openfeign-core-3.1.8.jar:3.1.8] at feign.optionals.OptionalDecoder.decode(OptionalDecoder.java:36) ~[feign-core-11.10.jar:na] at feign.InvocationContext.proceed(InvocationContext.java:36) ~[feign-core-11.10.jar:na] ... 57 common frames omitted 코드를 여러 번 봐도 강사님이랑 다른 부분이 없는 거 같아서 여쭤봅니다. 감사합니다 !!

  • spring-boot
  • jpa
  • web-api
neatinfo 댓글 2 좋아요 0 조회수 780

아직 초반부분인데 질문이있습니다.

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

제가 타임리프말고 Vue를 사용하려고합니다 그리고 시큐리티를 사용하려고하는데 해당 강좌에 시큐리티가 없는건지요? 궁금한게 시큐리티를 적용안하고 보통 프로젝트를 만드나요?

  • spring-boot
  • jpa
  • web-api
성호 댓글 1 좋아요 0 조회수 228

EFCore 포렌키 설정 관련 질문(Entity Framework Code First One-to-Many Relationship)

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

public class UserData { //public int Id { get; set; } [Key] public string UserId { get; set; } public string? Token { get; set; } [MaxLength(32)] public string? UserName { get; set; } public DateTime? CreateTime { get; set; } public BanData BanData { get; set; } public List<MailData> MailDatas { get; set; } public List<GetMailData> GetMailDatas { get; set; } } public class BanData { public int Id { get; set; } public DateTime Start { get; set; } public DateTime End { get; set; } public int State { get; set; } public string DescKey { get; set; } // Foreign Key ////1:1 방향일 경우 한쪽이 아이디까지 물고 있어야함 public string UserDataUserId { get; set; } [JsonIgnore] public UserData UserData { get; set; } } public class MailData { /// <summary> 우편물 구분 값 </summary> public int Id { get; set; } /// <summary> 발송일 </summary> public DateTime SendDate { get; set; } /// <summary> 우편물 받아야하는 기간 </summary> public DateTime EndDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserDataUserId { get; set; } [JsonIgnore] public UserData UserData { get; set; } } 이렇게 코드가 있을 경우 MailData -> UserData로 연동은 잘 됩니다 다만 DB 테이블에 MailData가 생성되는데 제가 원하는 것은 UserData 테이블에 MailDatas 가 생성되는 것입니다 다만 위 코드처럼 처리를 할 경우 MailData 테이블에 모든 유저들의 메일 정보가 저장되고 UserData에서 긁어오는 것으로 파악되는데 맞을까여? 만약 이렇게하여 모든유저들의 정보를 처리하는게 더 좋은 방식인지 UserData 테이블에 JSON으로 메일을 처리하는것이 좋은 방식인지 궁금합니다

  • rest-api
  • blazor
  • web-api
  • asp.net-core
한일상 댓글 3 좋아요 0 조회수 397

DB 설정 관련해서 질문 드립니다

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

[Table("UserTable")] public class UserData { [Key] public string UserId { get; set; } public string? Token { get; set; } [MaxLength(32)] public string? UserName { get; set; } public DateTime? CreateTime { get; set; } public BanData? Ban { get; set; } public ICollection<MailData> OwnMails { get; set; } public ICollection<GetMailData> GetMails { get; set; } } [Serializable] public class BanData { public DateTime Start { get; set; } public DateTime End { get; set; } public int State { get; set; } public string DescKey { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } } public class MailData { /// <summary> 우편물 구분 값 </summary> [Key] public long Id { get; set; } /// <summary> 발송일 </summary> public DateTime SendDate { get; set; } /// <summary> 우편물 받아야하는 기간 </summary> public DateTime EndDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } } /// <summary> 우편물 획득 시 </summary> public class GetMailData { /// <summary> 우편물 구분 값 </summary> [Key] public long Id { get; set; } /// <summary> 우편물 시간제한에 의한 삭제 </summary> public bool IsTimeOut { get; set; } /// <summary> 받은 날 </summary> public DateTime GetDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } } 이렇게 SharedData.Models 정의를 해서 사용을 하고자 합니다 UserData에서만 DB 컬럼으로 활용을 하고싶습니다 ApplicationDbContext.cs protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Ignore<BanData>(); modelBuilder.Ignore<MailData>(); modelBuilder.Ignore<GetMailData>(); } 에는 DB로 만들어지지 않았으면 해서 예외처리를 추가했습니다 UserTable UserId Token UserName CreateTime BanData Ban ICollection<MailData> OwnMails ICollection<GetMailData> GetMails 이런식으로 생성하게 하려면 어떻게해야 하나요?

  • rest-api
  • blazor
  • web-api
  • asp.net-core
한일상 댓글 3 좋아요 0 조회수 455

10분 48초 부근에 안 되는 사람들 참고하세요

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

css 파일도 필요할 확률이 높습니다(기본적으론 생성 안 됨). 최신 버전으로 공부하고 있는데 거의 숨은 그림 찾기네요. 버전이 바뀌면 달라질 수도 있습니다.

  • rest-api
  • blazor
  • web-api
  • asp.net-core
naringcode 댓글 1 좋아요 1 조회수 580

socialLoginApiService map 주입

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. @Service public class SocialLoginApiServiceFactory { private static Map<String,SocialLoginApiService> socialLoginApiServices; public SocialLoginApiServiceFactory(Map<String,SocialLoginApiService> socialLoginApiServices) { SocialLoginApiServiceFactory.socialLoginApiServices = socialLoginApiServices; } public static SocialLoginApiService getSocialLoginApiService(MemberType memberType){ String socialLoginApiServiceBeanName = ""; if(MemberType.KAKAO.equals(memberType)){ socialLoginApiServiceBeanName = "kakaoLoginApiServiceImpl"; } return socialLoginApiServices.get(socialLoginApiServiceBeanName); } } 여기서 생성자로 socialLoginApiServices 를 주입해서 사용 하는 것 같은데 주입하는 부분이 보이지 않아서 질문 드립니다 어디서 주입 되는 것일까요?

  • spring-boot
  • jpa
  • web-api
vnfthr 댓글 1 좋아요 0 조회수 313

ArgumentException: Keyword not supported: 'trust server certificate'.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

처음 appsettings.json에서 DefaultConnection의 값을 이름만 바꿀경우는 저 에러가 뜨지 않는데 속성에서 연결 문자열의 값을 복사해서 붙여넣을 경우 프로그램 실행 후 Register 할 경우 저 에러가 계속 뜹니다 어떻게 해결해야 하나요 ?

  • rest-api
  • blazor
  • web-api
  • asp.net-core
요가인 댓글 1 좋아요 0 조회수 892

Need Summary 부분 질문있습니다!

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

먼저 FetchData.razor 에서 <EditForm Model="_addForecast" OnInvalidSubmit="SaveForecast"> @* Form Validation 기능 ON*@ <DataAnnotationsValidator /> @* 에러가 있으면 메시지 상세 출력*@ <ValidationSummary /> <label for="TemperatureC">TemperatureC</label> <InputNumber class="form-control" placeholder="TemperatureC" @bind-Value="_addForecast.TemperatureC" /> <label for="Summary">Summary</label> <InputText class="form-control" placeholder="Summary" @bind-Value="_addForecast.Summary" /> <br /> <button class="btn btn-primary" type="submit">Save</button> </EditForm> WeatherForecast에서 public class WeatherForecast { public DateTime Date { get; set; } [Required(ErrorMessage = "Need TemperatureC!")] [Range(typeof(int),"-100","100")] public int TemperatureC { get; set; } public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); [Required(ErrorMessage = "Need Summary!")] [StringLength(10, MinimumLength = 2, ErrorMessage = "2~10")] public string Summary { get; set; } } 이렇게 해주었는데 Need Summary가 뜨지 않는데 이유를 알수 있을까요?

  • rest-api
  • blazor
  • web-api
  • asp.net-core
요가인 댓글 1 좋아요 0 조회수 342

계속 똑같은 에러가 뜹니다 ㅠㅠ

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

An unhandled exception occurred while processing the request. InvalidOperationException: The view 'Index' was not found. The following locations were searched: /Views/Home/Index.cshtml /Views/Shared/Index.cshtml 라고 계속 뜨는데 저는 Shared폴더 자체도 없는데 계속 다른곳에서 파일을 찾는것 같은데 어떻게 해결해야하나요?

  • rest-api
  • blazor
  • web-api
  • asp.net-core
요가인 댓글 1 좋아요 0 조회수 534

전역 에러 처리 메시지 관리

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에 보면 enum에 TEST라고 하시고 에러메시지를 정적으로 입력하셨는데 , 메시지properties로 따로 관리하는 방법은 없을까요? TEST(HttpStatus.INTERNAL_SERVER_ERROR,"001",messageSource.getMessage("001")), 001 = "business Exception test" 돌아가는 코드는 아니지만 이런식으로 답변 주시면 감사하겠습니다

  • spring-boot
  • jpa
  • web-api
vnfthr 댓글 2 좋아요 0 조회수 650

안드로이드 스튜디오와 협업

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

현재 학부생 3학년으로 안드로이드 앱 개발 팀프로젝트를 진행중입니다. 클라이언트 친구가 하는말이 "회원고유번호를 카카오에서 프론트에게 주고, 프론트에서 그걸 백으로 전달해준다. 백은 그냥 내가 준 고유번호만 가지고 jwt토큰으로 만들어서 반환해달라" 라고 말하는데, 그러면 강의대로 섹션9를 다 수행하고나서, 섹션9의 카카오 토큰 발급 구현(1),(2)빼고 카카오에서 플랫폼만 웹에서 안드로이드로 변경하면 되는건가요? 제가 이해한게 맞다면 프론트(android studio)에서 인증, 인가를 받아 사용자 정보를 받아오고, 백엔드(Spring boot)에서는 단순히 /join 을 통해 프론트에서 넘겨준 User 데이터를 password와 함께 저장하는것 같습니다. 이 때, JWT 토큰을 발행해서 프론트에 넘겨주는것 같구요. 그리고 소셜로그인(6)까지 진행중인데, ERROR 15266 --- [nio-8080-exec-1] c.a.globa l.error.GlobalExceptionHandler : Exception 포스트로 value값을 보내면 위와같은 에러가 뜹니다... 그래서 첨부터 다시 쭉 보는데, (5)부분에서 했던 것도 똑같은 에러가 뜨더라고요... 뭐가 문제인지...ㅜ 스프링 첨배워가면서 하고있는데, 미치겠습니다..ㅠ

  • spring-boot
  • jpa
  • web-api
정성주 댓글 2 좋아요 0 조회수 682

연락처 검색 버튼이 작동하지 않아요

미해결

(2025 최신 업데이트)리액트 : 프론트엔드 개발자로 가는 마지막 단계

import React, { useState } from 'react'; import {Form, Row, Col, Button} from 'react-bootstrap' import { useDispatch, useSelector } from 'react-redux'; const SearchBox = () => { let [keyword, setKeyword] = useState(''); let dispatch = useDispatch() const { contact } = useSelector((state) => state); const searchByName = (event) => { event.preventDefault(); dispatch({ type: "SEARCH_BY_USERNAME", payload: { keyword } }); }; return ( <Form onSubmit={searchByName} className='search-box'> <Row> <Col lg={8}> <Form.Control type="text" placeholder="이름을 입력해주세요" onChange={(event) => setKeyword(event.target.value)} \ /> </Col> <Col lg={4}> <Button variant="dark">찾기</Button> </Col> </Row> </Form> ) } export default SearchBox 위의 코드는 search-box 코드이고 const initialState = { contact: [], keyword: "", } const reducer = (state = initialState, action) => { let { type, payload } = action; switch (type) { case "ADD_CONTACT": state.contact.push({ name: payload.name, phoneNumber: payload.phoneNumber, }); break; case "SEARCH_BY_USERNAME": state.keyword = payload.keyword; break; } return { ...state }; }; export default reducer; 위의 코드는 reducer.js 코드 import React, { useEffect, useState } from "react"; import SearchBox from "./SearchBox"; import ContactItem from "./ContactItem"; import { useSelector } from "react-redux"; const ContactList = () => { const { contact, keyword } = useSelector((state) => state); let [filteredList, setFilteredList] = useState([]); useEffect(() => { if (keyword !== "") { let list = contact.filter((item) => item.name.includes(keyword)); setFilteredList(list); } else { setFilteredList(contact); } }, [keyword]); return ( <div> <SearchBox /> <div className="contact-list"> num:{filteredList.length} {filteredList.map((item, idx) => ( <ContactItem item={item} key={idx} /> )) } </div> </div> ); }; export default ContactList 위코드는 contactList 코드입니다. 너무 안되서 선생님 코드를 그대로 복붙하고 아무리 찾아봐도 다른 부분이 없는데 검색 버튼을 눌러도 작동하지 않습니다. 왜 안되는걸까요? 선생님? 이걸로 밤새고 있습니다.

  • react
  • redux
  • web-api
openuriz 댓글 1 좋아요 0 조회수 398

영화 API

미해결

(2025 최신 업데이트)리액트 : 프론트엔드 개발자로 가는 마지막 단계

제공하신 영화 api 홈페이지 주소를 찾을 수 없어요ㅠㅠ 강의에서 한 대로 https://www.themoviedb.org/ 접속한 후에 More에서 API를 선택하면 이런 화면이 나와요

  • react
  • redux
  • web-api
ss 댓글 2 좋아요 0 조회수 839

String accessToken = authorizationHeader.split(" ")[1];은 accessToken이 맞나요?

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

강사님 안녕하세요 수업 잘 듣고 있습니다. 덕분에 도전하기 힘들었던 인증인가를 조금이나마 이해하게 되고 있는 것 같습니다. 수업을 듣던 중 한가지 궁금한 점이 생겨서 질문 남기게 되었습니다. LoginController에서 String accessToken = authorizationHeader.split(" ")[1]; 이라는 변수를 선언하는데 저는 authorizationHeader.split(" ")[1]이 accessToken인지 accessToken을 포함한 jwt인지가 헷갈립니다. 혹시 이 부분과 관련하여 제가 어떻게 이해하면 좋을지 조언 해주실 수 있으실까요? 감사합니다.

  • spring-boot
  • jpa
  • web-api
3ㅇ 댓글 1 좋아요 0 조회수 330

SocialLoginApiServiceFactory 생성자 관련 질문입니다.

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

너무 초보적인 내용이라 질문을 해야하나 고민입니다. private static Map<String, SocialLoginApiService> socialLoginApiServices; public SocialLoginApiServiceFactory(Map<String, SocialLoginApiService> socialLoginApiServices) { this.socialLoginApiServices = socialLoginApiServices; } 위에 static 필드를 아래의 생성자에서 this 키워드로 설정하는 부분 있는데요... 이부분이 아래와같이 하는거하고 차이점이 어떻게 다른지 궁금합니다. private static Map<String, SocialLoginApiService> socialLoginApiServices; public SocialLoginApiServiceFactory(Map<String, SocialLoginApiService> socialLoginApiServices) { SocialLoginApiServiceFactory.socialLoginApiServices = socialLoginApiServices; }

  • spring-boot
  • web-api
박정식 댓글 1 좋아요 0 조회수 283

이번 강의 코드를 받을 수 있을까요?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

grouping 예제 부분을 실행하는데 있어 playersByLevel에 동일하게 작성하였는데 로컬 부분에 해당 이름을 작성하고 열었는데 화면과는 다르게 Players도 가지지 않고 있고 Non-Public members로 분류되어서 나오네요.

  • rest-api
  • blazor
  • web-api
  • asp.net-core
박성훈 댓글 1 좋아요 0 조회수 397

ATOM이 2022년 12월 15일 기준 종료되었네요

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버

어쩔수없이 VisualStudio Code를 이용해 따라가려하는데 html로 작성만 가능하면 될까요?

  • rest-api
  • blazor
  • web-api
  • asp.net-core
박성훈 댓글 1 좋아요 0 조회수 595

더보기..

미해결

(2025 최신 업데이트)리액트 : 프론트엔드 개발자로 가는 마지막 단계

영상 밑에 더보기 주소가 안보입니다

  • react
  • redux
  • web-api
: 흥 댓글 1 좋아요 0 조회수 405

OAuthAttributes 클래스의 toMemberEntity의 파라미터로 memberType이 들어가야하는 이유가 궁금합니다.

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

@Getter @Builder public class OAuthAttributes { private String name; private String email; private String profile; private MemberType memberType; public Member toMemberEntity(MemberType memberType, Role role){ return Member.builder() .memberName(name) .email(email) .profile(profile) .memberType(memberType) .role(role) .build(); } } 강사님 안녕하세요 강의 잘 듣고 있습니다. 다름이 아니라 소셜로그인(4) 소셜 로그인 구조 설계 강의를 듣던 중 toMemberEntity 메소드에 대해 궁금한 점이 있어서 질문 드리게 되었습니다. OauthAttributes 클래스 같은 경우 필드로 memberType을가지고 있는데 메소드 파라미터로 따로 memberType을 받아야 하는 특별한 상황이 있는지 궁금합니다. 감사합니다 :)

  • spring-boot
  • jpa
  • web-api
3ㅇ 댓글 2 좋아요 0 조회수 472

feignClient의 consumes와 @RequestHeader는 같은 역할인가요?

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

카카오 토큰 발급 구현(2) 5:27 부분 feignClient의 PostMapping에 consumes = "application/json"이 있는데 이 부분이 외부 api 요청시 헤더 지정 역할인 것으로 알고 있습니다. 그런데 카카오에서는 x-form-urlencoded로 요청하라고 해서 @RequestHEader("Content-Type)을 따로 지정해주는 것으로 이해했느데요 consumes="x-form-urlencoded"로 하고 파라미터에서 contentType을 제거해도 되나요?

  • spring-boot
  • jpa
  • web-api
3ㅇ 댓글 1 좋아요 0 조회수 960

인기 태그

인프런 TOP Writers

주간 인기글